mirror of
https://github.com/oqyude/nixos.git
synced 2026-06-10 20:20:41 +03:00
123
This commit is contained in:
@@ -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
@@ -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";
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
description = "Jor Oqyude";
|
||||
initialPassword = "1234";
|
||||
extraGroups = [
|
||||
"beets"
|
||||
"audio"
|
||||
"disk"
|
||||
"gamemode"
|
||||
@@ -18,7 +19,6 @@
|
||||
"pipewire"
|
||||
"qemu-libvirtd"
|
||||
"wheel"
|
||||
"beets"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
@@ -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 "$@"
|
||||
# '')
|
||||
# ];
|
||||
}
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user