{config, pkgs, lib, inputs, vars, ...}:{ imports = [ #home-manager modules inputs.nix-index-database.hmModules.nix-index inputs.nixvim.homeManagerModules.default inputs.catppuccin.homeModules.catppuccin inputs.niri.homeModules.niri #aux files to make finding specific things easier ./theming.nix ./nixvim #./sway.nix #./hyprland.nix ./niri.nix ./packages.nix #general user packages not managed by home-manager but i want to install via hm anyways ]; home = rec { username = vars.user; #this is set in flake.nix homeDirectory = "/home/${username}"; #change this if you use a non-standard home dir stateVersion = "23.11"; shell.enableBashIntegration = true; sessionVariables = { PASSWORD_STORE_DIR = "$HOME/sync/general/pass"; ELECTRON_OZONE_PLATFORM_HINT = "auto";}; file = { ".config/waybar/config".source = (if vars.user == "alyx" then config.lib.file.mkOutOfStoreSymlink "${homeDirectory}/.config/nixos/home/waybar/terminal" else config.lib.file.mkOutOfStoreSymlink "${homeDirectory}/.config/nixos/home/waybar/modern"); ".config/waybar/style.css".source = (if vars.user == "alyx" then config.lib.file.mkOutOfStoreSymlink "${homeDirectory}/.config/nixos/home/waybar/terminal.css" else config.lib.file.mkOutOfStoreSymlink "${homeDirectory}/.config/nixos/home/waybar/modern.css"); }; }; programs.home-manager.enable = (!vars.isNixOS); #value is set in flake.nix programs.foot = { enable = true; settings.main.font = (if vars.user == "alyx" then "monospace:size=14" else "monospace:size=10"); settings.colors.alpha = "0.9"; }; programs.ncmpcpp = { enable = true; settings = { tags_separator = ";"; }; }; services.mpd = { enable = true; musicDirectory = "/home/${vars.user}/Music"; extraConfig = '' audio_output { type "pipewire" name "default pipewire" } ''; }; services.mpd-mpris = { enable = true; }; services.mpd-discord-rpc.enable = true; services.syncthing.enable = (vars.useSyncthing); programs.waybar = { enable = true; }; programs.git = { enable = true; userName = vars.user; userEmail = (if vars.user == "alyx" then "cydiralis@proton.me" else "beanigit@protonmail.com"); extraConfig = { commit.gpgsign = true; gpg.format = "ssh"; user.signingkey = "~/.ssh/id_ed25519.pub"; init.defaultBranch = "main"; }; }; programs.irssi = { enable = true; networks = { classicconnect = { nick = vars.user; server = { address = "irc.classicconnect.net"; port = 6677; autoConnect = true; }; channels = { nick.autoJoin = true; }; }; }; }; services.kanshi = { enable = true; settings = [ { profile.name = "maya-desktop"; profile.outputs = [ { criteria = "Dell Inc. DELL P2411H MGMHG1681VAU"; position = "0,1050"; } { criteria = "Samsung Electric Company SyncMaster HMDQ202016"; position = "0,0"; } ]; } { profile.name = "alyx-desktop"; profile.outputs = [ { criteria = "ASUSTek COMPUTER INC VG279QM NCLMQS055707"; position = "2560,0"; mode = "1920x1080@239.760"; } { criteria = "Dell Inc. DELL U2913WM 5YD8C5A9AZSL"; position = "0,0"; mode = "2560x1080@74.987"; } { criteria = "Valve Corporation Index HMD 0xEDE55842"; status = "disable"; } ]; } { profile.name = "steamdeck"; profile.outputs = [ { criteria = "Valve Corporation ANX7530 U 0x00000001"; transform = "270"; scale = 1.0; } ]; } ]; }; programs.obs-studio = { enable = true; plugins = with pkgs.obs-studio-plugins; [ wlrobs obs-backgroundremoval obs-pipewire-audio-capture ]; }; }