Files
nixos/home/main.nix
T
2025-06-05 21:16:48 +03:00

111 lines
3.7 KiB
Nix
Executable File

{ inputs, ... }@flakeContext:
let
homeModule =
{
config,
lib,
pkgs,
...
}:
{
imports = [ ] ++ (builtins.attrValues inputs.self.homeModules);
xdg = {
enable = true;
autostart.enable = true;
configFile = {
"beets" = {
source = config.lib.file.mkOutOfStoreSymlink "${inputs.zeroq.dirs.user-storage}/beets/linux";
target = "beets";
};
"ludusavi" = {
source = config.lib.file.mkOutOfStoreSymlink "${inputs.zeroq.dirs.user-storage}/ludusavi/cfg";
target = "ludusavi";
};
"nekoray" = {
source = config.lib.file.mkOutOfStoreSymlink "${inputs.zeroq.dirs.user-storage}/Nekoray/${config.home.username}";
target = "nekoray";
};
"solaar" = {
source = config.lib.file.mkOutOfStoreSymlink "${inputs.zeroq.dirs.user-storage}/solaar";
target = "solaar";
};
"easyeffects" = {
source = config.lib.file.mkOutOfStoreSymlink "${inputs.zeroq.dirs.user-storage}/easyeffects";
target = "easyeffects";
};
"keepassxc" = {
source = config.lib.file.mkOutOfStoreSymlink "${inputs.zeroq.dirs.user-storage}/KeePassXC";
target = "keepassxc";
};
};
userDirs = {
enable = true;
createDirectories = true;
desktop = "${config.xdg.dataHome}/desktop";
documents = null;
download = "${config.home.homeDirectory}/Downloads";
music = "${config.home.homeDirectory}/Music";
pictures = "${config.home.homeDirectory}/Pictures";
publicShare = "${config.home.homeDirectory}/Misc/Public";
templates = null;
videos = "${config.home.homeDirectory}/Pictures/Videos";
};
};
home = {
username = "${inputs.zeroq.devices.admin}";
file = {
"ssh" = {
source = config.lib.file.mkOutOfStoreSymlink "${inputs.zeroq.dirs.user-storage}/ssh/${config.home.username}";
target = ".ssh";
};
"External" = {
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";
# };
# "Pictures" = {
# source = config.lib.file.mkOutOfStoreSymlink "${inputs.zeroq.dirs.vetymae-drive}/Users/User/Pictures";
# target = "Pictures";
# };
# "Deploy" = {
# source = config.lib.file.mkOutOfStoreSymlink "${inputs.zeroq.dirs.vetymae-drive}/Users/User/Deploy";
# target = "Deploy";
# };
# "Misc" = {
# source = config.lib.file.mkOutOfStoreSymlink "${inputs.zeroq.dirs.vetymae-drive}/Users/User/Misc";
# target = "Misc";
# };
};
};
};
nixosModule =
{ config, ... }:
{
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
users.${inputs.zeroq.devices.admin} = homeModule;
sharedModules = [ inputs.plasma-manager.homeManagerModules.plasma-manager ];
extraSpecialArgs = {
inherit (config.networking) hostName;
};
};
};
in
(
(inputs.home-manager.lib.homeManagerConfiguration {
modules = [
homeModule
];
pkgs = inputs.nixpkgs.legacyPackages.x86_64-linux;
})
// {
inherit nixosModule;
}
)