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
self.nixosModules.software.wine
self.nixosModules.software.beets
self.nixosModules.desktop
self.homeConfigurations.main.nixosModule
self.homeConfigurations.root.nixosModule
+4 -4
View File
@@ -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";
+1 -1
View File
@@ -10,6 +10,7 @@
description = "Jor Oqyude";
initialPassword = "1234";
extraGroups = [
"beets"
"audio"
"disk"
"gamemode"
@@ -18,7 +19,6 @@
"pipewire"
"qemu-libvirtd"
"wheel"
"beets"
];
};
};
+54 -4
View File
@@ -1,3 +1,4 @@
# WIP, Garbage
{ inputs, ... }@flakeContext:
{
config,
@@ -5,17 +6,66 @@
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 = {
groups = {
beets = {};
};
users = {
beets = {
isSystemUser = true;
#isNormalUser = true;
description = "beets service";
#initialPassword = "1234";
extraGroups = [
"beets"
];
group = "beets";
homeMode = "0770";
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";
storage = "${server-home}/Storage";
calibre-library = "${server-home}/Books-Library";
music-library = "${dirs.user-home}/Music";
};
};