This commit is contained in:
2025-05-17 17:31:53 +03:00
parent 5b43ec3e71
commit 4b1323a69d
5 changed files with 60 additions and 10 deletions
-1
View File
@@ -20,7 +20,6 @@ let
nixos-hardware.nixosModules.asus-fa506ic nixos-hardware.nixosModules.asus-fa506ic
self.nixosModules.software.wine self.nixosModules.software.wine
self.nixosModules.software.beets
self.nixosModules.desktop self.nixosModules.desktop
self.homeConfigurations.main.nixosModule self.homeConfigurations.main.nixosModule
self.homeConfigurations.root.nixosModule self.homeConfigurations.root.nixosModule
+4 -4
View File
@@ -59,10 +59,10 @@ let
source = config.lib.file.mkOutOfStoreSymlink "${inputs.zeroq.dirs.therima-drive}"; source = config.lib.file.mkOutOfStoreSymlink "${inputs.zeroq.dirs.therima-drive}";
target = "External"; target = "External";
}; };
"Music" = { # "Music" = {
source = config.lib.file.mkOutOfStoreSymlink "${inputs.zeroq.dirs.vetymae-drive}/Users/User/Music"; # source = config.lib.file.mkOutOfStoreSymlink "${inputs.zeroq.dirs.vetymae-drive}/Users/User/Music";
target = "Music"; # target = "Music";
}; # };
"Pictures" = { "Pictures" = {
source = config.lib.file.mkOutOfStoreSymlink "${inputs.zeroq.dirs.vetymae-drive}/Users/User/Pictures"; source = config.lib.file.mkOutOfStoreSymlink "${inputs.zeroq.dirs.vetymae-drive}/Users/User/Pictures";
target = "Pictures"; target = "Pictures";
+1 -1
View File
@@ -10,6 +10,7 @@
description = "Jor Oqyude"; description = "Jor Oqyude";
initialPassword = "1234"; initialPassword = "1234";
extraGroups = [ extraGroups = [
"beets"
"audio" "audio"
"disk" "disk"
"gamemode" "gamemode"
@@ -18,7 +19,6 @@
"pipewire" "pipewire"
"qemu-libvirtd" "qemu-libvirtd"
"wheel" "wheel"
"beets"
]; ];
}; };
}; };
+54 -4
View File
@@ -1,3 +1,4 @@
# WIP, Garbage
{ inputs, ... }@flakeContext: { inputs, ... }@flakeContext:
{ {
config, config,
@@ -5,17 +6,66 @@
pkgs, pkgs,
... ...
}: }:
let
base-packages = with pkgs; [
python312
python312Packages.pip
python312Packages.virtualenv
];
# Файл requirements.txt с перечислением плагинов
requirements = pkgs.writeText "beets-requirements.txt" ''
beets[bandcamp,deezer,discogs,duplicates,edit,embedart,fetchart,info,lastgenre,lyrics,missing,rewrite,scrub,smartplaylist,spotify]
beetcamp
typing_extensions
'';
in
{ {
fileSystems."/mnt/beets/music" = {
device = "${inputs.zeroq.dirs.music-library}";
options = [ "bind" ];
};
users = { users = {
groups = {
beets = {};
};
users = { users = {
beets = { beets = {
isSystemUser = true;
#isNormalUser = true; #isNormalUser = true;
description = "beets service"; description = "beets service";
#initialPassword = "1234"; group = "beets";
extraGroups = [ homeMode = "0770";
"beets" home = "/var/lib/beets";
]; packages = base-packages;
shell = pkgs.bashInteractive;
}; };
}; };
}; };
systemd.tmpfiles.rules = [
"d /var/lib/beets 0770 beets beets -"
"d /mnt/beets 0770 beets beets -"
];
# Автоматическая установка плагинов при старте системы
system.activationScripts.beets-venv = ''
# Создаём virtualenv если не существует
if [ ! -d "/var/lib/beets/venv" ]; then
${pkgs.sudo}/bin/sudo -u beets ${pkgs.python312}/bin/python -m venv /var/lib/beets/venv
fi
# Обновляем pip и устанавливаем зависимости
${pkgs.sudo}/bin/sudo -u beets /var/lib/beets/venv/bin/pip install --upgrade pip wheel
${pkgs.sudo}/bin/sudo -u beets /var/lib/beets/venv/bin/pip install -r ${requirements}
'';
# Симлинк для удобного вызова beets из-под основного пользователя
# environment.systemPackages = [
# (pkgs.writeScriptBin "beets" ''
# #!/bin/sh
# exec sudo -u beets /var/lib/beets/venv/bin/beets "$@"
# '')
# ];
} }
+1
View File
@@ -34,6 +34,7 @@
server-home = "/home/${devices.admin}/External"; server-home = "/home/${devices.admin}/External";
storage = "${server-home}/Storage"; storage = "${server-home}/Storage";
calibre-library = "${server-home}/Books-Library"; calibre-library = "${server-home}/Books-Library";
music-library = "${dirs.user-home}/Music";
}; };
}; };