diff --git a/.github/README.md b/.github/README.md index 08fdce4..6a24483 100644 --- a/.github/README.md +++ b/.github/README.md @@ -257,45 +257,45 @@
Click here to expand... - - [guibou](https://github.com/guibou/) - - [rycee](https://github.com/rycee) - - [adisbladis](https://github.com/adisbladis) - - [Mic92](https://github.com/Mic92/sops-nix) - - [lassulus](https://github.com/lassulus) - - [danth](https://github.com/danth/) - - [LnL7](https://github.com/LnL7) - - [t184256](https://github.com/t184256) - - [bennofs](https://github.com/bennofs) - - [Pandapip1](https://github.com/Pandapip1) - - [zowoq](https://github.com/zowoq) - - [numtide](https://github.com/numtide) - - [hsjobeki](https://github.com/hsjobeki) - - [blitz](https://github.com/blitz) - - [RaitoBezarius](https://github.com/RaitoBezarius) - - [nikstur](https://github.com/nikstur) - - [talyz](https://github.com/talyz) - - [infinisil](https://github.com/infinisil) - - [zhaofengli](https://github.com/zhaofengli) - - [Artturin](https://github.com/Artturin) - - [oddlama](https://github.com/oddlama) + - [guibou](https://github.com/guibou/) + - [rycee](https://github.com/rycee) + - [adisbladis](https://github.com/adisbladis) + - [Mic92](https://github.com/Mic92/sops-nix) + - [lassulus](https://github.com/lassulus) + - [danth](https://github.com/danth/) + - [LnL7](https://github.com/LnL7) + - [t184256](https://github.com/t184256) + - [bennofs](https://github.com/bennofs) + - [Pandapip1](https://github.com/Pandapip1) + - [zowoq](https://github.com/zowoq) + - [numtide](https://github.com/numtide) + - [hsjobeki](https://github.com/hsjobeki) + - [blitz](https://github.com/blitz) + - [RaitoBezarius](https://github.com/RaitoBezarius) + - [nikstur](https://github.com/nikstur) + - [talyz](https://github.com/talyz) + - [infinisil](https://github.com/infinisil) + - [zhaofengli](https://github.com/zhaofengli) + - [Artturin](https://github.com/Artturin) + - [oddlama](https://github.com/oddlama)
- All the people who have inspired me with their configurations (sadly also highly incomplete):
Click here to expand... - - [theSuess](https://github.com/theSuess) with their [home-manager](https://code.kulupu.party/thesuess/home-manager) - - [hlissner](https://github.com/hlissner) with their [dotfiles](https://github.com/hlissner/dotfiles) - - [drduh](https://github.com/drduh/YubiKey-Guide) with their [YubiKey-Guide](https://github.com/drduh/YubiKey-Guide) - - [AntonHakansson](https://github.com/AntonHakansson) with their [nixos-config](https://github.com/AntonHakansson/nixos-config?tab=readme-ov-file) - - [Guekka](https://github.com/Guekka/) with their [blog](https://guekka.github.io/) - - [NotAShelf](https://github.com/NotAShelf) with their [nyx](https://github.com/NotAShelf/nyx) - - [Misterio77](https://github.com/Misterio77) with their [nix-config](https://github.com/Misterio77/nix-config) - - [0xdade](https://github.com/0xdade) with their [blog](https://0xda.de/blog/) - - [EmergentMind](https://github.com/EmergentMind) with their [nix-config](https://github.com/EmergentMind/nix-config) - - [librephoenix](https://github.com/librephoenix) with their [nixos-config](https://github.com/librephoenix/nixos-config) - - [Xe](https://github.com/Xe) with their [blog](https://xeiaso.net/blog/) - - [oddlama](https://github.com/oddlama) with their absolutely incredible [nix-config](https:/github.com/oddlama/nix-config) + - [theSuess](https://github.com/theSuess) with their [home-manager](https://code.kulupu.party/thesuess/home-manager) + - [hlissner](https://github.com/hlissner) with their [dotfiles](https://github.com/hlissner/dotfiles) + - [drduh](https://github.com/drduh/YubiKey-Guide) with their [YubiKey-Guide](https://github.com/drduh/YubiKey-Guide) + - [AntonHakansson](https://github.com/AntonHakansson) with their [nixos-config](https://github.com/AntonHakansson/nixos-config?tab=readme-ov-file) + - [Guekka](https://github.com/Guekka/) with their [blog](https://guekka.github.io/) + - [NotAShelf](https://github.com/NotAShelf) with their [nyx](https://github.com/NotAShelf/nyx) + - [Misterio77](https://github.com/Misterio77) with their [nix-config](https://github.com/Misterio77/nix-config) + - [0xdade](https://github.com/0xdade) with their [blog](https://0xda.de/blog/) + - [EmergentMind](https://github.com/EmergentMind) with their [nix-config](https://github.com/EmergentMind/nix-config) + - [librephoenix](https://github.com/librephoenix) with their [nixos-config](https://github.com/librephoenix/nixos-config) + - [Xe](https://github.com/Xe) with their [blog](https://xeiaso.net/blog/) + - [oddlama](https://github.com/oddlama) with their absolutely incredible [nix-config](https:/github.com/oddlama/nix-config)
If you feel that I forgot to pay you tribute for code that I used in this repository, please shoot me a message and I will fix it :) diff --git a/SwarselSystems.org b/SwarselSystems.org index 67399e8..e04006f 100644 --- a/SwarselSystems.org +++ b/SwarselSystems.org @@ -854,7 +854,8 @@ The rest of the outputs either define or help define the actual configurations: inputs.home-manager.nixosModules.home-manager inputs.stylix.nixosModules.stylix inputs.nswitch-rcm-nix.nixosModules.nswitch-rcm - inputs.swarsel-modules.nixosModules.default + # inputs.swarsel-modules.nixosModules.default + inputs.swarsel-nix.nixosModules.default inputs.niri-flake.nixosModules.niri inputs.microvm.nixosModules.host inputs.microvm.nixosModules.microvm @@ -1482,9 +1483,9 @@ On the structure of overlays: as you notice, all of the attributes within overla additions = final: _: import "${self}/pkgs" { pkgs = final; inherit self lib; }; modifications = final: prev: { - vesktop = prev.vesktop.override { - withSystemVencord = true; - }; + # vesktop = prev.vesktop.override { + # withSystemVencord = true; + # }; firefox = prev.firefox.override { nativeMessagingHosts = [ @@ -4228,7 +4229,8 @@ We enable the use of =home-manager= as a NixoS module. A nice trick here is the inputs.nix-index-database.homeModules.nix-index inputs.sops-nix.homeManagerModules.sops inputs.spicetify-nix.homeManagerModules.default - inputs.swarsel-modules.homeModules.default + # inputs.swarsel-modules.homeModules.default + inputs.swarsel-nix.homeModules.default { imports = [ "${self}/profiles/home" @@ -4659,7 +4661,7 @@ Mostly used to install some compilers and lsp's that I want to have available wh # pinentry dbus - swaylock-effects + # swaylock-effects syncthingtray-minimal swayosd @@ -11007,7 +11009,14 @@ Again, we adapt =nix= to our needs, enable the home-manager command for non-NixO nixpkgs.overlays = lib.mkIf config.swarselsystems.isNixos (lib.mkForce null); - programs.home-manager.enable = lib.mkIf (!config.swarselsystems.isNixos) true; + programs = { + home-manager.enable = lib.mkIf (!config.swarselsystems.isNixos) true; + man = { + enable = true; + generateCaches = true; + }; + }; + targets.genericLinux.enable = lib.mkIf (!config.swarselsystems.isNixos) true; home = { @@ -11018,6 +11027,11 @@ Again, we adapt =nix= to our needs, enable the home-manager command for non-NixO sessionVariables = { FLAKE = "/home/${mainUser}/.dotfiles"; }; + extraOutputsToInstall = [ + "doc" + "info" + "devdoc" + ]; }; }; @@ -11158,7 +11172,7 @@ This holds packages that I can use as provided, or with small modifications (as restic # "big" programs - obs-studio + # obs-studio gimp inkscape zoom-us @@ -11167,14 +11181,14 @@ This holds packages that I can use as provided, or with small modifications (as xournalpp # obsidian # spotify - vesktop # discord client + # vesktop # discord client # nextcloud-client # enables a systemd service that I do not want - spotify-player - element-desktop + # spotify-player + # element-desktop + nicotine-plus stable.transmission_3 mktorrent - hexchat hugo # kyria @@ -11635,7 +11649,7 @@ Also in firefox `about:config > toolkit.legacyUserProfileCustomizations.styleshe "tridactyl/tridactylrc".source = self + /files/firefox/tridactyl/tridactylrc; "tridactyl/themes/base16-codeschool.css".source = self + /files/firefox/tridactyl/themes/base16-codeschool.css; "tridactyl/themes/swarsel.css".source = self + /files/firefox/tridactyl/themes/swarsel.css; - "swayidle/config".source = self + /files/swayidle/config; + # "swayidle/config".source = self + /files/swayidle/config; }; }; } @@ -11687,7 +11701,7 @@ Sets environment variables. Here I am only setting the EDITOR variable, most var } #+end_src -**** General Programs: bottom, imv, sioyek, bat, carapace, wlogout, swayr, yt-dlp, mpv, jq, nix-index, ripgrep, pandoc, fzf, zoxide +**** General Programs: bottom, imv, less, lesspipe, sioyek, bat, carapace, wlogout, swayr, yt-dlp, mpv, jq, nix-index, ripgrep, pandoc, fzf, zoxide, timidity :PROPERTIES: :CUSTOM_ID: h:f0e0b580-2e1c-4ca6-a983-f05d3ebbbcde :END: @@ -11700,26 +11714,30 @@ This section is for programs that require no further configuration. zsh Integrat options.swarselmodules.programs = lib.mkEnableOption "programs settings"; config = lib.mkIf config.swarselmodules.programs { programs = { - bottom.enable = true; - imv.enable = true; - sioyek.enable = true; bat = { enable = true; extraPackages = with pkgs.bat-extras; [ batdiff batman batgrep batwatch ]; }; + bottom.enable = true; carapace.enable = true; - wlogout.enable = true; - swayr.enable = true; - yt-dlp.enable = true; - mpv.enable = true; - jq.enable = true; - ripgrep.enable = true; - pandoc.enable = true; fzf = { enable = true; enableBashIntegration = false; enableZshIntegration = false; }; + imv.enable = true; + jq.enable = true; + less.enable = true; + lesspipe.enable = true; + mpv.enable = true; + pandoc.enable = true; + rclone.enable = true; + ripgrep.enable = true; + sioyek.enable = true; + swayr.enable = true; + timidity.enable = true; + wlogout.enable = true; + yt-dlp.enable = true; zoxide = { enable = true; enableZshIntegration = true; @@ -11766,6 +11784,24 @@ nix-index provides a way to find out which packages are provided by which deriva } #+end_src +**** nix-your-shell + +#+begin_src nix-ts :tangle modules/home/common/nix-your-shell.nix + { lib, config, ... }: + let + moduleName = "nix-your-shell"; + in + { + options.swarselmodules.${moduleName} = lib.mkEnableOption "enable ${moduleName} and settings"; + config = lib.mkIf config.swarselmodules.${moduleName} { + programs.${moduleName} = { + enable = true; + enableZshIntegration = true; + }; + }; + } +#+end_src + **** password-store :PROPERTIES: :CUSTOM_ID: h:ac0e5e62-0dbf-4782-9a96-9e558eae86ae @@ -13710,8 +13746,9 @@ Currently, I am too lazy to explain every option here, but most of it is very se "${modifier}+Shift+p" = "exec pass-fuzzel --type"; "${modifier}+Shift+o" = "exec pass-fuzzel --otp --type"; "${modifier}+Ctrl+p" = "exec 1password --quick-acces"; - "${modifier}+Escape" = "mode $exit"; + # "${modifier}+Escape" = "mode $exit"; "${modifier}+Shift+Escape" = "exec kitty -o confirm_os_window_close=0 btm"; + "${modifier}+Escape" = "exec wlogout"; "${modifier}+h" = "exec hyprpicker | wl-copy"; "${modifier}+s" = "exec grim -g \"$(slurp)\" -t png - | wl-copy -t image/png"; "${modifier}+Shift+s" = "exec slurp | grim -g - Pictures/Screenshots/$(date +'screenshot_%Y-%m-%d-%H%M%S.png')"; @@ -13952,26 +13989,26 @@ Currently, I am too lazy to explain every option here, but most of it is very se swayfxSettings = config.swarselsystems.swayfxConfig; in " - exec_always autotiling - set $exit \"exit: [s]leep, [l]ock, [p]oweroff, [r]eboot, [u]ser logout\" + # exec_always autotiling + # set $exit \"exit: [s]leep, [l]ock, [p]oweroff, [r]eboot, [u]ser logout\" - mode $exit { - bindsym --to-code { - s exec \"systemctl suspend\", mode \"default\" - h exec \"systemctl hibernate\", mode \"default\" - l exec \"swaylock --screenshots --clock --effect-blur 7x5 --effect-vignette 0.5:0.5 --fade-in 0.2 --daemonize\", mode \"default\ - p exec \"systemctl poweroff\" - r exec \"systemctl reboot\" - u exec \"swaymsg exit\" + # mode $exit { + # bindsym --to-code { + # s exec \"systemctl suspend\", mode \"default\" + # h exec \"systemctl hibernate\", mode \"default\" + # l exec \"swaylock --screenshots --clock --effect-blur 7x5 --effect-vignette 0.5:0.5 --fade-in 0.2 --daemonize\", mode \"default\ + # p exec \"systemctl poweroff\" + # r exec \"systemctl reboot\" + # u exec \"swaymsg exit\" - Return mode \"default\" - Escape mode \"default\" - ${modifier}+Escape mode \"default\" - } - } + # Return mode \"default\" + # Escape mode \"default\" + # ${modifier}+Escape mode \"default\" + # } + # } exec systemctl --user import-environment - exec swayidle -w + # exec swayidle -w seat * hide_cursor 2000 @@ -14586,7 +14623,7 @@ This service changes the screen hue at night. I am not sure if that really does spacebarRatesCard = true; # videoDriver = "opengl"; sync = { - autoSync = true; + autoSync = false; # sync on profile close will delay system shutdown syncMedia = true; url = "https://${globals.services.ankisync.domain}"; usernameFile = nixosConfig.sops.secrets.anki-user.path; @@ -14625,6 +14662,287 @@ This service changes the screen hue at night. I am not sure if that really does } #+end_src +**** Element-desktop + + +#+begin_src nix-ts :tangle modules/home/common/element.nix + { lib, config, ... }: + let + moduleName = "element-desktop"; + in + { + options.swarselmodules.${moduleName} = lib.mkEnableOption "enable ${moduleName} and settings"; + config = lib.mkIf config.swarselmodules.${moduleName} { + programs.element-desktop = { + enable = true; + settings = { + default_server_config = { + "m.homeserver" = { + base_url = "https://swatrix.swarsel.win/"; + }; + }; + UIFeature = { + feedback = false; + voip = false; + widgets = false; + shareSocial = false; + registration = false; + passwordReset = false; + deactivate = false; + }; + }; + }; + }; + + } +#+end_src + +**** Hexchat + + +#+begin_src nix-ts :tangle modules/home/common/hexchat.nix + { lib, config, nixosConfig ? config, ... }: + let + moduleName = "hexchat"; + inherit (nixosConfig.repo.secrets.common.irc) irc_nick1; + in + { + options.swarselmodules.${moduleName} = lib.mkEnableOption "enable ${moduleName} and settings"; + config = lib.mkIf config.swarselmodules.${moduleName} { + programs.${moduleName} = { + enable = true; + settings = { + inherit irc_nick1; + }; + }; + }; + + } +#+end_src + +**** obs-studio + + +#+begin_src nix-ts :tangle modules/home/common/obs-studio.nix + { lib, config, ... }: + let + moduleName = "obs-studio"; + in + { + options.swarselmodules.${moduleName} = lib.mkEnableOption "enable ${moduleName} and settings"; + config = lib.mkIf config.swarselmodules.${moduleName} { + programs.${moduleName} = { + enable = true; + }; + }; + + } +#+end_src + +**** spotify-player + +#+begin_src nix-ts :tangle modules/home/common/spotify-player.nix + { lib, config, ... }: + let + moduleName = "spotify-player"; + in + { + options.swarselmodules.${moduleName} = lib.mkEnableOption "enable ${moduleName} and settings"; + config = lib.mkIf config.swarselmodules.${moduleName} { + programs.${moduleName} = { + enable = true; + }; + }; + + } +#+end_src + +**** vesktop + +#+begin_src nix-ts :tangle modules/home/common/vesktop.nix + { lib, config, ... }: + let + moduleName = "vesktop"; + in + { + options.swarselmodules.${moduleName} = lib.mkEnableOption "enable ${moduleName} and settings"; + config = lib.mkIf config.swarselmodules.${moduleName} { + programs.${moduleName} = { + enable = true; + settings = { + appBadge = false; + arRPC = false; + checkUpdates = false; + customTitleBar = false; + disableMinSize = true; + minimizeToTray = true; + tray = true; + staticTitle = true; + hardwareAcceleration = true; + discordBranch = "stable"; + }; + vencord = { + useSystem = true; + settings = { + autoUpdate = false; + autoUpdateNotification = false; + enableReactDevtools = false; + frameless = false; + transparent = false; + winCtrlQ = false; + notifyAboutUpdates = false; + useQuickCss = true; + disableMinSize = true; + winNativeTitleBar = false; + plugins = { + MessageLogger = { + enabled = true; + ignoreSelf = true; + }; + ChatInputButtonAPI = { + enabled = false; + }; + CommandsAPI = { + enabled = true; + }; + MemberListDecoratorsAPI = { + enabled = false; + }; + MessageAccessoriesAPI = { + enabled = true; + }; + MessageDecorationsAPI = { + enabled = false; + }; + MessageEventsAPI = { + enabled = false; + }; + MessagePopoverAPI = { + enabled = false; + }; + MessageUpdaterAPI = { + enabled = false; + }; + ServerListAPI = { + enabled = false; + }; + UserSettingsAPI = { + enabled = true; + }; + FakeNitro = { + enabled = true; + }; + }; + }; + }; + }; + }; + + } +#+end_src + +**** batsignal + +#+begin_src nix-ts :tangle modules/home/common/batsignal.nix + { lib, config, ... }: + let + moduleName = "batsignal"; + in + { + options.swarselmodules.${moduleName} = lib.mkEnableOption "enable ${moduleName} and settings"; + config = lib.mkIf config.swarselmodules.${moduleName} { + services.${moduleName} = { + enable = true; + }; + }; + + } +#+end_src + +**** autotiling + +#+begin_src nix-ts :tangle modules/home/common/autotiling.nix + { lib, config, ... }: + let + moduleName = "autotiling"; + in + { + options.swarselmodules.${moduleName} = lib.mkEnableOption "enable ${moduleName} and settings"; + config = lib.mkIf config.swarselmodules.${moduleName} { + swarselservices.${moduleName} = { + enable = true; + systemdTarget = config.wayland.systemd.target; + }; + }; + + } +#+end_src + +**** swayidle + +#+begin_src nix-ts :tangle modules/home/common/swayidle.nix + { lib, config, pkgs, ... }: + let + moduleName = "swayidle"; + in + { + options.swarselmodules.${moduleName} = lib.mkEnableOption "enable ${moduleName} and settings"; + config = lib.mkIf config.swarselmodules.${moduleName} { + services.${moduleName} = + let + brightnessctl = "${lib.getExe pkgs.brightnessctl}"; + swaylock = "${lib.getExe pkgs.swaylock-effects}"; + suspend = "${pkgs.systemd}/bin/systemctl"; + in + { + enable = true; + systemdTarget = config.wayland.systemd.target; + extraArgs = [ "-w" ]; + timeouts = [ + { timeout = 60; command = "${brightnessctl} -s; ${brightnessctl} set 80%-"; resumeCommand = "${brightnessctl} -r"; } + # { timeout = 300; command = "${lib.getExe pkgs.swaylock-effects} -f --screenshots --clock --effect-blur 7x5 --effect-vignette 0.5:0.5 --fade-in 0.2"; } + { timeout = 300; command = "${swaylock} -f"; } + # { timeout = 600; command = ''${pkgs.sway}/bin/swaymsg "output * dpms off"; resumeCommand = "${pkgs.sway}/bin/swaymsg output * dpms on''; } + { timeout = 600; command = "${suspend}"; } + ]; + events = [ + # { event = "before-sleep"; command = "${lib.getExe pkgs.swaylock-effects} -f --screenshots --clock --effect-blur 7x5 --effect-vignette 0.5:0.5 --fade-in 0.2"; } + { event = "before-sleep"; command = "${swaylock} -f "; } + { event = "lock"; command = "${swaylock} -f "; } + ]; + }; + }; + + } +#+end_src + +**** swaylock + +#+begin_src nix-ts :tangle modules/home/common/swaylock.nix + { lib, config, pkgs, ... }: + let + moduleName = "swaylock"; + in + { + options.swarselmodules.${moduleName} = lib.mkEnableOption "enable ${moduleName} and settings"; + config = lib.mkIf config.swarselmodules.${moduleName} { + programs.${moduleName} = { + enable = true; + package = pkgs.swaylock-effects; + settings = { + screenshots = true; + clock = true; + effect-blur = "7x5"; + effect-vignette = "0.5:0.5"; + fade-in = "0.2"; + }; + }; + }; + + } +#+end_src + + *** Server :PROPERTIES: :CUSTOM_ID: h:b1a00339-6e9b-4ae4-b5dc-6fd5669a2ddb @@ -14727,14 +15045,17 @@ Akin to the [[#h:f9aa9af0-9b8d-43ff-901d-9ffccdd70589][Optional]] NixOS modules. The rest of the settings is at [[#h:fb3f3e01-7df4-4b06-9e91-aa9cac61a431][gaming]]. #+begin_src nix-ts :tangle modules/home/optional/gaming.nix - { lib, config, pkgs, ... }: + { lib, config, pkgs, nixosConfig ? config, ... }: + let + inherit (config.swarselsystems) isNixos; + in { options.swarselmodules.optional.gaming = lib.mkEnableOption "optional gaming settings"; config = lib.mkIf config.swarselmodules.optional.gaming { # specialisation = { # gaming.configuration = { home.packages = with pkgs; [ - lutris + # lutris wine protonplus winetricks @@ -14762,6 +15083,22 @@ The rest of the settings is at [[#h:fb3f3e01-7df4-4b06-9e91-aa9cac61a431][gaming retroarch flips ]; + + programs.lutris = { + enable = true; + extraPackages = with pkgs; [ + winetricks + gamescope + umu-launcher + ]; + steamPackage = if isNixos then nixosConfig.programs.steam.package else pkgs.steam; + winePackages = with pkgs; [ + wineWow64Packages.waylandFull + ]; + protonPackages = with pkgs; [ + proton-ge-bin + ]; + }; # }; # }; }; @@ -14778,613 +15115,631 @@ The rest of the settings is at [[#h:bbf2ecb6-c8ff-4462-b5d5-d45b28604ddf][work]] #+begin_src nix-ts :tangle modules/home/optional/work.nix :noweb yes { self, config, pkgs, lib, vars, nixosConfig ? config, ... }: - let - inherit (config.swarselsystems) homeDir; - in - { - options.swarselmodules.optional.work = lib.mkEnableOption "optional work settings"; - config = lib.mkIf config.swarselmodules.optional.work + let + inherit (config.swarselsystems) homeDir; + in { - home.packages = with pkgs; [ - stable.teams-for-linux - shellcheck - dig - docker - postman - rclone - stable24_05.awscli2 - libguestfs-with-appliance - stable.prometheus.cli - tigervnc - openstackclient - - vscode - ]; - - systemd.user.sessionVariables = { - DOCUMENT_DIR_WORK = lib.mkForce "${homeDir}/Documents/Work"; - }; - - accounts.email.accounts.work = - let - inherit (nixosConfig.repo.secrets.local.work) mailAddress mailName; - in + options.swarselmodules.optional.work = lib.mkEnableOption "optional work settings"; + config = lib.mkIf config.swarselmodules.optional.work { - primary = false; - address = mailAddress; - userName = mailAddress; - realName = mailName; - passwordCommand = "pizauth show work"; - imap = { - host = "outlook.office365.com"; - port = 993; - tls.enable = true; # SSL/TLS - }; - smtp = { - host = "outlook.office365.com"; - port = 587; - tls = { - enable = true; # SSL/TLS - useStartTls = true; - }; - }; - thunderbird = { - enable = true; - profiles = [ "default" ]; - settings = id: { - "mail.smtpserver.smtp_${id}.authMethod" = 10; # oauth - "mail.server.server_${id}.authMethod" = 10; # oauth - # "toolkit.telemetry.enabled" = false; - # "toolkit.telemetry.rejected" = true; - # "toolkit.telemetry.prompted" = 2; - }; - }; - msmtp = { - enable = true; - extraConfig = { - auth = "xoauth2"; - host = "outlook.office365.com"; - protocol = "smtp"; - port = "587"; - tls = "on"; - tls_starttls = "on"; - from = "${mailAddress}"; - user = "${mailAddress}"; - passwordeval = "pizauth show work"; - }; - }; - mu.enable = true; - mbsync = { - enable = true; - expunge = "both"; - patterns = [ "INBOX" ]; - extraConfig = { - account = { - AuthMechs = "XOAUTH2"; - }; - }; - }; - }; + home.packages = with pkgs; [ + stable.teams-for-linux + shellcheck + dig + docker + postman + # rclone + libguestfs-with-appliance + stable.prometheus.cli + tigervnc + # openstackclient - # wayland.windowManager.sway.config = { - # output = { - # "Applied Creative Technology Transmitter QUATTRO201811" = { - # bg = "${self}/files/wallpaper/navidrome.png ${config.stylix.imageScalingMode}"; - # }; - # "Hewlett Packard HP Z24i CN44250RDT" = { - # bg = "${self}/files/wallpaper/op6wp.png ${config.stylix.imageScalingMode}"; - # }; - # "HP Inc. HP 732pk CNC4080YL5" = { - # bg = "${self}/files/wallpaper/botanicswp.png ${config.stylix.imageScalingMode}"; - # }; - # }; - # }; - - stylix = { - targets.firefox.profileNames = - let - inherit (nixosConfig.repo.secrets.local.work) user1 user2 user3; - in - [ - "${user1}" - "${user2}" - "${user3}" - "work" + vscode ]; - }; - programs = - let - inherit (nixosConfig.repo.secrets.local.work) user1 user1Long user2 user2Long user3 user3Long user4 path1 loc1 loc2 site1 site2 site3 site4 site5 site6 site7 lifecycle1 lifecycle2 domain1 domain2 gitMail; - in - { - git.userEmail = lib.mkForce gitMail; - zsh = { - shellAliases = { - dssh = "ssh -l ${user1Long}"; - cssh = "ssh -l ${user2Long}"; - wssh = "ssh -l ${user3Long}"; - }; - cdpath = [ - "~/Documents/Work" - ]; - dirHashes = { - d = "$HOME/.dotfiles"; - w = "$HOME/Documents/Work"; - s = "$HOME/.dotfiles/secrets"; - pr = "$HOME/Documents/Private"; - ac = path1; - }; - - sessionVariables = { - VSPHERE_USER = "$(cat ${nixosConfig.sops.secrets.vcuser.path})"; - VSPHERE_PW = "$(cat ${nixosConfig.sops.secrets.vcpw.path})"; - GOVC_USERNAME = "$(cat ${nixosConfig.sops.secrets.govcuser.path})"; - GOVC_PASSWORD = "$(cat ${nixosConfig.sops.secrets.govcpw.path})"; - GOVC_URL = "$(cat ${nixosConfig.sops.secrets.govcurl.path})"; - GOVC_DATACENTER = "$(cat ${nixosConfig.sops.secrets.govcdc.path})"; - GOVC_DATASTORE = "$(cat ${nixosConfig.sops.secrets.govcds.path})"; - GOVC_HOST = "$(cat ${nixosConfig.sops.secrets.govchost.path})"; - GOVC_RESOURCE_POOL = "$(cat ${nixosConfig.sops.secrets.govcpool.path})"; - GOVC_NETWORK = "$(cat ${nixosConfig.sops.secrets.govcnetwork.path})"; - }; + systemd.user.sessionVariables = { + DOCUMENT_DIR_WORK = lib.mkForce "${homeDir}/Documents/Work"; }; - ssh = { - matchBlocks = { - "${loc1}" = { - hostname = "${loc1}.${domain2}"; - user = user4; - }; - "${loc1}.stg" = { - hostname = "${loc1}.${lifecycle1}.${domain2}"; - user = user4; - }; - "${loc1}.staging" = { - hostname = "${loc1}.${lifecycle1}.${domain2}"; - user = user4; - }; - "${loc1}.dev" = { - hostname = "${loc1}.${lifecycle2}.${domain2}"; - user = user4; - }; - "${loc2}" = { - hostname = "${loc2}.${domain1}"; - user = user1Long; - }; - "${loc2}.stg" = { - hostname = "${loc2}.${lifecycle1}.${domain2}"; - user = user1Long; - }; - "${loc2}.staging" = { - hostname = "${loc2}.${lifecycle1}.${domain2}"; - user = user1Long; - }; - "*.${domain1}" = { - user = user1Long; - }; - }; - }; - - firefox = { - profiles = - let - isDefault = false; - in - { - "${user1}" = lib.recursiveUpdate - { - inherit isDefault; - id = 1; - settings = { - "browser.startup.homepage" = "${site1}|${site2}"; - }; - } - vars.firefox; - "${user2}" = lib.recursiveUpdate - { - inherit isDefault; - id = 2; - settings = { - "browser.startup.homepage" = "${site3}"; - }; - } - vars.firefox; - "${user3}" = lib.recursiveUpdate - { - inherit isDefault; - id = 3; - } - vars.firefox; - work = lib.recursiveUpdate - { - inherit isDefault; - id = 4; - settings = { - "browser.startup.homepage" = "${site4}|${site5}|${site6}|${site7}"; - }; - } - vars.firefox; - }; - }; - - chromium = { - enable = true; - package = pkgs.chromium; - - extensions = [ - # 1password - "gejiddohjgogedgjnonbofjigllpkmbf" - # dark reader - "eimadpbcbfnmbkopoojfekhnkhdbieeh" - # ublock origin - "cjpalhdlnbpafiamejdnhcphjbkeiagm" - # i still dont care about cookies - "edibdbjcniadpccecjdfdjjppcpchdlm" - # browserpass - "naepdomgkenhinolocfifgehidddafch" - ]; - }; - }; - - services = { - kanshi = { - settings = [ + accounts.email.accounts.work = + let + inherit (nixosConfig.repo.secrets.local.work) mailAddress mailName; + in { - # seminary room - output = { - criteria = "Applied Creative Technology Transmitter QUATTRO201811"; - scale = 1.0; - mode = "1280x720"; + primary = false; + address = mailAddress; + userName = mailAddress; + realName = mailName; + passwordCommand = "pizauth show work"; + imap = { + host = "outlook.office365.com"; + port = 993; + tls.enable = true; # SSL/TLS }; - } - { - # work main screen - output = { - criteria = "HP Inc. HP 732pk CNC4080YL5"; - scale = 1.0; - mode = "3840x2160"; - }; - } - { - # work side screen - output = { - criteria = "Hewlett Packard HP Z24i CN44250RDT"; - scale = 1.0; - mode = "1920x1200"; - transform = "270"; - }; - } - { - profile = { - name = "lidopen"; - exec = [ - "${pkgs.swaybg}/bin/swaybg --output 'HP Inc. HP 732pk CNC4080YL5' --image ${self}/files/wallpaper/botanicswp.png --mode ${config.stylix.imageScalingMode}" - "${pkgs.swaybg}/bin/swaybg --output 'Hewlett Packard HP Z24i CN44250RDT' --image ${self}/files/wallpaper/op6wp.png --mode ${config.stylix.imageScalingMode}" - ]; - outputs = [ - { - criteria = config.swarselsystems.sharescreen; - status = "enable"; - scale = 1.5; - position = "1462,0"; - } - { - criteria = "HP Inc. HP 732pk CNC4080YL5"; - scale = 1.4; - mode = "3840x2160"; - position = "-1280,0"; - } - { - criteria = "Hewlett Packard HP Z24i CN44250RDT"; - scale = 1.0; - mode = "1920x1200"; - transform = "90"; - position = "-2480,0"; - } - ]; - }; - } - { - profile = - let - monitor = "Applied Creative Technology Transmitter QUATTRO201811"; - in - { - name = "lidopen"; - exec = [ - "${pkgs.swaybg}/bin/swaybg --output '${monitor}' --image ${self}/files/wallpaper/navidrome.png --mode ${config.stylix.imageScalingMode}" - "${pkgs.kanshare}/bin/kanshare ${config.swarselsystems.sharescreen} '${monitor}'" - ]; - outputs = [ - { - criteria = config.swarselsystems.sharescreen; - status = "enable"; - scale = 1.7; - position = "2560,0"; - } - { - criteria = "Applied Creative Technology Transmitter QUATTRO201811"; - scale = 1.0; - mode = "1280x720"; - position = "10000,10000"; - } - ]; + smtp = { + host = "outlook.office365.com"; + port = 587; + tls = { + enable = true; # SSL/TLS + useStartTls = true; }; - } + }; + thunderbird = { + enable = true; + profiles = [ "default" ]; + settings = id: { + "mail.smtpserver.smtp_${id}.authMethod" = 10; # oauth + "mail.server.server_${id}.authMethod" = 10; # oauth + # "toolkit.telemetry.enabled" = false; + # "toolkit.telemetry.rejected" = true; + # "toolkit.telemetry.prompted" = 2; + }; + }; + msmtp = { + enable = true; + extraConfig = { + auth = "xoauth2"; + host = "outlook.office365.com"; + protocol = "smtp"; + port = "587"; + tls = "on"; + tls_starttls = "on"; + from = "${mailAddress}"; + user = "${mailAddress}"; + passwordeval = "pizauth show work"; + }; + }; + mu.enable = true; + mbsync = { + enable = true; + expunge = "both"; + patterns = [ "INBOX" ]; + extraConfig = { + account = { + AuthMechs = "XOAUTH2"; + }; + }; + }; + }; + + # wayland.windowManager.sway.config = { + # output = { + # "Applied Creative Technology Transmitter QUATTRO201811" = { + # bg = "${self}/files/wallpaper/navidrome.png ${config.stylix.imageScalingMode}"; + # }; + # "Hewlett Packard HP Z24i CN44250RDT" = { + # bg = "${self}/files/wallpaper/op6wp.png ${config.stylix.imageScalingMode}"; + # }; + # "HP Inc. HP 732pk CNC4080YL5" = { + # bg = "${self}/files/wallpaper/botanicswp.png ${config.stylix.imageScalingMode}"; + # }; + # }; + # }; + + stylix = { + targets.firefox.profileNames = + let + inherit (nixosConfig.repo.secrets.local.work) user1 user2 user3; + in + [ + "${user1}" + "${user2}" + "${user3}" + "work" + ]; + }; + + programs = + let + inherit (nixosConfig.repo.secrets.local.work) user1 user1Long user2 user2Long user3 user3Long user4 path1 loc1 loc2 site1 site2 site3 site4 site5 site6 site7 lifecycle1 lifecycle2 domain1 domain2 gitMail clouds; + in { - profile = { - name = "lidclosed"; - exec = [ - "${pkgs.swaybg}/bin/swaybg --output 'HP Inc. HP 732pk CNC4080YL5' --image ${self}/files/wallpaper/botanicswp.png --mode ${config.stylix.imageScalingMode}" - "${pkgs.swaybg}/bin/swaybg --output 'Hewlett Packard HP Z24i CN44250RDT' --image ${self}/files/wallpaper/op6wp.png --mode ${config.stylix.imageScalingMode}" + openstackclient = { + enable = true; + inherit clouds; + }; + awscli = { + enable = true; + package = pkgs.stable24_05.awscli2; + settings = { + "default" = { }; + "profile s3-imagebuilder-prod" = { }; + }; + credentials = { + "s3-imagebuilder-prod" = { + aws_access_key_id = "5OYXY4879EJG9I91K1B6"; + credential_process = "${pkgs.pass}/bin/pass show work/awscli/s3-imagebuilder-prod/secret-key"; + }; + }; + }; + git.userEmail = lib.mkForce gitMail; + + zsh = { + shellAliases = { + dssh = "ssh -l ${user1Long}"; + cssh = "ssh -l ${user2Long}"; + wssh = "ssh -l ${user3Long}"; + }; + cdpath = [ + "~/Documents/Work" ]; - outputs = [ - { - criteria = config.swarselsystems.sharescreen; - status = "disable"; - } + dirHashes = { + d = "$HOME/.dotfiles"; + w = "$HOME/Documents/Work"; + s = "$HOME/.dotfiles/secrets"; + pr = "$HOME/Documents/Private"; + ac = path1; + }; + + sessionVariables = { + VSPHERE_USER = "$(cat ${nixosConfig.sops.secrets.vcuser.path})"; + VSPHERE_PW = "$(cat ${nixosConfig.sops.secrets.vcpw.path})"; + GOVC_USERNAME = "$(cat ${nixosConfig.sops.secrets.govcuser.path})"; + GOVC_PASSWORD = "$(cat ${nixosConfig.sops.secrets.govcpw.path})"; + GOVC_URL = "$(cat ${nixosConfig.sops.secrets.govcurl.path})"; + GOVC_DATACENTER = "$(cat ${nixosConfig.sops.secrets.govcdc.path})"; + GOVC_DATASTORE = "$(cat ${nixosConfig.sops.secrets.govcds.path})"; + GOVC_HOST = "$(cat ${nixosConfig.sops.secrets.govchost.path})"; + GOVC_RESOURCE_POOL = "$(cat ${nixosConfig.sops.secrets.govcpool.path})"; + GOVC_NETWORK = "$(cat ${nixosConfig.sops.secrets.govcnetwork.path})"; + }; + }; + + ssh = { + matchBlocks = { + "${loc1}" = { + hostname = "${loc1}.${domain2}"; + user = user4; + }; + "${loc1}.stg" = { + hostname = "${loc1}.${lifecycle1}.${domain2}"; + user = user4; + }; + "${loc1}.staging" = { + hostname = "${loc1}.${lifecycle1}.${domain2}"; + user = user4; + }; + "${loc1}.dev" = { + hostname = "${loc1}.${lifecycle2}.${domain2}"; + user = user4; + }; + "${loc2}" = { + hostname = "${loc2}.${domain1}"; + user = user1Long; + }; + "${loc2}.stg" = { + hostname = "${loc2}.${lifecycle1}.${domain2}"; + user = user1Long; + }; + "${loc2}.staging" = { + hostname = "${loc2}.${lifecycle1}.${domain2}"; + user = user1Long; + }; + "*.${domain1}" = { + user = user1Long; + }; + }; + }; + + firefox = { + profiles = + let + isDefault = false; + in { + "${user1}" = lib.recursiveUpdate + { + inherit isDefault; + id = 1; + settings = { + "browser.startup.homepage" = "${site1}|${site2}"; + }; + } + vars.firefox; + "${user2}" = lib.recursiveUpdate + { + inherit isDefault; + id = 2; + settings = { + "browser.startup.homepage" = "${site3}"; + }; + } + vars.firefox; + "${user3}" = lib.recursiveUpdate + { + inherit isDefault; + id = 3; + } + vars.firefox; + work = lib.recursiveUpdate + { + inherit isDefault; + id = 4; + settings = { + "browser.startup.homepage" = "${site4}|${site5}|${site6}|${site7}"; + }; + } + vars.firefox; + }; + }; + + chromium = { + enable = true; + package = pkgs.chromium; + + extensions = [ + # 1password + "gejiddohjgogedgjnonbofjigllpkmbf" + # dark reader + "eimadpbcbfnmbkopoojfekhnkhdbieeh" + # ublock origin + "cjpalhdlnbpafiamejdnhcphjbkeiagm" + # i still dont care about cookies + "edibdbjcniadpccecjdfdjjppcpchdlm" + # browserpass + "naepdomgkenhinolocfifgehidddafch" + ]; + }; + }; + + services = { + kanshi = { + settings = [ + { + # seminary room + output = { + criteria = "Applied Creative Technology Transmitter QUATTRO201811"; + scale = 1.0; + mode = "1280x720"; + }; + } + { + # work main screen + output = { criteria = "HP Inc. HP 732pk CNC4080YL5"; - scale = 1.4; + scale = 1.0; mode = "3840x2160"; - position = "-1280,0"; - } - { + }; + } + { + # work side screen + output = { criteria = "Hewlett Packard HP Z24i CN44250RDT"; scale = 1.0; mode = "1920x1200"; transform = "270"; - position = "-2480,0"; - } - ]; - }; - } - { - profile = - let - monitor = "Applied Creative Technology Transmitter QUATTRO201811"; - in + }; + } { - name = "lidclosed"; - exec = [ - "${pkgs.swaybg}/bin/swaybg --output '${monitor}' --image ${self}/files/wallpaper/navidrome.png --mode ${config.stylix.imageScalingMode}" - ]; - outputs = [ + profile = { + name = "lidopen"; + exec = [ + "${pkgs.swaybg}/bin/swaybg --output 'HP Inc. HP 732pk CNC4080YL5' --image ${self}/files/wallpaper/botanicswp.png --mode ${config.stylix.imageScalingMode}" + "${pkgs.swaybg}/bin/swaybg --output 'Hewlett Packard HP Z24i CN44250RDT' --image ${self}/files/wallpaper/op6wp.png --mode ${config.stylix.imageScalingMode}" + ]; + outputs = [ + { + criteria = config.swarselsystems.sharescreen; + status = "enable"; + scale = 1.5; + position = "1462,0"; + } + { + criteria = "HP Inc. HP 732pk CNC4080YL5"; + scale = 1.4; + mode = "3840x2160"; + position = "-1280,0"; + } + { + criteria = "Hewlett Packard HP Z24i CN44250RDT"; + scale = 1.0; + mode = "1920x1200"; + transform = "90"; + position = "-2480,0"; + } + ]; + }; + } + { + profile = + let + monitor = "Applied Creative Technology Transmitter QUATTRO201811"; + in { - criteria = config.swarselsystems.sharescreen; - status = "disable"; - } + name = "lidopen"; + exec = [ + "${pkgs.swaybg}/bin/swaybg --output '${monitor}' --image ${self}/files/wallpaper/navidrome.png --mode ${config.stylix.imageScalingMode}" + "${pkgs.kanshare}/bin/kanshare ${config.swarselsystems.sharescreen} '${monitor}'" + ]; + outputs = [ + { + criteria = config.swarselsystems.sharescreen; + status = "enable"; + scale = 1.7; + position = "2560,0"; + } + { + criteria = "Applied Creative Technology Transmitter QUATTRO201811"; + scale = 1.0; + mode = "1280x720"; + position = "10000,10000"; + } + ]; + }; + } + { + profile = { + name = "lidclosed"; + exec = [ + "${pkgs.swaybg}/bin/swaybg --output 'HP Inc. HP 732pk CNC4080YL5' --image ${self}/files/wallpaper/botanicswp.png --mode ${config.stylix.imageScalingMode}" + "${pkgs.swaybg}/bin/swaybg --output 'Hewlett Packard HP Z24i CN44250RDT' --image ${self}/files/wallpaper/op6wp.png --mode ${config.stylix.imageScalingMode}" + ]; + outputs = [ + { + criteria = config.swarselsystems.sharescreen; + status = "disable"; + } + { + criteria = "HP Inc. HP 732pk CNC4080YL5"; + scale = 1.4; + mode = "3840x2160"; + position = "-1280,0"; + } + { + criteria = "Hewlett Packard HP Z24i CN44250RDT"; + scale = 1.0; + mode = "1920x1200"; + transform = "270"; + position = "-2480,0"; + } + ]; + }; + } + { + profile = + let + monitor = "Applied Creative Technology Transmitter QUATTRO201811"; + in { - criteria = "Applied Creative Technology Transmitter QUATTRO201811"; - scale = 1.0; - mode = "1280x720"; - position = "10000,10000"; - } - ]; - }; - } - ]; - }; - }; - - systemd.user.services = { - pizauth.Service = { - ExecStartPost = [ - "${pkgs.toybox}/bin/sleep 1" - "//bin/sh -c '${lib.getExe pkgs.pizauth} restore < ${homeDir}/.pizauth.state'" - ]; - }; - - teams-applet = { - Unit = { - Description = "teams applet"; - Requires = [ "tray.target" ]; - After = [ - "graphical-session.target" - "tray.target" - ]; - PartOf = [ "graphical-session.target" ]; - }; - - Install = { - WantedBy = [ "graphical-session.target" ]; - }; - - Service = { - ExecStart = "${pkgs.stable.teams-for-linux}/bin/teams-for-linux --disableGpu=true --minimized=true --trayIconEnabled=true"; - }; - }; - - onepassword-applet = { - Unit = { - Description = "1password applet"; - Requires = [ "tray.target" ]; - After = [ - "graphical-session.target" - "tray.target" - ]; - PartOf = [ "graphical-session.target" ]; - }; - - Install = { - WantedBy = [ "graphical-session.target" ]; - }; - - Service = { - ExecStart = "${pkgs._1password-gui}/bin/1password"; - }; - }; - - }; - - swarselservices.pizauth = { - enable = true; - extraConfig = '' - auth_notify_cmd = "if [[ \"$(notify-send -A \"Open $PIZAUTH_ACCOUNT\" -t 30000 'pizauth authorisation')\" == \"0\" ]]; then open \"$PIZAUTH_URL\"; fi"; - error_notify_cmd = "notify-send -t 90000 \"pizauth error for $PIZAUTH_ACCOUNT\" \"$PIZAUTH_MSG\""; - token_event_cmd = "pizauth dump > ${homeDir}/.pizauth.state"; - ''; - accounts = { - work = { - authUri = "https://login.microsoftonline.com/common/oauth2/v2.0/authorize"; - tokenUri = "https://login.microsoftonline.com/common/oauth2/v2.0/token"; - clientId = "08162f7c-0fd2-4200-a84a-f25a4db0b584"; - clientSecret = "TxRBilcHdC6WGBee]fs?QR:SJ8nI[g82"; - scopes = [ - "https://outlook.office365.com/IMAP.AccessAsUser.All" - "https://outlook.office365.com/SMTP.Send" - "offline_access" - ]; - loginHint = "${nixosConfig.repo.secrets.local.work.mailAddress}"; - }; - }; - - }; - - xdg = - let - inherit (nixosConfig.repo.secrets.local.work) user1 user2 user3; - in - { - mimeApps = { - defaultApplications = { - "x-scheme-handler/msteams" = [ "teams-for-linux.desktop" ]; + name = "lidclosed"; + exec = [ + "${pkgs.swaybg}/bin/swaybg --output '${monitor}' --image ${self}/files/wallpaper/navidrome.png --mode ${config.stylix.imageScalingMode}" + ]; + outputs = [ + { + criteria = config.swarselsystems.sharescreen; + status = "disable"; + } + { + criteria = "Applied Creative Technology Transmitter QUATTRO201811"; + scale = 1.0; + mode = "1280x720"; + position = "10000,10000"; + } + ]; + }; + } + ]; }; }; - desktopEntries = + + systemd.user.services = { + pizauth.Service = { + ExecStartPost = [ + "${pkgs.toybox}/bin/sleep 1" + "//bin/sh -c '${lib.getExe pkgs.pizauth} restore < ${homeDir}/.pizauth.state'" + ]; + }; + + teams-applet = { + Unit = { + Description = "teams applet"; + Requires = [ "tray.target" ]; + After = [ + "graphical-session.target" + "tray.target" + ]; + PartOf = [ "graphical-session.target" ]; + }; + + Install = { + WantedBy = [ "graphical-session.target" ]; + }; + + Service = { + ExecStart = "${pkgs.stable.teams-for-linux}/bin/teams-for-linux --disableGpu=true --minimized=true --trayIconEnabled=true"; + }; + }; + + onepassword-applet = { + Unit = { + Description = "1password applet"; + Requires = [ "tray.target" ]; + After = [ + "graphical-session.target" + "tray.target" + ]; + PartOf = [ "graphical-session.target" ]; + }; + + Install = { + WantedBy = [ "graphical-session.target" ]; + }; + + Service = { + ExecStart = "${pkgs._1password-gui}/bin/1password"; + }; + }; + + }; + + swarselservices.pizauth = { + enable = true; + extraConfig = '' + auth_notify_cmd = "if [[ \"$(notify-send -A \"Open $PIZAUTH_ACCOUNT\" -t 30000 'pizauth authorisation')\" == \"0\" ]]; then open \"$PIZAUTH_URL\"; fi"; + error_notify_cmd = "notify-send -t 90000 \"pizauth error for $PIZAUTH_ACCOUNT\" \"$PIZAUTH_MSG\""; + token_event_cmd = "pizauth dump > ${homeDir}/.pizauth.state"; + ''; + accounts = { + work = { + authUri = "https://login.microsoftonline.com/common/oauth2/v2.0/authorize"; + tokenUri = "https://login.microsoftonline.com/common/oauth2/v2.0/token"; + clientId = "08162f7c-0fd2-4200-a84a-f25a4db0b584"; + clientSecret = "TxRBilcHdC6WGBee]fs?QR:SJ8nI[g82"; + scopes = [ + "https://outlook.office365.com/IMAP.AccessAsUser.All" + "https://outlook.office365.com/SMTP.Send" + "offline_access" + ]; + loginHint = "${nixosConfig.repo.secrets.local.work.mailAddress}"; + }; + }; + + }; + + xdg = let - terminal = false; - categories = [ "Application" ]; - icon = "firefox"; + inherit (nixosConfig.repo.secrets.local.work) user1 user2 user3; in { - firefox_work = { - name = "Firefox (work)"; - genericName = "Firefox work"; - exec = "firefox -p work"; - inherit terminal categories icon; - }; - "firefox_${user1}" = { - name = "Firefox (${user1})"; - genericName = "Firefox ${user1}"; - exec = "firefox -p ${user1}"; - inherit terminal categories icon; + mimeApps = { + defaultApplications = { + "x-scheme-handler/msteams" = [ "teams-for-linux.desktop" ]; + }; }; + desktopEntries = + let + terminal = false; + categories = [ "Application" ]; + icon = "firefox"; + in + { + firefox_work = { + name = "Firefox (work)"; + genericName = "Firefox work"; + exec = "firefox -p work"; + inherit terminal categories icon; + }; + "firefox_${user1}" = { + name = "Firefox (${user1})"; + genericName = "Firefox ${user1}"; + exec = "firefox -p ${user1}"; + inherit terminal categories icon; + }; - "firefox_${user2}" = { - name = "Firefox (${user2})"; - genericName = "Firefox ${user2}"; - exec = "firefox -p ${user2}"; - inherit terminal categories icon; - }; + "firefox_${user2}" = { + name = "Firefox (${user2})"; + genericName = "Firefox ${user2}"; + exec = "firefox -p ${user2}"; + inherit terminal categories icon; + }; - "firefox_${user3}" = { - name = "Firefox (${user3})"; - genericName = "Firefox ${user3}"; - exec = "firefox -p ${user3}"; - inherit terminal categories icon; - }; + "firefox_${user3}" = { + name = "Firefox (${user3})"; + genericName = "Firefox ${user3}"; + exec = "firefox -p ${user3}"; + inherit terminal categories icon; + }; + }; }; - }; - swarselsystems = { - startup = [ - # { command = "nextcloud --background"; } - # { command = "vesktop --start-minimized --enable-speech-dispatcher --ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime"; } - # { command = "element-desktop --hidden --enable-features=UseOzonePlatform --ozone-platform=wayland --disable-gpu-driver-bug-workarounds"; } - # { command = "anki"; } - # { command = "obsidian"; } - # { command = "nm-applet"; } - # { command = "feishin"; } - # { command = "teams-for-linux --disableGpu=true --minimized=true --trayIconEnabled=true"; } - # { command = "1password"; } - ]; - monitors = { - work_back_middle = rec { - name = "LG Electronics LG Ultra HD 0x000305A6"; - mode = "2560x1440"; - scale = "1"; - position = "5120,0"; - workspace = "1:一"; - # output = "DP-10"; - output = name; - }; - work_front_left = rec { - name = "LG Electronics LG Ultra HD 0x0007AB45"; - mode = "3840x2160"; - scale = "1"; - position = "5120,0"; - workspace = "1:一"; - # output = "DP-7"; - output = name; - }; - work_back_right = rec { - name = "HP Inc. HP Z32 CN41212T55"; - mode = "3840x2160"; - scale = "1"; - position = "5120,0"; - workspace = "1:一"; - # output = "DP-3"; - output = name; - }; - work_middle_middle_main = rec { - name = "HP Inc. HP 732pk CNC4080YL5"; - mode = "3840x2160"; - scale = "1"; - position = "-1280,0"; - workspace = "11:M"; - # output = "DP-8"; - output = name; - }; - work_middle_middle_side = rec { - name = "Hewlett Packard HP Z24i CN44250RDT"; - mode = "1920x1200"; - transform = "270"; - scale = "1"; - position = "-2480,0"; - workspace = "12:S"; - # output = "DP-9"; - output = name; - }; - work_seminary = rec { - name = "Applied Creative Technology Transmitter QUATTRO201811"; - mode = "1280x720"; - scale = "1"; - position = "10000,10000"; # i.e. this screen is inaccessible by moving the mouse - workspace = "14:T"; - # output = "DP-4"; - output = name; - }; - }; - inputs = { - "1133:45081:MX_Master_2S_Keyboard" = { - xkb_layout = "us"; - xkb_variant = "altgr-intl"; - }; - # "2362:628:PIXA3854:00_093A:0274_Touchpad" = { - # dwt = "enabled"; - # tap = "enabled"; - # natural_scroll = "enabled"; - # middle_emulation = "enabled"; - # drag_lock = "disabled"; - # }; - "1133:50504:Logitech_USB_Receiver" = { - xkb_layout = "us"; - xkb_variant = "altgr-intl"; - }; - "1133:45944:MX_KEYS_S" = { - xkb_layout = "us"; - xkb_variant = "altgr-intl"; + swarselsystems = { + startup = [ + # { command = "nextcloud --background"; } + # { command = "vesktop --start-minimized --enable-speech-dispatcher --ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime"; } + # { command = "element-desktop --hidden --enable-features=UseOzonePlatform --ozone-platform=wayland --disable-gpu-driver-bug-workarounds"; } + # { command = "anki"; } + # { command = "obsidian"; } + # { command = "nm-applet"; } + # { command = "feishin"; } + # { command = "teams-for-linux --disableGpu=true --minimized=true --trayIconEnabled=true"; } + # { command = "1password"; } + ]; + monitors = { + work_back_middle = rec { + name = "LG Electronics LG Ultra HD 0x000305A6"; + mode = "2560x1440"; + scale = "1"; + position = "5120,0"; + workspace = "1:一"; + # output = "DP-10"; + output = name; + }; + work_front_left = rec { + name = "LG Electronics LG Ultra HD 0x0007AB45"; + mode = "3840x2160"; + scale = "1"; + position = "5120,0"; + workspace = "1:一"; + # output = "DP-7"; + output = name; + }; + work_back_right = rec { + name = "HP Inc. HP Z32 CN41212T55"; + mode = "3840x2160"; + scale = "1"; + position = "5120,0"; + workspace = "1:一"; + # output = "DP-3"; + output = name; + }; + work_middle_middle_main = rec { + name = "HP Inc. HP 732pk CNC4080YL5"; + mode = "3840x2160"; + scale = "1"; + position = "-1280,0"; + workspace = "11:M"; + # output = "DP-8"; + output = name; + }; + work_middle_middle_side = rec { + name = "Hewlett Packard HP Z24i CN44250RDT"; + mode = "1920x1200"; + transform = "270"; + scale = "1"; + position = "-2480,0"; + workspace = "12:S"; + # output = "DP-9"; + output = name; + }; + work_seminary = rec { + name = "Applied Creative Technology Transmitter QUATTRO201811"; + mode = "1280x720"; + scale = "1"; + position = "10000,10000"; # i.e. this screen is inaccessible by moving the mouse + workspace = "14:T"; + # output = "DP-4"; + output = name; + }; + }; + inputs = { + "1133:45081:MX_Master_2S_Keyboard" = { + xkb_layout = "us"; + xkb_variant = "altgr-intl"; + }; + # "2362:628:PIXA3854:00_093A:0274_Touchpad" = { + # dwt = "enabled"; + # tap = "enabled"; + # natural_scroll = "enabled"; + # middle_emulation = "enabled"; + # drag_lock = "disabled"; + # }; + "1133:50504:Logitech_USB_Receiver" = { + xkb_layout = "us"; + xkb_variant = "altgr-intl"; + }; + "1133:45944:MX_KEYS_S" = { + xkb_layout = "us"; + xkb_variant = "altgr-intl"; + }; + }; + }; }; - }; - }; - - } + } #+end_src @@ -15673,6 +16028,7 @@ In short, the options defined here are passed to the modules systems using =_mod { "extensions.autoDisableScopes" = 0; "browser.bookmarks.showMobileBookmarks" = true; + "browser.autofocus" = false; "toolkit.legacyUserProfileCustomizations.stylesheets" = true; "browser.search.suggest.enabled" = false; "browser.search.suggest.enabled.private" = false; @@ -17727,52 +18083,52 @@ Modules that need to be loaded on the NixOS level. Note that these will not be a options.swarselprofiles.personal = lib.mkEnableOption "is this a personal host"; config = lib.mkIf config.swarselprofiles.personal { swarselmodules = { - packages = lib.mkDefault true; - pii = lib.mkDefault true; - general = lib.mkDefault true; - home-manager = lib.mkDefault true; - xserver = lib.mkDefault true; - users = lib.mkDefault true; - env = lib.mkDefault true; - security = lib.mkDefault true; - systemdTimeout = lib.mkDefault true; - hardware = lib.mkDefault true; - pulseaudio = lib.mkDefault true; - pipewire = lib.mkDefault true; - network = lib.mkDefault true; - time = lib.mkDefault true; - sops = lib.mkDefault true; - stylix = lib.mkDefault true; - programs = lib.mkDefault true; - zsh = lib.mkDefault true; - syncthing = lib.mkDefault true; - blueman = lib.mkDefault true; - networkDevices = lib.mkDefault true; - gvfs = lib.mkDefault true; - interceptionTools = lib.mkDefault true; # keyd = lib.mkDefault true; - swayosd = lib.mkDefault true; - ppd = lib.mkDefault true; - yubikey = lib.mkDefault true; - ledger = lib.mkDefault true; - keyboards = lib.mkDefault true; - login = lib.mkDefault true; - nix-ld = lib.mkDefault true; - impermanence = lib.mkDefault true; - nvd = lib.mkDefault true; - gnome-keyring = lib.mkDefault true; - uwsm = lib.mkDefault true; - sway = lib.mkDefault true; - niri = lib.mkDefault true; - xdg-portal = lib.mkDefault true; - distrobox = lib.mkDefault true; appimage = lib.mkDefault true; - lid = lib.mkDefault true; - lowBattery = lib.mkDefault true; - lanzaboote = lib.mkDefault true; autologin = lib.mkDefault true; + blueman = lib.mkDefault true; boot = lib.mkDefault true; btrfs = lib.mkDefault true; + distrobox = lib.mkDefault true; + env = lib.mkDefault true; + general = lib.mkDefault true; + gnome-keyring = lib.mkDefault true; + gvfs = lib.mkDefault true; + hardware = lib.mkDefault true; + home-manager = lib.mkDefault true; + impermanence = lib.mkDefault true; + interceptionTools = lib.mkDefault true; + keyboards = lib.mkDefault true; + lanzaboote = lib.mkDefault true; + ledger = lib.mkDefault true; + lid = lib.mkDefault true; + login = lib.mkDefault true; + lowBattery = lib.mkDefault false; + network = lib.mkDefault true; + networkDevices = lib.mkDefault true; + niri = lib.mkDefault true; + nix-ld = lib.mkDefault true; + nvd = lib.mkDefault true; + packages = lib.mkDefault true; + pii = lib.mkDefault true; + pipewire = lib.mkDefault true; + ppd = lib.mkDefault true; + programs = lib.mkDefault true; + pulseaudio = lib.mkDefault true; + security = lib.mkDefault true; + sops = lib.mkDefault true; + stylix = lib.mkDefault true; + sway = lib.mkDefault true; + swayosd = lib.mkDefault true; + syncthing = lib.mkDefault true; + systemdTimeout = lib.mkDefault true; + time = lib.mkDefault true; + users = lib.mkDefault true; + uwsm = lib.mkDefault true; + xdg-portal = lib.mkDefault true; + xserver = lib.mkDefault true; + yubikey = lib.mkDefault true; + zsh = lib.mkDefault true; }; home-manager.users."${config.swarselsystems.mainUser}" = { @@ -18051,53 +18407,63 @@ This holds modules that are to be used on most hosts. These are also the most im options.swarselprofiles.personal = lib.mkEnableOption "is this a personal host"; config = lib.mkIf config.swarselprofiles.personal { swarselmodules = { - packages = lib.mkDefault true; - ownpackages = lib.mkDefault true; - general = lib.mkDefault true; - nixgl = lib.mkDefault true; - sops = lib.mkDefault false; - yubikey = lib.mkDefault false; - ssh = lib.mkDefault true; - stylix = lib.mkDefault true; - desktop = lib.mkDefault true; - symlink = lib.mkDefault true; - env = lib.mkDefault true; - programs = lib.mkDefault true; - nix-index = lib.mkDefault true; - passwordstore = lib.mkDefault true; - direnv = lib.mkDefault true; - eza = lib.mkDefault true; - atuin = lib.mkDefault true; - git = lib.mkDefault true; - fuzzel = lib.mkDefault true; - starship = lib.mkDefault true; - kitty = lib.mkDefault true; - zsh = lib.mkDefault true; - zellij = lib.mkDefault true; - tmux = lib.mkDefault true; - mail = lib.mkDefault true; - emacs = lib.mkDefault true; - waybar = lib.mkDefault true; - firefox = lib.mkDefault true; - gnome-keyring = lib.mkDefault true; - kdeconnect = lib.mkDefault true; - mako = lib.mkDefault true; - swayosd = lib.mkDefault true; - yubikeytouch = lib.mkDefault true; - sway = lib.mkDefault true; - niri = lib.mkDefault true; - kanshi = lib.mkDefault true; - gpgagent = lib.mkDefault true; - gammastep = lib.mkDefault true; - spicetify = lib.mkDefault true; - blueman-applet = lib.mkDefault true; - nm-applet = lib.mkDefault true; - obsidian-tray = lib.mkDefault true; - obsidian = lib.mkDefault true; - anki-tray = lib.mkDefault true; - element-tray = lib.mkDefault true; - vesktop-tray = lib.mkDefault true; anki = lib.mkDefault true; + anki-tray = lib.mkDefault true; + atuin = lib.mkDefault true; + autotiling = lib.mkDefault true; + batsignal = lib.mkDefault true; + blueman-applet = lib.mkDefault true; + desktop = lib.mkDefault true; + direnv = lib.mkDefault true; + element-desktop = lib.mkDefault true; + element-tray = lib.mkDefault true; + emacs = lib.mkDefault true; + env = lib.mkDefault true; + eza = lib.mkDefault true; + firefox = lib.mkDefault true; + fuzzel = lib.mkDefault true; + gammastep = lib.mkDefault true; + general = lib.mkDefault true; + git = lib.mkDefault true; + gnome-keyring = lib.mkDefault true; + gpgagent = lib.mkDefault true; + hexchat = lib.mkDefault true; + kanshi = lib.mkDefault true; + kdeconnect = lib.mkDefault true; + kitty = lib.mkDefault true; + mail = lib.mkDefault true; + mako = lib.mkDefault true; + niri = lib.mkDefault true; + nix-index = lib.mkDefault true; + nixgl = lib.mkDefault true; + nix-your-shell = lib.mkDefault true; + nm-applet = lib.mkDefault true; + obs-studio = lib.mkDefault true; + obsidian = lib.mkDefault true; + obsidian-tray = lib.mkDefault true; + ownpackages = lib.mkDefault true; + packages = lib.mkDefault true; + passwordstore = lib.mkDefault true; + programs = lib.mkDefault true; + sops = lib.mkDefault false; + spicetify = lib.mkDefault true; + spotify-player = lib.mkDefault true; + ssh = lib.mkDefault true; + starship = lib.mkDefault true; + stylix = lib.mkDefault true; + sway = lib.mkDefault true; + swayidle = lib.mkDefault true; + swaylock = lib.mkDefault true; + swayosd = lib.mkDefault true; + symlink = lib.mkDefault true; + tmux = lib.mkDefault true; + vesktop = lib.mkDefault true; + vesktop-tray = lib.mkDefault true; + waybar = lib.mkDefault true; + yubikey = lib.mkDefault false; + yubikeytouch = lib.mkDefault true; + zellij = lib.mkDefault true; + zsh = lib.mkDefault true; }; }; @@ -21747,7 +22113,6 @@ bind gwe tab_or_tabopen_local exivity.vbc.ac.at bind gwg tab_or_tabopen_local github.com bind gwG tab_or_tabopen_local goc.egi.eu bind gwh tab_or_tabopen_local jupyterhub.vbc.ac.at -bind gwH tab_or_tabopen_local test-jupyterhub.vbc.ac.at bind gwj tab_or_tabopen_local jenkins.vbc.ac.at bind gwJ tab_or_tabopen_local test-jenkins.vbc.ac.at bind gwl tab_or_tabopen_local lucid.app @@ -21761,6 +22126,20 @@ bind gwt tab_or_tabopen_local tower.vbc.ac.at bind gwv tab_or_tabopen_local vc-impimba-1.m.imp.ac.at/ui bind gwx tab_or_tabopen_local xclarity.vbc.ac.at +unbind --mode=normal gh +bind ghp tab_or_tabopen_local https://github.com/pulls +bind ghi tab_or_tabopen_local https://github.com/issues/assigned?q=is%3Aissue%20state%3Aopen%20archived%3Afalse%20(assignee%3A%40me%20OR%20author%3A%40me)%20sort%3Aupdated-desc +bind ghv tab_or_tabopen_local github.com/orgs/vbc-it/repositories +bind ghc tab_or_tabopen_local github.com/orgs/CLIP-HPC/repositories +bind ghd tab_or_tabopen_local github.com/Swarsel/.dotfiles +bind ghni tab_or_tabopen_local github.com/NixOS/nixpkgs/issues +bind ghnp tab_or_tabopen_local github.com/NixOS/nixpkgs/pulls + +unbind --mode=normal gp +bind gprn tab_or_tabopen_local www.reddit.com/r/NixOS/ +bind gpd tab_or_tabopen_local discourse.nixos.org/ +bind gpp tab_or_tabopen_local parkour.wien/categories + " Search in page set findcase smart bind / fillcmdline find @@ -21815,6 +22194,15 @@ set hintdelay 100 " Some pages like github break on the tridactyl quick search. have this as a fallback unbind +" Do not let websites steal sitefocus +set allowautofocus false + +" whitelist sites +" :seturl [URL regex for sites with text editors you use] allowautofocus true + +" stronger blacklist for specific sites +seturl vbc.atlassian.net preventautofocusjackhammer true + " Subconfig Settings seturl www.google.com followpagepatterns.next Next seturl www.google.com followpagepatterns.prev Previous @@ -24044,45 +24432,45 @@ Here lies defined the readme for GitHub and Forgejo:
Click here to expand... - - [guibou](https://github.com/guibou/) - - [rycee](https://github.com/rycee) - - [adisbladis](https://github.com/adisbladis) - - [Mic92](https://github.com/Mic92/sops-nix) - - [lassulus](https://github.com/lassulus) - - [danth](https://github.com/danth/) - - [LnL7](https://github.com/LnL7) - - [t184256](https://github.com/t184256) - - [bennofs](https://github.com/bennofs) - - [Pandapip1](https://github.com/Pandapip1) - - [zowoq](https://github.com/zowoq) - - [numtide](https://github.com/numtide) - - [hsjobeki](https://github.com/hsjobeki) - - [blitz](https://github.com/blitz) - - [RaitoBezarius](https://github.com/RaitoBezarius) - - [nikstur](https://github.com/nikstur) - - [talyz](https://github.com/talyz) - - [infinisil](https://github.com/infinisil) - - [zhaofengli](https://github.com/zhaofengli) - - [Artturin](https://github.com/Artturin) - - [oddlama](https://github.com/oddlama) + - [guibou](https://github.com/guibou/) + - [rycee](https://github.com/rycee) + - [adisbladis](https://github.com/adisbladis) + - [Mic92](https://github.com/Mic92/sops-nix) + - [lassulus](https://github.com/lassulus) + - [danth](https://github.com/danth/) + - [LnL7](https://github.com/LnL7) + - [t184256](https://github.com/t184256) + - [bennofs](https://github.com/bennofs) + - [Pandapip1](https://github.com/Pandapip1) + - [zowoq](https://github.com/zowoq) + - [numtide](https://github.com/numtide) + - [hsjobeki](https://github.com/hsjobeki) + - [blitz](https://github.com/blitz) + - [RaitoBezarius](https://github.com/RaitoBezarius) + - [nikstur](https://github.com/nikstur) + - [talyz](https://github.com/talyz) + - [infinisil](https://github.com/infinisil) + - [zhaofengli](https://github.com/zhaofengli) + - [Artturin](https://github.com/Artturin) + - [oddlama](https://github.com/oddlama)
- All the people who have inspired me with their configurations (sadly also highly incomplete):
Click here to expand... - - [theSuess](https://github.com/theSuess) with their [home-manager](https://code.kulupu.party/thesuess/home-manager) - - [hlissner](https://github.com/hlissner) with their [dotfiles](https://github.com/hlissner/dotfiles) - - [drduh](https://github.com/drduh/YubiKey-Guide) with their [YubiKey-Guide](https://github.com/drduh/YubiKey-Guide) - - [AntonHakansson](https://github.com/AntonHakansson) with their [nixos-config](https://github.com/AntonHakansson/nixos-config?tab=readme-ov-file) - - [Guekka](https://github.com/Guekka/) with their [blog](https://guekka.github.io/) - - [NotAShelf](https://github.com/NotAShelf) with their [nyx](https://github.com/NotAShelf/nyx) - - [Misterio77](https://github.com/Misterio77) with their [nix-config](https://github.com/Misterio77/nix-config) - - [0xdade](https://github.com/0xdade) with their [blog](https://0xda.de/blog/) - - [EmergentMind](https://github.com/EmergentMind) with their [nix-config](https://github.com/EmergentMind/nix-config) - - [librephoenix](https://github.com/librephoenix) with their [nixos-config](https://github.com/librephoenix/nixos-config) - - [Xe](https://github.com/Xe) with their [blog](https://xeiaso.net/blog/) - - [oddlama](https://github.com/oddlama) with their absolutely incredible [nix-config](https:/github.com/oddlama/nix-config) + - [theSuess](https://github.com/theSuess) with their [home-manager](https://code.kulupu.party/thesuess/home-manager) + - [hlissner](https://github.com/hlissner) with their [dotfiles](https://github.com/hlissner/dotfiles) + - [drduh](https://github.com/drduh/YubiKey-Guide) with their [YubiKey-Guide](https://github.com/drduh/YubiKey-Guide) + - [AntonHakansson](https://github.com/AntonHakansson) with their [nixos-config](https://github.com/AntonHakansson/nixos-config?tab=readme-ov-file) + - [Guekka](https://github.com/Guekka/) with their [blog](https://guekka.github.io/) + - [NotAShelf](https://github.com/NotAShelf) with their [nyx](https://github.com/NotAShelf/nyx) + - [Misterio77](https://github.com/Misterio77) with their [nix-config](https://github.com/Misterio77/nix-config) + - [0xdade](https://github.com/0xdade) with their [blog](https://0xda.de/blog/) + - [EmergentMind](https://github.com/EmergentMind) with their [nix-config](https://github.com/EmergentMind/nix-config) + - [librephoenix](https://github.com/librephoenix) with their [nixos-config](https://github.com/librephoenix/nixos-config) + - [Xe](https://github.com/Xe) with their [blog](https://xeiaso.net/blog/) + - [oddlama](https://github.com/oddlama) with their absolutely incredible [nix-config](https:/github.com/oddlama/nix-config)
If you feel that I forgot to pay you tribute for code that I used in this repository, please shoot me a message and I will fix it :) diff --git a/files/firefox/tridactyl/tridactylrc b/files/firefox/tridactyl/tridactylrc index 1f050ef..f87a332 100644 --- a/files/firefox/tridactyl/tridactylrc +++ b/files/firefox/tridactyl/tridactylrc @@ -45,7 +45,6 @@ bind gwe tab_or_tabopen_local exivity.vbc.ac.at bind gwg tab_or_tabopen_local github.com bind gwG tab_or_tabopen_local goc.egi.eu bind gwh tab_or_tabopen_local jupyterhub.vbc.ac.at -bind gwH tab_or_tabopen_local test-jupyterhub.vbc.ac.at bind gwj tab_or_tabopen_local jenkins.vbc.ac.at bind gwJ tab_or_tabopen_local test-jenkins.vbc.ac.at bind gwl tab_or_tabopen_local lucid.app @@ -59,6 +58,20 @@ bind gwt tab_or_tabopen_local tower.vbc.ac.at bind gwv tab_or_tabopen_local vc-impimba-1.m.imp.ac.at/ui bind gwx tab_or_tabopen_local xclarity.vbc.ac.at +unbind --mode=normal gh +bind ghp tab_or_tabopen_local https://github.com/pulls +bind ghi tab_or_tabopen_local https://github.com/issues/assigned?q=is%3Aissue%20state%3Aopen%20archived%3Afalse%20(assignee%3A%40me%20OR%20author%3A%40me)%20sort%3Aupdated-desc +bind ghv tab_or_tabopen_local github.com/orgs/vbc-it/repositories +bind ghc tab_or_tabopen_local github.com/orgs/CLIP-HPC/repositories +bind ghd tab_or_tabopen_local github.com/Swarsel/.dotfiles +bind ghni tab_or_tabopen_local github.com/NixOS/nixpkgs/issues +bind ghnp tab_or_tabopen_local github.com/NixOS/nixpkgs/pulls + +unbind --mode=normal gp +bind gprn tab_or_tabopen_local www.reddit.com/r/NixOS/ +bind gpd tab_or_tabopen_local discourse.nixos.org/ +bind gpp tab_or_tabopen_local parkour.wien/categories + " Search in page set findcase smart bind / fillcmdline find @@ -113,6 +126,15 @@ set hintdelay 100 " Some pages like github break on the tridactyl quick search. have this as a fallback unbind +" Do not let websites steal sitefocus +set allowautofocus false + +" whitelist sites +" :seturl [URL regex for sites with text editors you use] allowautofocus true + +" stronger blacklist for specific sites +seturl vbc.atlassian.net preventautofocusjackhammer true + " Subconfig Settings seturl www.google.com followpagepatterns.next Next seturl www.google.com followpagepatterns.prev Previous diff --git a/flake.lock b/flake.lock index 942ab6b..ae80937 100644 --- a/flake.lock +++ b/flake.lock @@ -9596,11 +9596,11 @@ "systems": "systems_43" }, "locked": { - "lastModified": 1759958031, - "narHash": "sha256-rfwQQ42aQrzXYEzjQrqFA1NKoxgo9bqg/RIc2wKBsEQ=", + "lastModified": 1760190732, + "narHash": "sha256-Bxn/5+MCKOzR9LgUyHDhxCU3eejxz+hfsAT9Sqqz6B0=", "owner": "Swarsel", "repo": "swarsel-nix", - "rev": "ab8460e796c0694fe612a02817d8c290d0662188", + "rev": "f0ab1f68c94d777aa7d0a8f23745cb9aa8172fd4", "type": "github" }, "original": { diff --git a/hosts/nixos/pyramid/secrets/pii.nix.enc b/hosts/nixos/pyramid/secrets/pii.nix.enc index f5a735a..1cd9d41 100644 --- a/hosts/nixos/pyramid/secrets/pii.nix.enc +++ b/hosts/nixos/pyramid/secrets/pii.nix.enc @@ -1,5 +1,5 @@ { - "data": "ENC[AES256_GCM,data:p68IT8Bx7PKlHX5ZI5L0pU64WGA+q3byfbT9yOceKKq4BxD2ZX4zwxXrTsb1q6WOcxOfr7aqqJ8uzkSURKbSbjd1sImBrrzTh2BU80PnM7d8n2GuqJdj2TsiJ25MD5BNG2v0Ib3jDErI5cA6DWkQgzZV3gyfc486XpsFP8TZLjdHBqVO+FcDde/yqLMbAzaGfsOL/yvqsKgoCLQIsY9XyKVuVYuzreBRKo/kXUROCIB9wNFKvXvsMquCPGGDeumjVmcOvKqds3Gz4Ij3YjMiuLEcy4fJCl+Oqt9uKTAzETtxh+0G6UxqPc0IpS3ZzBGKVN+waOqbee0EgZys187qDVkg57L2QZ8I5An7EsMpo7T4KQDhxE8ZU4aLvwS/fobHaFW/9pSjqnH1v1O7gVpPS1T+GDTBHUDvlFVA3EtmTaXT2P3JHpFZCGex9AuyqQPOggwC2CVedmeWEc5osbGJhJjWjHvqkfcfLjIJB8bvp5y3FBXodJAEX9lW+Kbhe3121JU5pAlDp9QWG7a9wHdTSLbhC3qJXAtovOrOqrPTUD/LkSVMYDI+MaN+kw1kgCXH/ZXZmE8WCu7e8g7Vh4XEuRwhwAloGN6KyU+0LUP1SaMRTktur6sUtTIGdWdkaIVXn5sHMiLFYmwXy07uSZ3bGQ8nb3D0yInLkxCH/C/czS+bW3GFACo+bx9GcmDCPYXT1ay4HNFicCwcFNseDnbJMhs9SmI/EXQs1f7AaojMTnBmRpZLvAa++s5cW+GGYjoqZXn7CpGS9bPyv16MLv+81Is2zg1yXYTAwZyGjDrqYYBgsC0I1VgY1sDf1MRZtucL46GMaveIgrx8nlNB2vWkN9pky3GeZL9YvQgw6WEd32pnDxH2d7In83wqPjzk2Ce1fUG24nCBS/GLMEeE+DGud0jMaRbOkR4JmYGw9ej3En+52HHn+Nwy7nQy9gpvf0jOpzPyImCDbtIa+SgFm81nj3Di2SEcxhzqzY3oJbWdNmhbJzacxik73qi+PvY+s5eEr5/Xav8yUltWJHof7vCxw6qejBYa6gb01GOuWfyVVwMpmycrt7bbnWJQ1cULXnChwX3RaktMn1gYAO1kXpgOAEzGE0c/nIqnNWYdzQnfPmFUrBUSLj0SyymsGzBsTc8AmCk0ue8K8Z2lGYgSwHVRgvspWX4W3fvyL0AYwCureXh2MyqohNOEilKqolxQjNIM2B1hDNBWqN3dO6NnJKSE4XicfXHfd/6VVmpNVquWMq3SpcWMhiG3ZWMEWsJ8tTARlCg45uWCKq1iONd8baXLV3C+lutzQ86By5jmEGVYerSLvTsDN1t/VENaNqGCeJPNY5uLuhhoC55C/6zRYNQvzppWru7L+dMh/+t4i9cAgEgsVej5nJKnBPFlUFd2ZaaSoMf1Od1JjJSp3XdaQiXmAS2SUPPU3pLjM2xkpSSK0l1W7EKeQN2CA+dX3Whz3zBmRl8=,iv:DftbkwcfZYce8u+4APA0Od/J6gijDN1c35rBobS7kB4=,tag:IpqjdivPHQrjK/7oRx6spw==,type:str]", + "data": "ENC[AES256_GCM,data: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,iv:Fu+GmDArq6JSpODMPTJ7boKT/N33l57UbHqdTwpYuxA=,tag:gi/VuS3QTzeOiUsZBfm7BQ==,type:str]", "sops": { "age": [ { @@ -11,8 +11,8 @@ "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA0Z2tONmQxTUhZUW12Z2Jm\nUnoxSnpYcnZDNGNzSko1ckl2RDh3NG1VS2dFCmIwUXhmSk1OUk02S0JPVDR5UWJ4\na0gwWlg0V005ZWxYa29PZ0laS2VqM0kKLS0tIHN5SU9pQ090eHljeXJGWm5hRFQ4\nZ001Nzkyb29RYkNUMDNDNlo4YnVQeTQK34bNIBgxId2+DHKQNVV3Iro3KGkE03Sp\niB1+dADT6nRvGvoyPqnLq/NYfw7eQ6XqYt55zkdCta8v6L1UNUkw8g==\n-----END AGE ENCRYPTED FILE-----\n" } ], - "lastmodified": "2025-08-09T20:09:09Z", - "mac": "ENC[AES256_GCM,data:s+LaqADPYV1UjsYZlxh6LGqaTwGzDYWyfcxPXakVUEmCe0YHfphSyRmhWwlr7WWM3w6BsZESq+PKYKtL7UunoolPh0KVEcobsvp7K/ZEPzDOH14ddOGiXDEpYRNqVYZtprR9pvrydOCPJbXO+klpLl0o3mm6j9VX2tIQdx3HNiA=,iv:rI2MG8OJUM6RNkJ3GsSYedOnRBTa+tbpporHC337unE=,tag:SY4yi5T7sFTIV02I8BbISg==,type:str]", + "lastmodified": "2025-10-11T08:44:45Z", + "mac": "ENC[AES256_GCM,data:pNbRA83NQcfWwTjgowEaFlfZVbZntWb1alGKdaX3IqjBlZEmYfJGKaxkbiL1uoMFNmrc5HtQUQLz0QVUpQ87ggH/HEUtdVcHnT65hxWjX3NWg3G2C9cbPqe3SiLv+UWPUsN70gu/xAJUuaiM9tsQoHkpNdefT3t382/uxF+Cb3M=,iv:1njSCqZFoCX46IhiowRqUteG8VJ5EEHDxricjMd4l58=,tag:9WBBXfUUW+7wmXy3zksMKQ==,type:str]", "pgp": [ { "created_at": "2025-06-14T22:31:01Z", @@ -21,6 +21,6 @@ } ], "unencrypted_suffix": "_unencrypted", - "version": "3.10.2" + "version": "3.11.0" } } diff --git a/index.html b/index.html index 82e30e2..3cd10b7 100644 --- a/index.html +++ b/index.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + SwarselSystems: NixOS + Emacs Configurationo @@ -443,8 +443,8 @@
  • 3.2.5.8. Hibernation
  • 3.2.5.9. BTRFS
  • 3.2.5.10. work
  • -
  • 3.2.5.11. microvm-host
  • -
  • 3.2.5.12. microvm-guest
  • +
  • 3.2.5.11. microvm-host
  • +
  • 3.2.5.12. microvm-guest
  • @@ -470,46 +470,56 @@
  • 3.3.1.10. Desktop Entries, MIME types (xdg)
  • 3.3.1.11. Linking dotfiles (Symlinks home.file)
  • 3.3.1.12. Sourcing environment variables
  • -
  • 3.3.1.13. General Programs: bottom, imv, sioyek, bat, carapace, wlogout, swayr, yt-dlp, mpv, jq, nix-index, ripgrep, pandoc, fzf, zoxide
  • +
  • 3.3.1.13. General Programs: bottom, imv, less, lesspipe, sioyek, bat, carapace, wlogout, swayr, yt-dlp, mpv, jq, nix-index, ripgrep, pandoc, fzf, zoxide, timidity
  • 3.3.1.14. nix-index
  • -
  • 3.3.1.15. password-store
  • -
  • 3.3.1.16. direnv
  • -
  • 3.3.1.17. eza
  • -
  • 3.3.1.18. atuin
  • -
  • 3.3.1.19. git
  • -
  • 3.3.1.20. Fuzzel
  • -
  • 3.3.1.21. Starship
  • -
  • 3.3.1.22. Kitty
  • -
  • 3.3.1.23. zsh
  • -
  • 3.3.1.24. zellij
  • -
  • 3.3.1.25. tmux
  • -
  • 3.3.1.26. Mail
  • -
  • 3.3.1.27. Home-manager: Emacs
  • -
  • 3.3.1.28. Waybar
  • -
  • 3.3.1.29. Firefox
  • -
  • 3.3.1.30. Services +
  • 3.3.1.15. nix-your-shell
  • +
  • 3.3.1.16. password-store
  • +
  • 3.3.1.17. direnv
  • +
  • 3.3.1.18. eza
  • +
  • 3.3.1.19. atuin
  • +
  • 3.3.1.20. git
  • +
  • 3.3.1.21. Fuzzel
  • +
  • 3.3.1.22. Starship
  • +
  • 3.3.1.23. Kitty
  • +
  • 3.3.1.24. zsh
  • +
  • 3.3.1.25. zellij
  • +
  • 3.3.1.26. tmux
  • +
  • 3.3.1.27. Mail
  • +
  • 3.3.1.28. Home-manager: Emacs
  • +
  • 3.3.1.29. Waybar
  • +
  • 3.3.1.30. Firefox
  • +
  • 3.3.1.31. Services
  • -
  • 3.3.1.31. Sway
  • -
  • 3.3.1.32. Niri
  • -
  • 3.3.1.33. Kanshi
  • -
  • 3.3.1.34. gpg-agent
  • -
  • 3.3.1.35. gammastep
  • -
  • 3.3.1.36. Spicetify
  • -
  • 3.3.1.37. Obsidian
  • -
  • 3.3.1.38. Anki
  • +
  • 3.3.1.32. Sway
  • +
  • 3.3.1.33. Niri
  • +
  • 3.3.1.34. Kanshi
  • +
  • 3.3.1.35. gpg-agent
  • +
  • 3.3.1.36. gammastep
  • +
  • 3.3.1.37. Spicetify
  • +
  • 3.3.1.38. Obsidian
  • +
  • 3.3.1.39. Anki
  • +
  • 3.3.1.40. Element-desktop
  • +
  • 3.3.1.41. Hexchat
  • +
  • 3.3.1.42. obs-studio
  • +
  • 3.3.1.43. spotify-player
  • +
  • 3.3.1.44. vesktop
  • +
  • 3.3.1.45. batsignal
  • +
  • 3.3.1.46. autotiling
  • +
  • 3.3.1.47. swayidle
  • +
  • 3.3.1.48. swaylock
  • 3.3.2. Server @@ -574,7 +584,7 @@
  • 3.5.31. swarsel-build
  • 3.5.32. swarsel-instantiate
  • 3.5.33. sshrm
  • -
  • 3.5.34. endme
  • +
  • 3.5.34. endme
  • 3.6. Profiles @@ -583,7 +593,7 @@
    • 3.6.1.1. Personal
    • 3.6.1.2. Minimal
    • -
    • 3.6.1.3. Optionals
    • +
    • 3.6.1.3. Optionals
    • 3.6.1.4. Chaostheatre
    • 3.6.1.5. Work
    • 3.6.1.6. Uni
    • @@ -826,7 +836,7 @@

      -This file has 94619 words spanning 24340 lines and was last revised on 2025-10-09 02:38:15 +0200. +This file has 95668 words spanning 24729 lines and was last revised on 2025-10-11 23:49:08 +0200.

      @@ -895,7 +905,7 @@ This section defines my Emacs configuration. For a while, I considered to use ry

      -My emacs is built using the emacs-overlay nix flake, which builds a bleeding edge emacs on wayland (pgtk) with utilities like treesitter support. By executing the below source block, the current build setting can be updated at any time, and you can see my most up-to-date build options (last updated: 2025-10-09 02:38:15 +0200) +My emacs is built using the emacs-overlay nix flake, which builds a bleeding edge emacs on wayland (pgtk) with utilities like treesitter support. By executing the below source block, the current build setting can be updated at any time, and you can see my most up-to-date build options (last updated: 2025-10-11 23:49:08 +0200)

    @@ -1848,7 +1858,8 @@ The rest of the outputs either define or help define the actual configurations: inputs.home-manager.nixosModules.home-manager inputs.stylix.nixosModules.stylix inputs.nswitch-rcm-nix.nixosModules.nswitch-rcm - inputs.swarsel-modules.nixosModules.default + # inputs.swarsel-modules.nixosModules.default + inputs.swarsel-nix.nixosModules.default inputs.niri-flake.nixosModules.niri inputs.microvm.nixosModules.host inputs.microvm.nixosModules.microvm @@ -2528,9 +2539,9 @@ in additions = final: _: import "${self}/pkgs" { pkgs = final; inherit self lib; }; modifications = final: prev: { - vesktop = prev.vesktop.override { - withSystemVencord = true; - }; + # vesktop = prev.vesktop.override { + # withSystemVencord = true; + # }; firefox = prev.firefox.override { nativeMessagingHosts = [ @@ -5365,7 +5376,8 @@ We enable the use of home-manager as a NixoS module. A nice trick h inputs.nix-index-database.homeModules.nix-index inputs.sops-nix.homeManagerModules.sops inputs.spicetify-nix.homeManagerModules.default - inputs.swarsel-modules.homeModules.default + # inputs.swarsel-modules.homeModules.default + inputs.swarsel-nix.homeModules.default { imports = [ "${self}/profiles/home" @@ -5817,7 +5829,7 @@ Mostly used to install some compilers and lsp's that I want to have available wh # pinentry dbus - swaylock-effects + # swaylock-effects syncthingtray-minimal swayosd @@ -12103,8 +12115,8 @@ in -
    -
    3.2.5.11. microvm-host
    +
    +
    3.2.5.11. microvm-host

    Some standard options that should be set for every microvm host. @@ -12130,8 +12142,8 @@ Some standard options that should be set for every microvm host.

    -
    -
    3.2.5.12. microvm-guest
    +
    +
    3.2.5.12. microvm-guest

    Some standard options that should be set vor every microvm guest. We set the default @@ -12327,7 +12339,14 @@ in nixpkgs.overlays = lib.mkIf config.swarselsystems.isNixos (lib.mkForce null); - programs.home-manager.enable = lib.mkIf (!config.swarselsystems.isNixos) true; + programs = { + home-manager.enable = lib.mkIf (!config.swarselsystems.isNixos) true; + man = { + enable = true; + generateCaches = true; + }; + }; + targets.genericLinux.enable = lib.mkIf (!config.swarselsystems.isNixos) true; home = { @@ -12338,6 +12357,11 @@ in sessionVariables = { FLAKE = "/home/${mainUser}/.dotfiles"; }; + extraOutputsToInstall = [ + "doc" + "info" + "devdoc" + ]; }; }; @@ -12490,7 +12514,7 @@ This holds packages that I can use as provided, or with small modifications (as restic # "big" programs - obs-studio + # obs-studio gimp inkscape zoom-us @@ -12499,14 +12523,14 @@ This holds packages that I can use as provided, or with small modifications (as xournalpp # obsidian # spotify - vesktop # discord client + # vesktop # discord client # nextcloud-client # enables a systemd service that I do not want - spotify-player - element-desktop + # spotify-player + # element-desktop + nicotine-plus stable.transmission_3 mktorrent - hexchat hugo # kyria @@ -12996,7 +13020,7 @@ Also in firefox `about:config > toolkit.legacyUserProfileCustomizations.style "tridactyl/tridactylrc".source = self + /files/firefox/tridactyl/tridactylrc; "tridactyl/themes/base16-codeschool.css".source = self + /files/firefox/tridactyl/themes/base16-codeschool.css; "tridactyl/themes/swarsel.css".source = self + /files/firefox/tridactyl/themes/swarsel.css; - "swayidle/config".source = self + /files/swayidle/config; + # "swayidle/config".source = self + /files/swayidle/config; }; }; } @@ -13053,7 +13077,7 @@ in

    -
    3.3.1.13. General Programs: bottom, imv, sioyek, bat, carapace, wlogout, swayr, yt-dlp, mpv, jq, nix-index, ripgrep, pandoc, fzf, zoxide
    +
    3.3.1.13. General Programs: bottom, imv, less, lesspipe, sioyek, bat, carapace, wlogout, swayr, yt-dlp, mpv, jq, nix-index, ripgrep, pandoc, fzf, zoxide, timidity

    This section is for programs that require no further configuration. zsh Integration is enabled by default for these. @@ -13065,26 +13089,30 @@ This section is for programs that require no further configuration. zsh Integrat options.swarselmodules.programs = lib.mkEnableOption "programs settings"; config = lib.mkIf config.swarselmodules.programs { programs = { - bottom.enable = true; - imv.enable = true; - sioyek.enable = true; bat = { enable = true; extraPackages = with pkgs.bat-extras; [ batdiff batman batgrep batwatch ]; }; + bottom.enable = true; carapace.enable = true; - wlogout.enable = true; - swayr.enable = true; - yt-dlp.enable = true; - mpv.enable = true; - jq.enable = true; - ripgrep.enable = true; - pandoc.enable = true; fzf = { enable = true; enableBashIntegration = false; enableZshIntegration = false; }; + imv.enable = true; + jq.enable = true; + less.enable = true; + lesspipe.enable = true; + mpv.enable = true; + pandoc.enable = true; + rclone.enable = true; + ripgrep.enable = true; + sioyek.enable = true; + swayr.enable = true; + timidity.enable = true; + wlogout.enable = true; + yt-dlp.enable = true; zoxide = { enable = true; enableZshIntegration = true; @@ -13135,8 +13163,29 @@ nix-index provides a way to find out which packages are provided by which deriva

    +
    +
    3.3.1.15. nix-your-shell
    +
    +
    +
    { lib, config, ... }:
    +let
    +  moduleName = "nix-your-shell";
    +in
    +{
    +  options.swarselmodules.${moduleName} = lib.mkEnableOption "enable ${moduleName} and settings";
    +  config = lib.mkIf config.swarselmodules.${moduleName} {
    +    programs.${moduleName} = {
    +      enable = true;
    +      enableZshIntegration = true;
    +    };
    +  };
    +}
    +
    +
    +
    +
    -
    3.3.1.15. password-store
    +
    3.3.1.16. password-store

    Enables password store with the pass-otp extension which allows me to store and generate one-time-passwords. @@ -13161,7 +13210,7 @@ Enables password store with the pass-otp extension which allows me

    -
    3.3.1.16. direnv
    +
    3.3.1.17. direnv

    Enables direnv, which I use for nearly all of my nix dev flakes. @@ -13184,7 +13233,7 @@ Enables direnv, which I use for nearly all of my nix dev flakes.

    -
    3.3.1.17. eza
    +
    3.3.1.18. eza

    Eza provides me with a better ls command and some other useful aliases. @@ -13211,7 +13260,7 @@ Eza provides me with a better ls command and some other useful alia

    -
    3.3.1.18. atuin
    +
    3.3.1.19. atuin
    { lib, config, globals, ... }:
    @@ -13237,7 +13286,7 @@ in
     
    -
    3.3.1.19. git
    +
    3.3.1.20. git

    Here I set up my git config, automatic signing of commits, useful aliases for my ost used commands (for when I am not using Magit) as well as a git template defined in Linking dotfiles. @@ -13298,7 +13347,7 @@ in

    -
    3.3.1.20. Fuzzel
    +
    3.3.1.21. Fuzzel

    Here I only need to set basic layout options - the rest is being managed by stylix. @@ -13327,7 +13376,7 @@ Here I only need to set basic layout options - the rest is being managed by styl

    -
    3.3.1.21. Starship
    +
    3.3.1.22. Starship

    Starship makes my zsh look cooler! I have symbols for most programming languages and toolchains, also I build my own powerline. @@ -13463,7 +13512,7 @@ Starship makes my zsh look cooler! I have symbols for most programm

    -
    3.3.1.22. Kitty
    +
    3.3.1.23. Kitty

    Kitty is the terminal emulator of choice for me, it is nice to configure using nix, fast, and has a nice style. @@ -13494,7 +13543,7 @@ The theme is handled by stylix.

    -
    3.3.1.23. zsh
    +
    3.3.1.24. zsh

    zsh is the most convenient shell for me and it happens to be super neat to configure within home manager. @@ -13682,7 +13731,7 @@ in

    -
    3.3.1.24. zellij
    +
    3.3.1.25. zellij
    { self, lib, config, pkgs, ... }:
    @@ -13710,7 +13759,7 @@ in
     
    -
    3.3.1.25. tmux
    +
    3.3.1.26. tmux
    { lib, config, pkgs, ... }:
    @@ -13819,7 +13868,7 @@ in
     
    -
    3.3.1.26. Mail
    +
    3.3.1.27. Mail

    Normally I use 4 mail accounts - here I set them all up. Three of them are Google accounts (sadly), which are a chore to setup. The last is just a sender account that I setup SMTP for here. @@ -14022,7 +14071,7 @@ in

    -
    3.3.1.27. Home-manager: Emacs
    +
    3.3.1.28. Home-manager: Emacs

    By using the emacs-overlay NixOS module, I can install all Emacs packages that I want to use right through NixOS. This is done by passing my init.el file to the configuration which will then be parsed upon system rebuild, looking for use-package sections in the Elisp code. Also I define here the style of Emacs that I want to run - I am going with native Wayland Emacs here (emacs-pgtk). All of the nice options such as tree-sitter support are enabled by default, so I do not need to adjust the build process. @@ -14133,7 +14182,7 @@ in

    -
    3.3.1.28. Waybar
    +
    3.3.1.29. Waybar

    Again I am just using the first bar option here that I was able to find good understandable documentation for. Of note is that the `cpu` section's `format` is not defined here, but in section 1 (since not every machine has the same number of cores) @@ -14489,7 +14538,7 @@ in

    -
    3.3.1.29. Firefox
    +
    3.3.1.30. Firefox

    Setting up firefox along with some policies that are important to me (mostly disabling telemetry related stuff as well as Pocket). I also enable some integrations that enable super useful packages, namely tridactyl and browserpass. @@ -14668,14 +14717,14 @@ I used to build the firefox addon bypass-paywalls-clean myself here

    -
    3.3.1.30. Services
    +
    3.3.1.31. Services

    Services that can be defined through home-manager should be defined here.

    -
    3.3.1.30.1. gnome-keyring
    +
    3.3.1.31.1. gnome-keyring

    Used for storing sessions in e.g. Nextcloud @@ -14696,7 +14745,7 @@ Used for storing sessions in e.g. Nextcloud

    -
    3.3.1.30.2. KDE Connect
    +
    3.3.1.31.2. KDE Connect

    This enables phone/computer communication, including sending clipboard, files etc. Sadly on Wayland many of the features are broken (like remote control). @@ -14719,7 +14768,7 @@ This enables phone/computer communication, including sending clipboard, files et

    -
    3.3.1.30.3. Mako
    +
    3.3.1.31.3. Mako

    Desktop notifications! @@ -14770,7 +14819,7 @@ The `extraConfig` section here CANNOT be reindented. This has something to do wi

    -
    3.3.1.30.4. SwayOSD
    +
    3.3.1.31.4. SwayOSD
    { lib, pkgs, config, ... }:
    @@ -14789,7 +14838,7 @@ The `extraConfig` section here CANNOT be reindented. This has something to do wi
     
    -
    3.3.1.30.5. yubikey-touch-detector
    +
    3.3.1.31.5. yubikey-touch-detector
    { lib, config, pkgs, ... }:
    @@ -14828,9 +14877,9 @@ The `extraConfig` section here CANNOT be reindented. This has something to do wi
     
    -
    -
    3.3.1.30.6. blueman-applet
    -
    +
    +
    3.3.1.31.6. blueman-applet
    +
    { lib, config, ... }:
     {
    @@ -14843,9 +14892,9 @@ The `extraConfig` section here CANNOT be reindented. This has something to do wi
     
    -
    -
    3.3.1.30.7. network-manager-applet
    -
    +
    +
    3.3.1.31.7. network-manager-applet
    +
    { lib, config, ... }:
     {
    @@ -14859,9 +14908,9 @@ The `extraConfig` section here CANNOT be reindented. This has something to do wi
     
    -
    -
    3.3.1.30.8. obsidian service for tray
    -
    +
    +
    3.3.1.31.8. obsidian service for tray
    +
    { lib, config, ... }:
     {
    @@ -14894,9 +14943,9 @@ The `extraConfig` section here CANNOT be reindented. This has something to do wi
     
    -
    -
    3.3.1.30.9. anki service for tray
    -
    +
    +
    3.3.1.31.9. anki service for tray
    +
    { lib, config, ... }:
     {
    @@ -14933,9 +14982,9 @@ The `extraConfig` section here CANNOT be reindented. This has something to do wi
     
    -
    -
    3.3.1.30.10. element service for tray
    -
    +
    +
    3.3.1.31.10. element service for tray
    +
    { lib, config, pkgs, ... }:
     {
    @@ -14968,9 +15017,9 @@ The `extraConfig` section here CANNOT be reindented. This has something to do wi
     
    -
    -
    3.3.1.30.11. vesktop service for tray
    -
    +
    +
    3.3.1.31.11. vesktop service for tray
    +
    { lib, config, pkgs, ... }:
     {
    @@ -15005,7 +15054,7 @@ The `extraConfig` section here CANNOT be reindented. This has something to do wi
     
    -
    3.3.1.31. Sway
    +
    3.3.1.32. Sway

    I am currently using SwayFX, which adds some nice effects to sway, like rounded corners and hiding the separator between title and content of a window. @@ -15167,8 +15216,9 @@ Currently, I am too lazy to explain every option here, but most of it is very se "${modifier}+Shift+p" = "exec pass-fuzzel --type"; "${modifier}+Shift+o" = "exec pass-fuzzel --otp --type"; "${modifier}+Ctrl+p" = "exec 1password --quick-acces"; - "${modifier}+Escape" = "mode $exit"; + # "${modifier}+Escape" = "mode $exit"; "${modifier}+Shift+Escape" = "exec kitty -o confirm_os_window_close=0 btm"; + "${modifier}+Escape" = "exec wlogout"; "${modifier}+h" = "exec hyprpicker | wl-copy"; "${modifier}+s" = "exec grim -g \"$(slurp)\" -t png - | wl-copy -t image/png"; "${modifier}+Shift+s" = "exec slurp | grim -g - Pictures/Screenshots/$(date +'screenshot_%Y-%m-%d-%H%M%S.png')"; @@ -15261,9 +15311,10 @@ Currently, I am too lazy to explain every option here, but most of it is very se { command = "sleep 60; kitty -T spotifytui -o confirm_os_window_close=0 spotify_player"; } ]; seat = { - "*" = { - hide_cursor = "when-typing enable"; - }; + "*" = [ + { hide_cursor = "when-typing enable"; } + { hide_cursor = "2000"; } + ]; }; window = { border = 1; @@ -15409,28 +15460,28 @@ Currently, I am too lazy to explain every option here, but most of it is very se swayfxSettings = config.swarselsystems.swayfxConfig; in " -exec_always autotiling - set $exit \"exit: [s]leep, [l]ock, [p]oweroff, [r]eboot, [u]ser logout\" +# exec_always autotiling + # set $exit \"exit: [s]leep, [l]ock, [p]oweroff, [r]eboot, [u]ser logout\" - mode $exit { - bindsym --to-code { - s exec \"systemctl suspend\", mode \"default\" - h exec \"systemctl hibernate\", mode \"default\" - l exec \"swaylock --screenshots --clock --effect-blur 7x5 --effect-vignette 0.5:0.5 --fade-in 0.2 --daemonize\", mode \"default\ - p exec \"systemctl poweroff\" - r exec \"systemctl reboot\" - u exec \"swaymsg exit\" + # mode $exit { + # bindsym --to-code { + # s exec \"systemctl suspend\", mode \"default\" + # h exec \"systemctl hibernate\", mode \"default\" + # l exec \"swaylock --screenshots --clock --effect-blur 7x5 --effect-vignette 0.5:0.5 --fade-in 0.2 --daemonize\", mode \"default\ + # p exec \"systemctl poweroff\" + # r exec \"systemctl reboot\" + # u exec \"swaymsg exit\" - Return mode \"default\" - Escape mode \"default\" - ${modifier}+Escape mode \"default\" - } - } + # Return mode \"default\" + # Escape mode \"default\" + # ${modifier}+Escape mode \"default\" + # } + # } exec systemctl --user import-environment - exec swayidle -w + # exec swayidle -w - seat * hide_cursor 2000 + # seat * hide_cursor 2000 exec_always kill -1 $(pidof kanshi) @@ -15447,7 +15498,7 @@ exec_always autotiling

    -
    3.3.1.32. Niri
    +
    3.3.1.33. Niri
    { config, pkgs, lib, vars, ... }:
    @@ -15659,7 +15710,7 @@ exec_always autotiling
     
    -
    3.3.1.33. Kanshi
    +
    3.3.1.34. Kanshi
    { self, lib, pkgs, config, ... }:
    @@ -15766,7 +15817,7 @@ exec_always autotiling
     
    -
    3.3.1.34. gpg-agent
    +
    3.3.1.35. gpg-agent

    Settinfs that are needed for the gpg-agent. Also we are enabling emacs support for unlocking my Yubikey here. @@ -15823,7 +15874,7 @@ in

    -
    3.3.1.35. gammastep
    +
    3.3.1.36. gammastep

    This service changes the screen hue at night. I am not sure if that really does something, but I like the color anyways. @@ -15849,7 +15900,7 @@ in

    -
    3.3.1.36. Spicetify
    +
    3.3.1.37. Spicetify
    { inputs, lib, config, pkgs, ... }:
    @@ -15879,9 +15930,9 @@ in
     
    -
    -
    3.3.1.37. Obsidian
    -
    +
    +
    3.3.1.38. Obsidian
    +
    { lib, config, pkgs, nixosConfig ? config, ... }:
       let
    @@ -16019,11 +16070,11 @@ in
     
    -
    -
    3.3.1.38. Anki
    -
    +
    +
    3.3.1.39. Anki
    +
    -
    { inputs, lib, config, pkgs, globals, nixosConfig ? config, ... }:
    +
    { lib, config, pkgs, globals, nixosConfig ? config, ... }:
     let
       moduleName = "anki";
       inherit (config.swarselsystems) isPublic isNixos;
    @@ -16050,7 +16101,7 @@ in
           spacebarRatesCard = true;
           # videoDriver = "opengl";
           sync = {
    -        autoSync = true;
    +        autoSync = false; # sync on profile close will delay system shutdown
             syncMedia = true;
             url = "https://${globals.services.ankisync.domain}";
             usernameFile = nixosConfig.sops.secrets.anki-user.path;
    @@ -16086,6 +16137,310 @@ in
         };
       };
     
    +}
    +
    +
    +
    +
    +
    +
    3.3.1.40. Element-desktop
    +
    +
    +
    { lib, config, ... }:
    +let
    +  moduleName = "element-desktop";
    +in
    +{
    +  options.swarselmodules.${moduleName} = lib.mkEnableOption "enable ${moduleName} and settings";
    +  config = lib.mkIf config.swarselmodules.${moduleName} {
    +    programs.element-desktop = {
    +      enable = true;
    +      settings = {
    +        default_server_config = {
    +          "m.homeserver" = {
    +            base_url = "https://swatrix.swarsel.win/";
    +          };
    +        };
    +        UIFeature = {
    +          feedback = false;
    +          voip = false;
    +          widgets = false;
    +          shareSocial = false;
    +          registration = false;
    +          passwordReset = false;
    +          deactivate = false;
    +        };
    +      };
    +    };
    +  };
    +
    +}
    +
    +
    +
    +
    +
    +
    3.3.1.41. Hexchat
    +
    +
    +
    { lib, config, nixosConfig ? config, ... }:
    +let
    +  moduleName = "hexchat";
    +  inherit (nixosConfig.repo.secrets.common.irc) irc_nick1;
    +in
    +{
    +  options.swarselmodules.${moduleName} = lib.mkEnableOption "enable ${moduleName} and settings";
    +  config = lib.mkIf config.swarselmodules.${moduleName} {
    +    programs.${moduleName} = {
    +      enable = true;
    +      settings = {
    +        inherit irc_nick1;
    +        };
    +      };
    +    };
    +
    +  }
    +
    +
    +
    +
    +
    +
    3.3.1.42. obs-studio
    +
    +
    +
    { lib, config, ... }:
    +let
    +  moduleName = "obs-studio";
    +in
    +{
    +  options.swarselmodules.${moduleName} = lib.mkEnableOption "enable ${moduleName} and settings";
    +  config = lib.mkIf config.swarselmodules.${moduleName} {
    +    programs.${moduleName} = {
    +      enable = true;
    +      };
    +    };
    +
    +  }
    +
    +
    +
    +
    +
    +
    3.3.1.43. spotify-player
    +
    +
    +
    { lib, config, ... }:
    +let
    +  moduleName = "spotify-player";
    +in
    +{
    +  options.swarselmodules.${moduleName} = lib.mkEnableOption "enable ${moduleName} and settings";
    +  config = lib.mkIf config.swarselmodules.${moduleName} {
    +    programs.${moduleName} = {
    +      enable = true;
    +      };
    +    };
    +
    +  }
    +
    +
    +
    +
    +
    +
    3.3.1.44. vesktop
    +
    +
    +
    { lib, config, ... }:
    +let
    +  moduleName = "vesktop";
    +in
    +  {
    +  options.swarselmodules.${moduleName} = lib.mkEnableOption "enable ${moduleName} and settings";
    +  config = lib.mkIf config.swarselmodules.${moduleName} {
    +    programs.${moduleName} = {
    +      enable = true;
    +      settings = {
    +        appBadge = false;
    +        arRPC = false;
    +        checkUpdates = false;
    +        customTitleBar = false;
    +        disableMinSize = true;
    +        minimizeToTray = true;
    +        tray = true;
    +        staticTitle = true;
    +        hardwareAcceleration = true;
    +        discordBranch = "stable";
    +      };
    +      vencord = {
    +        useSystem = true;
    +        settings = {
    +          autoUpdate = false;
    +          autoUpdateNotification = false;
    +          enableReactDevtools = false;
    +          frameless = false;
    +          transparent = false;
    +          winCtrlQ = false;
    +          notifyAboutUpdates = false;
    +          useQuickCss = true;
    +          disableMinSize = true;
    +          winNativeTitleBar = false;
    +          plugins = {
    +            MessageLogger = {
    +              enabled = true;
    +              ignoreSelf = true;
    +            };
    +            ChatInputButtonAPI = {
    +              enabled = false;
    +            };
    +            CommandsAPI = {
    +              enabled = true;
    +            };
    +            MemberListDecoratorsAPI = {
    +              enabled = false;
    +            };
    +            MessageAccessoriesAPI = {
    +              enabled = true;
    +            };
    +            MessageDecorationsAPI = {
    +              enabled = false;
    +            };
    +            MessageEventsAPI = {
    +              enabled = false;
    +            };
    +            MessagePopoverAPI = {
    +              enabled = false;
    +            };
    +            MessageUpdaterAPI = {
    +              enabled = false;
    +            };
    +            ServerListAPI = {
    +              enabled = false;
    +            };
    +            UserSettingsAPI = {
    +              enabled = true;
    +            };
    +            FakeNitro = {
    +              enabled = true;
    +            };
    +          };
    +        };
    +      };
    +    };
    +  };
    +
    +}
    +
    +
    +
    +
    +
    +
    3.3.1.45. batsignal
    +
    +
    +
    { lib, config, ... }:
    +let
    +  moduleName = "batsignal";
    +in
    +{
    +  options.swarselmodules.${moduleName} = lib.mkEnableOption "enable ${moduleName} and settings";
    +  config = lib.mkIf config.swarselmodules.${moduleName} {
    +    services.${moduleName} = {
    +      enable = true;
    +    };
    +  };
    +
    +}
    +
    +
    +
    +
    +
    +
    3.3.1.46. autotiling
    +
    +
    +
    { lib, config, ... }:
    +let
    +  moduleName = "autotiling";
    +in
    +{
    +  options.swarselmodules.${moduleName} = lib.mkEnableOption "enable ${moduleName} and settings";
    +  config = lib.mkIf config.swarselmodules.${moduleName} {
    +    swarselservices.${moduleName} = {
    +      enable = true;
    +      systemdTarget = config.wayland.systemd.target;
    +    };
    +  };
    +
    +}
    +
    +
    +
    +
    +
    +
    3.3.1.47. swayidle
    +
    +
    +
    { lib, config, pkgs, ... }:
    +let
    +  moduleName = "swayidle";
    +in
    +{
    +  options.swarselmodules.${moduleName} = lib.mkEnableOption "enable ${moduleName} and settings";
    +  config = lib.mkIf config.swarselmodules.${moduleName} {
    +    services.${moduleName} =
    +      let
    +        brightnessctl = "${lib.getExe pkgs.brightnessctl}";
    +        swaylock = "${lib.getExe pkgs.swaylock-effects}";
    +        suspend = "${pkgs.systemd}/bin/systemctl";
    +      in
    +      {
    +        enable = true;
    +        systemdTarget = config.wayland.systemd.target;
    +        extraArgs = [ "-w" ];
    +        timeouts = [
    +          { timeout = 60; command = "${brightnessctl} -s; ${brightnessctl} set 80%-"; resumeCommand = "${brightnessctl} -r"; }
    +          # { timeout = 300; command =  "${lib.getExe pkgs.swaylock-effects} -f --screenshots --clock --effect-blur 7x5 --effect-vignette 0.5:0.5 --fade-in 0.2"; }
    +          { timeout = 300; command = "${swaylock} -f"; }
    +          # { timeout = 600; command = ''${pkgs.sway}/bin/swaymsg "output * dpms off"; resumeCommand = "${pkgs.sway}/bin/swaymsg output * dpms on'';  }
    +          { timeout = 600; command = "${suspend}"; }
    +        ];
    +        events = [
    +          # { event = "before-sleep"; command = "${lib.getExe pkgs.swaylock-effects} -f --screenshots --clock --effect-blur 7x5 --effect-vignette 0.5:0.5 --fade-in 0.2"; }
    +          { event = "before-sleep"; command = "${swaylock} -f "; }
    +          { event = "lock"; command = "${swaylock} -f "; }
    +        ];
    +      };
    +  };
    +
    +}
    +
    +
    +
    +
    +
    +
    3.3.1.48. swaylock
    +
    +
    +
    { lib, config, pkgs, ... }:
    +let
    +  moduleName = "swaylock";
    +in
    +{
    +  options.swarselmodules.${moduleName} = lib.mkEnableOption "enable ${moduleName} and settings";
    +  config = lib.mkIf config.swarselmodules.${moduleName} {
    +    programs.${moduleName} = {
    +      enable = true;
    +      package = pkgs.swaylock-effects;
    +      settings = {
    +        screenshots = true;
    +        clock = true;
    +        effect-blur = "7x5";
    +        effect-vignette = "0.5:0.5";
    +        fade-in = "0.2";
    +      };
    +    };
    +  };
    +
     }
     
    @@ -16205,14 +16560,17 @@ The rest of the settings is at
    -
    { lib, config, pkgs, ... }:
    +
    { lib, config, pkgs, nixosConfig ? config,  ... }:
    +let
    +  inherit (config.swarselsystems) isNixos;
    +in
     {
       options.swarselmodules.optional.gaming = lib.mkEnableOption "optional gaming settings";
       config = lib.mkIf config.swarselmodules.optional.gaming {
         # specialisation = {
         #   gaming.configuration = {
         home.packages = with pkgs; [
    -      lutris
    +      # lutris
           wine
           protonplus
           winetricks
    @@ -16240,6 +16598,22 @@ The rest of the settings is at 
     
    { self, config, pkgs, lib, vars, nixosConfig ? config, ... }:
    -let
    -  inherit (config.swarselsystems) homeDir;
    -in
    -{
    -  options.swarselmodules.optional.work = lib.mkEnableOption "optional work settings";
    -  config = lib.mkIf config.swarselmodules.optional.work
    +    let
    +      inherit (config.swarselsystems) homeDir;
    +    in
         {
    -      home.packages = with pkgs; [
    -        stable.teams-for-linux
    -        shellcheck
    -        dig
    -        docker
    -        postman
    -        rclone
    -        stable24_05.awscli2
    -        libguestfs-with-appliance
    -        stable.prometheus.cli
    -        tigervnc
    -        openstackclient
    -
    -        vscode
    -      ];
    -
    -      systemd.user.sessionVariables = {
    -        DOCUMENT_DIR_WORK = lib.mkForce "${homeDir}/Documents/Work";
    -      };
    -
    -      accounts.email.accounts.work =
    -        let
    -          inherit (nixosConfig.repo.secrets.local.work) mailAddress mailName;
    -        in
    +      options.swarselmodules.optional.work = lib.mkEnableOption "optional work settings";
    +      config = lib.mkIf config.swarselmodules.optional.work
             {
    -          primary = false;
    -          address = mailAddress;
    -          userName = mailAddress;
    -          realName = mailName;
    -          passwordCommand = "pizauth show work";
    -          imap = {
    -            host = "outlook.office365.com";
    -            port = 993;
    -            tls.enable = true; # SSL/TLS
    -          };
    -          smtp = {
    -            host = "outlook.office365.com";
    -            port = 587;
    -            tls = {
    -              enable = true; # SSL/TLS
    -              useStartTls = true;
    -            };
    -          };
    -          thunderbird = {
    -            enable = true;
    -            profiles = [ "default" ];
    -            settings = id: {
    -              "mail.smtpserver.smtp_${id}.authMethod" = 10; # oauth
    -              "mail.server.server_${id}.authMethod" = 10; # oauth
    -              # "toolkit.telemetry.enabled" = false;
    -              # "toolkit.telemetry.rejected" = true;
    -              # "toolkit.telemetry.prompted" = 2;
    -            };
    -          };
    -          msmtp = {
    -            enable = true;
    -            extraConfig = {
    -              auth = "xoauth2";
    -              host = "outlook.office365.com";
    -              protocol = "smtp";
    -              port = "587";
    -              tls = "on";
    -              tls_starttls = "on";
    -              from = "${mailAddress}";
    -              user = "${mailAddress}";
    -              passwordeval = "pizauth show work";
    -            };
    -          };
    -          mu.enable = true;
    -          mbsync = {
    -            enable = true;
    -            expunge = "both";
    -            patterns = [ "INBOX" ];
    -            extraConfig = {
    -              account = {
    -                AuthMechs = "XOAUTH2";
    -              };
    -            };
    -          };
    -        };
    +          home.packages = with pkgs; [
    +            stable.teams-for-linux
    +            shellcheck
    +            dig
    +            docker
    +            postman
    +            # rclone
    +            libguestfs-with-appliance
    +            stable.prometheus.cli
    +            tigervnc
    +            # openstackclient
     
    -      # wayland.windowManager.sway.config = {
    -      #   output = {
    -      #     "Applied Creative Technology Transmitter QUATTRO201811" = {
    -      #       bg = "${self}/files/wallpaper/navidrome.png ${config.stylix.imageScalingMode}";
    -      #     };
    -      #     "Hewlett Packard HP Z24i CN44250RDT" = {
    -      #       bg = "${self}/files/wallpaper/op6wp.png ${config.stylix.imageScalingMode}";
    -      #     };
    -      #     "HP Inc. HP 732pk CNC4080YL5" = {
    -      #       bg = "${self}/files/wallpaper/botanicswp.png ${config.stylix.imageScalingMode}";
    -      #     };
    -      #   };
    -      # };
    -
    -      stylix = {
    -        targets.firefox.profileNames =
    -          let
    -            inherit (nixosConfig.repo.secrets.local.work) user1 user2 user3;
    -          in
    -          [
    -            "${user1}"
    -            "${user2}"
    -            "${user3}"
    -            "work"
    +            vscode
               ];
    -      };
     
    -      programs =
    -        let
    -          inherit (nixosConfig.repo.secrets.local.work) user1 user1Long user2 user2Long user3 user3Long user4 path1 loc1 loc2 site1 site2 site3 site4 site5 site6 site7 lifecycle1 lifecycle2 domain1 domain2 gitMail;
    -        in
    -        {
    -          git.userEmail = lib.mkForce gitMail;
     
    -          zsh = {
    -            shellAliases = {
    -              dssh = "ssh -l ${user1Long}";
    -              cssh = "ssh -l ${user2Long}";
    -              wssh = "ssh -l ${user3Long}";
    -            };
    -            cdpath = [
    -              "~/Documents/Work"
    -            ];
    -            dirHashes = {
    -              d = "$HOME/.dotfiles";
    -              w = "$HOME/Documents/Work";
    -              s = "$HOME/.dotfiles/secrets";
    -              pr = "$HOME/Documents/Private";
    -              ac = path1;
    -            };
    -
    -            sessionVariables = {
    -              VSPHERE_USER = "$(cat ${nixosConfig.sops.secrets.vcuser.path})";
    -              VSPHERE_PW = "$(cat ${nixosConfig.sops.secrets.vcpw.path})";
    -              GOVC_USERNAME = "$(cat ${nixosConfig.sops.secrets.govcuser.path})";
    -              GOVC_PASSWORD = "$(cat ${nixosConfig.sops.secrets.govcpw.path})";
    -              GOVC_URL = "$(cat ${nixosConfig.sops.secrets.govcurl.path})";
    -              GOVC_DATACENTER = "$(cat ${nixosConfig.sops.secrets.govcdc.path})";
    -              GOVC_DATASTORE = "$(cat ${nixosConfig.sops.secrets.govcds.path})";
    -              GOVC_HOST = "$(cat ${nixosConfig.sops.secrets.govchost.path})";
    -              GOVC_RESOURCE_POOL = "$(cat ${nixosConfig.sops.secrets.govcpool.path})";
    -              GOVC_NETWORK = "$(cat ${nixosConfig.sops.secrets.govcnetwork.path})";
    -            };
    +          systemd.user.sessionVariables = {
    +            DOCUMENT_DIR_WORK = lib.mkForce "${homeDir}/Documents/Work";
               };
     
    -          ssh = {
    -            matchBlocks = {
    -              "${loc1}" = {
    -                hostname = "${loc1}.${domain2}";
    -                user = user4;
    -              };
    -              "${loc1}.stg" = {
    -                hostname = "${loc1}.${lifecycle1}.${domain2}";
    -                user = user4;
    -              };
    -              "${loc1}.staging" = {
    -                hostname = "${loc1}.${lifecycle1}.${domain2}";
    -                user = user4;
    -              };
    -              "${loc1}.dev" = {
    -                hostname = "${loc1}.${lifecycle2}.${domain2}";
    -                user = user4;
    -              };
    -              "${loc2}" = {
    -                hostname = "${loc2}.${domain1}";
    -                user = user1Long;
    -              };
    -              "${loc2}.stg" = {
    -                hostname = "${loc2}.${lifecycle1}.${domain2}";
    -                user = user1Long;
    -              };
    -              "${loc2}.staging" = {
    -                hostname = "${loc2}.${lifecycle1}.${domain2}";
    -                user = user1Long;
    -              };
    -              "*.${domain1}" = {
    -                user = user1Long;
    -              };
    -            };
    -          };
    -
    -          firefox = {
    -            profiles =
    -              let
    -                isDefault = false;
    -              in
    -              {
    -                "${user1}" = lib.recursiveUpdate
    -                  {
    -                    inherit isDefault;
    -                    id = 1;
    -                    settings = {
    -                      "browser.startup.homepage" = "${site1}|${site2}";
    -                    };
    -                  }
    -                  vars.firefox;
    -                "${user2}" = lib.recursiveUpdate
    -                  {
    -                    inherit isDefault;
    -                    id = 2;
    -                    settings = {
    -                      "browser.startup.homepage" = "${site3}";
    -                    };
    -                  }
    -                  vars.firefox;
    -                "${user3}" = lib.recursiveUpdate
    -                  {
    -                    inherit isDefault;
    -                    id = 3;
    -                  }
    -                  vars.firefox;
    -                work = lib.recursiveUpdate
    -                  {
    -                    inherit isDefault;
    -                    id = 4;
    -                    settings = {
    -                      "browser.startup.homepage" = "${site4}|${site5}|${site6}|${site7}";
    -                    };
    -                  }
    -                  vars.firefox;
    -              };
    -          };
    -
    -          chromium = {
    -            enable = true;
    -            package = pkgs.chromium;
    -
    -            extensions = [
    -              # 1password
    -              "gejiddohjgogedgjnonbofjigllpkmbf"
    -              # dark reader
    -              "eimadpbcbfnmbkopoojfekhnkhdbieeh"
    -              # ublock origin
    -              "cjpalhdlnbpafiamejdnhcphjbkeiagm"
    -              # i still dont care about cookies
    -              "edibdbjcniadpccecjdfdjjppcpchdlm"
    -              # browserpass
    -              "naepdomgkenhinolocfifgehidddafch"
    -            ];
    -          };
    -        };
    -
    -      services = {
    -        kanshi = {
    -          settings = [
    +          accounts.email.accounts.work =
    +            let
    +              inherit (nixosConfig.repo.secrets.local.work) mailAddress mailName;
    +            in
                 {
    -              # seminary room
    -              output = {
    -                criteria = "Applied Creative Technology Transmitter QUATTRO201811";
    -                scale = 1.0;
    -                mode = "1280x720";
    +              primary = false;
    +              address = mailAddress;
    +              userName = mailAddress;
    +              realName = mailName;
    +              passwordCommand = "pizauth show work";
    +              imap = {
    +                host = "outlook.office365.com";
    +                port = 993;
    +                tls.enable = true; # SSL/TLS
                   };
    -            }
    -            {
    -              # work main screen
    -              output = {
    -                criteria = "HP Inc. HP 732pk CNC4080YL5";
    -                scale = 1.0;
    -                mode = "3840x2160";
    -              };
    -            }
    -            {
    -              # work side screen
    -              output = {
    -                criteria = "Hewlett Packard HP Z24i CN44250RDT";
    -                scale = 1.0;
    -                mode = "1920x1200";
    -                transform = "270";
    -              };
    -            }
    -            {
    -              profile = {
    -                name = "lidopen";
    -                exec = [
    -                  "${pkgs.swaybg}/bin/swaybg --output 'HP Inc. HP 732pk CNC4080YL5' --image ${self}/files/wallpaper/botanicswp.png --mode ${config.stylix.imageScalingMode}"
    -                  "${pkgs.swaybg}/bin/swaybg --output 'Hewlett Packard HP Z24i CN44250RDT' --image ${self}/files/wallpaper/op6wp.png --mode ${config.stylix.imageScalingMode}"
    -                ];
    -                outputs = [
    -                  {
    -                    criteria = config.swarselsystems.sharescreen;
    -                    status = "enable";
    -                    scale = 1.5;
    -                    position = "1462,0";
    -                  }
    -                  {
    -                    criteria = "HP Inc. HP 732pk CNC4080YL5";
    -                    scale = 1.4;
    -                    mode = "3840x2160";
    -                    position = "-1280,0";
    -                  }
    -                  {
    -                    criteria = "Hewlett Packard HP Z24i CN44250RDT";
    -                    scale = 1.0;
    -                    mode = "1920x1200";
    -                    transform = "90";
    -                    position = "-2480,0";
    -                  }
    -                ];
    -              };
    -            }
    -            {
    -              profile =
    -                let
    -                  monitor = "Applied Creative Technology Transmitter QUATTRO201811";
    -                in
    -                {
    -                  name = "lidopen";
    -                  exec = [
    -                    "${pkgs.swaybg}/bin/swaybg --output '${monitor}' --image ${self}/files/wallpaper/navidrome.png --mode ${config.stylix.imageScalingMode}"
    -                    "${pkgs.kanshare}/bin/kanshare ${config.swarselsystems.sharescreen} '${monitor}'"
    -                  ];
    -                  outputs = [
    -                    {
    -                      criteria = config.swarselsystems.sharescreen;
    -                      status = "enable";
    -                      scale = 1.7;
    -                      position = "2560,0";
    -                    }
    -                    {
    -                      criteria = "Applied Creative Technology Transmitter QUATTRO201811";
    -                      scale = 1.0;
    -                      mode = "1280x720";
    -                      position = "10000,10000";
    -                    }
    -                  ];
    +              smtp = {
    +                host = "outlook.office365.com";
    +                port = 587;
    +                tls = {
    +                  enable = true; # SSL/TLS
    +                  useStartTls = true;
                     };
    -            }
    +              };
    +              thunderbird = {
    +                enable = true;
    +                profiles = [ "default" ];
    +                settings = id: {
    +                  "mail.smtpserver.smtp_${id}.authMethod" = 10; # oauth
    +                  "mail.server.server_${id}.authMethod" = 10; # oauth
    +                  # "toolkit.telemetry.enabled" = false;
    +                  # "toolkit.telemetry.rejected" = true;
    +                  # "toolkit.telemetry.prompted" = 2;
    +                };
    +              };
    +              msmtp = {
    +                enable = true;
    +                extraConfig = {
    +                  auth = "xoauth2";
    +                  host = "outlook.office365.com";
    +                  protocol = "smtp";
    +                  port = "587";
    +                  tls = "on";
    +                  tls_starttls = "on";
    +                  from = "${mailAddress}";
    +                  user = "${mailAddress}";
    +                  passwordeval = "pizauth show work";
    +                };
    +              };
    +              mu.enable = true;
    +              mbsync = {
    +                enable = true;
    +                expunge = "both";
    +                patterns = [ "INBOX" ];
    +                extraConfig = {
    +                  account = {
    +                    AuthMechs = "XOAUTH2";
    +                  };
    +                };
    +              };
    +            };
    +
    +          # wayland.windowManager.sway.config = {
    +          #   output = {
    +          #     "Applied Creative Technology Transmitter QUATTRO201811" = {
    +          #       bg = "${self}/files/wallpaper/navidrome.png ${config.stylix.imageScalingMode}";
    +          #     };
    +          #     "Hewlett Packard HP Z24i CN44250RDT" = {
    +          #       bg = "${self}/files/wallpaper/op6wp.png ${config.stylix.imageScalingMode}";
    +          #     };
    +          #     "HP Inc. HP 732pk CNC4080YL5" = {
    +          #       bg = "${self}/files/wallpaper/botanicswp.png ${config.stylix.imageScalingMode}";
    +          #     };
    +          #   };
    +          # };
    +
    +          stylix = {
    +            targets.firefox.profileNames =
    +              let
    +                inherit (nixosConfig.repo.secrets.local.work) user1 user2 user3;
    +              in
    +              [
    +                "${user1}"
    +                "${user2}"
    +                "${user3}"
    +                "work"
    +              ];
    +          };
    +
    +          programs =
    +            let
    +              inherit (nixosConfig.repo.secrets.local.work) user1 user1Long user2 user2Long user3 user3Long user4 path1 loc1 loc2 site1 site2 site3 site4 site5 site6 site7 lifecycle1 lifecycle2 domain1 domain2 gitMail clouds;
    +            in
                 {
    -              profile = {
    -                name = "lidclosed";
    -                exec = [
    -                  "${pkgs.swaybg}/bin/swaybg --output 'HP Inc. HP 732pk CNC4080YL5' --image ${self}/files/wallpaper/botanicswp.png --mode ${config.stylix.imageScalingMode}"
    -                  "${pkgs.swaybg}/bin/swaybg --output 'Hewlett Packard HP Z24i CN44250RDT' --image ${self}/files/wallpaper/op6wp.png --mode ${config.stylix.imageScalingMode}"
    +              openstackclient = {
    +                enable = true;
    +                inherit clouds;
    +};
    +              awscli = {
    +                enable = true;
    +                package = pkgs.stable24_05.awscli2;
    +                settings = {
    +                  "default" = { };
    +                  "profile s3-imagebuilder-prod" = { };
    +                };
    +                credentials = {
    +                  "s3-imagebuilder-prod" = {
    +                    aws_access_key_id = "5OYXY4879EJG9I91K1B6";
    +                    credential_process = "${pkgs.pass}/bin/pass show work/awscli/s3-imagebuilder-prod/secret-key";
    +                  };
    +                };
    +              };
    +              git.userEmail = lib.mkForce gitMail;
    +
    +              zsh = {
    +                shellAliases = {
    +                  dssh = "ssh -l ${user1Long}";
    +                  cssh = "ssh -l ${user2Long}";
    +                  wssh = "ssh -l ${user3Long}";
    +                };
    +                cdpath = [
    +                  "~/Documents/Work"
                     ];
    -                outputs = [
    -                  {
    -                    criteria = config.swarselsystems.sharescreen;
    -                    status = "disable";
    -                  }
    +                dirHashes = {
    +                  d = "$HOME/.dotfiles";
    +                  w = "$HOME/Documents/Work";
    +                  s = "$HOME/.dotfiles/secrets";
    +                  pr = "$HOME/Documents/Private";
    +                  ac = path1;
    +                };
    +
    +                sessionVariables = {
    +                  VSPHERE_USER = "$(cat ${nixosConfig.sops.secrets.vcuser.path})";
    +                  VSPHERE_PW = "$(cat ${nixosConfig.sops.secrets.vcpw.path})";
    +                  GOVC_USERNAME = "$(cat ${nixosConfig.sops.secrets.govcuser.path})";
    +                  GOVC_PASSWORD = "$(cat ${nixosConfig.sops.secrets.govcpw.path})";
    +                  GOVC_URL = "$(cat ${nixosConfig.sops.secrets.govcurl.path})";
    +                  GOVC_DATACENTER = "$(cat ${nixosConfig.sops.secrets.govcdc.path})";
    +                  GOVC_DATASTORE = "$(cat ${nixosConfig.sops.secrets.govcds.path})";
    +                  GOVC_HOST = "$(cat ${nixosConfig.sops.secrets.govchost.path})";
    +                  GOVC_RESOURCE_POOL = "$(cat ${nixosConfig.sops.secrets.govcpool.path})";
    +                  GOVC_NETWORK = "$(cat ${nixosConfig.sops.secrets.govcnetwork.path})";
    +                };
    +              };
    +
    +              ssh = {
    +                matchBlocks = {
    +                  "${loc1}" = {
    +                    hostname = "${loc1}.${domain2}";
    +                    user = user4;
    +                  };
    +                  "${loc1}.stg" = {
    +                    hostname = "${loc1}.${lifecycle1}.${domain2}";
    +                    user = user4;
    +                  };
    +                  "${loc1}.staging" = {
    +                    hostname = "${loc1}.${lifecycle1}.${domain2}";
    +                    user = user4;
    +                  };
    +                  "${loc1}.dev" = {
    +                    hostname = "${loc1}.${lifecycle2}.${domain2}";
    +                    user = user4;
    +                  };
    +                  "${loc2}" = {
    +                    hostname = "${loc2}.${domain1}";
    +                    user = user1Long;
    +                  };
    +                  "${loc2}.stg" = {
    +                    hostname = "${loc2}.${lifecycle1}.${domain2}";
    +                    user = user1Long;
    +                  };
    +                  "${loc2}.staging" = {
    +                    hostname = "${loc2}.${lifecycle1}.${domain2}";
    +                    user = user1Long;
    +                  };
    +                  "*.${domain1}" = {
    +                    user = user1Long;
    +                  };
    +                };
    +              };
    +
    +              firefox = {
    +                profiles =
    +                  let
    +                    isDefault = false;
    +                  in
                       {
    +                    "${user1}" = lib.recursiveUpdate
    +                      {
    +                        inherit isDefault;
    +                        id = 1;
    +                        settings = {
    +                          "browser.startup.homepage" = "${site1}|${site2}";
    +                        };
    +                      }
    +                      vars.firefox;
    +                    "${user2}" = lib.recursiveUpdate
    +                      {
    +                        inherit isDefault;
    +                        id = 2;
    +                        settings = {
    +                          "browser.startup.homepage" = "${site3}";
    +                        };
    +                      }
    +                      vars.firefox;
    +                    "${user3}" = lib.recursiveUpdate
    +                      {
    +                        inherit isDefault;
    +                        id = 3;
    +                      }
    +                      vars.firefox;
    +                    work = lib.recursiveUpdate
    +                      {
    +                        inherit isDefault;
    +                        id = 4;
    +                        settings = {
    +                          "browser.startup.homepage" = "${site4}|${site5}|${site6}|${site7}";
    +                        };
    +                      }
    +                      vars.firefox;
    +                  };
    +              };
    +
    +              chromium = {
    +                enable = true;
    +                package = pkgs.chromium;
    +
    +                extensions = [
    +                  # 1password
    +                  "gejiddohjgogedgjnonbofjigllpkmbf"
    +                  # dark reader
    +                  "eimadpbcbfnmbkopoojfekhnkhdbieeh"
    +                  # ublock origin
    +                  "cjpalhdlnbpafiamejdnhcphjbkeiagm"
    +                  # i still dont care about cookies
    +                  "edibdbjcniadpccecjdfdjjppcpchdlm"
    +                  # browserpass
    +                  "naepdomgkenhinolocfifgehidddafch"
    +                ];
    +              };
    +            };
    +
    +          services = {
    +            kanshi = {
    +              settings = [
    +                {
    +                  # seminary room
    +                  output = {
    +                    criteria = "Applied Creative Technology Transmitter QUATTRO201811";
    +                    scale = 1.0;
    +                    mode = "1280x720";
    +                  };
    +                }
    +                {
    +                  # work main screen
    +                  output = {
                         criteria = "HP Inc. HP 732pk CNC4080YL5";
    -                    scale = 1.4;
    +                    scale = 1.0;
                         mode = "3840x2160";
    -                    position = "-1280,0";
    -                  }
    -                  {
    +                  };
    +                }
    +                {
    +                  # work side screen
    +                  output = {
                         criteria = "Hewlett Packard HP Z24i CN44250RDT";
                         scale = 1.0;
                         mode = "1920x1200";
                         transform = "270";
    -                    position = "-2480,0";
    -                  }
    -                ];
    -              };
    -            }
    -            {
    -              profile =
    -                let
    -                  monitor = "Applied Creative Technology Transmitter QUATTRO201811";
    -                in
    +                  };
    +                }
                     {
    -                  name = "lidclosed";
    -                  exec = [
    -                    "${pkgs.swaybg}/bin/swaybg --output '${monitor}' --image ${self}/files/wallpaper/navidrome.png --mode ${config.stylix.imageScalingMode}"
    -                  ];
    -                  outputs = [
    +                  profile = {
    +                    name = "lidopen";
    +                    exec = [
    +                      "${pkgs.swaybg}/bin/swaybg --output 'HP Inc. HP 732pk CNC4080YL5' --image ${self}/files/wallpaper/botanicswp.png --mode ${config.stylix.imageScalingMode}"
    +                      "${pkgs.swaybg}/bin/swaybg --output 'Hewlett Packard HP Z24i CN44250RDT' --image ${self}/files/wallpaper/op6wp.png --mode ${config.stylix.imageScalingMode}"
    +                    ];
    +                    outputs = [
    +                      {
    +                        criteria = config.swarselsystems.sharescreen;
    +                        status = "enable";
    +                        scale = 1.5;
    +                        position = "1462,0";
    +                      }
    +                      {
    +                        criteria = "HP Inc. HP 732pk CNC4080YL5";
    +                        scale = 1.4;
    +                        mode = "3840x2160";
    +                        position = "-1280,0";
    +                      }
    +                      {
    +                        criteria = "Hewlett Packard HP Z24i CN44250RDT";
    +                        scale = 1.0;
    +                        mode = "1920x1200";
    +                        transform = "90";
    +                        position = "-2480,0";
    +                      }
    +                    ];
    +                  };
    +                }
    +                {
    +                  profile =
    +                    let
    +                      monitor = "Applied Creative Technology Transmitter QUATTRO201811";
    +                    in
                         {
    -                      criteria = config.swarselsystems.sharescreen;
    -                      status = "disable";
    -                    }
    +                      name = "lidopen";
    +                      exec = [
    +                        "${pkgs.swaybg}/bin/swaybg --output '${monitor}' --image ${self}/files/wallpaper/navidrome.png --mode ${config.stylix.imageScalingMode}"
    +                        "${pkgs.kanshare}/bin/kanshare ${config.swarselsystems.sharescreen} '${monitor}'"
    +                      ];
    +                      outputs = [
    +                        {
    +                          criteria = config.swarselsystems.sharescreen;
    +                          status = "enable";
    +                          scale = 1.7;
    +                          position = "2560,0";
    +                        }
    +                        {
    +                          criteria = "Applied Creative Technology Transmitter QUATTRO201811";
    +                          scale = 1.0;
    +                          mode = "1280x720";
    +                          position = "10000,10000";
    +                        }
    +                      ];
    +                    };
    +                }
    +                {
    +                  profile = {
    +                    name = "lidclosed";
    +                    exec = [
    +                      "${pkgs.swaybg}/bin/swaybg --output 'HP Inc. HP 732pk CNC4080YL5' --image ${self}/files/wallpaper/botanicswp.png --mode ${config.stylix.imageScalingMode}"
    +                      "${pkgs.swaybg}/bin/swaybg --output 'Hewlett Packard HP Z24i CN44250RDT' --image ${self}/files/wallpaper/op6wp.png --mode ${config.stylix.imageScalingMode}"
    +                    ];
    +                    outputs = [
    +                      {
    +                        criteria = config.swarselsystems.sharescreen;
    +                        status = "disable";
    +                      }
    +                      {
    +                        criteria = "HP Inc. HP 732pk CNC4080YL5";
    +                        scale = 1.4;
    +                        mode = "3840x2160";
    +                        position = "-1280,0";
    +                      }
    +                      {
    +                        criteria = "Hewlett Packard HP Z24i CN44250RDT";
    +                        scale = 1.0;
    +                        mode = "1920x1200";
    +                        transform = "270";
    +                        position = "-2480,0";
    +                      }
    +                    ];
    +                  };
    +                }
    +                {
    +                  profile =
    +                    let
    +                      monitor = "Applied Creative Technology Transmitter QUATTRO201811";
    +                    in
                         {
    -                      criteria = "Applied Creative Technology Transmitter QUATTRO201811";
    -                      scale = 1.0;
    -                      mode = "1280x720";
    -                      position = "10000,10000";
    -                    }
    -                  ];
    -                };
    -            }
    -          ];
    -        };
    -      };
    -
    -      systemd.user.services = {
    -        pizauth.Service = {
    -          ExecStartPost = [
    -            "${pkgs.toybox}/bin/sleep 1"
    -            "//bin/sh -c '${lib.getExe pkgs.pizauth} restore < ${homeDir}/.pizauth.state'"
    -          ];
    -        };
    -
    -        teams-applet = {
    -          Unit = {
    -            Description = "teams applet";
    -            Requires = [ "tray.target" ];
    -            After = [
    -              "graphical-session.target"
    -              "tray.target"
    -            ];
    -            PartOf = [ "graphical-session.target" ];
    -          };
    -
    -          Install = {
    -            WantedBy = [ "graphical-session.target" ];
    -          };
    -
    -          Service = {
    -            ExecStart = "${pkgs.stable.teams-for-linux}/bin/teams-for-linux --disableGpu=true --minimized=true --trayIconEnabled=true";
    -          };
    -        };
    -
    -        onepassword-applet = {
    -          Unit = {
    -            Description = "1password applet";
    -            Requires = [ "tray.target" ];
    -            After = [
    -              "graphical-session.target"
    -              "tray.target"
    -            ];
    -            PartOf = [ "graphical-session.target" ];
    -          };
    -
    -          Install = {
    -            WantedBy = [ "graphical-session.target" ];
    -          };
    -
    -          Service = {
    -            ExecStart = "${pkgs._1password-gui}/bin/1password";
    -          };
    -        };
    -
    -      };
    -
    -      swarselservices.pizauth = {
    -        enable = true;
    -        extraConfig = ''
    -          auth_notify_cmd = "if [[ \"$(notify-send -A \"Open $PIZAUTH_ACCOUNT\" -t 30000 'pizauth authorisation')\" == \"0\" ]]; then open \"$PIZAUTH_URL\"; fi";
    -          error_notify_cmd = "notify-send -t 90000 \"pizauth error for $PIZAUTH_ACCOUNT\" \"$PIZAUTH_MSG\"";
    -          token_event_cmd = "pizauth dump > ${homeDir}/.pizauth.state";
    -        '';
    -        accounts = {
    -          work = {
    -            authUri = "https://login.microsoftonline.com/common/oauth2/v2.0/authorize";
    -            tokenUri = "https://login.microsoftonline.com/common/oauth2/v2.0/token";
    -            clientId = "08162f7c-0fd2-4200-a84a-f25a4db0b584";
    -            clientSecret = "TxRBilcHdC6WGBee]fs?QR:SJ8nI[g82";
    -            scopes = [
    -              "https://outlook.office365.com/IMAP.AccessAsUser.All"
    -              "https://outlook.office365.com/SMTP.Send"
    -              "offline_access"
    -            ];
    -            loginHint = "${nixosConfig.repo.secrets.local.work.mailAddress}";
    -          };
    -        };
    -
    -      };
    -
    -      xdg =
    -        let
    -          inherit (nixosConfig.repo.secrets.local.work) user1 user2 user3;
    -        in
    -        {
    -          mimeApps = {
    -            defaultApplications = {
    -              "x-scheme-handler/msteams" = [ "teams-for-linux.desktop" ];
    +                      name = "lidclosed";
    +                      exec = [
    +                        "${pkgs.swaybg}/bin/swaybg --output '${monitor}' --image ${self}/files/wallpaper/navidrome.png --mode ${config.stylix.imageScalingMode}"
    +                      ];
    +                      outputs = [
    +                        {
    +                          criteria = config.swarselsystems.sharescreen;
    +                          status = "disable";
    +                        }
    +                        {
    +                          criteria = "Applied Creative Technology Transmitter QUATTRO201811";
    +                          scale = 1.0;
    +                          mode = "1280x720";
    +                          position = "10000,10000";
    +                        }
    +                      ];
    +                    };
    +                }
    +              ];
                 };
               };
    -          desktopEntries =
    +
    +          systemd.user.services = {
    +            pizauth.Service = {
    +              ExecStartPost = [
    +                "${pkgs.toybox}/bin/sleep 1"
    +                "//bin/sh -c '${lib.getExe pkgs.pizauth} restore < ${homeDir}/.pizauth.state'"
    +              ];
    +            };
    +
    +            teams-applet = {
    +              Unit = {
    +                Description = "teams applet";
    +                Requires = [ "tray.target" ];
    +                After = [
    +                  "graphical-session.target"
    +                  "tray.target"
    +                ];
    +                PartOf = [ "graphical-session.target" ];
    +              };
    +
    +              Install = {
    +                WantedBy = [ "graphical-session.target" ];
    +              };
    +
    +              Service = {
    +                ExecStart = "${pkgs.stable.teams-for-linux}/bin/teams-for-linux --disableGpu=true --minimized=true --trayIconEnabled=true";
    +              };
    +            };
    +
    +            onepassword-applet = {
    +              Unit = {
    +                Description = "1password applet";
    +                Requires = [ "tray.target" ];
    +                After = [
    +                  "graphical-session.target"
    +                  "tray.target"
    +                ];
    +                PartOf = [ "graphical-session.target" ];
    +              };
    +
    +              Install = {
    +                WantedBy = [ "graphical-session.target" ];
    +              };
    +
    +              Service = {
    +                ExecStart = "${pkgs._1password-gui}/bin/1password";
    +              };
    +            };
    +
    +          };
    +
    +          swarselservices.pizauth = {
    +            enable = true;
    +            extraConfig = ''
    +              auth_notify_cmd = "if [[ \"$(notify-send -A \"Open $PIZAUTH_ACCOUNT\" -t 30000 'pizauth authorisation')\" == \"0\" ]]; then open \"$PIZAUTH_URL\"; fi";
    +              error_notify_cmd = "notify-send -t 90000 \"pizauth error for $PIZAUTH_ACCOUNT\" \"$PIZAUTH_MSG\"";
    +              token_event_cmd = "pizauth dump > ${homeDir}/.pizauth.state";
    +            '';
    +            accounts = {
    +              work = {
    +                authUri = "https://login.microsoftonline.com/common/oauth2/v2.0/authorize";
    +                tokenUri = "https://login.microsoftonline.com/common/oauth2/v2.0/token";
    +                clientId = "08162f7c-0fd2-4200-a84a-f25a4db0b584";
    +                clientSecret = "TxRBilcHdC6WGBee]fs?QR:SJ8nI[g82";
    +                scopes = [
    +                  "https://outlook.office365.com/IMAP.AccessAsUser.All"
    +                  "https://outlook.office365.com/SMTP.Send"
    +                  "offline_access"
    +                ];
    +                loginHint = "${nixosConfig.repo.secrets.local.work.mailAddress}";
    +              };
    +            };
    +
    +          };
    +
    +          xdg =
                 let
    -              terminal = false;
    -              categories = [ "Application" ];
    -              icon = "firefox";
    +              inherit (nixosConfig.repo.secrets.local.work) user1 user2 user3;
                 in
                 {
    -              firefox_work = {
    -                name = "Firefox (work)";
    -                genericName = "Firefox work";
    -                exec = "firefox -p work";
    -                inherit terminal categories icon;
    -              };
    -              "firefox_${user1}" = {
    -                name = "Firefox (${user1})";
    -                genericName = "Firefox ${user1}";
    -                exec = "firefox -p ${user1}";
    -                inherit terminal categories icon;
    +              mimeApps = {
    +                defaultApplications = {
    +                  "x-scheme-handler/msteams" = [ "teams-for-linux.desktop" ];
    +                };
                   };
    +              desktopEntries =
    +                let
    +                  terminal = false;
    +                  categories = [ "Application" ];
    +                  icon = "firefox";
    +                in
    +                {
    +                  firefox_work = {
    +                    name = "Firefox (work)";
    +                    genericName = "Firefox work";
    +                    exec = "firefox -p work";
    +                    inherit terminal categories icon;
    +                  };
    +                  "firefox_${user1}" = {
    +                    name = "Firefox (${user1})";
    +                    genericName = "Firefox ${user1}";
    +                    exec = "firefox -p ${user1}";
    +                    inherit terminal categories icon;
    +                  };
     
    -              "firefox_${user2}" = {
    -                name = "Firefox (${user2})";
    -                genericName = "Firefox ${user2}";
    -                exec = "firefox -p ${user2}";
    -                inherit terminal categories icon;
    -              };
    +                  "firefox_${user2}" = {
    +                    name = "Firefox (${user2})";
    +                    genericName = "Firefox ${user2}";
    +                    exec = "firefox -p ${user2}";
    +                    inherit terminal categories icon;
    +                  };
     
    -              "firefox_${user3}" = {
    -                name = "Firefox (${user3})";
    -                genericName = "Firefox ${user3}";
    -                exec = "firefox -p ${user3}";
    -                inherit terminal categories icon;
    -              };
    +                  "firefox_${user3}" = {
    +                    name = "Firefox (${user3})";
    +                    genericName = "Firefox ${user3}";
    +                    exec = "firefox -p ${user3}";
    +                    inherit terminal categories icon;
    +                  };
     
     
    +                };
                 };
    -        };
    -      swarselsystems = {
    -        startup = [
    -          # { command = "nextcloud --background"; }
    -          # { command = "vesktop --start-minimized --enable-speech-dispatcher --ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime"; }
    -          # { command = "element-desktop --hidden  --enable-features=UseOzonePlatform --ozone-platform=wayland --disable-gpu-driver-bug-workarounds"; }
    -          # { command = "anki"; }
    -          # { command = "obsidian"; }
    -          # { command = "nm-applet"; }
    -          # { command = "feishin"; }
    -          # { command = "teams-for-linux --disableGpu=true --minimized=true --trayIconEnabled=true"; }
    -          # { command = "1password"; }
    -        ];
    -        monitors = {
    -          work_back_middle = rec {
    -            name = "LG Electronics LG Ultra HD 0x000305A6";
    -            mode = "2560x1440";
    -            scale = "1";
    -            position = "5120,0";
    -            workspace = "1:一";
    -            # output = "DP-10";
    -            output = name;
    -          };
    -          work_front_left = rec {
    -            name = "LG Electronics LG Ultra HD 0x0007AB45";
    -            mode = "3840x2160";
    -            scale = "1";
    -            position = "5120,0";
    -            workspace = "1:一";
    -            # output = "DP-7";
    -            output = name;
    -          };
    -          work_back_right = rec {
    -            name = "HP Inc. HP Z32 CN41212T55";
    -            mode = "3840x2160";
    -            scale = "1";
    -            position = "5120,0";
    -            workspace = "1:一";
    -            # output = "DP-3";
    -            output = name;
    -          };
    -          work_middle_middle_main = rec {
    -            name = "HP Inc. HP 732pk CNC4080YL5";
    -            mode = "3840x2160";
    -            scale = "1";
    -            position = "-1280,0";
    -            workspace = "11:M";
    -            # output = "DP-8";
    -            output = name;
    -          };
    -          work_middle_middle_side = rec {
    -            name = "Hewlett Packard HP Z24i CN44250RDT";
    -            mode = "1920x1200";
    -            transform = "270";
    -            scale = "1";
    -            position = "-2480,0";
    -            workspace = "12:S";
    -            # output = "DP-9";
    -            output = name;
    -          };
    -          work_seminary = rec {
    -            name = "Applied Creative Technology Transmitter QUATTRO201811";
    -            mode = "1280x720";
    -            scale = "1";
    -            position = "10000,10000"; # i.e. this screen is inaccessible by moving the mouse
    -            workspace = "14:T";
    -            # output = "DP-4";
    -            output = name;
    -          };
    -        };
    -        inputs = {
    -          "1133:45081:MX_Master_2S_Keyboard" = {
    -            xkb_layout = "us";
    -            xkb_variant = "altgr-intl";
    -          };
    -          # "2362:628:PIXA3854:00_093A:0274_Touchpad" = {
    -          #   dwt = "enabled";
    -          #   tap = "enabled";
    -          #   natural_scroll = "enabled";
    -          #   middle_emulation = "enabled";
    -          #   drag_lock = "disabled";
    -          # };
    -          "1133:50504:Logitech_USB_Receiver" = {
    -            xkb_layout = "us";
    -            xkb_variant = "altgr-intl";
    -          };
    -          "1133:45944:MX_KEYS_S" = {
    -            xkb_layout = "us";
    -            xkb_variant = "altgr-intl";
    +          swarselsystems = {
    +            startup = [
    +              # { command = "nextcloud --background"; }
    +              # { command = "vesktop --start-minimized --enable-speech-dispatcher --ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime"; }
    +              # { command = "element-desktop --hidden  --enable-features=UseOzonePlatform --ozone-platform=wayland --disable-gpu-driver-bug-workarounds"; }
    +              # { command = "anki"; }
    +              # { command = "obsidian"; }
    +              # { command = "nm-applet"; }
    +              # { command = "feishin"; }
    +              # { command = "teams-for-linux --disableGpu=true --minimized=true --trayIconEnabled=true"; }
    +              # { command = "1password"; }
    +            ];
    +            monitors = {
    +              work_back_middle = rec {
    +                name = "LG Electronics LG Ultra HD 0x000305A6";
    +                mode = "2560x1440";
    +                scale = "1";
    +                position = "5120,0";
    +                workspace = "1:一";
    +                # output = "DP-10";
    +                output = name;
    +              };
    +              work_front_left = rec {
    +                name = "LG Electronics LG Ultra HD 0x0007AB45";
    +                mode = "3840x2160";
    +                scale = "1";
    +                position = "5120,0";
    +                workspace = "1:一";
    +                # output = "DP-7";
    +                output = name;
    +              };
    +              work_back_right = rec {
    +                name = "HP Inc. HP Z32 CN41212T55";
    +                mode = "3840x2160";
    +                scale = "1";
    +                position = "5120,0";
    +                workspace = "1:一";
    +                # output = "DP-3";
    +                output = name;
    +              };
    +              work_middle_middle_main = rec {
    +                name = "HP Inc. HP 732pk CNC4080YL5";
    +                mode = "3840x2160";
    +                scale = "1";
    +                position = "-1280,0";
    +                workspace = "11:M";
    +                # output = "DP-8";
    +                output = name;
    +              };
    +              work_middle_middle_side = rec {
    +                name = "Hewlett Packard HP Z24i CN44250RDT";
    +                mode = "1920x1200";
    +                transform = "270";
    +                scale = "1";
    +                position = "-2480,0";
    +                workspace = "12:S";
    +                # output = "DP-9";
    +                output = name;
    +              };
    +              work_seminary = rec {
    +                name = "Applied Creative Technology Transmitter QUATTRO201811";
    +                mode = "1280x720";
    +                scale = "1";
    +                position = "10000,10000"; # i.e. this screen is inaccessible by moving the mouse
    +                workspace = "14:T";
    +                # output = "DP-4";
    +                output = name;
    +              };
    +            };
    +            inputs = {
    +              "1133:45081:MX_Master_2S_Keyboard" = {
    +                xkb_layout = "us";
    +                xkb_variant = "altgr-intl";
    +              };
    +              # "2362:628:PIXA3854:00_093A:0274_Touchpad" = {
    +              #   dwt = "enabled";
    +              #   tap = "enabled";
    +              #   natural_scroll = "enabled";
    +              #   middle_emulation = "enabled";
    +              #   drag_lock = "disabled";
    +              # };
    +              "1133:50504:Logitech_USB_Receiver" = {
    +                xkb_layout = "us";
    +                xkb_variant = "altgr-intl";
    +              };
    +              "1133:45944:MX_KEYS_S" = {
    +                xkb_layout = "us";
    +                xkb_variant = "altgr-intl";
    +              };
    +            };
    +
               };
             };
     
    -      };
    -    };
    -
    -}
    +    }
     
     
    @@ -17172,6 +17564,7 @@ In short, the options defined here are passed to the modules systems using
    -
    -

    3.5.34. endme

    +
    +

    3.5.34. endme

    Sometimes my DE crashes after putting it to suspend - to be precise, it happens when I put it into suspend when I have multiple screens plugged in. I have never taken the time to debug the issue, but instead just switch to a different TTY and then use this script to kill the hanging session. @@ -19289,52 +19682,52 @@ in options.swarselprofiles.personal = lib.mkEnableOption "is this a personal host"; config = lib.mkIf config.swarselprofiles.personal { swarselmodules = { - packages = lib.mkDefault true; - pii = lib.mkDefault true; - general = lib.mkDefault true; - home-manager = lib.mkDefault true; - xserver = lib.mkDefault true; - users = lib.mkDefault true; - env = lib.mkDefault true; - security = lib.mkDefault true; - systemdTimeout = lib.mkDefault true; - hardware = lib.mkDefault true; - pulseaudio = lib.mkDefault true; - pipewire = lib.mkDefault true; - network = lib.mkDefault true; - time = lib.mkDefault true; - sops = lib.mkDefault true; - stylix = lib.mkDefault true; - programs = lib.mkDefault true; - zsh = lib.mkDefault true; - syncthing = lib.mkDefault true; - blueman = lib.mkDefault true; - networkDevices = lib.mkDefault true; - gvfs = lib.mkDefault true; - interceptionTools = lib.mkDefault true; # keyd = lib.mkDefault true; - swayosd = lib.mkDefault true; - ppd = lib.mkDefault true; - yubikey = lib.mkDefault true; - ledger = lib.mkDefault true; - keyboards = lib.mkDefault true; - login = lib.mkDefault true; - nix-ld = lib.mkDefault true; - impermanence = lib.mkDefault true; - nvd = lib.mkDefault true; - gnome-keyring = lib.mkDefault true; - uwsm = lib.mkDefault true; - sway = lib.mkDefault true; - niri = lib.mkDefault true; - xdg-portal = lib.mkDefault true; - distrobox = lib.mkDefault true; appimage = lib.mkDefault true; - lid = lib.mkDefault true; - lowBattery = lib.mkDefault true; - lanzaboote = lib.mkDefault true; autologin = lib.mkDefault true; + blueman = lib.mkDefault true; boot = lib.mkDefault true; btrfs = lib.mkDefault true; + distrobox = lib.mkDefault true; + env = lib.mkDefault true; + general = lib.mkDefault true; + gnome-keyring = lib.mkDefault true; + gvfs = lib.mkDefault true; + hardware = lib.mkDefault true; + home-manager = lib.mkDefault true; + impermanence = lib.mkDefault true; + interceptionTools = lib.mkDefault true; + keyboards = lib.mkDefault true; + lanzaboote = lib.mkDefault true; + ledger = lib.mkDefault true; + lid = lib.mkDefault true; + login = lib.mkDefault true; + lowBattery = lib.mkDefault false; + network = lib.mkDefault true; + networkDevices = lib.mkDefault true; + niri = lib.mkDefault true; + nix-ld = lib.mkDefault true; + nvd = lib.mkDefault true; + packages = lib.mkDefault true; + pii = lib.mkDefault true; + pipewire = lib.mkDefault true; + ppd = lib.mkDefault true; + programs = lib.mkDefault true; + pulseaudio = lib.mkDefault true; + security = lib.mkDefault true; + sops = lib.mkDefault true; + stylix = lib.mkDefault true; + sway = lib.mkDefault true; + swayosd = lib.mkDefault true; + syncthing = lib.mkDefault true; + systemdTimeout = lib.mkDefault true; + time = lib.mkDefault true; + users = lib.mkDefault true; + uwsm = lib.mkDefault true; + xdg-portal = lib.mkDefault true; + xserver = lib.mkDefault true; + yubikey = lib.mkDefault true; + zsh = lib.mkDefault true; }; home-manager.users."${config.swarselsystems.mainUser}" = { @@ -19389,8 +19782,8 @@ in

    -
    -
    3.6.1.3. Optionals
    +
    +
    3.6.1.3. Optionals
    { lib, config, ... }:
    @@ -19620,53 +20013,63 @@ in
       options.swarselprofiles.personal = lib.mkEnableOption "is this a personal host";
       config = lib.mkIf config.swarselprofiles.personal {
         swarselmodules = {
    -      packages = lib.mkDefault true;
    -      ownpackages = lib.mkDefault true;
    -      general = lib.mkDefault true;
    -      nixgl = lib.mkDefault true;
    -      sops = lib.mkDefault false;
    -      yubikey = lib.mkDefault false;
    -      ssh = lib.mkDefault true;
    -      stylix = lib.mkDefault true;
    -      desktop = lib.mkDefault true;
    -      symlink = lib.mkDefault true;
    -      env = lib.mkDefault true;
    -      programs = lib.mkDefault true;
    -      nix-index = lib.mkDefault true;
    -      passwordstore = lib.mkDefault true;
    -      direnv = lib.mkDefault true;
    -      eza = lib.mkDefault true;
    -      atuin = lib.mkDefault true;
    -      git = lib.mkDefault true;
    -      fuzzel = lib.mkDefault true;
    -      starship = lib.mkDefault true;
    -      kitty = lib.mkDefault true;
    -      zsh = lib.mkDefault true;
    -      zellij = lib.mkDefault true;
    -      tmux = lib.mkDefault true;
    -      mail = lib.mkDefault true;
    -      emacs = lib.mkDefault true;
    -      waybar = lib.mkDefault true;
    -      firefox = lib.mkDefault true;
    -      gnome-keyring = lib.mkDefault true;
    -      kdeconnect = lib.mkDefault true;
    -      mako = lib.mkDefault true;
    -      swayosd = lib.mkDefault true;
    -      yubikeytouch = lib.mkDefault true;
    -      sway = lib.mkDefault true;
    -      niri = lib.mkDefault true;
    -      kanshi = lib.mkDefault true;
    -      gpgagent = lib.mkDefault true;
    -      gammastep = lib.mkDefault true;
    -      spicetify = lib.mkDefault true;
    -      blueman-applet = lib.mkDefault true;
    -      nm-applet = lib.mkDefault true;
    -      obsidian-tray = lib.mkDefault true;
    -      obsidian = lib.mkDefault true;
    -      anki-tray = lib.mkDefault true;
    -      element-tray = lib.mkDefault true;
    -      vesktop-tray = lib.mkDefault true;
           anki = lib.mkDefault true;
    +      anki-tray = lib.mkDefault true;
    +      atuin = lib.mkDefault true;
    +      autotiling = lib.mkDefault true;
    +      batsignal = lib.mkDefault true;
    +      blueman-applet = lib.mkDefault true;
    +      desktop = lib.mkDefault true;
    +      direnv = lib.mkDefault true;
    +      element-desktop = lib.mkDefault true;
    +      element-tray = lib.mkDefault true;
    +      emacs = lib.mkDefault true;
    +      env = lib.mkDefault true;
    +      eza = lib.mkDefault true;
    +      firefox = lib.mkDefault true;
    +      fuzzel = lib.mkDefault true;
    +      gammastep = lib.mkDefault true;
    +      general = lib.mkDefault true;
    +      git = lib.mkDefault true;
    +      gnome-keyring = lib.mkDefault true;
    +      gpgagent = lib.mkDefault true;
    +      hexchat = lib.mkDefault true;
    +      kanshi = lib.mkDefault true;
    +      kdeconnect = lib.mkDefault true;
    +      kitty = lib.mkDefault true;
    +      mail = lib.mkDefault true;
    +      mako = lib.mkDefault true;
    +      niri = lib.mkDefault true;
    +      nix-index = lib.mkDefault true;
    +      nixgl = lib.mkDefault true;
    +      nix-your-shell = lib.mkDefault true;
    +      nm-applet = lib.mkDefault true;
    +      obs-studio = lib.mkDefault true;
    +      obsidian = lib.mkDefault true;
    +      obsidian-tray = lib.mkDefault true;
    +      ownpackages = lib.mkDefault true;
    +      packages = lib.mkDefault true;
    +      passwordstore = lib.mkDefault true;
    +      programs = lib.mkDefault true;
    +      sops = lib.mkDefault false;
    +      spicetify = lib.mkDefault true;
    +      spotify-player = lib.mkDefault true;
    +      ssh = lib.mkDefault true;
    +      starship = lib.mkDefault true;
    +      stylix = lib.mkDefault true;
    +      sway = lib.mkDefault true;
    +      swayidle = lib.mkDefault true;
    +      swaylock = lib.mkDefault true;
    +      swayosd = lib.mkDefault true;
    +      symlink = lib.mkDefault true;
    +      tmux = lib.mkDefault true;
    +      vesktop = lib.mkDefault true;
    +      vesktop-tray = lib.mkDefault true;
    +      waybar = lib.mkDefault true;
    +      yubikey = lib.mkDefault false;
    +      yubikeytouch = lib.mkDefault true;
    +      zellij = lib.mkDefault true;
    +      zsh = lib.mkDefault true;
         };
       };
     
    @@ -23705,7 +24108,6 @@ bind gwe tab_or_tabopen_local exivity.vbc.ac.at
     bind gwg tab_or_tabopen_local github.com
     bind gwG tab_or_tabopen_local goc.egi.eu
     bind gwh tab_or_tabopen_local jupyterhub.vbc.ac.at
    -bind gwH tab_or_tabopen_local test-jupyterhub.vbc.ac.at
     bind gwj tab_or_tabopen_local jenkins.vbc.ac.at
     bind gwJ tab_or_tabopen_local test-jenkins.vbc.ac.at
     bind gwl tab_or_tabopen_local lucid.app
    @@ -23719,6 +24121,20 @@ bind gwt tab_or_tabopen_local tower.vbc.ac.at
     bind gwv tab_or_tabopen_local vc-impimba-1.m.imp.ac.at/ui
     bind gwx tab_or_tabopen_local xclarity.vbc.ac.at
     
    +unbind --mode=normal gh
    +bind ghp tab_or_tabopen_local https://github.com/pulls
    +bind ghi tab_or_tabopen_local https://github.com/issues/assigned?q=is%3Aissue%20state%3Aopen%20archived%3Afalse%20(assignee%3A%40me%20OR%20author%3A%40me)%20sort%3Aupdated-desc
    +bind ghv tab_or_tabopen_local github.com/orgs/vbc-it/repositories
    +bind ghc tab_or_tabopen_local github.com/orgs/CLIP-HPC/repositories
    +bind ghd tab_or_tabopen_local github.com/Swarsel/.dotfiles
    +bind ghni tab_or_tabopen_local github.com/NixOS/nixpkgs/issues
    +bind ghnp tab_or_tabopen_local github.com/NixOS/nixpkgs/pulls
    +
    +unbind --mode=normal gp
    +bind gprn tab_or_tabopen_local www.reddit.com/r/NixOS/
    +bind gpd tab_or_tabopen_local discourse.nixos.org/
    +bind gpp tab_or_tabopen_local parkour.wien/categories
    +
     " Search in page
     set findcase smart
     bind / fillcmdline find
    @@ -23773,6 +24189,15 @@ set hintdelay 100
     " Some pages like github break on the tridactyl quick search. have this as a fallback
     unbind <C-f>
     
    +" Do not let websites steal sitefocus
    +set allowautofocus false
    +
    +" whitelist sites
    +" :seturl [URL regex for sites with text editors you use] allowautofocus true
    +
    +" stronger blacklist for specific sites
    +seturl vbc.atlassian.net preventautofocusjackhammer true
    +
     " Subconfig Settings
     seturl www.google.com followpagepatterns.next Next
     seturl www.google.com followpagepatterns.prev Previous
    @@ -26079,45 +26504,45 @@ Here lies defined the readme for GitHub and Forgejo:
       <details>
         <summary>Click here to expand...</summary>
     
    -    - [guibou](https://github.com/guibou/)
    -    - [rycee](https://github.com/rycee)
    -    - [adisbladis](https://github.com/adisbladis)
    -    - [Mic92](https://github.com/Mic92/sops-nix)
    -    - [lassulus](https://github.com/lassulus)
    -    - [danth](https://github.com/danth/)
    -    - [LnL7](https://github.com/LnL7)
    -    - [t184256](https://github.com/t184256)
    -    - [bennofs](https://github.com/bennofs)
    -    - [Pandapip1](https://github.com/Pandapip1)
    -    - [zowoq](https://github.com/zowoq)
    -    - [numtide](https://github.com/numtide)
    -    - [hsjobeki](https://github.com/hsjobeki)
    -    - [blitz](https://github.com/blitz)
    -    - [RaitoBezarius](https://github.com/RaitoBezarius)
    -    - [nikstur](https://github.com/nikstur)
    -    - [talyz](https://github.com/talyz)
    -    - [infinisil](https://github.com/infinisil)
    -    - [zhaofengli](https://github.com/zhaofengli)
    -    - [Artturin](https://github.com/Artturin)
    -    - [oddlama](https://github.com/oddlama)
    +  - [guibou](https://github.com/guibou/)
    +  - [rycee](https://github.com/rycee)
    +  - [adisbladis](https://github.com/adisbladis)
    +  - [Mic92](https://github.com/Mic92/sops-nix)
    +  - [lassulus](https://github.com/lassulus)
    +  - [danth](https://github.com/danth/)
    +  - [LnL7](https://github.com/LnL7)
    +  - [t184256](https://github.com/t184256)
    +  - [bennofs](https://github.com/bennofs)
    +  - [Pandapip1](https://github.com/Pandapip1)
    +  - [zowoq](https://github.com/zowoq)
    +  - [numtide](https://github.com/numtide)
    +  - [hsjobeki](https://github.com/hsjobeki)
    +  - [blitz](https://github.com/blitz)
    +  - [RaitoBezarius](https://github.com/RaitoBezarius)
    +  - [nikstur](https://github.com/nikstur)
    +  - [talyz](https://github.com/talyz)
    +  - [infinisil](https://github.com/infinisil)
    +  - [zhaofengli](https://github.com/zhaofengli)
    +  - [Artturin](https://github.com/Artturin)
    +  - [oddlama](https://github.com/oddlama)
       </details>
     
       - All the people who have inspired me with their configurations (sadly also highly incomplete):
       <details>
         <summary>Click here to expand...</summary>
     
    -    - [theSuess](https://github.com/theSuess) with their [home-manager](https://code.kulupu.party/thesuess/home-manager)
    -    - [hlissner](https://github.com/hlissner) with their [dotfiles](https://github.com/hlissner/dotfiles)
    -    - [drduh](https://github.com/drduh/YubiKey-Guide) with their [YubiKey-Guide](https://github.com/drduh/YubiKey-Guide)
    -    - [AntonHakansson](https://github.com/AntonHakansson) with their [nixos-config](https://github.com/AntonHakansson/nixos-config?tab=readme-ov-file)
    -    - [Guekka](https://github.com/Guekka/) with their [blog](https://guekka.github.io/)
    -    - [NotAShelf](https://github.com/NotAShelf) with their [nyx](https://github.com/NotAShelf/nyx)
    -    - [Misterio77](https://github.com/Misterio77) with their [nix-config](https://github.com/Misterio77/nix-config)
    -    - [0xdade](https://github.com/0xdade) with their [blog](https://0xda.de/blog/)
    -    - [EmergentMind](https://github.com/EmergentMind) with their [nix-config](https://github.com/EmergentMind/nix-config)
    -    - [librephoenix](https://github.com/librephoenix) with their [nixos-config](https://github.com/librephoenix/nixos-config)
    -    - [Xe](https://github.com/Xe) with their [blog](https://xeiaso.net/blog/)
    -    - [oddlama](https://github.com/oddlama) with their absolutely incredible [nix-config](https:/github.com/oddlama/nix-config)
    +  - [theSuess](https://github.com/theSuess) with their [home-manager](https://code.kulupu.party/thesuess/home-manager)
    +  - [hlissner](https://github.com/hlissner) with their [dotfiles](https://github.com/hlissner/dotfiles)
    +  - [drduh](https://github.com/drduh/YubiKey-Guide) with their [YubiKey-Guide](https://github.com/drduh/YubiKey-Guide)
    +  - [AntonHakansson](https://github.com/AntonHakansson) with their [nixos-config](https://github.com/AntonHakansson/nixos-config?tab=readme-ov-file)
    +  - [Guekka](https://github.com/Guekka/) with their [blog](https://guekka.github.io/)
    +  - [NotAShelf](https://github.com/NotAShelf) with their [nyx](https://github.com/NotAShelf/nyx)
    +  - [Misterio77](https://github.com/Misterio77) with their [nix-config](https://github.com/Misterio77/nix-config)
    +  - [0xdade](https://github.com/0xdade) with their [blog](https://0xda.de/blog/)
    +  - [EmergentMind](https://github.com/EmergentMind) with their [nix-config](https://github.com/EmergentMind/nix-config)
    +  - [librephoenix](https://github.com/librephoenix) with their [nixos-config](https://github.com/librephoenix/nixos-config)
    +  - [Xe](https://github.com/Xe) with their [blog](https://xeiaso.net/blog/)
    +  - [oddlama](https://github.com/oddlama) with their absolutely incredible [nix-config](https:/github.com/oddlama/nix-config)
       </details>
     
       If you feel that I forgot to pay you tribute for code that I used in this repository, please shoot me a message and I will fix it :)
    @@ -26449,7 +26874,7 @@ similarly, there exists an version that starts from the right.
     
    diff --git a/modules/home/common/anki.nix b/modules/home/common/anki.nix index f91d3fb..3d40308 100644 --- a/modules/home/common/anki.nix +++ b/modules/home/common/anki.nix @@ -25,7 +25,7 @@ in spacebarRatesCard = true; # videoDriver = "opengl"; sync = { - autoSync = true; + autoSync = false; # sync on profile close will delay system shutdown syncMedia = true; url = "https://${globals.services.ankisync.domain}"; usernameFile = nixosConfig.sops.secrets.anki-user.path; diff --git a/modules/home/common/autotiling.nix b/modules/home/common/autotiling.nix new file mode 100644 index 0000000..2cf7223 --- /dev/null +++ b/modules/home/common/autotiling.nix @@ -0,0 +1,14 @@ +{ lib, config, ... }: +let + moduleName = "autotiling"; +in +{ + options.swarselmodules.${moduleName} = lib.mkEnableOption "enable ${moduleName} and settings"; + config = lib.mkIf config.swarselmodules.${moduleName} { + swarselservices.${moduleName} = { + enable = true; + systemdTarget = config.wayland.systemd.target; + }; + }; + +} diff --git a/modules/home/common/batsignal.nix b/modules/home/common/batsignal.nix new file mode 100644 index 0000000..30d4495 --- /dev/null +++ b/modules/home/common/batsignal.nix @@ -0,0 +1,13 @@ +{ lib, config, ... }: +let + moduleName = "batsignal"; +in +{ + options.swarselmodules.${moduleName} = lib.mkEnableOption "enable ${moduleName} and settings"; + config = lib.mkIf config.swarselmodules.${moduleName} { + services.${moduleName} = { + enable = true; + }; + }; + +} diff --git a/modules/home/common/element.nix b/modules/home/common/element.nix new file mode 100644 index 0000000..f9ba831 --- /dev/null +++ b/modules/home/common/element.nix @@ -0,0 +1,29 @@ +{ lib, config, ... }: +let + moduleName = "element-desktop"; +in +{ + options.swarselmodules.${moduleName} = lib.mkEnableOption "enable ${moduleName} and settings"; + config = lib.mkIf config.swarselmodules.${moduleName} { + programs.element-desktop = { + enable = true; + settings = { + default_server_config = { + "m.homeserver" = { + base_url = "https://swatrix.swarsel.win/"; + }; + }; + UIFeature = { + feedback = false; + voip = false; + widgets = false; + shareSocial = false; + registration = false; + passwordReset = false; + deactivate = false; + }; + }; + }; + }; + +} diff --git a/modules/home/common/hexchat.nix b/modules/home/common/hexchat.nix new file mode 100644 index 0000000..f0d813a --- /dev/null +++ b/modules/home/common/hexchat.nix @@ -0,0 +1,17 @@ +{ lib, config, nixosConfig ? config, ... }: +let + moduleName = "hexchat"; + inherit (nixosConfig.repo.secrets.common.irc) irc_nick1; +in +{ + options.swarselmodules.${moduleName} = lib.mkEnableOption "enable ${moduleName} and settings"; + config = lib.mkIf config.swarselmodules.${moduleName} { + programs.${moduleName} = { + enable = true; + settings = { + inherit irc_nick1; + }; + }; + }; + +} diff --git a/modules/home/common/nix-your-shell.nix b/modules/home/common/nix-your-shell.nix new file mode 100644 index 0000000..1ad63cb --- /dev/null +++ b/modules/home/common/nix-your-shell.nix @@ -0,0 +1,13 @@ +{ lib, config, ... }: +let + moduleName = "nix-your-shell"; +in +{ + options.swarselmodules.${moduleName} = lib.mkEnableOption "enable ${moduleName} and settings"; + config = lib.mkIf config.swarselmodules.${moduleName} { + programs.${moduleName} = { + enable = true; + enableZshIntegration = true; + }; + }; +} diff --git a/modules/home/common/obs-studio.nix b/modules/home/common/obs-studio.nix new file mode 100644 index 0000000..03ef30c --- /dev/null +++ b/modules/home/common/obs-studio.nix @@ -0,0 +1,13 @@ +{ lib, config, ... }: +let + moduleName = "obs-studio"; +in +{ + options.swarselmodules.${moduleName} = lib.mkEnableOption "enable ${moduleName} and settings"; + config = lib.mkIf config.swarselmodules.${moduleName} { + programs.${moduleName} = { + enable = true; + }; + }; + +} diff --git a/modules/home/common/packages.nix b/modules/home/common/packages.nix index 10622dc..cfedf9d 100644 --- a/modules/home/common/packages.nix +++ b/modules/home/common/packages.nix @@ -70,7 +70,7 @@ restic # "big" programs - obs-studio + # obs-studio gimp inkscape zoom-us @@ -79,14 +79,14 @@ xournalpp # obsidian # spotify - vesktop # discord client + # vesktop # discord client # nextcloud-client # enables a systemd service that I do not want - spotify-player - element-desktop + # element-desktop + # spotify-player + nicotine-plus stable.transmission_3 mktorrent - hexchat hugo # kyria diff --git a/modules/home/common/programs.nix b/modules/home/common/programs.nix index f971174..f577a87 100644 --- a/modules/home/common/programs.nix +++ b/modules/home/common/programs.nix @@ -3,26 +3,30 @@ options.swarselmodules.programs = lib.mkEnableOption "programs settings"; config = lib.mkIf config.swarselmodules.programs { programs = { - bottom.enable = true; - imv.enable = true; - sioyek.enable = true; bat = { enable = true; extraPackages = with pkgs.bat-extras; [ batdiff batman batgrep batwatch ]; }; + bottom.enable = true; carapace.enable = true; - wlogout.enable = true; - swayr.enable = true; - yt-dlp.enable = true; - mpv.enable = true; - jq.enable = true; - ripgrep.enable = true; - pandoc.enable = true; fzf = { enable = true; enableBashIntegration = false; enableZshIntegration = false; }; + imv.enable = true; + jq.enable = true; + less.enable = true; + lesspipe.enable = true; + mpv.enable = true; + pandoc.enable = true; + rclone.enable = true; + ripgrep.enable = true; + sioyek.enable = true; + swayr.enable = true; + timidity.enable = true; + wlogout.enable = true; + yt-dlp.enable = true; zoxide = { enable = true; enableZshIntegration = true; diff --git a/modules/home/common/settings.nix b/modules/home/common/settings.nix index e778bda..f063300 100644 --- a/modules/home/common/settings.nix +++ b/modules/home/common/settings.nix @@ -42,7 +42,14 @@ in nixpkgs.overlays = lib.mkIf config.swarselsystems.isNixos (lib.mkForce null); - programs.home-manager.enable = lib.mkIf (!config.swarselsystems.isNixos) true; + programs = { + home-manager.enable = lib.mkIf (!config.swarselsystems.isNixos) true; + man = { + enable = true; + generateCaches = true; + }; + }; + targets.genericLinux.enable = lib.mkIf (!config.swarselsystems.isNixos) true; home = { @@ -53,6 +60,11 @@ in sessionVariables = { FLAKE = "/home/${mainUser}/.dotfiles"; }; + extraOutputsToInstall = [ + "doc" + "info" + "devdoc" + ]; }; }; diff --git a/modules/home/common/spotify-player.nix b/modules/home/common/spotify-player.nix new file mode 100644 index 0000000..1ba1865 --- /dev/null +++ b/modules/home/common/spotify-player.nix @@ -0,0 +1,13 @@ +{ lib, config, ... }: +let + moduleName = "spotify-player"; +in +{ + options.swarselmodules.${moduleName} = lib.mkEnableOption "enable ${moduleName} and settings"; + config = lib.mkIf config.swarselmodules.${moduleName} { + programs.${moduleName} = { + enable = true; + }; + }; + +} diff --git a/modules/home/common/sway.nix b/modules/home/common/sway.nix index 6977c49..1fd6513 100644 --- a/modules/home/common/sway.nix +++ b/modules/home/common/sway.nix @@ -149,8 +149,9 @@ in "${modifier}+Shift+p" = "exec pass-fuzzel --type"; "${modifier}+Shift+o" = "exec pass-fuzzel --otp --type"; "${modifier}+Ctrl+p" = "exec 1password --quick-acces"; - "${modifier}+Escape" = "mode $exit"; + # "${modifier}+Escape" = "mode $exit"; "${modifier}+Shift+Escape" = "exec kitty -o confirm_os_window_close=0 btm"; + "${modifier}+Escape" = "exec wlogout"; "${modifier}+h" = "exec hyprpicker | wl-copy"; "${modifier}+s" = "exec grim -g \"$(slurp)\" -t png - | wl-copy -t image/png"; "${modifier}+Shift+s" = "exec slurp | grim -g - Pictures/Screenshots/$(date +'screenshot_%Y-%m-%d-%H%M%S.png')"; @@ -391,26 +392,26 @@ in swayfxSettings = config.swarselsystems.swayfxConfig; in " -exec_always autotiling - set $exit \"exit: [s]leep, [l]ock, [p]oweroff, [r]eboot, [u]ser logout\" +# exec_always autotiling + # set $exit \"exit: [s]leep, [l]ock, [p]oweroff, [r]eboot, [u]ser logout\" - mode $exit { - bindsym --to-code { - s exec \"systemctl suspend\", mode \"default\" - h exec \"systemctl hibernate\", mode \"default\" - l exec \"swaylock --screenshots --clock --effect-blur 7x5 --effect-vignette 0.5:0.5 --fade-in 0.2 --daemonize\", mode \"default\ - p exec \"systemctl poweroff\" - r exec \"systemctl reboot\" - u exec \"swaymsg exit\" + # mode $exit { + # bindsym --to-code { + # s exec \"systemctl suspend\", mode \"default\" + # h exec \"systemctl hibernate\", mode \"default\" + # l exec \"swaylock --screenshots --clock --effect-blur 7x5 --effect-vignette 0.5:0.5 --fade-in 0.2 --daemonize\", mode \"default\ + # p exec \"systemctl poweroff\" + # r exec \"systemctl reboot\" + # u exec \"swaymsg exit\" - Return mode \"default\" - Escape mode \"default\" - ${modifier}+Escape mode \"default\" - } - } + # Return mode \"default\" + # Escape mode \"default\" + # ${modifier}+Escape mode \"default\" + # } + # } exec systemctl --user import-environment - exec swayidle -w + # exec swayidle -w seat * hide_cursor 2000 diff --git a/modules/home/common/swayidle.nix b/modules/home/common/swayidle.nix new file mode 100644 index 0000000..a6db8e5 --- /dev/null +++ b/modules/home/common/swayidle.nix @@ -0,0 +1,33 @@ +{ lib, config, pkgs, ... }: +let + moduleName = "swayidle"; +in +{ + options.swarselmodules.${moduleName} = lib.mkEnableOption "enable ${moduleName} and settings"; + config = lib.mkIf config.swarselmodules.${moduleName} { + services.${moduleName} = + let + brightnessctl = "${lib.getExe pkgs.brightnessctl}"; + swaylock = "${lib.getExe pkgs.swaylock-effects}"; + suspend = "${pkgs.systemd}/bin/systemctl"; + in + { + enable = true; + systemdTarget = config.wayland.systemd.target; + extraArgs = [ "-w" ]; + timeouts = [ + { timeout = 60; command = "${brightnessctl} -s; ${brightnessctl} set 80%-"; resumeCommand = "${brightnessctl} -r"; } + # { timeout = 300; command = "${lib.getExe pkgs.swaylock-effects} -f --screenshots --clock --effect-blur 7x5 --effect-vignette 0.5:0.5 --fade-in 0.2"; } + { timeout = 300; command = "${swaylock} -f"; } + # { timeout = 600; command = ''${pkgs.sway}/bin/swaymsg "output * dpms off"; resumeCommand = "${pkgs.sway}/bin/swaymsg output * dpms on''; } + { timeout = 600; command = "${suspend}"; } + ]; + events = [ + # { event = "before-sleep"; command = "${lib.getExe pkgs.swaylock-effects} -f --screenshots --clock --effect-blur 7x5 --effect-vignette 0.5:0.5 --fade-in 0.2"; } + { event = "before-sleep"; command = "${swaylock} -f "; } + { event = "lock"; command = "${swaylock} -f "; } + ]; + }; + }; + +} diff --git a/modules/home/common/swaylock.nix b/modules/home/common/swaylock.nix new file mode 100644 index 0000000..a3483af --- /dev/null +++ b/modules/home/common/swaylock.nix @@ -0,0 +1,21 @@ +{ lib, config, pkgs, ... }: +let + moduleName = "swaylock"; +in +{ + options.swarselmodules.${moduleName} = lib.mkEnableOption "enable ${moduleName} and settings"; + config = lib.mkIf config.swarselmodules.${moduleName} { + programs.${moduleName} = { + enable = true; + package = pkgs.swaylock-effects; + settings = { + screenshots = true; + clock = true; + effect-blur = "7x5"; + effect-vignette = "0.5:0.5"; + fade-in = "0.2"; + }; + }; + }; + +} diff --git a/modules/home/common/symlink.nix b/modules/home/common/symlink.nix index 8caca6e..8f67660 100644 --- a/modules/home/common/symlink.nix +++ b/modules/home/common/symlink.nix @@ -26,7 +26,7 @@ "tridactyl/tridactylrc".source = self + /files/firefox/tridactyl/tridactylrc; "tridactyl/themes/base16-codeschool.css".source = self + /files/firefox/tridactyl/themes/base16-codeschool.css; "tridactyl/themes/swarsel.css".source = self + /files/firefox/tridactyl/themes/swarsel.css; - "swayidle/config".source = self + /files/swayidle/config; + # "swayidle/config".source = self + /files/swayidle/config; }; }; } diff --git a/modules/home/common/vesktop.nix b/modules/home/common/vesktop.nix new file mode 100644 index 0000000..2085653 --- /dev/null +++ b/modules/home/common/vesktop.nix @@ -0,0 +1,79 @@ +{ lib, config, ... }: +let + moduleName = "vesktop"; +in +{ + options.swarselmodules.${moduleName} = lib.mkEnableOption "enable ${moduleName} and settings"; + config = lib.mkIf config.swarselmodules.${moduleName} { + programs.${moduleName} = { + enable = true; + settings = { + appBadge = false; + arRPC = false; + checkUpdates = false; + customTitleBar = false; + disableMinSize = true; + minimizeToTray = true; + tray = true; + staticTitle = true; + hardwareAcceleration = true; + discordBranch = "stable"; + }; + vencord = { + useSystem = true; + settings = { + autoUpdate = false; + autoUpdateNotification = false; + enableReactDevtools = false; + frameless = false; + transparent = false; + winCtrlQ = false; + notifyAboutUpdates = false; + useQuickCss = true; + disableMinSize = true; + winNativeTitleBar = false; + plugins = { + MessageLogger = { + enabled = true; + ignoreSelf = true; + }; + ChatInputButtonAPI = { + enabled = false; + }; + CommandsAPI = { + enabled = true; + }; + MemberListDecoratorsAPI = { + enabled = false; + }; + MessageAccessoriesAPI = { + enabled = true; + }; + MessageDecorationsAPI = { + enabled = false; + }; + MessageEventsAPI = { + enabled = false; + }; + MessagePopoverAPI = { + enabled = false; + }; + MessageUpdaterAPI = { + enabled = false; + }; + ServerListAPI = { + enabled = false; + }; + UserSettingsAPI = { + enabled = true; + }; + FakeNitro = { + enabled = true; + }; + }; + }; + }; + }; + }; + +} diff --git a/modules/home/optional/gaming.nix b/modules/home/optional/gaming.nix index e523332..d9657db 100644 --- a/modules/home/optional/gaming.nix +++ b/modules/home/optional/gaming.nix @@ -1,11 +1,14 @@ -{ lib, config, pkgs, ... }: +{ lib, config, pkgs, nixosConfig ? config, ... }: +let + inherit (config.swarselsystems) isNixos; +in { options.swarselmodules.optional.gaming = lib.mkEnableOption "optional gaming settings"; config = lib.mkIf config.swarselmodules.optional.gaming { # specialisation = { # gaming.configuration = { home.packages = with pkgs; [ - lutris + # lutris wine protonplus winetricks @@ -33,6 +36,22 @@ retroarch flips ]; + + programs.lutris = { + enable = true; + extraPackages = with pkgs; [ + winetricks + gamescope + umu-launcher + ]; + steamPackage = if isNixos then nixosConfig.programs.steam.package else pkgs.steam; + winePackages = with pkgs; [ + wineWow64Packages.waylandFull + ]; + protonPackages = with pkgs; [ + proton-ge-bin + ]; + }; # }; # }; }; diff --git a/modules/home/optional/work.nix b/modules/home/optional/work.nix index ef5ca2d..11f4a98 100644 --- a/modules/home/optional/work.nix +++ b/modules/home/optional/work.nix @@ -12,16 +12,16 @@ in dig docker postman - rclone - stable24_05.awscli2 + # rclone libguestfs-with-appliance stable.prometheus.cli tigervnc - openstackclient + # openstackclient vscode ]; + systemd.user.sessionVariables = { DOCUMENT_DIR_WORK = lib.mkForce "${homeDir}/Documents/Work"; }; @@ -116,9 +116,27 @@ in programs = let - inherit (nixosConfig.repo.secrets.local.work) user1 user1Long user2 user2Long user3 user3Long user4 path1 loc1 loc2 site1 site2 site3 site4 site5 site6 site7 lifecycle1 lifecycle2 domain1 domain2 gitMail; + inherit (nixosConfig.repo.secrets.local.work) user1 user1Long user2 user2Long user3 user3Long user4 path1 loc1 loc2 site1 site2 site3 site4 site5 site6 site7 lifecycle1 lifecycle2 domain1 domain2 gitMail clouds; in { + openstackclient = { + enable = true; + inherit clouds; + }; + awscli = { + enable = true; + package = pkgs.stable24_05.awscli2; + settings = { + "default" = { }; + "profile s3-imagebuilder-prod" = { }; + }; + credentials = { + "s3-imagebuilder-prod" = { + aws_access_key_id = "5OYXY4879EJG9I91K1B6"; + credential_process = "${pkgs.pass}/bin/pass show work/awscli/s3-imagebuilder-prod/secret-key"; + }; + }; + }; git.userEmail = lib.mkForce gitMail; zsh = { diff --git a/modules/nixos/client/packages.nix b/modules/nixos/client/packages.nix index 2ac4386..153cf90 100644 --- a/modules/nixos/client/packages.nix +++ b/modules/nixos/client/packages.nix @@ -21,7 +21,7 @@ # pinentry dbus - swaylock-effects + # swaylock-effects syncthingtray-minimal swayosd diff --git a/modules/nixos/common/home-manager.nix b/modules/nixos/common/home-manager.nix index 47c2d06..4bcb21a 100644 --- a/modules/nixos/common/home-manager.nix +++ b/modules/nixos/common/home-manager.nix @@ -10,7 +10,8 @@ inputs.nix-index-database.homeModules.nix-index inputs.sops-nix.homeManagerModules.sops inputs.spicetify-nix.homeManagerModules.default - inputs.swarsel-modules.homeModules.default + # inputs.swarsel-modules.homeModules.default + inputs.swarsel-nix.homeModules.default { imports = [ "${self}/profiles/home" diff --git a/modules/shared/vars.nix b/modules/shared/vars.nix index d140bc2..3cf6ee6 100644 --- a/modules/shared/vars.nix +++ b/modules/shared/vars.nix @@ -123,6 +123,7 @@ { "extensions.autoDisableScopes" = 0; "browser.bookmarks.showMobileBookmarks" = true; + "browser.autofocus" = false; "toolkit.legacyUserProfileCustomizations.stylesheets" = true; "browser.search.suggest.enabled" = false; "browser.search.suggest.enabled.private" = false; diff --git a/nix/hosts.nix b/nix/hosts.nix index 2eb1b92..7064a77 100644 --- a/nix/hosts.nix +++ b/nix/hosts.nix @@ -18,7 +18,8 @@ inputs.home-manager.nixosModules.home-manager inputs.stylix.nixosModules.stylix inputs.nswitch-rcm-nix.nixosModules.nswitch-rcm - inputs.swarsel-modules.nixosModules.default + # inputs.swarsel-modules.nixosModules.default + inputs.swarsel-nix.nixosModules.default inputs.niri-flake.nixosModules.niri inputs.microvm.nixosModules.host inputs.microvm.nixosModules.microvm diff --git a/nix/overlays.nix b/nix/overlays.nix index 04222d3..7b9b055 100644 --- a/nix/overlays.nix +++ b/nix/overlays.nix @@ -12,9 +12,9 @@ in additions = final: _: import "${self}/pkgs" { pkgs = final; inherit self lib; }; modifications = final: prev: { - vesktop = prev.vesktop.override { - withSystemVencord = true; - }; + # vesktop = prev.vesktop.override { + # withSystemVencord = true; + # }; firefox = prev.firefox.override { nativeMessagingHosts = [ diff --git a/profiles/home/personal/default.nix b/profiles/home/personal/default.nix index 3ca38e1..cd554b7 100644 --- a/profiles/home/personal/default.nix +++ b/profiles/home/personal/default.nix @@ -3,53 +3,63 @@ options.swarselprofiles.personal = lib.mkEnableOption "is this a personal host"; config = lib.mkIf config.swarselprofiles.personal { swarselmodules = { - packages = lib.mkDefault true; - ownpackages = lib.mkDefault true; - general = lib.mkDefault true; - nixgl = lib.mkDefault true; - sops = lib.mkDefault false; - yubikey = lib.mkDefault false; - ssh = lib.mkDefault true; - stylix = lib.mkDefault true; - desktop = lib.mkDefault true; - symlink = lib.mkDefault true; - env = lib.mkDefault true; - programs = lib.mkDefault true; - nix-index = lib.mkDefault true; - passwordstore = lib.mkDefault true; - direnv = lib.mkDefault true; - eza = lib.mkDefault true; - atuin = lib.mkDefault true; - git = lib.mkDefault true; - fuzzel = lib.mkDefault true; - starship = lib.mkDefault true; - kitty = lib.mkDefault true; - zsh = lib.mkDefault true; - zellij = lib.mkDefault true; - tmux = lib.mkDefault true; - mail = lib.mkDefault true; - emacs = lib.mkDefault true; - waybar = lib.mkDefault true; - firefox = lib.mkDefault true; - gnome-keyring = lib.mkDefault true; - kdeconnect = lib.mkDefault true; - mako = lib.mkDefault true; - swayosd = lib.mkDefault true; - yubikeytouch = lib.mkDefault true; - sway = lib.mkDefault true; - niri = lib.mkDefault true; - kanshi = lib.mkDefault true; - gpgagent = lib.mkDefault true; - gammastep = lib.mkDefault true; - spicetify = lib.mkDefault true; - blueman-applet = lib.mkDefault true; - nm-applet = lib.mkDefault true; - obsidian-tray = lib.mkDefault true; - obsidian = lib.mkDefault true; - anki-tray = lib.mkDefault true; - element-tray = lib.mkDefault true; - vesktop-tray = lib.mkDefault true; anki = lib.mkDefault true; + anki-tray = lib.mkDefault true; + atuin = lib.mkDefault true; + autotiling = lib.mkDefault true; + batsignal = lib.mkDefault true; + blueman-applet = lib.mkDefault true; + desktop = lib.mkDefault true; + direnv = lib.mkDefault true; + element-desktop = lib.mkDefault true; + element-tray = lib.mkDefault true; + emacs = lib.mkDefault true; + env = lib.mkDefault true; + eza = lib.mkDefault true; + firefox = lib.mkDefault true; + fuzzel = lib.mkDefault true; + gammastep = lib.mkDefault true; + general = lib.mkDefault true; + git = lib.mkDefault true; + gnome-keyring = lib.mkDefault true; + gpgagent = lib.mkDefault true; + hexchat = lib.mkDefault true; + kanshi = lib.mkDefault true; + kdeconnect = lib.mkDefault true; + kitty = lib.mkDefault true; + mail = lib.mkDefault true; + mako = lib.mkDefault true; + niri = lib.mkDefault true; + nix-index = lib.mkDefault true; + nixgl = lib.mkDefault true; + nix-your-shell = lib.mkDefault true; + nm-applet = lib.mkDefault true; + obs-studio = lib.mkDefault true; + obsidian = lib.mkDefault true; + obsidian-tray = lib.mkDefault true; + ownpackages = lib.mkDefault true; + packages = lib.mkDefault true; + passwordstore = lib.mkDefault true; + programs = lib.mkDefault true; + sops = lib.mkDefault false; + spicetify = lib.mkDefault true; + spotify-player = lib.mkDefault true; + ssh = lib.mkDefault true; + starship = lib.mkDefault true; + stylix = lib.mkDefault true; + sway = lib.mkDefault true; + swayidle = lib.mkDefault true; + swaylock = lib.mkDefault true; + swayosd = lib.mkDefault true; + symlink = lib.mkDefault true; + tmux = lib.mkDefault true; + vesktop = lib.mkDefault true; + vesktop-tray = lib.mkDefault true; + waybar = lib.mkDefault true; + yubikey = lib.mkDefault false; + yubikeytouch = lib.mkDefault true; + zellij = lib.mkDefault true; + zsh = lib.mkDefault true; }; }; diff --git a/profiles/nixos/personal/default.nix b/profiles/nixos/personal/default.nix index f685224..1dadd06 100644 --- a/profiles/nixos/personal/default.nix +++ b/profiles/nixos/personal/default.nix @@ -3,52 +3,52 @@ options.swarselprofiles.personal = lib.mkEnableOption "is this a personal host"; config = lib.mkIf config.swarselprofiles.personal { swarselmodules = { - packages = lib.mkDefault true; - pii = lib.mkDefault true; - general = lib.mkDefault true; - home-manager = lib.mkDefault true; - xserver = lib.mkDefault true; - users = lib.mkDefault true; - env = lib.mkDefault true; - security = lib.mkDefault true; - systemdTimeout = lib.mkDefault true; - hardware = lib.mkDefault true; - pulseaudio = lib.mkDefault true; - pipewire = lib.mkDefault true; - network = lib.mkDefault true; - time = lib.mkDefault true; - sops = lib.mkDefault true; - stylix = lib.mkDefault true; - programs = lib.mkDefault true; - zsh = lib.mkDefault true; - syncthing = lib.mkDefault true; - blueman = lib.mkDefault true; - networkDevices = lib.mkDefault true; - gvfs = lib.mkDefault true; - interceptionTools = lib.mkDefault true; # keyd = lib.mkDefault true; - swayosd = lib.mkDefault true; - ppd = lib.mkDefault true; - yubikey = lib.mkDefault true; - ledger = lib.mkDefault true; - keyboards = lib.mkDefault true; - login = lib.mkDefault true; - nix-ld = lib.mkDefault true; - impermanence = lib.mkDefault true; - nvd = lib.mkDefault true; - gnome-keyring = lib.mkDefault true; - uwsm = lib.mkDefault true; - sway = lib.mkDefault true; - niri = lib.mkDefault true; - xdg-portal = lib.mkDefault true; - distrobox = lib.mkDefault true; appimage = lib.mkDefault true; - lid = lib.mkDefault true; - lowBattery = lib.mkDefault true; - lanzaboote = lib.mkDefault true; autologin = lib.mkDefault true; + blueman = lib.mkDefault true; boot = lib.mkDefault true; btrfs = lib.mkDefault true; + distrobox = lib.mkDefault true; + env = lib.mkDefault true; + general = lib.mkDefault true; + gnome-keyring = lib.mkDefault true; + gvfs = lib.mkDefault true; + hardware = lib.mkDefault true; + home-manager = lib.mkDefault true; + impermanence = lib.mkDefault true; + interceptionTools = lib.mkDefault true; + keyboards = lib.mkDefault true; + lanzaboote = lib.mkDefault true; + ledger = lib.mkDefault true; + lid = lib.mkDefault true; + login = lib.mkDefault true; + lowBattery = lib.mkDefault false; + network = lib.mkDefault true; + networkDevices = lib.mkDefault true; + niri = lib.mkDefault true; + nix-ld = lib.mkDefault true; + nvd = lib.mkDefault true; + packages = lib.mkDefault true; + pii = lib.mkDefault true; + pipewire = lib.mkDefault true; + ppd = lib.mkDefault true; + programs = lib.mkDefault true; + pulseaudio = lib.mkDefault true; + security = lib.mkDefault true; + sops = lib.mkDefault true; + stylix = lib.mkDefault true; + sway = lib.mkDefault true; + swayosd = lib.mkDefault true; + syncthing = lib.mkDefault true; + systemdTimeout = lib.mkDefault true; + time = lib.mkDefault true; + users = lib.mkDefault true; + uwsm = lib.mkDefault true; + xdg-portal = lib.mkDefault true; + xserver = lib.mkDefault true; + yubikey = lib.mkDefault true; + zsh = lib.mkDefault true; }; home-manager.users."${config.swarselsystems.mainUser}" = { diff --git a/secrets/repo/pii.nix.enc b/secrets/repo/pii.nix.enc index 7363f49..89f4f54 100644 --- a/secrets/repo/pii.nix.enc +++ b/secrets/repo/pii.nix.enc @@ -1,5 +1,5 @@ { - "data": "ENC[AES256_GCM,data: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,iv:9zObdum4T/ejBPPtX06ncAdgBe3ypZHbtOBaelS9100=,tag:MQxyCpZ2Z7dB5Re1ty+jGA==,type:str]", + "data": "ENC[AES256_GCM,data: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,iv:Y6SA957nt4h9t7KP2btXKIVhWZXBjW+6BrZ6ylYidT0=,tag:eRzQgj1EU6eGAZjzgL4mhw==,type:str]", "sops": { "age": [ { @@ -27,8 +27,8 @@ "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtU240VjVRZmJ5TGsrclJF\nRXRLbTRCZURtR0Z3d2E2eDNNeGRDODlXVEY4CllTeVFYbDJQWlRSS1RFLzAxSnlM\nZi9NU1c3cWo3YWRLcUJ2U2ZFWFBBVEEKLS0tIGtmZU9qSWdBT3RDeStaaFFDSWtk\ndkUzZXJwZUl4LzVxYXdidmxXRnNnclUKyAMZqCKSY/RQvTR4bbjLaPnGKwdBcHXc\nvtiVSrLdIdzMa6id/J07TJH5UesUmcp0wjU41MDa4aMBLy+cXhuBHA==\n-----END AGE ENCRYPTED FILE-----\n" } ], - "lastmodified": "2025-10-08T21:54:23Z", - "mac": "ENC[AES256_GCM,data:vjpvEgzViQDpE4DQE34xKj3dj3yvva1NvjZqfzs9R3uAtqWu2fe5jkLcrMI4t35co3lP84VUwKM5HQ33wKYvmaCsPrM2tvPLI4KSXWU1e+TSfSFphDr21OGZImEUW5Je9hhmgo/rg37Dkc/hq3npoeG3mtHdl6zw2c8URgi/vqk=,iv:fZN8la3P4lalI0AGPJbHOo5D1Q+EmV3SOKg3s47/u0o=,tag:OLsMZbIMRV6X5Wc8NpDFnA==,type:str]", + "lastmodified": "2025-10-11T07:31:31Z", + "mac": "ENC[AES256_GCM,data:PnHpvceDR85hyKkOTcSaqY4Lg/2mqFvxCSShBxi4DSaTSJkSJwcJ+pWgSdZFu9+P2k/fQv49U/2uTiLZuvPZaIsZKFWG2ngQU9WgxDkte8/DlSHW2yjW2KdJrs4Gv45GcEMzGJRUC8XzY1r5x40VvqyYZX0F30qiOpYGtLJiGKk=,iv:QwhVQaGMj+2m8DDfXeX0iaOlOgwe4I9fhBEQ6t5WF9Y=,tag:cm+1ccwoDfLjbe8UcaTa+Q==,type:str]", "pgp": [ { "created_at": "2025-06-13T20:13:06Z",