From 4e985811fc84467f566c4b9bcb70a55f65e26683 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leon=20Schwarz=C3=A4ugl?= Date: Sat, 11 Oct 2025 21:53:46 +0200 Subject: [PATCH] feat[client]: add autotiling --- SwarselSystems.org | 8 +- flake.lock | 6 +- hosts/nixos/pyramid/secrets/pii.nix.enc | 8 +- index.html | 2046 ++++++++++++++--------- modules/home/common/autotiling.nix | 14 + modules/home/common/sway.nix | 2 +- nix/hosts.nix | 3 +- 7 files changed, 1265 insertions(+), 822 deletions(-) create mode 100644 modules/home/common/autotiling.nix diff --git a/SwarselSystems.org b/SwarselSystems.org index 67399e8..0b1bc8b 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 @@ -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" @@ -13952,7 +13954,6 @@ 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\" mode $exit { @@ -13969,6 +13970,7 @@ Currently, I am too lazy to explain every option here, but most of it is very se ${modifier}+Escape mode \"default\" } } + # exec_always autotiling exec systemctl --user import-environment exec swayidle -w 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:TAwmpSF2fhM/gHIL2qUs4lvaLwzbg3UR2ges9x3uioLMYCn4o0fFnf+NbqM3CBERqrBTh6f4TpWTD1SJ9934ZhvwR09xhjc1wVM6JcE9yWfAifm8zwxK85SAn8c3Ap1WRsuDKT7RdoyDwh5IDkl2bgkznlFNVIrIMaUSjj1XITacNwFuIBKoPBJjX9jHjYg0PT07RSQ2VWh9xGLbp9/RKDu+csVaNSdPqRRPYwPbwpcML34ABWvlwDre1dCwJjhq/hdBdAL9/fasvHSdYOinDytH67d8jrEOPGZGKUTOERf2GUGsgqMYuPmkVSG+3JRhZvOZZEVuCexvyErVvHoxXzMCfv/DzaqB9KgKZmL1Wfak/KLCeXs4jfPUS0+dEi0sxNc+R77opPbVqTEBO64mgniWbtvk0N3GHrBJj1BDR/9v/gs72QMcatQnSuWMAZ1DnRfsHVBYxvuAdZ+vEKhQ61lkdh7bV7FKkG9xQwO/W0b2dfAdpfTe3n2tRhzznEwhGDyujfTTguOpQrd/0whuI8Ete0eTGNFj5zrUcBOHR+HE+CuQlathFUEMAjxx+/oy7gk6pm9olDBSl6ptzJjGDF/suV0NUT5mcm6zVSUxGMMCjuH3MlKI0VTcdm69WpgDYj07seFvBfRs/pAEj5mMVbEY9VE8BRNiM5fQumQzwr5BlAEyWgy6VZ74wt4F/Y/3iPHv3n516ZwmBYVJ7xxqYqo3+lpenVurYCy9v0rw0KndojcE852oil90GX6R6ZhMQmM0JbUl4n75oI6ug5zHyzHUluuTNIZ1rNZzPamt32EOIeXkSTs+jAfyjku0eENt8aX14BZBsCh7JG+f7YNyIs711wK7rzMw3JBvk1vXveOFPjK4vBimIG3uBkiAiQ4GFk01ISTbpMvdmLmdtPeZdjp29OiMqWlG4GLm/4XfmHMvsLpnkCTKEKn75RD4eOuvp1P1oaopkPt1oQqMVJtUmFjA4NZlyRSn+KkLTO0lAjsfl03HsTC6RnQcnBNlEMBD0I2VFhH4qIKHrmwgMy5LCeWWQ0/QYPgtfV/xbO2AlvRwX4I5VYjlAZ00TZ3147qXF2KAweINOEHGavegFabx9Bh3MwM8JP2l1BPlO7eE5iXkwmvIPT2yr+dzNyd3A/uV4tnX/h3z7eErpmv189EZY6iKq6011d1En8l3x3PJMrtU0qwCXbwG0RBERbh1rH++gfED0A2LFnVDUAmiVTWTv26ik3kG9YRQbAL1LC9Bfx0jhktRy8uQRu9COMJX6oobC64/FThV1phuPfsEm468r5sJ/8sTkVHYQPf57ePE4uP5axvNB9D0nZwRhlh5duSaaOY64Sg3PdxT6h39V6GR42q9lCTJ7MFxm8YLzaeh3cf0Tl2aoZC4T6WQCbcNZ4SzncUBwDmJvbBjHqHM63nHuvlK5XPAgyWCtAoLpvQAKWeDPupCxLNyHB6uDbzAS3sY/XVD5qDAJffZBxNqwJHdPiO3gDn8aBZe51AamOmdqxK2ujl1XlBSLFmFkRSwssGoQQrLfQp1o0O0pCSfRy0cSStCp8uwzSubGF2Z1ebYViBpl8HwFmAA+i31nWhplEsFivdBqSlO+R5slKCZcZRVQynFsvLe2Rrp2uXaQzs27GeKUKE5jl0Yzmia8V7EKacTxZhs0/uEkhTRiMIjLzGPjFDHCPQr5APYzXrzauJeVbf9w7pkDlXeyDfu3pG+Nk3ljL+blyCA/sPFMFpwEUm5WdoVAb5sE2d8WcCDmJG9jWRrRs32i3lrfEphORYku8qd+jdBiqqnOGqAySv01Ip+0zkhstXuze6WoH7k32DMHgxKEfPLHqqGKJxAVfCluKhybJlWnaZ2BMW2Ctz5yZHNyXnkqv9FONArLJPgnNpecaEPiZXDWLbOsBXuqjhuNvuB6llX5GOCoc36ynZGjoI/PgG2V7SU2DDQf5ibM7qQnLye/bKi8YiZKvzDcMzbkujM5+PZDhuXbilYjMybR5ct03QOHnv2xg7Tc2Uf0uCCc9GqaFGiKL/q7tTR2AqYJ0moypVVLRVhMBJolQtO1eUrUoZjtbM9gFRF8+BHbDbNP/zVO2Gk0hNIBl/VCG0eusqmSPk5dfesF2xhoTTdwTBjoxTGWzEezoBj+ufL1zK49n44+uLwTF1isS0PSsTlGHQmvZC4sDQCtr0bjzWag6CHAe3cYa6zizC0SHbrrkZhuxJId3yk0pVzpRMYZ5HRGMrTw0W9Y5oQt10GeCtmhM03H80J+Q7M8/TtqF2dWf249aNI93RGQLiVMUj06k5hLwHk2/BlFdeOgzzQxzrVx03Y+qWNUMPVVJViyQp42tCinAaLYw2eCbtrj4/Ze0v8u/gZYMdgq1KegyNEPIQqlM9MGbCcwIXgEWGl9hvIngmQ+ZuoiJtjGhvRHtqUzql4x2IsfxOxcUVwXxoM6yISZrOdmiLgpd/mp/NBPEomba6E5AjQFlzy/b5Vk0/HT6EgYdJNXBthVWqB+X0/4IzQ79o9Kwd1VjOAkBvXy/siWuSU03demYuKnZTsCBV7h2bWyge19rCYyUryN9WaB+fcnVHmFvU999SUudE+6QXZC/0ZIU1SV2K9K5Cqovw7zSCTM2w+0QZp+0LCbPDS/tDOKpd2z0uHg5UWy11gH/i4P9Lt7ygRAjRQ0gZ9K3N41Z2RfH9UTTUsnKMXR5+Z6ebZhi6IST6VlOa1ahJj7CRXOSBxNeK6vWtHfSmO56wJN7FcoItsehpcwDyMYVIYYEe53eZTuho3UKqd/q9QEBlgwFpiBmUy6CEX4jryiC6LDiUEFL63YIq2qNy4JLhSjG7JwaAzjCXdDv3Au3tiWV+sDXNV88MG0AEAM/zQ83bHMhv/xcyvp/TA2YOuYBfvlVYuxXASbFzl,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..58c47ec 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 @@ @@ -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,13 @@ 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 +13019,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 +13076,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 +13088,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 +13162,29 @@ nix-index provides a way to find out which packages are provided by which deriva

    +
    +
    3.3.1.15. nix-your-shell
    +
    +
    +
    { self, lib, config, pkgs, ... }:
    +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 +13209,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 +13232,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 +13259,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 +13285,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 +13346,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 +13375,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 +13511,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 +13542,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 +13730,7 @@ in

    -
    3.3.1.24. zellij
    +
    3.3.1.25. zellij
    { self, lib, config, pkgs, ... }:
    @@ -13710,7 +13758,7 @@ in
     
    -
    3.3.1.25. tmux
    +
    3.3.1.26. tmux
    { lib, config, pkgs, ... }:
    @@ -13819,7 +13867,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 +14070,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 +14181,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 +14537,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 +14716,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 +14744,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 +14767,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 +14818,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 +14837,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 +14876,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 +14891,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 +14907,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 +14942,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 +14981,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 +15016,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 +15053,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 +15215,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 +15310,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 +15459,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 +15497,7 @@ exec_always autotiling

    -
    3.3.1.32. Niri
    +
    3.3.1.33. Niri
    { config, pkgs, lib, vars, ... }:
    @@ -15659,7 +15709,7 @@ exec_always autotiling
     
    -
    3.3.1.33. Kanshi
    +
    3.3.1.34. Kanshi
    { self, lib, pkgs, config, ... }:
    @@ -15766,7 +15816,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 +15873,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 +15899,7 @@ in

    -
    3.3.1.36. Spicetify
    +
    3.3.1.37. Spicetify
    { inputs, lib, config, pkgs, ... }:
    @@ -15879,9 +15929,9 @@ in
     
    -
    -
    3.3.1.37. Obsidian
    -
    +
    +
    3.3.1.38. Obsidian
    +
    { lib, config, pkgs, nixosConfig ? config, ... }:
       let
    @@ -16019,11 +16069,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 +16100,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 +16136,312 @@ in
         };
       };
     
    +}
    +
    +
    +
    +
    +
    +
    3.3.1.40. Element-desktop
    +
    +
    +
    { lib, config, ... }:
    +let
    +  moduleName = "element-desktop";
    +  inherit (config.swarselsystems) isPublic isNixos;
    +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, nixosConfig ? config, ... }:
    +let
    +  moduleName = "spotify-player";
    +  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;
    +      };
    +    };
    +
    +  }
    +
    +
    +
    +
    +
    +
    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 +16561,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 +16599,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 +17565,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 +19683,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 +19783,8 @@ in

    -
    -
    3.6.1.3. Optionals
    +
    +
    3.6.1.3. Optionals
    { lib, config, ... }:
    @@ -19620,53 +20014,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 +24109,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 +24122,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 +24190,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
    @@ -26449,7 +26875,7 @@ similarly, there exists an version that starts from the right.
     
    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/sway.nix b/modules/home/common/sway.nix index 6977c49..0b3b2bf 100644 --- a/modules/home/common/sway.nix +++ b/modules/home/common/sway.nix @@ -391,7 +391,7 @@ in swayfxSettings = config.swarselsystems.swayfxConfig; in " -exec_always autotiling +# exec_always autotiling set $exit \"exit: [s]leep, [l]ock, [p]oweroff, [r]eboot, [u]ser logout\" mode $exit { 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