Files
nixos/modules/software/beets/default.nix
T
2026-04-07 01:05:23 +03:00

97 lines
1.7 KiB
Nix

{
config,
inputs,
lib,
pkgs,
xlib,
...
}:
let
stable = import inputs.nixpkgs-beets {
system = "x86_64-linux";
};
in
let
# depsOverlay = import ./dependencies.nix {
# # ./dependencies-full.nix if broken
# inherit (pkgs) fetchurl fetchgit fetchhg;
# inherit pkgs;
# };
# python3 = pkgs.python3.override {
# packageOverrides = depsOverlay;
# };
beetsEnv = stable.python313.withPackages (
ps: with ps; [
beautifulsoup4
beetcamp
beets
certifi
charset-normalizer
colorama
confuse
discogs-client
exceptiongroup
filetype
h11
httpcore
httpx
httpx-socks
socksio
idna
jellyfish
langdetect
mediafile
munkres
musicbrainzngs
mutagen
oauthlib
packaging
pillow
platformdirs
pycountry
pylast
python-dateutil
pyyaml
requests
six
sniffio
soupsieve
typing-extensions
unidecode
urllib3
]
);
in
{
# nixpkgs.config.allowBroken = true;
users = {
users = {
"${xlib.device.username}" = {
packages = [
beetsEnv
pkgs.mp3gain
pkgs.imagemagick
#ffmpeg
];
};
};
};
fileSystems."/mnt/beets/music" = {
device = "/home/${xlib.device.username}/Music"; # "${xlib.dirs.vetymae-drive}/Users/User/Music"
options = [
"bind"
"uid=1000"
"gid=1000"
"fmask=0077"
"dmask=0077"
"nofail"
#"x-systemd.device-timeout=0"
];
};
systemd.tmpfiles.rules = [
"z /mnt/beets 0700 ${xlib.device.username} users -" # beets absolute paths
];
}