From a4ae755694820eadf7f630e9050acf6703104cd2 Mon Sep 17 00:00:00 2001 From: oqyude Date: Sat, 17 May 2025 23:34:03 +0300 Subject: [PATCH] beets module --- devices/laptop.nix | 4 +- home/main.nix | 8 +- modules/essentials/tty.nix | 2 +- modules/software/beets/default.nix | 72 +++---- modules/software/beets/deps.nix | 294 +++++++++++++++-------------- 5 files changed, 197 insertions(+), 183 deletions(-) diff --git a/devices/laptop.nix b/devices/laptop.nix index b7df26c..129681f 100755 --- a/devices/laptop.nix +++ b/devices/laptop.nix @@ -142,8 +142,8 @@ let 48000 96000 ]; - "default.clock.quantum" = 256; - "default.clock.min-quantum" = 64; + "default.clock.quantum" = 1024; + "default.clock.min-quantum" = 256; "default.clock.max-quantum" = 2048; }; }; diff --git a/home/main.nix b/home/main.nix index 4313468..1b266c5 100755 --- a/home/main.nix +++ b/home/main.nix @@ -59,10 +59,10 @@ let source = config.lib.file.mkOutOfStoreSymlink "${inputs.zeroq.dirs.therima-drive}"; target = "External"; }; - # "Music" = { - # source = config.lib.file.mkOutOfStoreSymlink "${inputs.zeroq.dirs.vetymae-drive}/Users/User/Music"; - # target = "Music"; - # }; + "Music" = { + source = config.lib.file.mkOutOfStoreSymlink "${inputs.zeroq.dirs.vetymae-drive}/Users/User/Music"; + target = "Music"; + }; "Pictures" = { source = config.lib.file.mkOutOfStoreSymlink "${inputs.zeroq.dirs.vetymae-drive}/Users/User/Pictures"; target = "Pictures"; diff --git a/modules/essentials/tty.nix b/modules/essentials/tty.nix index 04a69cd..591b51f 100644 --- a/modules/essentials/tty.nix +++ b/modules/essentials/tty.nix @@ -32,7 +32,7 @@ # Extras plasma-manager = "nix run github:nix-community/plasma-manager"; - pip2nix = "nix run github:nix-community/pip2nix -- generate -r"; + pip2nix = "nix run github:nix-community/pip2nix -- generate -r"; # https://github.com/nix-community/pip2nix }; }; } diff --git a/modules/software/beets/default.nix b/modules/software/beets/default.nix index dfe25f3..0c22192 100644 --- a/modules/software/beets/default.nix +++ b/modules/software/beets/default.nix @@ -6,49 +6,53 @@ pkgs, ... }: +let + # Beets with plugins + depsOverlay = import ./deps.nix { + inherit (pkgs) fetchurl fetchgit fetchhg; + inherit pkgs; + }; + python3 = pkgs.python3.override { + packageOverrides = depsOverlay; + }; + beetsEnv = python3.withPackages (ps: [ ps.beets ]); +in { - nixpkgs.overlays = [ - (self: super: { - python3 = super.python3.override { - packageOverrides = import ./deps.nix { - pkgs = self; - inherit (super) fetchurl fetchgit fetchhg; - }; - }; - }) + environment.systemPackages = [ + beetsEnv + pkgs.imagemagick ]; fileSystems."/mnt/beets/music" = { device = "${inputs.zeroq.dirs.music-library}"; - options = [ "bind" ]; + options = [ + "bind" + "nofail" + ]; }; - users = { - groups = { - beets = { }; - }; - users = { - beets = { - isSystemUser = true; - #isNormalUser = true; - description = "beets service"; - group = "beets"; - homeMode = "0770"; - home = "/var/lib/beets"; - packages = [ - (pkgs.python3.withPackages (ps: [ - ps.beets - ps.beetcamp - ])) - ]; - shell = pkgs.bashInteractive; - }; - }; - }; + # users = { + # groups = { + # beets = { }; + # }; + # users = { + # beets = { + # isSystemUser = true; + # #isNormalUser = true; + # description = "beets service"; + # group = "beets"; + # homeMode = "0770"; + # home = "/var/lib/beets"; + # packages = [ ]; + # shell = pkgs.bashInteractive; + # }; + # }; + # }; systemd.tmpfiles.rules = [ - "d /var/lib/beets 0770 beets beets -" - "d /mnt/beets 0770 beets beets -" + # "d /var/lib/beets 0770 beets beets -" + # "d /mnt/beets 0770 beets beets -" + "z /mnt/beets 0755 oqyude users -" ]; } diff --git a/modules/software/beets/deps.nix b/modules/software/beets/deps.nix index 0e3a563..9c3c459 100644 --- a/modules/software/beets/deps.nix +++ b/modules/software/beets/deps.nix @@ -1,7 +1,12 @@ # Generated by pip2nix 0.8.0.dev1 # See https://github.com/nix-community/pip2nix -{ pkgs, fetchurl, fetchgit, fetchhg }: +{ + pkgs, + fetchurl, + fetchgit, + fetchhg, +}: self: super: { "PyYAML" = super.buildPythonPackage rec { @@ -13,10 +18,10 @@ self: super: { }; format = "setuptools"; doCheck = false; - buildInputs = []; - checkInputs = []; - nativeBuildInputs = []; - propagatedBuildInputs = []; + buildInputs = [ ]; + checkInputs = [ ]; + nativeBuildInputs = [ ]; + propagatedBuildInputs = [ ]; }; "Unidecode" = super.buildPythonPackage rec { pname = "Unidecode"; @@ -27,10 +32,10 @@ self: super: { }; format = "wheel"; doCheck = false; - buildInputs = []; - checkInputs = []; - nativeBuildInputs = []; - propagatedBuildInputs = []; + buildInputs = [ ]; + checkInputs = [ ]; + nativeBuildInputs = [ ]; + propagatedBuildInputs = [ ]; }; "anyio" = super.buildPythonPackage rec { pname = "anyio"; @@ -41,9 +46,9 @@ self: super: { }; format = "wheel"; doCheck = false; - buildInputs = []; - checkInputs = []; - nativeBuildInputs = []; + buildInputs = [ ]; + checkInputs = [ ]; + nativeBuildInputs = [ ]; propagatedBuildInputs = [ self."exceptiongroup" self."idna" @@ -60,9 +65,9 @@ self: super: { }; format = "wheel"; doCheck = false; - buildInputs = []; - checkInputs = []; - nativeBuildInputs = []; + buildInputs = [ ]; + checkInputs = [ ]; + nativeBuildInputs = [ ]; propagatedBuildInputs = [ self."soupsieve" ]; @@ -76,11 +81,11 @@ self: super: { }; format = "wheel"; doCheck = false; - buildInputs = []; - checkInputs = []; - nativeBuildInputs = []; + buildInputs = [ ]; + checkInputs = [ ]; + nativeBuildInputs = [ ]; propagatedBuildInputs = [ - self."beets" + #self."beets" # its doesnt matter? self."httpx" self."packaging" self."pycountry" @@ -95,9 +100,9 @@ self: super: { }; format = "wheel"; doCheck = false; - buildInputs = []; - checkInputs = []; - nativeBuildInputs = []; + buildInputs = [ ]; + checkInputs = [ ]; + nativeBuildInputs = [ ]; propagatedBuildInputs = [ self."PyYAML" self."Unidecode" @@ -108,6 +113,11 @@ self: super: { self."musicbrainzngs" self."platformdirs" self."typing-extensions" + # ext + self."requests" # For spotify, deezer, embedart, fetchart, lyrics + self."python3-discogs-client" # For discogs + self."pylast" # For lastgenre + self."beetcamp" # Another ]; }; "certifi" = super.buildPythonPackage rec { @@ -119,10 +129,10 @@ self: super: { }; format = "wheel"; doCheck = false; - buildInputs = []; - checkInputs = []; - nativeBuildInputs = []; - propagatedBuildInputs = []; + buildInputs = [ ]; + checkInputs = [ ]; + nativeBuildInputs = [ ]; + propagatedBuildInputs = [ ]; }; "charset-normalizer" = super.buildPythonPackage rec { pname = "charset-normalizer"; @@ -133,10 +143,10 @@ self: super: { }; format = "setuptools"; doCheck = false; - buildInputs = []; - checkInputs = []; - nativeBuildInputs = []; - propagatedBuildInputs = []; + buildInputs = [ ]; + checkInputs = [ ]; + nativeBuildInputs = [ ]; + propagatedBuildInputs = [ ]; }; "colorama" = super.buildPythonPackage rec { pname = "colorama"; @@ -147,10 +157,10 @@ self: super: { }; format = "wheel"; doCheck = false; - buildInputs = []; - checkInputs = []; - nativeBuildInputs = []; - propagatedBuildInputs = []; + buildInputs = [ ]; + checkInputs = [ ]; + nativeBuildInputs = [ ]; + propagatedBuildInputs = [ ]; }; "confuse" = super.buildPythonPackage rec { pname = "confuse"; @@ -161,9 +171,9 @@ self: super: { }; format = "wheel"; doCheck = false; - buildInputs = []; - checkInputs = []; - nativeBuildInputs = []; + buildInputs = [ ]; + checkInputs = [ ]; + nativeBuildInputs = [ ]; propagatedBuildInputs = [ self."PyYAML" ]; @@ -177,9 +187,9 @@ self: super: { }; format = "wheel"; doCheck = false; - buildInputs = []; - checkInputs = []; - nativeBuildInputs = []; + buildInputs = [ ]; + checkInputs = [ ]; + nativeBuildInputs = [ ]; propagatedBuildInputs = [ self."typing-extensions" ]; @@ -193,10 +203,10 @@ self: super: { }; format = "wheel"; doCheck = false; - buildInputs = []; - checkInputs = []; - nativeBuildInputs = []; - propagatedBuildInputs = []; + buildInputs = [ ]; + checkInputs = [ ]; + nativeBuildInputs = [ ]; + propagatedBuildInputs = [ ]; }; "h11" = super.buildPythonPackage rec { pname = "h11"; @@ -207,10 +217,10 @@ self: super: { }; format = "wheel"; doCheck = false; - buildInputs = []; - checkInputs = []; - nativeBuildInputs = []; - propagatedBuildInputs = []; + buildInputs = [ ]; + checkInputs = [ ]; + nativeBuildInputs = [ ]; + propagatedBuildInputs = [ ]; }; "httpcore" = super.buildPythonPackage rec { pname = "httpcore"; @@ -221,9 +231,9 @@ self: super: { }; format = "wheel"; doCheck = false; - buildInputs = []; - checkInputs = []; - nativeBuildInputs = []; + buildInputs = [ ]; + checkInputs = [ ]; + nativeBuildInputs = [ ]; propagatedBuildInputs = [ self."certifi" self."h11" @@ -238,9 +248,9 @@ self: super: { }; format = "wheel"; doCheck = false; - buildInputs = []; - checkInputs = []; - nativeBuildInputs = []; + buildInputs = [ ]; + checkInputs = [ ]; + nativeBuildInputs = [ ]; propagatedBuildInputs = [ self."anyio" self."certifi" @@ -257,25 +267,25 @@ self: super: { }; format = "wheel"; doCheck = false; - buildInputs = []; - checkInputs = []; - nativeBuildInputs = []; - propagatedBuildInputs = []; - }; - "jellyfish" = super.buildPythonPackage rec { - pname = "jellyfish"; - version = "1.1.3"; - src = fetchurl { - url = "https://files.pythonhosted.org/packages/5b/3a/f607d7d44ee5cbad51ce8e2966bde112789eeb53633558f500bc4e44c053/jellyfish-1.1.3.tar.gz"; - sha256 = "17wgy021wsp8jj95v638kfk34r9yzbry3q7shnglj5npmgfs22v5"; - }; - format = "setuptools"; - doCheck = false; - buildInputs = []; - checkInputs = []; - nativeBuildInputs = []; - propagatedBuildInputs = []; + buildInputs = [ ]; + checkInputs = [ ]; + nativeBuildInputs = [ ]; + propagatedBuildInputs = [ ]; }; + # "jellyfish" = super.buildPythonPackage rec { # That is Rust package + # pname = "jellyfish"; + # version = "1.1.3"; + # src = fetchurl { + # url = "https://files.pythonhosted.org/packages/5b/3a/f607d7d44ee5cbad51ce8e2966bde112789eeb53633558f500bc4e44c053/jellyfish-1.1.3.tar.gz"; + # sha256 = "17wgy021wsp8jj95v638kfk34r9yzbry3q7shnglj5npmgfs22v5"; + # }; + # format = "setuptools"; + # doCheck = false; + # buildInputs = [ ]; + # checkInputs = [ ]; + # nativeBuildInputs = [ ]; + # propagatedBuildInputs = [ ]; + # }; "langdetect" = super.buildPythonPackage rec { pname = "langdetect"; version = "1.0.9"; @@ -285,9 +295,9 @@ self: super: { }; format = "setuptools"; doCheck = false; - buildInputs = []; - checkInputs = []; - nativeBuildInputs = []; + buildInputs = [ ]; + checkInputs = [ ]; + nativeBuildInputs = [ ]; propagatedBuildInputs = [ self."six" ]; @@ -301,9 +311,9 @@ self: super: { }; format = "wheel"; doCheck = false; - buildInputs = []; - checkInputs = []; - nativeBuildInputs = []; + buildInputs = [ ]; + checkInputs = [ ]; + nativeBuildInputs = [ ]; propagatedBuildInputs = [ self."filetype" self."mutagen" @@ -318,10 +328,10 @@ self: super: { }; format = "wheel"; doCheck = false; - buildInputs = []; - checkInputs = []; - nativeBuildInputs = []; - propagatedBuildInputs = []; + buildInputs = [ ]; + checkInputs = [ ]; + nativeBuildInputs = [ ]; + propagatedBuildInputs = [ ]; }; "musicbrainzngs" = super.buildPythonPackage rec { pname = "musicbrainzngs"; @@ -332,10 +342,10 @@ self: super: { }; format = "wheel"; doCheck = false; - buildInputs = []; - checkInputs = []; - nativeBuildInputs = []; - propagatedBuildInputs = []; + buildInputs = [ ]; + checkInputs = [ ]; + nativeBuildInputs = [ ]; + propagatedBuildInputs = [ ]; }; "mutagen" = super.buildPythonPackage rec { pname = "mutagen"; @@ -346,10 +356,10 @@ self: super: { }; format = "wheel"; doCheck = false; - buildInputs = []; - checkInputs = []; - nativeBuildInputs = []; - propagatedBuildInputs = []; + buildInputs = [ ]; + checkInputs = [ ]; + nativeBuildInputs = [ ]; + propagatedBuildInputs = [ ]; }; "oauthlib" = super.buildPythonPackage rec { pname = "oauthlib"; @@ -360,10 +370,10 @@ self: super: { }; format = "wheel"; doCheck = false; - buildInputs = []; - checkInputs = []; - nativeBuildInputs = []; - propagatedBuildInputs = []; + buildInputs = [ ]; + checkInputs = [ ]; + nativeBuildInputs = [ ]; + propagatedBuildInputs = [ ]; }; "packaging" = super.buildPythonPackage rec { pname = "packaging"; @@ -374,10 +384,10 @@ self: super: { }; format = "wheel"; doCheck = false; - buildInputs = []; - checkInputs = []; - nativeBuildInputs = []; - propagatedBuildInputs = []; + buildInputs = [ ]; + checkInputs = [ ]; + nativeBuildInputs = [ ]; + propagatedBuildInputs = [ ]; }; "pillow" = super.buildPythonPackage rec { pname = "pillow"; @@ -388,10 +398,10 @@ self: super: { }; format = "setuptools"; doCheck = false; - buildInputs = []; - checkInputs = []; - nativeBuildInputs = []; - propagatedBuildInputs = []; + buildInputs = [ ]; + checkInputs = [ ]; + nativeBuildInputs = [ ]; + propagatedBuildInputs = [ ]; }; "platformdirs" = super.buildPythonPackage rec { pname = "platformdirs"; @@ -402,10 +412,10 @@ self: super: { }; format = "wheel"; doCheck = false; - buildInputs = []; - checkInputs = []; - nativeBuildInputs = []; - propagatedBuildInputs = []; + buildInputs = [ ]; + checkInputs = [ ]; + nativeBuildInputs = [ ]; + propagatedBuildInputs = [ ]; }; "pycountry" = super.buildPythonPackage rec { pname = "pycountry"; @@ -416,10 +426,10 @@ self: super: { }; format = "wheel"; doCheck = false; - buildInputs = []; - checkInputs = []; - nativeBuildInputs = []; - propagatedBuildInputs = []; + buildInputs = [ ]; + checkInputs = [ ]; + nativeBuildInputs = [ ]; + propagatedBuildInputs = [ ]; }; "pylast" = super.buildPythonPackage rec { pname = "pylast"; @@ -430,9 +440,9 @@ self: super: { }; format = "wheel"; doCheck = false; - buildInputs = []; - checkInputs = []; - nativeBuildInputs = []; + buildInputs = [ ]; + checkInputs = [ ]; + nativeBuildInputs = [ ]; propagatedBuildInputs = [ self."httpx" ]; @@ -446,9 +456,9 @@ self: super: { }; format = "wheel"; doCheck = false; - buildInputs = []; - checkInputs = []; - nativeBuildInputs = []; + buildInputs = [ ]; + checkInputs = [ ]; + nativeBuildInputs = [ ]; propagatedBuildInputs = [ self."six" ]; @@ -462,9 +472,9 @@ self: super: { }; format = "wheel"; doCheck = false; - buildInputs = []; - checkInputs = []; - nativeBuildInputs = []; + buildInputs = [ ]; + checkInputs = [ ]; + nativeBuildInputs = [ ]; propagatedBuildInputs = [ self."oauthlib" self."python-dateutil" @@ -480,9 +490,9 @@ self: super: { }; format = "wheel"; doCheck = false; - buildInputs = []; - checkInputs = []; - nativeBuildInputs = []; + buildInputs = [ ]; + checkInputs = [ ]; + nativeBuildInputs = [ ]; propagatedBuildInputs = [ self."certifi" self."charset-normalizer" @@ -499,10 +509,10 @@ self: super: { }; format = "wheel"; doCheck = false; - buildInputs = []; - checkInputs = []; - nativeBuildInputs = []; - propagatedBuildInputs = []; + buildInputs = [ ]; + checkInputs = [ ]; + nativeBuildInputs = [ ]; + propagatedBuildInputs = [ ]; }; "sniffio" = super.buildPythonPackage rec { pname = "sniffio"; @@ -513,10 +523,10 @@ self: super: { }; format = "wheel"; doCheck = false; - buildInputs = []; - checkInputs = []; - nativeBuildInputs = []; - propagatedBuildInputs = []; + buildInputs = [ ]; + checkInputs = [ ]; + nativeBuildInputs = [ ]; + propagatedBuildInputs = [ ]; }; "soupsieve" = super.buildPythonPackage rec { pname = "soupsieve"; @@ -527,10 +537,10 @@ self: super: { }; format = "wheel"; doCheck = false; - buildInputs = []; - checkInputs = []; - nativeBuildInputs = []; - propagatedBuildInputs = []; + buildInputs = [ ]; + checkInputs = [ ]; + nativeBuildInputs = [ ]; + propagatedBuildInputs = [ ]; }; "typing-extensions" = super.buildPythonPackage rec { pname = "typing-extensions"; @@ -541,10 +551,10 @@ self: super: { }; format = "wheel"; doCheck = false; - buildInputs = []; - checkInputs = []; - nativeBuildInputs = []; - propagatedBuildInputs = []; + buildInputs = [ ]; + checkInputs = [ ]; + nativeBuildInputs = [ ]; + propagatedBuildInputs = [ ]; }; "urllib3" = super.buildPythonPackage rec { pname = "urllib3"; @@ -555,9 +565,9 @@ self: super: { }; format = "wheel"; doCheck = false; - buildInputs = []; - checkInputs = []; - nativeBuildInputs = []; - propagatedBuildInputs = []; + buildInputs = [ ]; + checkInputs = [ ]; + nativeBuildInputs = [ ]; + propagatedBuildInputs = [ ]; }; }