From 0ee989b8473bcdf3f7e4c2bb68217cbaab25cdd1 Mon Sep 17 00:00:00 2001 From: Silas Schöffel Date: Tue, 23 Jun 2026 02:56:12 +0200 Subject: treewide: rename paths to jaki --- flake/nixosConfigurations/default.nix | 2 +- hm/jaki/default.nix | 54 ++++++ hm/sils/default.nix | 54 ------ modules/hm/default.nix | 2 +- modules/hm/jaki/bat.nix | 21 +++ modules/hm/jaki/default.nix | 29 ++++ modules/hm/jaki/direnv.nix | 15 ++ modules/hm/jaki/etesync-dav.nix | 17 ++ modules/hm/jaki/fastfetch.nix | 16 ++ modules/hm/jaki/fd.nix | 17 ++ modules/hm/jaki/firefox/default.nix | 51 ++++++ modules/hm/jaki/firefox/user-overrides.js | 24 +++ modules/hm/jaki/foot.nix | 20 +++ modules/hm/jaki/ghostty.nix | 15 ++ modules/hm/jaki/git.nix | 65 +++++++ modules/hm/jaki/hyfetch.nix | 31 ++++ modules/hm/jaki/hyprland.nix | 210 +++++++++++++++++++++++ modules/hm/jaki/iamb.nix | 38 ++++ modules/hm/jaki/jameica.nix | 15 ++ modules/hm/jaki/kdeconnect.nix | 15 ++ modules/hm/jaki/mail.nix | 110 ++++++++++++ modules/hm/jaki/nextcloud.nix | 16 ++ modules/hm/jaki/poweralertd/default.nix | 14 ++ modules/hm/jaki/sway.nix | 16 ++ modules/hm/jaki/swaync/default.nix | 32 ++++ modules/hm/jaki/theming.nix | 32 ++++ modules/hm/jaki/vscodium.nix | 29 ++++ modules/hm/jaki/wofi/default.nix | 14 ++ modules/hm/jaki/yt-dlp.nix | 12 ++ modules/hm/jaki/zathura.nix | 14 ++ modules/hm/jaki/zellij.nix | 14 ++ modules/hm/sils/bat.nix | 21 --- modules/hm/sils/default.nix | 29 ---- modules/hm/sils/direnv.nix | 15 -- modules/hm/sils/etesync-dav.nix | 17 -- modules/hm/sils/fastfetch.nix | 16 -- modules/hm/sils/fd.nix | 17 -- modules/hm/sils/firefox/default.nix | 51 ------ modules/hm/sils/firefox/user-overrides.js | 24 --- modules/hm/sils/foot.nix | 20 --- modules/hm/sils/ghostty.nix | 15 -- modules/hm/sils/git.nix | 65 ------- modules/hm/sils/hyfetch.nix | 31 ---- modules/hm/sils/hyprland.nix | 210 ----------------------- modules/hm/sils/iamb.nix | 38 ---- modules/hm/sils/jameica.nix | 15 -- modules/hm/sils/kdeconnect.nix | 15 -- modules/hm/sils/mail.nix | 110 ------------ modules/hm/sils/nextcloud.nix | 16 -- modules/hm/sils/poweralertd/default.nix | 14 -- modules/hm/sils/sway.nix | 16 -- modules/hm/sils/swaync/default.nix | 32 ---- modules/hm/sils/theming.nix | 32 ---- modules/hm/sils/vscodium.nix | 29 ---- modules/hm/sils/wofi/default.nix | 14 -- modules/hm/sils/yt-dlp.nix | 12 -- modules/hm/sils/zathura.nix | 14 -- modules/hm/sils/zellij.nix | 14 -- modules/nixos/default.nix | 2 +- modules/nixos/jaki/apparmor.nix | 14 ++ modules/nixos/jaki/basesystem.nix | 48 ++++++ modules/nixos/jaki/bluetooth.nix | 12 ++ modules/nixos/jaki/bootloader.nix | 30 ++++ modules/nixos/jaki/default.nix | 33 ++++ modules/nixos/jaki/disks.nix | 132 ++++++++++++++ modules/nixos/jaki/docker.nix | 24 +++ modules/nixos/jaki/environment.nix | 45 +++++ modules/nixos/jaki/firejail.nix | 24 +++ modules/nixos/jaki/font.nix | 28 +++ modules/nixos/jaki/fprintd.nix | 19 ++ modules/nixos/jaki/gnome.nix | 19 ++ modules/nixos/jaki/graphics.nix | 12 ++ modules/nixos/jaki/hyprland.nix | 15 ++ modules/nixos/jaki/impermanence.nix | 43 +++++ modules/nixos/jaki/meta.nix | 31 ++++ modules/nixos/jaki/networking.nix | 63 +++++++ modules/nixos/jaki/nix.nix | 66 +++++++ modules/nixos/jaki/pamconfig.nix | 29 ++++ modules/nixos/jaki/plasma.nix | 29 ++++ modules/nixos/jaki/plymouth.nix | 12 ++ modules/nixos/jaki/printing.nix | 44 +++++ modules/nixos/jaki/roles.nix | 86 ++++++++++ modules/nixos/jaki/sound.nix | 20 +++ modules/nixos/jaki/steam.nix | 19 ++ modules/nixos/jaki/sudo.nix | 24 +++ modules/nixos/jaki/sway.nix | 15 ++ modules/nixos/jaki/tailscale.nix | 52 ++++++ modules/nixos/jaki/theming/default.nix | 18 ++ modules/nixos/jaki/theming/tokyo-night-dark.yaml | 18 ++ modules/nixos/jaki/tor.nix | 23 +++ modules/nixos/sils/apparmor.nix | 14 -- modules/nixos/sils/basesystem.nix | 48 ------ modules/nixos/sils/bluetooth.nix | 12 -- modules/nixos/sils/bootloader.nix | 30 ---- modules/nixos/sils/default.nix | 33 ---- modules/nixos/sils/disks.nix | 132 -------------- modules/nixos/sils/docker.nix | 24 --- modules/nixos/sils/environment.nix | 45 ----- modules/nixos/sils/firejail.nix | 24 --- modules/nixos/sils/font.nix | 28 --- modules/nixos/sils/fprintd.nix | 19 -- modules/nixos/sils/gnome.nix | 19 -- modules/nixos/sils/graphics.nix | 12 -- modules/nixos/sils/hyprland.nix | 15 -- modules/nixos/sils/impermanence.nix | 43 ----- modules/nixos/sils/meta.nix | 31 ---- modules/nixos/sils/networking.nix | 63 ------- modules/nixos/sils/nix.nix | 66 ------- modules/nixos/sils/pamconfig.nix | 29 ---- modules/nixos/sils/plasma.nix | 29 ---- modules/nixos/sils/plymouth.nix | 12 -- modules/nixos/sils/printing.nix | 44 ----- modules/nixos/sils/roles.nix | 86 ---------- modules/nixos/sils/sound.nix | 20 --- modules/nixos/sils/steam.nix | 19 -- modules/nixos/sils/sudo.nix | 24 --- modules/nixos/sils/sway.nix | 15 -- modules/nixos/sils/tailscale.nix | 52 ------ modules/nixos/sils/theming/default.nix | 18 -- modules/nixos/sils/theming/tokyo-night-dark.yaml | 18 -- modules/nixos/sils/tor.nix | 23 --- 121 files changed, 2006 insertions(+), 2006 deletions(-) create mode 100644 hm/jaki/default.nix delete mode 100644 hm/sils/default.nix create mode 100644 modules/hm/jaki/bat.nix create mode 100644 modules/hm/jaki/default.nix create mode 100644 modules/hm/jaki/direnv.nix create mode 100644 modules/hm/jaki/etesync-dav.nix create mode 100644 modules/hm/jaki/fastfetch.nix create mode 100644 modules/hm/jaki/fd.nix create mode 100644 modules/hm/jaki/firefox/default.nix create mode 100755 modules/hm/jaki/firefox/user-overrides.js create mode 100644 modules/hm/jaki/foot.nix create mode 100644 modules/hm/jaki/ghostty.nix create mode 100644 modules/hm/jaki/git.nix create mode 100644 modules/hm/jaki/hyfetch.nix create mode 100644 modules/hm/jaki/hyprland.nix create mode 100644 modules/hm/jaki/iamb.nix create mode 100644 modules/hm/jaki/jameica.nix create mode 100644 modules/hm/jaki/kdeconnect.nix create mode 100644 modules/hm/jaki/mail.nix create mode 100644 modules/hm/jaki/nextcloud.nix create mode 100644 modules/hm/jaki/poweralertd/default.nix create mode 100644 modules/hm/jaki/sway.nix create mode 100644 modules/hm/jaki/swaync/default.nix create mode 100644 modules/hm/jaki/theming.nix create mode 100644 modules/hm/jaki/vscodium.nix create mode 100644 modules/hm/jaki/wofi/default.nix create mode 100644 modules/hm/jaki/yt-dlp.nix create mode 100644 modules/hm/jaki/zathura.nix create mode 100644 modules/hm/jaki/zellij.nix delete mode 100644 modules/hm/sils/bat.nix delete mode 100644 modules/hm/sils/default.nix delete mode 100644 modules/hm/sils/direnv.nix delete mode 100644 modules/hm/sils/etesync-dav.nix delete mode 100644 modules/hm/sils/fastfetch.nix delete mode 100644 modules/hm/sils/fd.nix delete mode 100644 modules/hm/sils/firefox/default.nix delete mode 100755 modules/hm/sils/firefox/user-overrides.js delete mode 100644 modules/hm/sils/foot.nix delete mode 100644 modules/hm/sils/ghostty.nix delete mode 100644 modules/hm/sils/git.nix delete mode 100644 modules/hm/sils/hyfetch.nix delete mode 100644 modules/hm/sils/hyprland.nix delete mode 100644 modules/hm/sils/iamb.nix delete mode 100644 modules/hm/sils/jameica.nix delete mode 100644 modules/hm/sils/kdeconnect.nix delete mode 100644 modules/hm/sils/mail.nix delete mode 100644 modules/hm/sils/nextcloud.nix delete mode 100644 modules/hm/sils/poweralertd/default.nix delete mode 100644 modules/hm/sils/sway.nix delete mode 100644 modules/hm/sils/swaync/default.nix delete mode 100644 modules/hm/sils/theming.nix delete mode 100644 modules/hm/sils/vscodium.nix delete mode 100644 modules/hm/sils/wofi/default.nix delete mode 100644 modules/hm/sils/yt-dlp.nix delete mode 100644 modules/hm/sils/zathura.nix delete mode 100644 modules/hm/sils/zellij.nix create mode 100644 modules/nixos/jaki/apparmor.nix create mode 100644 modules/nixos/jaki/basesystem.nix create mode 100644 modules/nixos/jaki/bluetooth.nix create mode 100644 modules/nixos/jaki/bootloader.nix create mode 100644 modules/nixos/jaki/default.nix create mode 100644 modules/nixos/jaki/disks.nix create mode 100644 modules/nixos/jaki/docker.nix create mode 100644 modules/nixos/jaki/environment.nix create mode 100644 modules/nixos/jaki/firejail.nix create mode 100644 modules/nixos/jaki/font.nix create mode 100644 modules/nixos/jaki/fprintd.nix create mode 100644 modules/nixos/jaki/gnome.nix create mode 100644 modules/nixos/jaki/graphics.nix create mode 100644 modules/nixos/jaki/hyprland.nix create mode 100644 modules/nixos/jaki/impermanence.nix create mode 100644 modules/nixos/jaki/meta.nix create mode 100644 modules/nixos/jaki/networking.nix create mode 100644 modules/nixos/jaki/nix.nix create mode 100644 modules/nixos/jaki/pamconfig.nix create mode 100644 modules/nixos/jaki/plasma.nix create mode 100644 modules/nixos/jaki/plymouth.nix create mode 100644 modules/nixos/jaki/printing.nix create mode 100644 modules/nixos/jaki/roles.nix create mode 100644 modules/nixos/jaki/sound.nix create mode 100644 modules/nixos/jaki/steam.nix create mode 100644 modules/nixos/jaki/sudo.nix create mode 100644 modules/nixos/jaki/sway.nix create mode 100644 modules/nixos/jaki/tailscale.nix create mode 100644 modules/nixos/jaki/theming/default.nix create mode 100644 modules/nixos/jaki/theming/tokyo-night-dark.yaml create mode 100644 modules/nixos/jaki/tor.nix delete mode 100644 modules/nixos/sils/apparmor.nix delete mode 100644 modules/nixos/sils/basesystem.nix delete mode 100644 modules/nixos/sils/bluetooth.nix delete mode 100644 modules/nixos/sils/bootloader.nix delete mode 100644 modules/nixos/sils/default.nix delete mode 100644 modules/nixos/sils/disks.nix delete mode 100644 modules/nixos/sils/docker.nix delete mode 100644 modules/nixos/sils/environment.nix delete mode 100644 modules/nixos/sils/firejail.nix delete mode 100644 modules/nixos/sils/font.nix delete mode 100644 modules/nixos/sils/fprintd.nix delete mode 100644 modules/nixos/sils/gnome.nix delete mode 100644 modules/nixos/sils/graphics.nix delete mode 100644 modules/nixos/sils/hyprland.nix delete mode 100644 modules/nixos/sils/impermanence.nix delete mode 100644 modules/nixos/sils/meta.nix delete mode 100644 modules/nixos/sils/networking.nix delete mode 100644 modules/nixos/sils/nix.nix delete mode 100644 modules/nixos/sils/pamconfig.nix delete mode 100644 modules/nixos/sils/plasma.nix delete mode 100644 modules/nixos/sils/plymouth.nix delete mode 100644 modules/nixos/sils/printing.nix delete mode 100644 modules/nixos/sils/roles.nix delete mode 100644 modules/nixos/sils/sound.nix delete mode 100644 modules/nixos/sils/steam.nix delete mode 100644 modules/nixos/sils/sudo.nix delete mode 100644 modules/nixos/sils/sway.nix delete mode 100644 modules/nixos/sils/tailscale.nix delete mode 100644 modules/nixos/sils/theming/default.nix delete mode 100644 modules/nixos/sils/theming/tokyo-night-dark.yaml delete mode 100644 modules/nixos/sils/tor.nix diff --git a/flake/nixosConfigurations/default.nix b/flake/nixosConfigurations/default.nix index ec7d3ce..1e21606 100644 --- a/flake/nixosConfigurations/default.nix +++ b/flake/nixosConfigurations/default.nix @@ -22,7 +22,7 @@ backupFileExtension = "backup"; useGlobalPkgs = true; useUserPackages = true; - users.jaki = import ../../hm/sils; + users.jaki = import ../../hm/jaki; extraSpecialArgs = attrs; }; } diff --git a/hm/jaki/default.nix b/hm/jaki/default.nix new file mode 100644 index 0000000..6fd1a71 --- /dev/null +++ b/hm/jaki/default.nix @@ -0,0 +1,54 @@ +{nixvim, ...}: { + imports = [ + ../../modules/hm + ../gpg + ../gtk + ../nixvim + ../packages + ../rofi + ../ssh + ../swayidle + ../swaylock + ../swayosd + ../xsession + ../waybar + ../xdg + ../zsh + nixvim.homeModules.nixvim + ]; + + home = { + username = "jaki"; + homeDirectory = "/home/jaki"; + stateVersion = "23.05"; + }; + + sils = { + bat.enable = true; + direnv.enable = true; + etesync-dav.enable = true; + fd.enable = true; + fastfetch.enable = true; + firefox.enable = true; + foot.enable = true; + ghostty.enable = true; + git.enable = true; + hyfetch.enable = true; + hyprland.enable = true; + iamb.enable = true; + jameica.enable = true; + kdeconnect.enable = true; + mail.enable = true; + nextcloud.enable = true; + poweralertd.enable = true; + sway.enable = true; + swaync.enable = true; + theming.enable = true; + vscodium.enable = true; + wofi.enable = true; + yt-dlp.enable = true; + zathura.enable = true; + zellij.enable = true; + }; + programs.home-manager.enable = true; +} diff --git a/hm/sils/default.nix b/hm/sils/default.nix deleted file mode 100644 index 6fd1a71..0000000 --- a/hm/sils/default.nix +++ /dev/null @@ -1,54 +0,0 @@ -{nixvim, ...}: { - imports = [ - ../../modules/hm - ../gpg - ../gtk - ../nixvim - ../packages - ../rofi - ../ssh - ../swayidle - ../swaylock - ../swayosd - ../xsession - ../waybar - ../xdg - ../zsh - nixvim.homeModules.nixvim - ]; - - home = { - username = "jaki"; - homeDirectory = "/home/jaki"; - stateVersion = "23.05"; - }; - - sils = { - bat.enable = true; - direnv.enable = true; - etesync-dav.enable = true; - fd.enable = true; - fastfetch.enable = true; - firefox.enable = true; - foot.enable = true; - ghostty.enable = true; - git.enable = true; - hyfetch.enable = true; - hyprland.enable = true; - iamb.enable = true; - jameica.enable = true; - kdeconnect.enable = true; - mail.enable = true; - nextcloud.enable = true; - poweralertd.enable = true; - sway.enable = true; - swaync.enable = true; - theming.enable = true; - vscodium.enable = true; - wofi.enable = true; - yt-dlp.enable = true; - zathura.enable = true; - zellij.enable = true; - }; - programs.home-manager.enable = true; -} diff --git a/modules/hm/default.nix b/modules/hm/default.nix index 2d05002..58f4403 100644 --- a/modules/hm/default.nix +++ b/modules/hm/default.nix @@ -1,5 +1,5 @@ {...}: { imports = [ - ./sils + ./jaki ]; } diff --git a/modules/hm/jaki/bat.nix b/modules/hm/jaki/bat.nix new file mode 100644 index 0000000..5f7b967 --- /dev/null +++ b/modules/hm/jaki/bat.nix @@ -0,0 +1,21 @@ +{ + config, + lib, + pkgs, + ... +}: let + cfg = config.sils.bat; +in { + options.sils.bat.enable = lib.mkEnableOption "bat"; + config = lib.mkIf cfg.enable { + programs.bat = { + enable = true; + extraPackages = with pkgs.bat-extras; [ + batdiff + batman + batgrep + batwatch + ]; + }; + }; +} diff --git a/modules/hm/jaki/default.nix b/modules/hm/jaki/default.nix new file mode 100644 index 0000000..675500f --- /dev/null +++ b/modules/hm/jaki/default.nix @@ -0,0 +1,29 @@ +{...}: { + imports = [ + ./bat.nix + ./direnv.nix + ./etesync-dav.nix + ./fd.nix + ./fastfetch.nix + ./firefox + ./foot.nix + ./ghostty.nix + ./git.nix + ./hyfetch.nix + ./hyprland.nix + ./iamb.nix + ./jameica.nix + ./kdeconnect.nix + ./mail.nix + ./nextcloud.nix + ./poweralertd + ./sway.nix + ./swaync + ./theming.nix + ./vscodium.nix + ./wofi + ./yt-dlp.nix + ./zathura.nix + ./zellij.nix + ]; +} diff --git a/modules/hm/jaki/direnv.nix b/modules/hm/jaki/direnv.nix new file mode 100644 index 0000000..88ee8f8 --- /dev/null +++ b/modules/hm/jaki/direnv.nix @@ -0,0 +1,15 @@ +{ + config, + lib, + ... +}: let + cfg = config.sils.direnv; +in { + options.sils.direnv.enable = lib.mkEnableOption "direnv"; + config = lib.mkIf cfg.enable { + programs.direnv = { + enable = true; + nix-direnv.enable = true; + }; + }; +} diff --git a/modules/hm/jaki/etesync-dav.nix b/modules/hm/jaki/etesync-dav.nix new file mode 100644 index 0000000..f524928 --- /dev/null +++ b/modules/hm/jaki/etesync-dav.nix @@ -0,0 +1,17 @@ +{ + config, + lib, + ... +}: let + cfg = config.sils.etesync-dav; +in { + options.sils.etesync-dav.enable = lib.mkEnableOption "etesync-dav"; + config = lib.mkIf cfg.enable { + services.etesync-dav = { + enable = true; + serverUrl = "https://etebase.vhack.eu"; + #settings = { + #}; + }; + }; +} diff --git a/modules/hm/jaki/fastfetch.nix b/modules/hm/jaki/fastfetch.nix new file mode 100644 index 0000000..f3efcab --- /dev/null +++ b/modules/hm/jaki/fastfetch.nix @@ -0,0 +1,16 @@ +{ + config, + lib, + ... +}: let + cfg = config.sils.fastfetch; +in { + options.sils.fastfetch = { + enable = lib.mkEnableOption "fastfetch"; + }; + config = lib.mkIf cfg.enable { + programs.fastfetch = { + enable = true; + }; + }; +} diff --git a/modules/hm/jaki/fd.nix b/modules/hm/jaki/fd.nix new file mode 100644 index 0000000..7f8e35c --- /dev/null +++ b/modules/hm/jaki/fd.nix @@ -0,0 +1,17 @@ +{ + config, + lib, + ... +}: let + cfg = config.sils.fd; +in { + options.sils.fd = { + enable = lib.mkEnableOption "fd, a fast find alternative"; + }; + + config = lib.mkIf cfg.enable { + programs.fd = { + enable = true; + }; + }; +} diff --git a/modules/hm/jaki/firefox/default.nix b/modules/hm/jaki/firefox/default.nix new file mode 100644 index 0000000..7e40c9b --- /dev/null +++ b/modules/hm/jaki/firefox/default.nix @@ -0,0 +1,51 @@ +{ + config, + lib, + pkgs, + arkenfox-user-js, + ... +}: let + cfg = config.sils.firefox; + user-overrides-js = pkgs.writeText "user_override.js" (builtins.readFile ./user-overrides.js); + user-js = pkgs.runCommand "user.js" {} '' + mkdir $out; + cat "${arkenfox-user-js}/user.js" > $out/user.js; + cat "${user-overrides-js}" >> $out/user.js; + ''; +in { + options.sils.firefox = { + enable = lib.mkEnableOption "opinionated firefox configuration"; + }; + config = lib.mkIf cfg.enable { + stylix.targets.firefox.profileNames = ["default"]; + programs.firefox = { + enable = true; + configPath = "${config.xdg.configHome}/mozilla/firefox"; + profiles = { + "default" = { + containers = { + banking = { + color = "green"; + icon = "dollar"; + id = 1; + }; + codeberg = { + color = "orange"; + icon = "briefcase"; + id = 2; + }; + }; + extraConfig = builtins.readFile "${user-js}/user.js"; + id = 1; + isDefault = true; + name = "default"; + search = { + default = "ddg"; + privateDefault = "ddg"; + force = true; + }; + }; + }; + }; + }; +} diff --git a/modules/hm/jaki/firefox/user-overrides.js b/modules/hm/jaki/firefox/user-overrides.js new file mode 100755 index 0000000..331a506 --- /dev/null +++ b/modules/hm/jaki/firefox/user-overrides.js @@ -0,0 +1,24 @@ +//custom things for the user.js +user_pref("_user.js.parrot", "overrides section syntax error"); +//Fingerprinting resistance doesn't make sense in any browser other than Tor. +//user_pref("privacy.window.maxInnerWidth", 1000); +//user_pref("privacy.window.maxInnerHeight", 1900); +user_pref("privacy.resistFingerprinting", false); +user_pref("privacy.resistFingerprinting.letterboxing", false); + +/* override recipe: enable session restore ***/ +//user_pref("browser.startup.page", 3); // 0102 + // user_pref("browser.privatebrowsing.autostart", false); // 0110 required if you had it set as true +user_pref("places.history.enabled", true); // 0862 required if you had it set as false +user_pref("browser.sessionstore.privacy_level", 0); // 1021 optional [to restore extras like cookies/formdata] +user_pref("privacy.clearOnShutdown.history", false); // 2803 +user_pref("privacy.clearOnShutdown.cookies", false); // 2803 optional +user_pref("privacy.clearOnShutdown.formdata", false); // 2803 optional +user_pref("privacy.cpd.history", false); // 2804 to match when you use Ctrl-Shift-Del + // user_pref("privacy.cpd.cookies", false); // 2804 optional + // user_pref("privacy.cpd.formdata", false); // 2804 optional +user_pref("privacy.clearOnShutdown_v2.browsingHistoryAndDownloads", false); // 2812 FF136+ +user_pref("network.cookie.lifetimePolicy", 0); +// I want to use Google Earth sometimes. +user_pref("webgl.disabled", false); +user_pref("_user.js.parrot", "overrides section successful"); diff --git a/modules/hm/jaki/foot.nix b/modules/hm/jaki/foot.nix new file mode 100644 index 0000000..b6a0212 --- /dev/null +++ b/modules/hm/jaki/foot.nix @@ -0,0 +1,20 @@ +{ + config, + lib, + ... +}: let + cfg = config.sils.foot; +in { + options.sils.foot.enable = lib.mkEnableOption "the foot terminal emulator"; + config = lib.mkIf cfg.enable { + programs.foot = { + enable = true; + #settings = { + # colors = { + # background = "e8ead7"; + # foreground = "242424"; + # }; + #}; + }; + }; +} diff --git a/modules/hm/jaki/ghostty.nix b/modules/hm/jaki/ghostty.nix new file mode 100644 index 0000000..cd871bc --- /dev/null +++ b/modules/hm/jaki/ghostty.nix @@ -0,0 +1,15 @@ +{ + config, + lib, + ... +}: let + cfg = config.sils.ghostty; +in { + options.sils.ghostty.enable = lib.mkEnableOption "the ghostty terminal emulator"; + config = lib.mkIf cfg.enable { + programs.ghostty = { + enable = true; + enableZshIntegration = true; + }; + }; +} diff --git a/modules/hm/jaki/git.nix b/modules/hm/jaki/git.nix new file mode 100644 index 0000000..a17adfe --- /dev/null +++ b/modules/hm/jaki/git.nix @@ -0,0 +1,65 @@ +{ + config, + lib, + pkgs, + ... +}: let + cfg = config.sils.git; +in { + options.sils.git.enable = lib.mkEnableOption "sils git config"; + config = lib.mkIf cfg.enable { + programs = { + git = { + enable = true; + package = pkgs.gitFull; + settings = { + aliases = { + recommit = "commit --file=.git/COMMIT_EDITMSG --edit"; + }; + user = { + name = "Silas Schöffel"; + email = "sils@sils.li"; + }; + signing = { + key = "467B7D129EA73AC9"; + signByDefault = false; + }; + core = { + autocrlf = "input"; + }; + safe = { + directory = "/etc/nixos"; + }; + push = { + autoSetupRemote = true; + }; + init = { + defaultBranch = "main"; + }; + commit = { + verbose = true; + }; + sendemail = { + smtpserver = "mail.foss-syndicate.org"; + smtpuser = "sils@sils.li"; + smtpencryption = "ssl"; + smtpserverport = "465"; + }; + }; + }; + delta = { + enable = true; + enableGitIntegration = true; + options = { + decorations = { + commit-decoration-style = "bold purple box ul"; + file-decoration-style = "none"; + file-style = "bold red ul"; + }; + features = "decorations"; + whitespace-error-style = "22 reverse"; + }; + }; + }; + }; +} diff --git a/modules/hm/jaki/hyfetch.nix b/modules/hm/jaki/hyfetch.nix new file mode 100644 index 0000000..e664e0e --- /dev/null +++ b/modules/hm/jaki/hyfetch.nix @@ -0,0 +1,31 @@ +{ + config, + lib, + ... +}: let + cfg = config.sils.hyfetch; +in { + options.sils.hyfetch = { + enable = lib.mkEnableOption "hyfetch"; + }; + + config = lib.mkIf cfg.enable { + programs.hyfetch = { + enable = true; + settings = { + preset = "nonbinary"; + mode = "rgb"; + light_dark = "dark"; + lightness = 0.5; + color_align = { + mode = "horizontal"; + custom_colors = []; + fore_back = null; + }; + backend = "fastfetch"; + distro = null; + pride_month_disable = true; + }; + }; + }; +} diff --git a/modules/hm/jaki/hyprland.nix b/modules/hm/jaki/hyprland.nix new file mode 100644 index 0000000..b21aef2 --- /dev/null +++ b/modules/hm/jaki/hyprland.nix @@ -0,0 +1,210 @@ +{ + config, + lib, + pkgs, + self, + ... +}: let + cfg = config.sils.hyprland; +in { + options.sils.hyprland.enable = lib.mkEnableOption "sils hyprland config"; + config = lib.mkIf cfg.enable { + home.pointerCursor = { + enable = true; + name = "Adwaita"; + gtk.enable = true; + x11.enable = true; + size = 24; + package = pkgs.adwaita-icon-theme; + }; + wayland.windowManager.hyprland = { + enable = true; + settings = { + # See https://wiki.hyprland.org/Configuring/Monitors/ + monitor = ",preferred,auto,auto"; + + # See https://wiki.hyprland.org/Configuring/Keywords/ for more + + # Execute your favorite apps at launch + # exec-once = waybar & hyprpaper & firefox + + # Source a file (multi-file configs) + # source = ~/.config/hypr/myColors.conf + + ecosystem = { + no_update_news = true; + }; + + # Some default env vars. + env = "XCURSOR_SIZE,24"; + + # For all categories, see https://wiki.hyprland.org/Configuring/Variables/ + input = { + kb_layout = "de"; + kb_variant = ""; + kb_model = ""; + kb_options = "grp:win_space_toggle"; + kb_rules = ""; + + follow_mouse = "1"; + + touchpad = { + natural_scroll = "yes"; + }; + + sensitivity = "0"; # -1.0 - 1.0, 0 means no modification. + }; + + general = { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + + gaps_in = "5"; + gaps_out = "10"; + border_size = "3"; + #"col.active_border" = "rgba(000000cc)"; + #"col.inactive_border" = "rgba(595959aa)"; + + layout = "dwindle"; + }; + + decoration = { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + + inactive_opacity = "0.8"; + active_opacity = "1"; + rounding = "10"; + blur = { + enabled = true; + size = "3"; + passes = "1"; + new_optimizations = "on"; + }; + + #drop_shadow = "yes"; + + #shadow_range = "4"; + #shadow_render_power = "3"; + #"col.shadow" = "rgba(1a1a1aee)"; + }; + + animations = { + enabled = "yes"; + + # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more + + bezier = "myBezier, 0.05, 0.9, 0.1, 1.05"; + + animation = [ + "windows, 1, 7, myBezier" + "windowsOut, 1, 7, default, popin 80%" + "border, 1, 10, default" + "borderangle, 1, 8, default" + "fade, 1, 7, default" + "workspaces, 1, 6, default" + ]; + }; + + dwindle = { + # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more + pseudotile = "yes"; # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below + preserve_split = "yes"; # you probably want this + }; + + #master = { + # # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more + # new_is_master = "true"; + #}; + + gesture = [ + "3, horizontal, workspace" + ]; + + # Example windowrule v1 + # windowrule = float, ^(kitty)$ + # Example windowrule v2 + # windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ + # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more + + # See https://wiki.hyprland.org/Configuring/Keywords/ for more + "$mainMod" = "SUPER"; + + # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more + bind = [ + "$mainMod, T, exec, ghostty" + "$mainMod, C, killactive, " + "$mainMod, M, exit, " + "$mainMod, E, exec, dolphin " + "$mainMod, V, togglefloating, " + "$mainMod, R, exec, wofi --show drun" + "$mainMod, P, pseudo, " # dwindle + "$mainMod, J, togglesplit, " # dwindle + "$mainMod, L, exec, swaylock" # screenlock + ''$mainMod, S, exec, grim -l 0 -g "$(slurp)" - | wl-copy'' # screenshots + ''$mainMod, K, exec, zsh -exec "ssh-agent && keepassxc"'' # opens keepass after starting ssh-agent + '', code:102, exec, zsh -exec "ssh-agent && keepassxc"'' + + # Move focus with mainMod + arrow keys + "$mainMod, left, movefocus, l" + "$mainMod, right, movefocus, r" + "$mainMod, up, movefocus, u" + "$mainMod, down, movefocus, d" + + # Switch workspaces with mainMod + [0-9] + "$mainMod, 1, workspace, 1" + "$mainMod, 2, workspace, 2" + "$mainMod, 3, workspace, 3" + "$mainMod, 4, workspace, 4" + "$mainMod, 5, workspace, 5" + "$mainMod, 6, workspace, 6" + "$mainMod, 7, workspace, 7" + "$mainMod, 8, workspace, 8" + "$mainMod, 9, workspace, 9" + "$mainMod, 0, workspace, 10" + + # Move active window to a workspace with mainMod + SHIFT + [0-9] + "$mainMod SHIFT, 1, movetoworkspace, 1" + "$mainMod SHIFT, 2, movetoworkspace, 2" + "$mainMod SHIFT, 3, movetoworkspace, 3" + "$mainMod SHIFT, 4, movetoworkspace, 4" + "$mainMod SHIFT, 5, movetoworkspace, 5" + "$mainMod SHIFT, 6, movetoworkspace, 6" + "$mainMod SHIFT, 7, movetoworkspace, 7" + "$mainMod SHIFT, 8, movetoworkspace, 8" + "$mainMod SHIFT, 9, movetoworkspace, 9" + "$mainMod SHIFT, 0, movetoworkspace, 10" + + # Scroll through existing workspaces with mainMod + scroll + "$mainMod, mouse_down, workspace, e+1" + "$mainMod, mouse_up, workspace, e-1" + ]; + binde = [ + ",XF86MonBrightnessUp, exec, brightnessctl s +3%" + ",XF86MonBrightnessDown, exec, brightnessctl s 3%-" + ",XF86AudioMute, exec, pactl set-sink-mute @DEFAULT_SINK@ toggle" + ",XF86AudioRaiseVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ +5%" + ",XF86AudioLowerVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ -5%" + ",XF86AudioMicMute, exec, pactl set-source-mute @DEFAULT_SOURCE@ toggle" + + "ALT, A, exec, pactl set-sink-mute @DEFAULT_SINK@ toggle" + "ALT SHIFT, A, exec, pactl set-sink-volume @DEFAULT_SINK@ +5%" + "$mainMod, ALT, exec, pactl set-sink-volume @DEFAULT_SINK@ -5%" + ]; + + # Move/resize windows with mainMod + LMB/RMB and dragging + bindm = [ + "$mainMod, mouse:272, movewindow" + "$mainMod, mouse:273, resizewindow" + ]; + #exec-once=bash ~/.config/hypr/start.sh + #exec-once=swww init & + exec-once = [ + "${pkgs.hyprland}/bin/hyprctl ${config.home.pointerCursor.name} ${toString config.home.pointerCursor.size}" + #"${pkgs.nwg-panel}/bin/nwg-panel" + "${pkgs.networkmanagerapplet}/bin/nm-applet --indicator" + #"${pkgs.waybar}/bin/waybar" + "${pkgs.swaybg}/bin/swaybg -i ${self}/files/wallpaper.jpg" + ]; + }; + }; + }; +} diff --git a/modules/hm/jaki/iamb.nix b/modules/hm/jaki/iamb.nix new file mode 100644 index 0000000..2c6932a --- /dev/null +++ b/modules/hm/jaki/iamb.nix @@ -0,0 +1,38 @@ +{ + config, + lib, + ... +}: let + cfg = config.sils.iamb; +in { + options = { + sils.iamb.enable = lib.mkEnableOption "iamb, a matrix tui client"; + }; + config = lib.mkIf cfg.enable { + programs.iamb = { + enable = true; + settings = { + profiles = { + ljs = { + user_id = "@sils:linksjugend-solid.de"; + url = "https://matrix.bak-it.de"; + }; + vhack = { + user_id = "@sils:vhack.eu"; + url = "https://matrix.vhack.eu"; + }; + }; + settings = { + notifications.enabled = true; + image_preview.protocol = { + type = "kitty"; + size = { + height = 10; + width = 66; + }; + }; + }; + }; + }; + }; +} diff --git a/modules/hm/jaki/jameica.nix b/modules/hm/jaki/jameica.nix new file mode 100644 index 0000000..815fb60 --- /dev/null +++ b/modules/hm/jaki/jameica.nix @@ -0,0 +1,15 @@ +{ + config, + pkgs, + lib, + ... +}: let + cfg = config.sils.jameica; +in { + options.sils.jameica.enable = lib.mkEnableOption "jameica"; + config = lib.mkIf cfg.enable { + home.packages = [ + pkgs.jameica + ]; + }; +} diff --git a/modules/hm/jaki/kdeconnect.nix b/modules/hm/jaki/kdeconnect.nix new file mode 100644 index 0000000..f8fe386 --- /dev/null +++ b/modules/hm/jaki/kdeconnect.nix @@ -0,0 +1,15 @@ +{ + config, + lib, + ... +}: let + cfg = config.sils.kdeconnect; +in { + options.sils.kdeconnect.enable = lib.mkEnableOption "kdeconnect"; + config = lib.mkIf cfg.enable { + services.kdeconnect = { + enable = true; + indicator = true; + }; + }; +} diff --git a/modules/hm/jaki/mail.nix b/modules/hm/jaki/mail.nix new file mode 100644 index 0000000..85583a2 --- /dev/null +++ b/modules/hm/jaki/mail.nix @@ -0,0 +1,110 @@ +{ + config, + lib, + pkgs, + ... +}: let + cfg = config.sils.mail; + vhackImap = { + host = "mail.foss-syndicate.org"; + port = 993; + }; + vhackSmtp = { + host = "mail.foss-syndicate.org"; + port = 993; + }; +in { + options.sils.mail.enable = lib.mkOption { + type = lib.types.bool; + default = false; + description = "Enable sophisticated mail setup"; + }; + config = lib.mkIf cfg.enable { + accounts.email = { + maildirBasePath = "${config.xdg.dataHome}/maildir"; + accounts = { + "sils@sils.li" = { + address = "sils@sils.li"; + userName = "sils@sils.li"; + realName = "Silas Schöffel"; + passwordCommand = "${lib.getExe pkgs.libsecret} lookup account sils@sils.li"; + gpg = { + encryptByDefault = true; + signByDefault = true; + key = "C1DAA551B4227A6F3FD96B3A467B7D129EA73AC9"; + }; + smtp = vhackSmtp; + imap = vhackImap; + + neomutt.enable = true; + maildir.path = "sils@sils.li"; + mbsync = { + enable = true; + create = "both"; + }; + }; + "silas.schoeffel@s-schoeffel.de" = { + address = "silas.schoeffel@s-schoeffel.de"; + userName = "silas.schoeffel@s-schoeffel.de"; + realName = "Silas Schöffel"; + primary = true; + passwordCommand = "${lib.getExe pkgs.libsecret} lookup account silas.schoeffel@s-schoeffel.de"; + gpg = { + encryptByDefault = true; + signByDefault = true; + key = "C1DAA551B4227A6F3FD96B3A467B7D129EA73AC9"; + }; + smtp = vhackSmtp; + imap = vhackImap; + + neomutt.enable = true; + maildir.path = "silas.schoeffel@s-schoeffel.de"; + mbsync = { + enable = true; + create = "both"; + }; + }; + "sils@vhack.eu" = { + address = "sils@vhack.eu"; + userName = "sils@vhack.eu"; + realName = "Silas Schöffel"; + aliases = [ + "admin@vhack.eu" + "postmaster@vhack.eu" + "webmaster@vhack.eu" + ]; + passwordCommand = "${lib.getExe pkgs.libsecret} lookup account sils@vhack.eu"; + gpg = { + encryptByDefault = true; + signByDefault = true; + key = "C1DAA551B4227A6F3FD96B3A467B7D129EA73AC9"; + }; + smtp = vhackSmtp; + imap = vhackImap; + + neomutt.enable = true; + maildir.path = "sils@vhack.eu"; + mbsync = { + enable = true; + create = "both"; + }; + }; + }; + }; + programs = { + neomutt = { + enable = true; + package = pkgs.writeShellScriptBin "neomutt" '' + systemctl --user start mbsync.service; + ${lib.getExe pkgs.neomutt} + ''; + checkStatsInterval = 60; + }; + mbsync.enable = true; + }; + services.mbsync = { + enable = true; + }; + systemd.user.timers.mbsync = lib.mkForce {}; + }; +} diff --git a/modules/hm/jaki/nextcloud.nix b/modules/hm/jaki/nextcloud.nix new file mode 100644 index 0000000..f71eb21 --- /dev/null +++ b/modules/hm/jaki/nextcloud.nix @@ -0,0 +1,16 @@ +{ + config, + lib, + ... +}: let + cfg = config.sils.nextcloud; +in { + options.sils.nextcloud.enable = lib.mkEnableOption "the nextcloud desktop + client"; + config = lib.mkIf cfg.enable { + services.nextcloud-client = { + enable = true; + startInBackground = true; + }; + }; +} diff --git a/modules/hm/jaki/poweralertd/default.nix b/modules/hm/jaki/poweralertd/default.nix new file mode 100644 index 0000000..15cfdc9 --- /dev/null +++ b/modules/hm/jaki/poweralertd/default.nix @@ -0,0 +1,14 @@ +{ + config, + lib, + ... +}: let + cfg = config.sils.poweralertd; +in { + options.sils.poweralertd.enable = lib.mkEnableOption "poweralertd"; + config = lib.mkIf cfg.enable { + services.poweralertd = { + enable = true; + }; + }; +} diff --git a/modules/hm/jaki/sway.nix b/modules/hm/jaki/sway.nix new file mode 100644 index 0000000..4298dd0 --- /dev/null +++ b/modules/hm/jaki/sway.nix @@ -0,0 +1,16 @@ +{ + config, + lib, + ... +}: let + cfg = config.sils.sway; +in { + options.sils.sway.enable = lib.mkEnableOption "sway"; + config = lib.mkIf cfg.enable { + wayland.windowManager.sway = { + enable = true; + config = { + }; + }; + }; +} diff --git a/modules/hm/jaki/swaync/default.nix b/modules/hm/jaki/swaync/default.nix new file mode 100644 index 0000000..328888b --- /dev/null +++ b/modules/hm/jaki/swaync/default.nix @@ -0,0 +1,32 @@ +{ + config, + lib, + pkgs, + ... +}: let + cfg = config.sils.swaync; +in { + options.sils.swaync.enable = lib.mkEnableOption "swaync"; + config = lib.mkIf cfg.enable { + services.swaync = { + enable = true; + settings = { + positionX = "right"; + positionY = "top"; + layer = "overlay"; + control-center-layer = "top"; + layer-shell = true; + cssPriority = "application"; + control-center-margin-top = 0; + control-center-margin-bottom = 0; + control-center-margin-right = 0; + control-center-margin-left = 0; + notification-2fa-action = true; + notification-inline-replies = false; + notification-icon-size = 64; + notification-body-image-height = 100; + notification-body-image-width = 200; + }; + }; + }; +} diff --git a/modules/hm/jaki/theming.nix b/modules/hm/jaki/theming.nix new file mode 100644 index 0000000..9b7535c --- /dev/null +++ b/modules/hm/jaki/theming.nix @@ -0,0 +1,32 @@ +{ + config, + lib, + pkgs, + ... +}: let + cfg = config.sils.theming; +in { + options.sils.theming.enable = lib.mkEnableOption "theming"; + config = lib.mkIf cfg.enable { + stylix = { + enable = true; + iconTheme = { + enable = true; + dark = "Papirus-dark"; + light = "Papirus-light"; + package = pkgs.catppuccin-papirus-folders.override { + flavor = "mocha"; + accent = "mauve"; + }; + }; + targets = { + waybar = { + enableCenterBackColors = false; + enableLeftBackColors = false; + enableRightBackColors = false; + font = "sansSerif"; + }; + }; + }; + }; +} diff --git a/modules/hm/jaki/vscodium.nix b/modules/hm/jaki/vscodium.nix new file mode 100644 index 0000000..ea048ed --- /dev/null +++ b/modules/hm/jaki/vscodium.nix @@ -0,0 +1,29 @@ +{ + config, + lib, + pkgs, + ... +}: let + cfg = config.sils.vscodium; +in { + options.sils.vscodium.enable = lib.mkEnableOption "vscodium editor"; + config = lib.mkIf cfg.enable { + programs.vscode = { + enable = true; + package = pkgs.vscodium; + profiles.default.extensions = with pkgs.vscode-extensions; [ + vscodevim.vim + ms-python.python + ms-python.debugpy + ms-python.pylint + ms-python.flake8 + ms-python.mypy-type-checker + ms-python.black-formatter + + jnoortheen.nix-ide + oops418.nix-env-picker + mkhl.direnv + ]; + }; + }; +} diff --git a/modules/hm/jaki/wofi/default.nix b/modules/hm/jaki/wofi/default.nix new file mode 100644 index 0000000..36f5916 --- /dev/null +++ b/modules/hm/jaki/wofi/default.nix @@ -0,0 +1,14 @@ +{ + config, + lib, + ... +}: let + cfg = config.sils.wofi; +in { + options.sils.wofi.enable = lib.mkEnableOption "wofi"; + config = lib.mkIf cfg.enable { + programs.wofi = { + enable = true; + }; + }; +} diff --git a/modules/hm/jaki/yt-dlp.nix b/modules/hm/jaki/yt-dlp.nix new file mode 100644 index 0000000..6b3d66c --- /dev/null +++ b/modules/hm/jaki/yt-dlp.nix @@ -0,0 +1,12 @@ +{ + config, + lib, + ... +}: let + cfg = config.sils.yt-dlp; +in { + options.sils.yt-dlp.enable = lib.mkEnableOption "yt-dlp"; + config = lib.mkIf cfg.enable { + programs.yt-dlp.enable = true; + }; +} diff --git a/modules/hm/jaki/zathura.nix b/modules/hm/jaki/zathura.nix new file mode 100644 index 0000000..22529a3 --- /dev/null +++ b/modules/hm/jaki/zathura.nix @@ -0,0 +1,14 @@ +{ + config, + lib, + ... +}: let + cfg = config.sils.zathura; +in { + options.sils.zathura.enable = lib.mkEnableOption "zathura"; + config = lib.mkIf cfg.enable { + programs.zathura = { + enable = true; + }; + }; +} diff --git a/modules/hm/jaki/zellij.nix b/modules/hm/jaki/zellij.nix new file mode 100644 index 0000000..1038a0c --- /dev/null +++ b/modules/hm/jaki/zellij.nix @@ -0,0 +1,14 @@ +{ + config, + lib, + ... +}: let + cfg = config.sils.zellij; +in { + options.sils.zellij.enable = lib.mkEnableOption "zellij"; + config = lib.mkIf cfg.enable { + programs.zellij = { + enable = true; + }; + }; +} diff --git a/modules/hm/sils/bat.nix b/modules/hm/sils/bat.nix deleted file mode 100644 index 5f7b967..0000000 --- a/modules/hm/sils/bat.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: let - cfg = config.sils.bat; -in { - options.sils.bat.enable = lib.mkEnableOption "bat"; - config = lib.mkIf cfg.enable { - programs.bat = { - enable = true; - extraPackages = with pkgs.bat-extras; [ - batdiff - batman - batgrep - batwatch - ]; - }; - }; -} diff --git a/modules/hm/sils/default.nix b/modules/hm/sils/default.nix deleted file mode 100644 index 675500f..0000000 --- a/modules/hm/sils/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{...}: { - imports = [ - ./bat.nix - ./direnv.nix - ./etesync-dav.nix - ./fd.nix - ./fastfetch.nix - ./firefox - ./foot.nix - ./ghostty.nix - ./git.nix - ./hyfetch.nix - ./hyprland.nix - ./iamb.nix - ./jameica.nix - ./kdeconnect.nix - ./mail.nix - ./nextcloud.nix - ./poweralertd - ./sway.nix - ./swaync - ./theming.nix - ./vscodium.nix - ./wofi - ./yt-dlp.nix - ./zathura.nix - ./zellij.nix - ]; -} diff --git a/modules/hm/sils/direnv.nix b/modules/hm/sils/direnv.nix deleted file mode 100644 index 88ee8f8..0000000 --- a/modules/hm/sils/direnv.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ - config, - lib, - ... -}: let - cfg = config.sils.direnv; -in { - options.sils.direnv.enable = lib.mkEnableOption "direnv"; - config = lib.mkIf cfg.enable { - programs.direnv = { - enable = true; - nix-direnv.enable = true; - }; - }; -} diff --git a/modules/hm/sils/etesync-dav.nix b/modules/hm/sils/etesync-dav.nix deleted file mode 100644 index f524928..0000000 --- a/modules/hm/sils/etesync-dav.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ - config, - lib, - ... -}: let - cfg = config.sils.etesync-dav; -in { - options.sils.etesync-dav.enable = lib.mkEnableOption "etesync-dav"; - config = lib.mkIf cfg.enable { - services.etesync-dav = { - enable = true; - serverUrl = "https://etebase.vhack.eu"; - #settings = { - #}; - }; - }; -} diff --git a/modules/hm/sils/fastfetch.nix b/modules/hm/sils/fastfetch.nix deleted file mode 100644 index f3efcab..0000000 --- a/modules/hm/sils/fastfetch.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ - config, - lib, - ... -}: let - cfg = config.sils.fastfetch; -in { - options.sils.fastfetch = { - enable = lib.mkEnableOption "fastfetch"; - }; - config = lib.mkIf cfg.enable { - programs.fastfetch = { - enable = true; - }; - }; -} diff --git a/modules/hm/sils/fd.nix b/modules/hm/sils/fd.nix deleted file mode 100644 index 7f8e35c..0000000 --- a/modules/hm/sils/fd.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ - config, - lib, - ... -}: let - cfg = config.sils.fd; -in { - options.sils.fd = { - enable = lib.mkEnableOption "fd, a fast find alternative"; - }; - - config = lib.mkIf cfg.enable { - programs.fd = { - enable = true; - }; - }; -} diff --git a/modules/hm/sils/firefox/default.nix b/modules/hm/sils/firefox/default.nix deleted file mode 100644 index 7e40c9b..0000000 --- a/modules/hm/sils/firefox/default.nix +++ /dev/null @@ -1,51 +0,0 @@ -{ - config, - lib, - pkgs, - arkenfox-user-js, - ... -}: let - cfg = config.sils.firefox; - user-overrides-js = pkgs.writeText "user_override.js" (builtins.readFile ./user-overrides.js); - user-js = pkgs.runCommand "user.js" {} '' - mkdir $out; - cat "${arkenfox-user-js}/user.js" > $out/user.js; - cat "${user-overrides-js}" >> $out/user.js; - ''; -in { - options.sils.firefox = { - enable = lib.mkEnableOption "opinionated firefox configuration"; - }; - config = lib.mkIf cfg.enable { - stylix.targets.firefox.profileNames = ["default"]; - programs.firefox = { - enable = true; - configPath = "${config.xdg.configHome}/mozilla/firefox"; - profiles = { - "default" = { - containers = { - banking = { - color = "green"; - icon = "dollar"; - id = 1; - }; - codeberg = { - color = "orange"; - icon = "briefcase"; - id = 2; - }; - }; - extraConfig = builtins.readFile "${user-js}/user.js"; - id = 1; - isDefault = true; - name = "default"; - search = { - default = "ddg"; - privateDefault = "ddg"; - force = true; - }; - }; - }; - }; - }; -} diff --git a/modules/hm/sils/firefox/user-overrides.js b/modules/hm/sils/firefox/user-overrides.js deleted file mode 100755 index 331a506..0000000 --- a/modules/hm/sils/firefox/user-overrides.js +++ /dev/null @@ -1,24 +0,0 @@ -//custom things for the user.js -user_pref("_user.js.parrot", "overrides section syntax error"); -//Fingerprinting resistance doesn't make sense in any browser other than Tor. -//user_pref("privacy.window.maxInnerWidth", 1000); -//user_pref("privacy.window.maxInnerHeight", 1900); -user_pref("privacy.resistFingerprinting", false); -user_pref("privacy.resistFingerprinting.letterboxing", false); - -/* override recipe: enable session restore ***/ -//user_pref("browser.startup.page", 3); // 0102 - // user_pref("browser.privatebrowsing.autostart", false); // 0110 required if you had it set as true -user_pref("places.history.enabled", true); // 0862 required if you had it set as false -user_pref("browser.sessionstore.privacy_level", 0); // 1021 optional [to restore extras like cookies/formdata] -user_pref("privacy.clearOnShutdown.history", false); // 2803 -user_pref("privacy.clearOnShutdown.cookies", false); // 2803 optional -user_pref("privacy.clearOnShutdown.formdata", false); // 2803 optional -user_pref("privacy.cpd.history", false); // 2804 to match when you use Ctrl-Shift-Del - // user_pref("privacy.cpd.cookies", false); // 2804 optional - // user_pref("privacy.cpd.formdata", false); // 2804 optional -user_pref("privacy.clearOnShutdown_v2.browsingHistoryAndDownloads", false); // 2812 FF136+ -user_pref("network.cookie.lifetimePolicy", 0); -// I want to use Google Earth sometimes. -user_pref("webgl.disabled", false); -user_pref("_user.js.parrot", "overrides section successful"); diff --git a/modules/hm/sils/foot.nix b/modules/hm/sils/foot.nix deleted file mode 100644 index b6a0212..0000000 --- a/modules/hm/sils/foot.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ - config, - lib, - ... -}: let - cfg = config.sils.foot; -in { - options.sils.foot.enable = lib.mkEnableOption "the foot terminal emulator"; - config = lib.mkIf cfg.enable { - programs.foot = { - enable = true; - #settings = { - # colors = { - # background = "e8ead7"; - # foreground = "242424"; - # }; - #}; - }; - }; -} diff --git a/modules/hm/sils/ghostty.nix b/modules/hm/sils/ghostty.nix deleted file mode 100644 index cd871bc..0000000 --- a/modules/hm/sils/ghostty.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ - config, - lib, - ... -}: let - cfg = config.sils.ghostty; -in { - options.sils.ghostty.enable = lib.mkEnableOption "the ghostty terminal emulator"; - config = lib.mkIf cfg.enable { - programs.ghostty = { - enable = true; - enableZshIntegration = true; - }; - }; -} diff --git a/modules/hm/sils/git.nix b/modules/hm/sils/git.nix deleted file mode 100644 index a17adfe..0000000 --- a/modules/hm/sils/git.nix +++ /dev/null @@ -1,65 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: let - cfg = config.sils.git; -in { - options.sils.git.enable = lib.mkEnableOption "sils git config"; - config = lib.mkIf cfg.enable { - programs = { - git = { - enable = true; - package = pkgs.gitFull; - settings = { - aliases = { - recommit = "commit --file=.git/COMMIT_EDITMSG --edit"; - }; - user = { - name = "Silas Schöffel"; - email = "sils@sils.li"; - }; - signing = { - key = "467B7D129EA73AC9"; - signByDefault = false; - }; - core = { - autocrlf = "input"; - }; - safe = { - directory = "/etc/nixos"; - }; - push = { - autoSetupRemote = true; - }; - init = { - defaultBranch = "main"; - }; - commit = { - verbose = true; - }; - sendemail = { - smtpserver = "mail.foss-syndicate.org"; - smtpuser = "sils@sils.li"; - smtpencryption = "ssl"; - smtpserverport = "465"; - }; - }; - }; - delta = { - enable = true; - enableGitIntegration = true; - options = { - decorations = { - commit-decoration-style = "bold purple box ul"; - file-decoration-style = "none"; - file-style = "bold red ul"; - }; - features = "decorations"; - whitespace-error-style = "22 reverse"; - }; - }; - }; - }; -} diff --git a/modules/hm/sils/hyfetch.nix b/modules/hm/sils/hyfetch.nix deleted file mode 100644 index e664e0e..0000000 --- a/modules/hm/sils/hyfetch.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ - config, - lib, - ... -}: let - cfg = config.sils.hyfetch; -in { - options.sils.hyfetch = { - enable = lib.mkEnableOption "hyfetch"; - }; - - config = lib.mkIf cfg.enable { - programs.hyfetch = { - enable = true; - settings = { - preset = "nonbinary"; - mode = "rgb"; - light_dark = "dark"; - lightness = 0.5; - color_align = { - mode = "horizontal"; - custom_colors = []; - fore_back = null; - }; - backend = "fastfetch"; - distro = null; - pride_month_disable = true; - }; - }; - }; -} diff --git a/modules/hm/sils/hyprland.nix b/modules/hm/sils/hyprland.nix deleted file mode 100644 index b21aef2..0000000 --- a/modules/hm/sils/hyprland.nix +++ /dev/null @@ -1,210 +0,0 @@ -{ - config, - lib, - pkgs, - self, - ... -}: let - cfg = config.sils.hyprland; -in { - options.sils.hyprland.enable = lib.mkEnableOption "sils hyprland config"; - config = lib.mkIf cfg.enable { - home.pointerCursor = { - enable = true; - name = "Adwaita"; - gtk.enable = true; - x11.enable = true; - size = 24; - package = pkgs.adwaita-icon-theme; - }; - wayland.windowManager.hyprland = { - enable = true; - settings = { - # See https://wiki.hyprland.org/Configuring/Monitors/ - monitor = ",preferred,auto,auto"; - - # See https://wiki.hyprland.org/Configuring/Keywords/ for more - - # Execute your favorite apps at launch - # exec-once = waybar & hyprpaper & firefox - - # Source a file (multi-file configs) - # source = ~/.config/hypr/myColors.conf - - ecosystem = { - no_update_news = true; - }; - - # Some default env vars. - env = "XCURSOR_SIZE,24"; - - # For all categories, see https://wiki.hyprland.org/Configuring/Variables/ - input = { - kb_layout = "de"; - kb_variant = ""; - kb_model = ""; - kb_options = "grp:win_space_toggle"; - kb_rules = ""; - - follow_mouse = "1"; - - touchpad = { - natural_scroll = "yes"; - }; - - sensitivity = "0"; # -1.0 - 1.0, 0 means no modification. - }; - - general = { - # See https://wiki.hyprland.org/Configuring/Variables/ for more - - gaps_in = "5"; - gaps_out = "10"; - border_size = "3"; - #"col.active_border" = "rgba(000000cc)"; - #"col.inactive_border" = "rgba(595959aa)"; - - layout = "dwindle"; - }; - - decoration = { - # See https://wiki.hyprland.org/Configuring/Variables/ for more - - inactive_opacity = "0.8"; - active_opacity = "1"; - rounding = "10"; - blur = { - enabled = true; - size = "3"; - passes = "1"; - new_optimizations = "on"; - }; - - #drop_shadow = "yes"; - - #shadow_range = "4"; - #shadow_render_power = "3"; - #"col.shadow" = "rgba(1a1a1aee)"; - }; - - animations = { - enabled = "yes"; - - # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more - - bezier = "myBezier, 0.05, 0.9, 0.1, 1.05"; - - animation = [ - "windows, 1, 7, myBezier" - "windowsOut, 1, 7, default, popin 80%" - "border, 1, 10, default" - "borderangle, 1, 8, default" - "fade, 1, 7, default" - "workspaces, 1, 6, default" - ]; - }; - - dwindle = { - # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more - pseudotile = "yes"; # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below - preserve_split = "yes"; # you probably want this - }; - - #master = { - # # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more - # new_is_master = "true"; - #}; - - gesture = [ - "3, horizontal, workspace" - ]; - - # Example windowrule v1 - # windowrule = float, ^(kitty)$ - # Example windowrule v2 - # windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ - # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more - - # See https://wiki.hyprland.org/Configuring/Keywords/ for more - "$mainMod" = "SUPER"; - - # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more - bind = [ - "$mainMod, T, exec, ghostty" - "$mainMod, C, killactive, " - "$mainMod, M, exit, " - "$mainMod, E, exec, dolphin " - "$mainMod, V, togglefloating, " - "$mainMod, R, exec, wofi --show drun" - "$mainMod, P, pseudo, " # dwindle - "$mainMod, J, togglesplit, " # dwindle - "$mainMod, L, exec, swaylock" # screenlock - ''$mainMod, S, exec, grim -l 0 -g "$(slurp)" - | wl-copy'' # screenshots - ''$mainMod, K, exec, zsh -exec "ssh-agent && keepassxc"'' # opens keepass after starting ssh-agent - '', code:102, exec, zsh -exec "ssh-agent && keepassxc"'' - - # Move focus with mainMod + arrow keys - "$mainMod, left, movefocus, l" - "$mainMod, right, movefocus, r" - "$mainMod, up, movefocus, u" - "$mainMod, down, movefocus, d" - - # Switch workspaces with mainMod + [0-9] - "$mainMod, 1, workspace, 1" - "$mainMod, 2, workspace, 2" - "$mainMod, 3, workspace, 3" - "$mainMod, 4, workspace, 4" - "$mainMod, 5, workspace, 5" - "$mainMod, 6, workspace, 6" - "$mainMod, 7, workspace, 7" - "$mainMod, 8, workspace, 8" - "$mainMod, 9, workspace, 9" - "$mainMod, 0, workspace, 10" - - # Move active window to a workspace with mainMod + SHIFT + [0-9] - "$mainMod SHIFT, 1, movetoworkspace, 1" - "$mainMod SHIFT, 2, movetoworkspace, 2" - "$mainMod SHIFT, 3, movetoworkspace, 3" - "$mainMod SHIFT, 4, movetoworkspace, 4" - "$mainMod SHIFT, 5, movetoworkspace, 5" - "$mainMod SHIFT, 6, movetoworkspace, 6" - "$mainMod SHIFT, 7, movetoworkspace, 7" - "$mainMod SHIFT, 8, movetoworkspace, 8" - "$mainMod SHIFT, 9, movetoworkspace, 9" - "$mainMod SHIFT, 0, movetoworkspace, 10" - - # Scroll through existing workspaces with mainMod + scroll - "$mainMod, mouse_down, workspace, e+1" - "$mainMod, mouse_up, workspace, e-1" - ]; - binde = [ - ",XF86MonBrightnessUp, exec, brightnessctl s +3%" - ",XF86MonBrightnessDown, exec, brightnessctl s 3%-" - ",XF86AudioMute, exec, pactl set-sink-mute @DEFAULT_SINK@ toggle" - ",XF86AudioRaiseVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ +5%" - ",XF86AudioLowerVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ -5%" - ",XF86AudioMicMute, exec, pactl set-source-mute @DEFAULT_SOURCE@ toggle" - - "ALT, A, exec, pactl set-sink-mute @DEFAULT_SINK@ toggle" - "ALT SHIFT, A, exec, pactl set-sink-volume @DEFAULT_SINK@ +5%" - "$mainMod, ALT, exec, pactl set-sink-volume @DEFAULT_SINK@ -5%" - ]; - - # Move/resize windows with mainMod + LMB/RMB and dragging - bindm = [ - "$mainMod, mouse:272, movewindow" - "$mainMod, mouse:273, resizewindow" - ]; - #exec-once=bash ~/.config/hypr/start.sh - #exec-once=swww init & - exec-once = [ - "${pkgs.hyprland}/bin/hyprctl ${config.home.pointerCursor.name} ${toString config.home.pointerCursor.size}" - #"${pkgs.nwg-panel}/bin/nwg-panel" - "${pkgs.networkmanagerapplet}/bin/nm-applet --indicator" - #"${pkgs.waybar}/bin/waybar" - "${pkgs.swaybg}/bin/swaybg -i ${self}/files/wallpaper.jpg" - ]; - }; - }; - }; -} diff --git a/modules/hm/sils/iamb.nix b/modules/hm/sils/iamb.nix deleted file mode 100644 index 2c6932a..0000000 --- a/modules/hm/sils/iamb.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ - config, - lib, - ... -}: let - cfg = config.sils.iamb; -in { - options = { - sils.iamb.enable = lib.mkEnableOption "iamb, a matrix tui client"; - }; - config = lib.mkIf cfg.enable { - programs.iamb = { - enable = true; - settings = { - profiles = { - ljs = { - user_id = "@sils:linksjugend-solid.de"; - url = "https://matrix.bak-it.de"; - }; - vhack = { - user_id = "@sils:vhack.eu"; - url = "https://matrix.vhack.eu"; - }; - }; - settings = { - notifications.enabled = true; - image_preview.protocol = { - type = "kitty"; - size = { - height = 10; - width = 66; - }; - }; - }; - }; - }; - }; -} diff --git a/modules/hm/sils/jameica.nix b/modules/hm/sils/jameica.nix deleted file mode 100644 index 815fb60..0000000 --- a/modules/hm/sils/jameica.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ - config, - pkgs, - lib, - ... -}: let - cfg = config.sils.jameica; -in { - options.sils.jameica.enable = lib.mkEnableOption "jameica"; - config = lib.mkIf cfg.enable { - home.packages = [ - pkgs.jameica - ]; - }; -} diff --git a/modules/hm/sils/kdeconnect.nix b/modules/hm/sils/kdeconnect.nix deleted file mode 100644 index f8fe386..0000000 --- a/modules/hm/sils/kdeconnect.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ - config, - lib, - ... -}: let - cfg = config.sils.kdeconnect; -in { - options.sils.kdeconnect.enable = lib.mkEnableOption "kdeconnect"; - config = lib.mkIf cfg.enable { - services.kdeconnect = { - enable = true; - indicator = true; - }; - }; -} diff --git a/modules/hm/sils/mail.nix b/modules/hm/sils/mail.nix deleted file mode 100644 index 85583a2..0000000 --- a/modules/hm/sils/mail.nix +++ /dev/null @@ -1,110 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: let - cfg = config.sils.mail; - vhackImap = { - host = "mail.foss-syndicate.org"; - port = 993; - }; - vhackSmtp = { - host = "mail.foss-syndicate.org"; - port = 993; - }; -in { - options.sils.mail.enable = lib.mkOption { - type = lib.types.bool; - default = false; - description = "Enable sophisticated mail setup"; - }; - config = lib.mkIf cfg.enable { - accounts.email = { - maildirBasePath = "${config.xdg.dataHome}/maildir"; - accounts = { - "sils@sils.li" = { - address = "sils@sils.li"; - userName = "sils@sils.li"; - realName = "Silas Schöffel"; - passwordCommand = "${lib.getExe pkgs.libsecret} lookup account sils@sils.li"; - gpg = { - encryptByDefault = true; - signByDefault = true; - key = "C1DAA551B4227A6F3FD96B3A467B7D129EA73AC9"; - }; - smtp = vhackSmtp; - imap = vhackImap; - - neomutt.enable = true; - maildir.path = "sils@sils.li"; - mbsync = { - enable = true; - create = "both"; - }; - }; - "silas.schoeffel@s-schoeffel.de" = { - address = "silas.schoeffel@s-schoeffel.de"; - userName = "silas.schoeffel@s-schoeffel.de"; - realName = "Silas Schöffel"; - primary = true; - passwordCommand = "${lib.getExe pkgs.libsecret} lookup account silas.schoeffel@s-schoeffel.de"; - gpg = { - encryptByDefault = true; - signByDefault = true; - key = "C1DAA551B4227A6F3FD96B3A467B7D129EA73AC9"; - }; - smtp = vhackSmtp; - imap = vhackImap; - - neomutt.enable = true; - maildir.path = "silas.schoeffel@s-schoeffel.de"; - mbsync = { - enable = true; - create = "both"; - }; - }; - "sils@vhack.eu" = { - address = "sils@vhack.eu"; - userName = "sils@vhack.eu"; - realName = "Silas Schöffel"; - aliases = [ - "admin@vhack.eu" - "postmaster@vhack.eu" - "webmaster@vhack.eu" - ]; - passwordCommand = "${lib.getExe pkgs.libsecret} lookup account sils@vhack.eu"; - gpg = { - encryptByDefault = true; - signByDefault = true; - key = "C1DAA551B4227A6F3FD96B3A467B7D129EA73AC9"; - }; - smtp = vhackSmtp; - imap = vhackImap; - - neomutt.enable = true; - maildir.path = "sils@vhack.eu"; - mbsync = { - enable = true; - create = "both"; - }; - }; - }; - }; - programs = { - neomutt = { - enable = true; - package = pkgs.writeShellScriptBin "neomutt" '' - systemctl --user start mbsync.service; - ${lib.getExe pkgs.neomutt} - ''; - checkStatsInterval = 60; - }; - mbsync.enable = true; - }; - services.mbsync = { - enable = true; - }; - systemd.user.timers.mbsync = lib.mkForce {}; - }; -} diff --git a/modules/hm/sils/nextcloud.nix b/modules/hm/sils/nextcloud.nix deleted file mode 100644 index f71eb21..0000000 --- a/modules/hm/sils/nextcloud.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ - config, - lib, - ... -}: let - cfg = config.sils.nextcloud; -in { - options.sils.nextcloud.enable = lib.mkEnableOption "the nextcloud desktop - client"; - config = lib.mkIf cfg.enable { - services.nextcloud-client = { - enable = true; - startInBackground = true; - }; - }; -} diff --git a/modules/hm/sils/poweralertd/default.nix b/modules/hm/sils/poweralertd/default.nix deleted file mode 100644 index 15cfdc9..0000000 --- a/modules/hm/sils/poweralertd/default.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ - config, - lib, - ... -}: let - cfg = config.sils.poweralertd; -in { - options.sils.poweralertd.enable = lib.mkEnableOption "poweralertd"; - config = lib.mkIf cfg.enable { - services.poweralertd = { - enable = true; - }; - }; -} diff --git a/modules/hm/sils/sway.nix b/modules/hm/sils/sway.nix deleted file mode 100644 index 4298dd0..0000000 --- a/modules/hm/sils/sway.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ - config, - lib, - ... -}: let - cfg = config.sils.sway; -in { - options.sils.sway.enable = lib.mkEnableOption "sway"; - config = lib.mkIf cfg.enable { - wayland.windowManager.sway = { - enable = true; - config = { - }; - }; - }; -} diff --git a/modules/hm/sils/swaync/default.nix b/modules/hm/sils/swaync/default.nix deleted file mode 100644 index 328888b..0000000 --- a/modules/hm/sils/swaync/default.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: let - cfg = config.sils.swaync; -in { - options.sils.swaync.enable = lib.mkEnableOption "swaync"; - config = lib.mkIf cfg.enable { - services.swaync = { - enable = true; - settings = { - positionX = "right"; - positionY = "top"; - layer = "overlay"; - control-center-layer = "top"; - layer-shell = true; - cssPriority = "application"; - control-center-margin-top = 0; - control-center-margin-bottom = 0; - control-center-margin-right = 0; - control-center-margin-left = 0; - notification-2fa-action = true; - notification-inline-replies = false; - notification-icon-size = 64; - notification-body-image-height = 100; - notification-body-image-width = 200; - }; - }; - }; -} diff --git a/modules/hm/sils/theming.nix b/modules/hm/sils/theming.nix deleted file mode 100644 index 9b7535c..0000000 --- a/modules/hm/sils/theming.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: let - cfg = config.sils.theming; -in { - options.sils.theming.enable = lib.mkEnableOption "theming"; - config = lib.mkIf cfg.enable { - stylix = { - enable = true; - iconTheme = { - enable = true; - dark = "Papirus-dark"; - light = "Papirus-light"; - package = pkgs.catppuccin-papirus-folders.override { - flavor = "mocha"; - accent = "mauve"; - }; - }; - targets = { - waybar = { - enableCenterBackColors = false; - enableLeftBackColors = false; - enableRightBackColors = false; - font = "sansSerif"; - }; - }; - }; - }; -} diff --git a/modules/hm/sils/vscodium.nix b/modules/hm/sils/vscodium.nix deleted file mode 100644 index ea048ed..0000000 --- a/modules/hm/sils/vscodium.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: let - cfg = config.sils.vscodium; -in { - options.sils.vscodium.enable = lib.mkEnableOption "vscodium editor"; - config = lib.mkIf cfg.enable { - programs.vscode = { - enable = true; - package = pkgs.vscodium; - profiles.default.extensions = with pkgs.vscode-extensions; [ - vscodevim.vim - ms-python.python - ms-python.debugpy - ms-python.pylint - ms-python.flake8 - ms-python.mypy-type-checker - ms-python.black-formatter - - jnoortheen.nix-ide - oops418.nix-env-picker - mkhl.direnv - ]; - }; - }; -} diff --git a/modules/hm/sils/wofi/default.nix b/modules/hm/sils/wofi/default.nix deleted file mode 100644 index 36f5916..0000000 --- a/modules/hm/sils/wofi/default.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ - config, - lib, - ... -}: let - cfg = config.sils.wofi; -in { - options.sils.wofi.enable = lib.mkEnableOption "wofi"; - config = lib.mkIf cfg.enable { - programs.wofi = { - enable = true; - }; - }; -} diff --git a/modules/hm/sils/yt-dlp.nix b/modules/hm/sils/yt-dlp.nix deleted file mode 100644 index 6b3d66c..0000000 --- a/modules/hm/sils/yt-dlp.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ - config, - lib, - ... -}: let - cfg = config.sils.yt-dlp; -in { - options.sils.yt-dlp.enable = lib.mkEnableOption "yt-dlp"; - config = lib.mkIf cfg.enable { - programs.yt-dlp.enable = true; - }; -} diff --git a/modules/hm/sils/zathura.nix b/modules/hm/sils/zathura.nix deleted file mode 100644 index 22529a3..0000000 --- a/modules/hm/sils/zathura.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ - config, - lib, - ... -}: let - cfg = config.sils.zathura; -in { - options.sils.zathura.enable = lib.mkEnableOption "zathura"; - config = lib.mkIf cfg.enable { - programs.zathura = { - enable = true; - }; - }; -} diff --git a/modules/hm/sils/zellij.nix b/modules/hm/sils/zellij.nix deleted file mode 100644 index 1038a0c..0000000 --- a/modules/hm/sils/zellij.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ - config, - lib, - ... -}: let - cfg = config.sils.zellij; -in { - options.sils.zellij.enable = lib.mkEnableOption "zellij"; - config = lib.mkIf cfg.enable { - programs.zellij = { - enable = true; - }; - }; -} diff --git a/modules/nixos/default.nix b/modules/nixos/default.nix index fae14fc..c349d32 100644 --- a/modules/nixos/default.nix +++ b/modules/nixos/default.nix @@ -1,6 +1,6 @@ {...}: { imports = [ ./roles.nix - ./sils + ./jaki ]; } diff --git a/modules/nixos/jaki/apparmor.nix b/modules/nixos/jaki/apparmor.nix new file mode 100644 index 0000000..69cec21 --- /dev/null +++ b/modules/nixos/jaki/apparmor.nix @@ -0,0 +1,14 @@ +{ + config, + lib, + ... +}: let + cfg = config.sils.apparmor; +in { + options.sils.apparmor.enable = lib.mkEnableOption "apparmor"; + config = lib.mkIf cfg.enable { + security.apparmor = { + enable = true; + }; + }; +} diff --git a/modules/nixos/jaki/basesystem.nix b/modules/nixos/jaki/basesystem.nix new file mode 100644 index 0000000..0e9f6de --- /dev/null +++ b/modules/nixos/jaki/basesystem.nix @@ -0,0 +1,48 @@ +{ + config, + lib, + pkgs, + modulesPath, + ... +}: let + cfg = config.sils.basesystem; +in { + options.sils.basesystem.enable = lib.mkEnableOption "basesystem"; + + config = lib.mkIf cfg.enable { + networking.hostName = config.sils.meta.hostname; + + boot = { + initrd = { + systemd.enable = true; + availableKernelModules = ["xhci_pci" "nvme" "rtsx_pci_sdmmc"]; + kernelModules = []; + }; + kernelModules = ["kvm-intel"]; + extraModulePackages = []; + kernelPackages = pkgs.linuxPackages_latest; + }; + + system.stateVersion = "23.05"; + + i18n.defaultLocale = "en_US.UTF-8"; + + time.timeZone = "Europe/Berlin"; + + nixpkgs.hostPlatform = config.sils.meta.system; + powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; + hardware = { + cpu.intel.updateMicrocode = true; + enableRedistributableFirmware = true; + }; + + services.xserver.xkb = { + layout = "de"; + options = "grp:win_space_toggle"; + }; + console = { + font = "Lat2-Terminus16"; + keyMap = "de"; + }; + }; +} diff --git a/modules/nixos/jaki/bluetooth.nix b/modules/nixos/jaki/bluetooth.nix new file mode 100644 index 0000000..2d67717 --- /dev/null +++ b/modules/nixos/jaki/bluetooth.nix @@ -0,0 +1,12 @@ +{ + config, + lib, + ... +}: let + cfg = config.sils.bluetooth; +in { + options.sils.bluetooth.enable = lib.mkEnableOption "bluetooth"; + config = lib.mkIf cfg.enable { + hardware.bluetooth.enable = true; + }; +} diff --git a/modules/nixos/jaki/bootloader.nix b/modules/nixos/jaki/bootloader.nix new file mode 100644 index 0000000..fc0e0f3 --- /dev/null +++ b/modules/nixos/jaki/bootloader.nix @@ -0,0 +1,30 @@ +{ + config, + lib, + ... +}: let + btl = config.sils.bootloader; +in { + options.sils.bootloader = lib.mkOption { + type = lib.types.enum ["lanzaboote" "grub"]; + default = "lanzaboote"; + description = "Which bootloader to use."; + }; + config.boot = + if btl == "lanzaboote" + then { + lanzaboote = { + enable = true; + configurationLimit = 10; + pkiBundle = "/etc/secureboot"; + settings = { + editor = false; + }; + }; + } + else if btl == "grub" + then { + loader.grub.enable = true; + } + else {}; +} diff --git a/modules/nixos/jaki/default.nix b/modules/nixos/jaki/default.nix new file mode 100644 index 0000000..db27868 --- /dev/null +++ b/modules/nixos/jaki/default.nix @@ -0,0 +1,33 @@ +{...}: { + imports = [ + ./apparmor.nix + ./basesystem.nix + ./bluetooth.nix + ./bootloader.nix + ./disks.nix + ./docker.nix + ./environment.nix + ./firejail.nix + ./font.nix + ./fprintd.nix + ./gnome.nix + ./graphics.nix + ./hyprland.nix + ./impermanence.nix + ./meta.nix + ./networking.nix + ./nix.nix + ./pamconfig.nix + ./plasma.nix + ./plymouth.nix + ./printing.nix + ./roles.nix + ./sound.nix + ./steam.nix + ./sudo.nix + ./sway.nix + ./theming + ./tailscale.nix + ./tor.nix + ]; +} diff --git a/modules/nixos/jaki/disks.nix b/modules/nixos/jaki/disks.nix new file mode 100644 index 0000000..bf0e2b0 --- /dev/null +++ b/modules/nixos/jaki/disks.nix @@ -0,0 +1,132 @@ +{ + config, + lib, + pkgs, + ... +}: let + cfg = config.sils.disks; + defaultMountOptions = [ + "noatime" # should have some performance upsides, and I don't use it anyways + "lazytime" # make time changes in memory + ]; +in { + options.sils.disks = { + enable = lib.mkEnableOption "disk setup with disko"; + + disk = lib.mkOption { + type = lib.types.path; + example = lib.literalExpression "/dev/disk/by-uuid/0442cb6d-f13a-4635-b487-fa76189774c5"; + description = "The disk used for installing the OS."; + }; + + #swap = { + # uuid = lib.mkOption { + # type = lib.types.str; + # example = lib.literalExpression "d1d20ae7-3d8a-44da-86da-677dbbb10c89"; + # description = "The uuid of the swapfile"; + # }; + # resumeOffset = lib.mkOption { + # type = lib.types.str; + # example = lib.literalExpression "134324224"; + # description = "The resume offset of the swapfile"; + # }; + #}; + }; + + config = lib.mkIf cfg.enable { + disko.devices = { + disk = { + main = { + device = cfg.disk; + content = { + type = "gpt"; + partitions = { + root = { + size = "100%"; + name = "root"; + content = { + type = "luks"; + name = "cryptroot"; + extraOpenArgs = ["--allow-discards"]; + content = { + type = "btrfs"; + extraArgs = ["-f" "--label nixos"]; # Override existing partitions + subvolumes = { + "root" = { + mountpoint = "/"; + mountOptions = defaultMountOptions; + }; + "nix" = { + mountpoint = "/nix"; + mountOptions = defaultMountOptions; + }; + "persistent-storage" = { + mountpoint = "/srv"; + mountOptions = defaultMountOptions; + }; + "persistent-storage@snapshots" = { + mountpoint = "/srv/snapshots"; + mountOptions = defaultMountOptions; + }; + "swap" = { + mountpoint = "/swap"; + mountOptions = defaultMountOptions; + }; + "home" = { + mountpoint = "/home"; + mountOptions = defaultMountOptions; + }; + }; + }; + }; + }; + MBR = { + type = "EF02"; + size = "1M"; + priority = 1; + }; + boot = { + type = "EF00"; + size = "4096M"; + name = "boot"; + content = { + type = "filesystem"; + format = "vfat"; + mountpoint = "/boot"; + mountOptions = ["umask=0077"]; + }; + }; + }; + }; + }; + }; + nodev = { + "/tmp" = { + fsType = "tmpfs"; + mountOptions = ["defaults" "size=30G" "mode=755"]; + }; + }; + }; + fileSystems = { + "/srv" = { + neededForBoot = true; + }; + "/swap" = { + neededForBoot = true; + }; + }; + swapDevices = [ + #{ + # device = "/swap/swapfile"; + # priority = 1; # lower than zramSwap, just in case + # # size = 2048; # TODO: can nixos create a btrfs swapfile correctly? + #} + ]; + boot = { + kernelParams = [ + #"resume_offset=${cfg.swap.resumeOffset}" + ]; + #resumeDevice = "/dev/disk/by-uuid/${cfg.swap.uuid}"; + }; + }; +} diff --git a/modules/nixos/jaki/docker.nix b/modules/nixos/jaki/docker.nix new file mode 100644 index 0000000..131b857 --- /dev/null +++ b/modules/nixos/jaki/docker.nix @@ -0,0 +1,24 @@ +{ + config, + lib, + ... +}: let + cfg = config.sils.docker; +in { + options.sils.docker.enable = lib.mkEnableOption "docker"; + config = lib.mkIf cfg.enable { + virtualisation.docker = { + enable = true; + storageDriver = "btrfs"; + }; + users.users.jaki.extraGroups = ["docker"]; + environment.persistence."/srv".directories = [ + { + directory = "/var/lib/docker"; + user = "docker"; + group = "docker"; + mode = "0755"; + } + ]; + }; +} diff --git a/modules/nixos/jaki/environment.nix b/modules/nixos/jaki/environment.nix new file mode 100644 index 0000000..0ffa422 --- /dev/null +++ b/modules/nixos/jaki/environment.nix @@ -0,0 +1,45 @@ +{ + config, + lib, + ... +}: let + cfg = config.sils.environment; +in { + options.sils.environment.enable = lib.mkEnableOption "custom env vars"; + config = lib.mkIf cfg.enable { + environment = { + sessionVariables = { + XDG_CACHE_HOME = "\${HOME}/.cache"; + XDG_CONFIG_HOME = "\${HOME}/.config"; + XDG_BIN_HOME = "\${HOME}/.local/bin"; + XDG_DATA_HOME = "\${HOME}/.local/share"; + XDG_STATE_HOME = "\${HOME}/.local/state"; + ZDOTDIR = "\${HOME}/.config/zsh"; + CARGO_HOME = "\${HOME}/.local/share/cargo"; + ANDROID_HOME = "\${HOME}/.local/share/android"; + ANSIBLE_HOME = "\${HOME}/.local/share/ansible"; + #_JAVA_OPTIONS = '-Djava.util.prefs.userRoot="\${XDG_CONFIG_HOME}/java"'; + WINEPREFIX = "\${HOME}/.local/share/wine"; + GRADLE_USER_HOME = "\${HOME}/.local/share/gradle"; + GTK2_RC_FILES = "\${HOME}/.config/gtk-2.0/gtkrc"; + EDITOR = "nvim"; + GOPATH = "\${HOME}/.local/share/go"; + XCOMPOSECACHE = "\${HOME}/.cache/X11/xcompose"; + CDPATH = ".:\${HOME}:\${HOME}/repos/:\${HOME}/srv"; + NIXOS_OZONE_WL = "1"; # wayland for electron apps + + #PYTHONSTARTUP="/etc/python/pythonrc"; + + PATH = [ + "\${XDG_BIN_HOME}" + ]; + }; + etc.crypttab = { + enable = true; + text = '' + storage UUID=f4ba9aae-e34f-4a72-98ab-88787f7c1986 none tpm2-device=auto,noauto + ''; + }; + }; + }; +} diff --git a/modules/nixos/jaki/firejail.nix b/modules/nixos/jaki/firejail.nix new file mode 100644 index 0000000..5886918 --- /dev/null +++ b/modules/nixos/jaki/firejail.nix @@ -0,0 +1,24 @@ +{ + config, + lib, + pkgs, + ... +}: let + cfg = config.sils.firejail; +in { + options.sils.firejail.enable = lib.mkEnableOption "firejail"; + config = lib.mkIf cfg.enable { + sils.apparmor.enable = true; + programs.firejail = { + enable = true; + wrappedBinaries = { + firefox = { + executable = "${lib.getExe pkgs.firefox}"; # config.home-manager.users.jaki.programs.firefox.package}"; + profile = "${pkgs.firejail}/etc/firejail/firefox.profile"; + }; + }; + }; + + home-manager.users.jaki.programs.firefox.package = null; + }; +} diff --git a/modules/nixos/jaki/font.nix b/modules/nixos/jaki/font.nix new file mode 100644 index 0000000..e079c99 --- /dev/null +++ b/modules/nixos/jaki/font.nix @@ -0,0 +1,28 @@ +{ + config, + lib, + pkgs, + ... +}: let + cfg = config.sils.font; +in { + options.sils.font.enable = lib.mkEnableOption "font config"; + config = lib.mkIf cfg.enable { + fonts = { + packages = with pkgs; [ + nerd-fonts.fira-code + nerd-fonts.droid-sans-mono + nerd-fonts.lilex + nerd-fonts.symbols-only + ]; + fontconfig = { + defaultFonts = { + serif = ["Lilex"]; + sansSerif = ["Droid Sans Mono"]; + monospace = ["FiraCode"]; + }; + }; + fontDir.enable = true; + }; + }; +} diff --git a/modules/nixos/jaki/fprintd.nix b/modules/nixos/jaki/fprintd.nix new file mode 100644 index 0000000..dd5c1cc --- /dev/null +++ b/modules/nixos/jaki/fprintd.nix @@ -0,0 +1,19 @@ +{ + config, + lib, + pkgs, + ... +}: let + cfg = config.sils.fingerprint; +in { + options.sils.fingerprint.enable = lib.mkEnableOption "fingerprint auth"; + config = lib.mkIf cfg.enable { + services.fprintd = { + enable = true; + tod = { + enable = true; + driver = pkgs.libfprint-2-tod1-vfs0090; + }; + }; + }; +} diff --git a/modules/nixos/jaki/gnome.nix b/modules/nixos/jaki/gnome.nix new file mode 100644 index 0000000..7b798d9 --- /dev/null +++ b/modules/nixos/jaki/gnome.nix @@ -0,0 +1,19 @@ +{ + config, + lib, + ... +}: let + cfg = config.sils.gnome; +in { + options.sils.gnome.enable = lib.mkEnableOption "The Gnome DE"; + config = lib.mkIf cfg.enable { + services = { + xserver.enable = true; + displayManager.gdm.enable = true; + desktopManager.gnome.enable = true; + tlp.enable = lib.mkForce false; + greetd.enable = lib.mkForce false; + gnome.gnome-keyring.enable = lib.mkForce false; + }; + }; +} diff --git a/modules/nixos/jaki/graphics.nix b/modules/nixos/jaki/graphics.nix new file mode 100644 index 0000000..77f58d8 --- /dev/null +++ b/modules/nixos/jaki/graphics.nix @@ -0,0 +1,12 @@ +{ + lib, + config, + ... +}: let + cfg = config.sils.graphics; +in { + options.sils.graphics.enable = lib.mkEnableOption "graphics"; + config = lib.mkIf cfg.enable { + hardware.graphics.enable = true; + }; +} diff --git a/modules/nixos/jaki/hyprland.nix b/modules/nixos/jaki/hyprland.nix new file mode 100644 index 0000000..73ba9c2 --- /dev/null +++ b/modules/nixos/jaki/hyprland.nix @@ -0,0 +1,15 @@ +{ + config, + lib, + ... +}: let + cfg = config.sils.hyprland; +in { + options.sils.hyprland.enable = lib.mkEnableOption "hyprland"; + config = lib.mkIf cfg.enable { + programs.hyprland = { + enable = true; + xwayland.enable = true; + }; + }; +} diff --git a/modules/nixos/jaki/impermanence.nix b/modules/nixos/jaki/impermanence.nix new file mode 100644 index 0000000..cf67a91 --- /dev/null +++ b/modules/nixos/jaki/impermanence.nix @@ -0,0 +1,43 @@ +{ + config, + lib, + ... +}: let + cfg = config.sils.impermanence; +in { + options.sils.impermanence.enable = lib.mkEnableOption "impermanence to persist directories"; + config = lib.mkIf cfg.enable { + environment.persistence."/srv".directories = [ + { + directory = "/var/lib/bluetooth"; + user = "root"; + group = "root"; + mode = "0700"; + } + { + directory = "/root"; + user = "root"; + group = "root"; + mode = "0700"; + } + { + directory = "/var/lib/waydroid"; + user = "root"; + group = "root"; + mode = "0700"; + } + { + directory = "/var/lib/nixos"; + user = "root"; + group = "root"; + mode = "0755"; + } + { + directory = "/var/log"; + user = "root"; + group = "root"; + mode = "0755"; + } + ]; + }; +} diff --git a/modules/nixos/jaki/meta.nix b/modules/nixos/jaki/meta.nix new file mode 100644 index 0000000..57ef081 --- /dev/null +++ b/modules/nixos/jaki/meta.nix @@ -0,0 +1,31 @@ +{lib, ...}: let + nullable = type: lib.types.nullOr type; +in { + options.sils.meta = { + bootPart = lib.mkOption { + type = nullable lib.types.str; + default = null; + }; + bootstrapSystem = lib.mkEnableOption; + globalDataDir = lib.mkOption { + type = nullable lib.types.str; + default = null; + }; + hostname = lib.mkOption { + type = nullable lib.types.str; + default = null; + }; + mainDisk = lib.mkOption { + type = nullable lib.types.str; + default = null; + }; + rootPart = lib.mkOption { + type = nullable lib.types.str; + default = null; + }; + system = lib.mkOption { + type = nullable lib.types.str; + default = null; + }; + }; +} diff --git a/modules/nixos/jaki/networking.nix b/modules/nixos/jaki/networking.nix new file mode 100644 index 0000000..9ec34ab --- /dev/null +++ b/modules/nixos/jaki/networking.nix @@ -0,0 +1,63 @@ +{ + config, + pkgs, + lib, + ... +}: let + cfg = config.sils.networking; +in { + options.sils.networking.enable = lib.mkEnableOption "networking"; + config = lib.mkIf cfg.enable { + services.resolved.enable = true; + networking = { + enableIPv6 = false; + useNetworkd = false; + #useDHCP = true; + networkmanager = { + enable = true; + plugins = with pkgs; [ + networkmanager-openvpn + ]; + }; + nftables.enable = true; + firewall = { + enable = true; + }; + #nameservers = ["2620:fe::fe" "2620:fe::9" "9.9.9.9" "149.112.112.112"]; + #wireless = { + # enable = false; # TODO: Reenable + # environmentFile = config.age.secrets.wireless.path; + # networks = { + # # Important: Never forget the second '@'! + # "@SSID_N0@".psk = "@PSK_N0@"; + # "@SSID_N1@".psk = "@PSK_N1@"; + # "@SSID_N2@" = { + # hidden = true; + # psk = "@PSK_N2@"; + # }; + # "@SSID_N3@".psk = "@PSK_N3@"; + # "@SSID_N4@" = { + # auth = '' + # proto=RSN + # key_mgmt=WPA-EAP + # pairwise=CCMP + # auth_alg=OPEN + # eap=PEAP + # identity="@IDENTITY_N4@" + # password="@PSK_N4@" + # ca_cert="${self}/files/DNSX-CA.pem" + # ''; + # }; + # "@SSID_N5@".psk = "@PSK_N5@"; + # "GPN-Open".auth = '' + # key_mgmt=OWE + # ''; + # }; + # userControlled = { + # enable = true; + # group = "wheel"; # TODO: Change this? + # }; + #}; + }; + }; +} diff --git a/modules/nixos/jaki/nix.nix b/modules/nixos/jaki/nix.nix new file mode 100644 index 0000000..9d73fcd --- /dev/null +++ b/modules/nixos/jaki/nix.nix @@ -0,0 +1,66 @@ +{ + self, + config, + nixpkgs, + lib, + ... +}: let + cfg = config.sils.nix-config; +in { + options.sils.nix-config = { + enable = lib.mkEnableOption "nix config"; + remoteBuild = lib.mkEnableOption "remote builds"; + }; + config = { + nix = { + registry = { + nixpkgs.flake = self.inputs.nixpkgs; + n.flake = self.inputs.nixpkgs; + self.flake = self; + s.flake = self; + }; + channel.enable = false; + distributedBuilds = cfg.remoteBuild; + buildMachines = [ + { + hostName = "server1.vhack.eu"; + protocol = "ssh-ng"; + system = "x86_64-linux"; + supportedFeatures = ["big-parallel"]; + } + ]; + gc = { + automatic = true; + dates = "daily"; + options = "--delete-older-than 3"; + }; + settings = { + auto-optimise-store = true; + commit-lockfile-summary = "flake.lock: update"; + experimental-features = ["nix-command" "flakes"]; + substituters = [ + "https://cache.garnix.io" + "https://hyprland.cachix.org" + ]; + trusted-public-keys = [ + "cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g=" + "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" + ]; + }; + }; + home-manager.users.root.home = { + #lib.mkIf cfg.remoteBuild { TODO Why does this fail? + username = "root"; + homeDirectory = "/root"; + stateVersion = "23.05"; + file.".ssh/config" = { + text = '' + Host server1.vhack.eu + IdentitiesOnly yes + IdentityFIle ${config.age.secrets.nixremote.path} + User nixremote + ''; + }; + }; + }; +} diff --git a/modules/nixos/jaki/pamconfig.nix b/modules/nixos/jaki/pamconfig.nix new file mode 100644 index 0000000..4e9f3eb --- /dev/null +++ b/modules/nixos/jaki/pamconfig.nix @@ -0,0 +1,29 @@ +{ + config, + lib, + ... +}: let + cfg = config.sils.pamconfig; +in { + options.sils.pamconfig.enable = lib.mkEnableOption "custom pamconfig"; + config = lib.mkIf cfg.enable { + security.pam = { + services = { + swaylock = {}; + sudo = { + u2fAuth = true; + }; + login = { + u2fAuth = true; + }; + }; + u2f = { + enable = true; + settings = { + cue = true; + authFile = config.age.secrets.pamu2f-mappings.path; + }; + }; + }; + }; +} diff --git a/modules/nixos/jaki/plasma.nix b/modules/nixos/jaki/plasma.nix new file mode 100644 index 0000000..f196447 --- /dev/null +++ b/modules/nixos/jaki/plasma.nix @@ -0,0 +1,29 @@ +{ + config, + lib, + pkgs, + ... +}: let + cfg = config.sils.plasma; +in { + options.sils.plasma.enable = lib.mkEnableOption "KDE Plasma"; + config = lib.mkIf cfg.enable { + services = { + greetd.enable = lib.mkForce false; + tlp.enable = lib.mkForce false; + displayManager.sddm = { + enable = true; + settings.General.DisplayServer = "wayland"; + wayland.enable = true; + }; + desktopManager.plasma6 = { + enable = true; + }; + }; + environment.plasma6.excludePackages = with pkgs.kdePackages; [ + kwallet + kwallet-pam + kwalletmanager + ]; + }; +} diff --git a/modules/nixos/jaki/plymouth.nix b/modules/nixos/jaki/plymouth.nix new file mode 100644 index 0000000..8e39220 --- /dev/null +++ b/modules/nixos/jaki/plymouth.nix @@ -0,0 +1,12 @@ +{ + config, + lib, + ... +}: let + cfg = config.sils.plymouth; +in { + options.sils.plymouth.enable = lib.mkEnableOption "Enable Plymouth"; + config = lib.mkIf cfg.enable { + boot.plymouth.enable = true; + }; +} diff --git a/modules/nixos/jaki/printing.nix b/modules/nixos/jaki/printing.nix new file mode 100644 index 0000000..44b2a10 --- /dev/null +++ b/modules/nixos/jaki/printing.nix @@ -0,0 +1,44 @@ +{ + config, + lib, + pkgs, + ... +}: let + cfg = config.sils.printing; +in { + options.sils.printing.enable = lib.mkEnableOption "printing configuration"; + config = lib.mkIf cfg.enable { + services = { + printing = { + enable = true; + cups-pdf.enable = true; + startWhenNeeded = true; + webInterface = true; + stateless = true; + drivers = with pkgs; [epson-escpr epson-escpr2 hplip]; + }; + avahi = { + enable = true; + nssmdns4 = true; + nssmdns6 = true; + openFirewall = true; + }; + }; + + hardware.printers = { + ensureDefaultPrinter = "EPSON_ET-2720_Series"; + ensurePrinters = [ + { + name = "EPSON_ET-2720_Series"; + description = "EPSON ET-2720 Series"; + model = "epson-inkjet-printer-escpr/Epson-ET-2720_Series-epson-escpr-en.ppd"; + location = "Home Network"; + deviceUri = "dnssd://EPSON%20ET-2720%20Series._ipp._tcp.local/?uuid=cfe92100-67c4-11d4-a45f-e0bb9edcdbb9"; + ppdOptions = { + PageSize = "A4"; + }; + } + ]; + }; + }; +} diff --git a/modules/nixos/jaki/roles.nix b/modules/nixos/jaki/roles.nix new file mode 100644 index 0000000..52bfb54 --- /dev/null +++ b/modules/nixos/jaki/roles.nix @@ -0,0 +1,86 @@ +{ + config, + lib, + ... +}: let + roleCmp = string: config.role.sils == string; +in { + config.sils = + if roleCmp "laptop" + then { + apparmor.enable = lib.mkDefault true; + basesystem.enable = lib.mkDefault true; + bluetooth.enable = lib.mkDefault true; + bootloader = lib.mkDefault "lanzaboote"; + disks.enable = lib.mkDefault true; + gnome.enable = lib.mkDefault true; + graphics.enable = lib.mkDefault true; + environment.enable = lib.mkDefault true; + firejail.enable = false; + font.enable = lib.mkDefault true; + hyprland.enable = lib.mkDefault true; + impermanence.enable = lib.mkDefault true; + networking.enable = lib.mkDefault true; + nix-config.enable = lib.mkDefault true; + pamconfig.enable = lib.mkDefault true; + plasma.enable = lib.mkDefault false; + plymouth.enable = lib.mkDefault true; + printing.enable = lib.mkDefault true; + sound.enable = lib.mkDefault true; + steam.enable = lib.mkDefault true; + sway.enable = lib.mkDefault false; + theming.enable = lib.mkDefault true; + tailscale = { + enable = lib.mkDefault false; + role = "client"; + }; + tor.enable = lib.mkDefault true; + } + else if roleCmp "laptop-light" + then { + apparmor.enable = lib.mkDefault true; + basesystem.enable = lib.mkDefault true; + bluetooth.enable = lib.mkDefault true; + bootloader = lib.mkDefault "lanzaboote"; + disks.enable = lib.mkDefault true; + graphics.enable = lib.mkDefault true; + environment.enable = lib.mkDefault true; + firejail.enable = false; + font.enable = lib.mkDefault true; + hyprland.enable = lib.mkDefault true; + impermanence.enable = lib.mkDefault true; + networking.enable = lib.mkDefault true; + nix-config.enable = lib.mkDefault true; + pamconfig.enable = lib.mkDefault true; + plymouth.enable = lib.mkDefault false; + printing.enable = lib.mkDefault true; + sound.enable = lib.mkDefault true; + sway.enable = lib.mkDefault false; + theming.enable = lib.mkDefault true; + } + else if roleCmp "vm" + then {} + else if roleCmp "workstation" + then { + apparmor.enable = lib.mkDefault true; + basesystem.enable = lib.mkDefault true; + bluetooth.enable = lib.mkDefault true; + bootloader = lib.mkDefault "lanzaboote"; + disks.enable = lib.mkDefault true; + graphics.enable = lib.mkDefault true; + environment.enable = lib.mkDefault true; + firejail.enable = false; + font.enable = lib.mkDefault true; + hyprland.enable = lib.mkDefault true; + impermanence.enable = lib.mkDefault true; + networking.enable = lib.mkDefault true; + nix-config.enable = lib.mkDefault true; + pamconfig.enable = lib.mkDefault true; + plymouth.enable = lib.mkDefault false; + printing.enable = lib.mkDefault true; + sound.enable = lib.mkDefault true; + sway.enable = lib.mkDefault false; + theming.enable = lib.mkDefault true; + } + else {}; +} diff --git a/modules/nixos/jaki/sound.nix b/modules/nixos/jaki/sound.nix new file mode 100644 index 0000000..3ad26fb --- /dev/null +++ b/modules/nixos/jaki/sound.nix @@ -0,0 +1,20 @@ +{ + config, + lib, + ... +}: let + cfg = config.sils.sound; +in { + options.sils.sound.enable = lib.mkEnableOption "sound config"; + config = lib.mkIf cfg.enable { + services.pipewire = { + enable = true; + alsa = { + enable = true; + support32Bit = true; + }; + pulse.enable = true; + jack.enable = true; + }; + }; +} diff --git a/modules/nixos/jaki/steam.nix b/modules/nixos/jaki/steam.nix new file mode 100644 index 0000000..3c834a6 --- /dev/null +++ b/modules/nixos/jaki/steam.nix @@ -0,0 +1,19 @@ +{ + config, + lib, + ... +}: let + cfg = config.sils.steam; +in { + options.sils.steam.enable = lib.mkEnableOption "Steam"; + config = lib.mkIf cfg.enable { + nixpkgs.config.allowUnfreePredicate = pkg: + builtins.elem (lib.getName pkg) [ + "steam" + "steam-unwrapped" + ]; + programs.steam = { + enable = true; + }; + }; +} diff --git a/modules/nixos/jaki/sudo.nix b/modules/nixos/jaki/sudo.nix new file mode 100644 index 0000000..2ad117f --- /dev/null +++ b/modules/nixos/jaki/sudo.nix @@ -0,0 +1,24 @@ +{ + config, + lib, + ... +}: let + persistentLecture = !config.sils.sudo.persistentLecture.disable; +in { + options.sils.sudo.persistentLecture.disable = lib.mkEnableOption "sudo lecture after every boot"; + config = { + security.sudo = { + enable = true; + }; + environment.persistence.${config.sils.meta.globalDataDir}.files = lib.mkIf persistentLecture [ + { + file = "/var/db/sudo/lectured/${builtins.toString config.users.users.jaki.uid}"; + parentDirectory = { + user = "root"; + group = config.users.users.jaki.group; + mode = "0600"; + }; + } + ]; + }; +} diff --git a/modules/nixos/jaki/sway.nix b/modules/nixos/jaki/sway.nix new file mode 100644 index 0000000..4aac2f4 --- /dev/null +++ b/modules/nixos/jaki/sway.nix @@ -0,0 +1,15 @@ +{ + config, + lib, + ... +}: let + cfg = config.sils.sway; +in { + options.sils.sway.enable = lib.mkEnableOption "sway"; + config = lib.mkIf cfg.enable { + programs.sway = { + enable = true; + package = null; + }; + }; +} diff --git a/modules/nixos/jaki/tailscale.nix b/modules/nixos/jaki/tailscale.nix new file mode 100644 index 0000000..e1f49a4 --- /dev/null +++ b/modules/nixos/jaki/tailscale.nix @@ -0,0 +1,52 @@ +{ + config, + lib, + ... +}: let + cfg = config.sils.tailscale; +in { + options.sils.tailscale = { + enable = lib.mkEnableOption "Tailscale"; + openFirewall = true; + role = lib.mkOption { + type = lib.types.enum [ + "client" + "server" + ]; + }; + }; + config = lib.mkIf cfg.enable { + services.tailscale = { + enable = true; + authKeyFile = config.age.secrets.tailscale.path; + useRoutingFeatures = cfg.role; + extraDaemonFlags = [ + "--no-logs-no-support" + ]; + extraSetFlags = [ + "--accept-routes" + ]; + }; + networking.firewall = { + trustedInterfaces = ["tailscale0"]; + allowedUDPPorts = [config.services.tailscale.port]; + checkReversePath = "loose"; + }; + systemd = { + services.tailscaled.serviceConfig.Environment = [ + "TS_DEBUG_FIREWALL_MODE=nftables" + ]; + network.wait-online.enable = false; + }; + boot.initrd.systemd.network.wait-online.enable = false; + + environment.persistence."/srv".directories = [ + { + directory = "/var/lib/tailscale"; + user = "root"; + group = "root"; + mode = "0700"; + } + ]; + }; +} diff --git a/modules/nixos/jaki/theming/default.nix b/modules/nixos/jaki/theming/default.nix new file mode 100644 index 0000000..2d5d2fd --- /dev/null +++ b/modules/nixos/jaki/theming/default.nix @@ -0,0 +1,18 @@ +{ + config, + lib, + pkgs, + ... +}: let + cfg = config.sils.theming; +in { + options.sils.theming.enable = lib.mkEnableOption "theming"; + config = lib.mkIf cfg.enable { + stylix = { + enable = true; + base16Scheme = "${pkgs.base16-schemes}/share/themes/ayu-dark.yaml"; + image = ../../../../files/wallpaper.jpg; + polarity = "dark"; + }; + }; +} diff --git a/modules/nixos/jaki/theming/tokyo-night-dark.yaml b/modules/nixos/jaki/theming/tokyo-night-dark.yaml new file mode 100644 index 0000000..ec29944 --- /dev/null +++ b/modules/nixos/jaki/theming/tokyo-night-dark.yaml @@ -0,0 +1,18 @@ +scheme: "Tokyo Night Dark" +author: "Michaël Ball" +base00: "1A1B26" +base01: "16161E" +base02: "2F3549" +base03: "444B6A" +base04: "787C99" +base05: "A9B1D6" +base06: "CBCCD1" +base07: "D5D6DB" +base08: "C0CAF5" +base09: "A9B1D6" +base0A: "0DB9D7" +base0B: "9ECE6A" +base0C: "B4F9F8" +base0D: "2AC3DE" +base0E: "BB9AF7" +base0F: "F7768E" diff --git a/modules/nixos/jaki/tor.nix b/modules/nixos/jaki/tor.nix new file mode 100644 index 0000000..01fdc1f --- /dev/null +++ b/modules/nixos/jaki/tor.nix @@ -0,0 +1,23 @@ +{ + config, + pkgs, + lib, + ... +}: let + cfg = config.sils.tor; +in { + options.sils.tor.enable = lib.mkEnableOption "tor"; + config = lib.mkIf cfg.enable { + services = { + tor = { + enable = true; + torsocks.enable = true; + client.enable = true; + }; + snowflake-proxy = { + enable = true; + capacity = 5; + }; + }; + }; +} diff --git a/modules/nixos/sils/apparmor.nix b/modules/nixos/sils/apparmor.nix deleted file mode 100644 index 69cec21..0000000 --- a/modules/nixos/sils/apparmor.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ - config, - lib, - ... -}: let - cfg = config.sils.apparmor; -in { - options.sils.apparmor.enable = lib.mkEnableOption "apparmor"; - config = lib.mkIf cfg.enable { - security.apparmor = { - enable = true; - }; - }; -} diff --git a/modules/nixos/sils/basesystem.nix b/modules/nixos/sils/basesystem.nix deleted file mode 100644 index 0e9f6de..0000000 --- a/modules/nixos/sils/basesystem.nix +++ /dev/null @@ -1,48 +0,0 @@ -{ - config, - lib, - pkgs, - modulesPath, - ... -}: let - cfg = config.sils.basesystem; -in { - options.sils.basesystem.enable = lib.mkEnableOption "basesystem"; - - config = lib.mkIf cfg.enable { - networking.hostName = config.sils.meta.hostname; - - boot = { - initrd = { - systemd.enable = true; - availableKernelModules = ["xhci_pci" "nvme" "rtsx_pci_sdmmc"]; - kernelModules = []; - }; - kernelModules = ["kvm-intel"]; - extraModulePackages = []; - kernelPackages = pkgs.linuxPackages_latest; - }; - - system.stateVersion = "23.05"; - - i18n.defaultLocale = "en_US.UTF-8"; - - time.timeZone = "Europe/Berlin"; - - nixpkgs.hostPlatform = config.sils.meta.system; - powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; - hardware = { - cpu.intel.updateMicrocode = true; - enableRedistributableFirmware = true; - }; - - services.xserver.xkb = { - layout = "de"; - options = "grp:win_space_toggle"; - }; - console = { - font = "Lat2-Terminus16"; - keyMap = "de"; - }; - }; -} diff --git a/modules/nixos/sils/bluetooth.nix b/modules/nixos/sils/bluetooth.nix deleted file mode 100644 index 2d67717..0000000 --- a/modules/nixos/sils/bluetooth.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ - config, - lib, - ... -}: let - cfg = config.sils.bluetooth; -in { - options.sils.bluetooth.enable = lib.mkEnableOption "bluetooth"; - config = lib.mkIf cfg.enable { - hardware.bluetooth.enable = true; - }; -} diff --git a/modules/nixos/sils/bootloader.nix b/modules/nixos/sils/bootloader.nix deleted file mode 100644 index fc0e0f3..0000000 --- a/modules/nixos/sils/bootloader.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ - config, - lib, - ... -}: let - btl = config.sils.bootloader; -in { - options.sils.bootloader = lib.mkOption { - type = lib.types.enum ["lanzaboote" "grub"]; - default = "lanzaboote"; - description = "Which bootloader to use."; - }; - config.boot = - if btl == "lanzaboote" - then { - lanzaboote = { - enable = true; - configurationLimit = 10; - pkiBundle = "/etc/secureboot"; - settings = { - editor = false; - }; - }; - } - else if btl == "grub" - then { - loader.grub.enable = true; - } - else {}; -} diff --git a/modules/nixos/sils/default.nix b/modules/nixos/sils/default.nix deleted file mode 100644 index db27868..0000000 --- a/modules/nixos/sils/default.nix +++ /dev/null @@ -1,33 +0,0 @@ -{...}: { - imports = [ - ./apparmor.nix - ./basesystem.nix - ./bluetooth.nix - ./bootloader.nix - ./disks.nix - ./docker.nix - ./environment.nix - ./firejail.nix - ./font.nix - ./fprintd.nix - ./gnome.nix - ./graphics.nix - ./hyprland.nix - ./impermanence.nix - ./meta.nix - ./networking.nix - ./nix.nix - ./pamconfig.nix - ./plasma.nix - ./plymouth.nix - ./printing.nix - ./roles.nix - ./sound.nix - ./steam.nix - ./sudo.nix - ./sway.nix - ./theming - ./tailscale.nix - ./tor.nix - ]; -} diff --git a/modules/nixos/sils/disks.nix b/modules/nixos/sils/disks.nix deleted file mode 100644 index bf0e2b0..0000000 --- a/modules/nixos/sils/disks.nix +++ /dev/null @@ -1,132 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: let - cfg = config.sils.disks; - defaultMountOptions = [ - "noatime" # should have some performance upsides, and I don't use it anyways - "lazytime" # make time changes in memory - ]; -in { - options.sils.disks = { - enable = lib.mkEnableOption "disk setup with disko"; - - disk = lib.mkOption { - type = lib.types.path; - example = lib.literalExpression "/dev/disk/by-uuid/0442cb6d-f13a-4635-b487-fa76189774c5"; - description = "The disk used for installing the OS."; - }; - - #swap = { - # uuid = lib.mkOption { - # type = lib.types.str; - # example = lib.literalExpression "d1d20ae7-3d8a-44da-86da-677dbbb10c89"; - # description = "The uuid of the swapfile"; - # }; - # resumeOffset = lib.mkOption { - # type = lib.types.str; - # example = lib.literalExpression "134324224"; - # description = "The resume offset of the swapfile"; - # }; - #}; - }; - - config = lib.mkIf cfg.enable { - disko.devices = { - disk = { - main = { - device = cfg.disk; - content = { - type = "gpt"; - partitions = { - root = { - size = "100%"; - name = "root"; - content = { - type = "luks"; - name = "cryptroot"; - extraOpenArgs = ["--allow-discards"]; - content = { - type = "btrfs"; - extraArgs = ["-f" "--label nixos"]; # Override existing partitions - subvolumes = { - "root" = { - mountpoint = "/"; - mountOptions = defaultMountOptions; - }; - "nix" = { - mountpoint = "/nix"; - mountOptions = defaultMountOptions; - }; - "persistent-storage" = { - mountpoint = "/srv"; - mountOptions = defaultMountOptions; - }; - "persistent-storage@snapshots" = { - mountpoint = "/srv/snapshots"; - mountOptions = defaultMountOptions; - }; - "swap" = { - mountpoint = "/swap"; - mountOptions = defaultMountOptions; - }; - "home" = { - mountpoint = "/home"; - mountOptions = defaultMountOptions; - }; - }; - }; - }; - }; - MBR = { - type = "EF02"; - size = "1M"; - priority = 1; - }; - boot = { - type = "EF00"; - size = "4096M"; - name = "boot"; - content = { - type = "filesystem"; - format = "vfat"; - mountpoint = "/boot"; - mountOptions = ["umask=0077"]; - }; - }; - }; - }; - }; - }; - nodev = { - "/tmp" = { - fsType = "tmpfs"; - mountOptions = ["defaults" "size=30G" "mode=755"]; - }; - }; - }; - fileSystems = { - "/srv" = { - neededForBoot = true; - }; - "/swap" = { - neededForBoot = true; - }; - }; - swapDevices = [ - #{ - # device = "/swap/swapfile"; - # priority = 1; # lower than zramSwap, just in case - # # size = 2048; # TODO: can nixos create a btrfs swapfile correctly? - #} - ]; - boot = { - kernelParams = [ - #"resume_offset=${cfg.swap.resumeOffset}" - ]; - #resumeDevice = "/dev/disk/by-uuid/${cfg.swap.uuid}"; - }; - }; -} diff --git a/modules/nixos/sils/docker.nix b/modules/nixos/sils/docker.nix deleted file mode 100644 index 131b857..0000000 --- a/modules/nixos/sils/docker.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ - config, - lib, - ... -}: let - cfg = config.sils.docker; -in { - options.sils.docker.enable = lib.mkEnableOption "docker"; - config = lib.mkIf cfg.enable { - virtualisation.docker = { - enable = true; - storageDriver = "btrfs"; - }; - users.users.jaki.extraGroups = ["docker"]; - environment.persistence."/srv".directories = [ - { - directory = "/var/lib/docker"; - user = "docker"; - group = "docker"; - mode = "0755"; - } - ]; - }; -} diff --git a/modules/nixos/sils/environment.nix b/modules/nixos/sils/environment.nix deleted file mode 100644 index 0ffa422..0000000 --- a/modules/nixos/sils/environment.nix +++ /dev/null @@ -1,45 +0,0 @@ -{ - config, - lib, - ... -}: let - cfg = config.sils.environment; -in { - options.sils.environment.enable = lib.mkEnableOption "custom env vars"; - config = lib.mkIf cfg.enable { - environment = { - sessionVariables = { - XDG_CACHE_HOME = "\${HOME}/.cache"; - XDG_CONFIG_HOME = "\${HOME}/.config"; - XDG_BIN_HOME = "\${HOME}/.local/bin"; - XDG_DATA_HOME = "\${HOME}/.local/share"; - XDG_STATE_HOME = "\${HOME}/.local/state"; - ZDOTDIR = "\${HOME}/.config/zsh"; - CARGO_HOME = "\${HOME}/.local/share/cargo"; - ANDROID_HOME = "\${HOME}/.local/share/android"; - ANSIBLE_HOME = "\${HOME}/.local/share/ansible"; - #_JAVA_OPTIONS = '-Djava.util.prefs.userRoot="\${XDG_CONFIG_HOME}/java"'; - WINEPREFIX = "\${HOME}/.local/share/wine"; - GRADLE_USER_HOME = "\${HOME}/.local/share/gradle"; - GTK2_RC_FILES = "\${HOME}/.config/gtk-2.0/gtkrc"; - EDITOR = "nvim"; - GOPATH = "\${HOME}/.local/share/go"; - XCOMPOSECACHE = "\${HOME}/.cache/X11/xcompose"; - CDPATH = ".:\${HOME}:\${HOME}/repos/:\${HOME}/srv"; - NIXOS_OZONE_WL = "1"; # wayland for electron apps - - #PYTHONSTARTUP="/etc/python/pythonrc"; - - PATH = [ - "\${XDG_BIN_HOME}" - ]; - }; - etc.crypttab = { - enable = true; - text = '' - storage UUID=f4ba9aae-e34f-4a72-98ab-88787f7c1986 none tpm2-device=auto,noauto - ''; - }; - }; - }; -} diff --git a/modules/nixos/sils/firejail.nix b/modules/nixos/sils/firejail.nix deleted file mode 100644 index 5886918..0000000 --- a/modules/nixos/sils/firejail.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: let - cfg = config.sils.firejail; -in { - options.sils.firejail.enable = lib.mkEnableOption "firejail"; - config = lib.mkIf cfg.enable { - sils.apparmor.enable = true; - programs.firejail = { - enable = true; - wrappedBinaries = { - firefox = { - executable = "${lib.getExe pkgs.firefox}"; # config.home-manager.users.jaki.programs.firefox.package}"; - profile = "${pkgs.firejail}/etc/firejail/firefox.profile"; - }; - }; - }; - - home-manager.users.jaki.programs.firefox.package = null; - }; -} diff --git a/modules/nixos/sils/font.nix b/modules/nixos/sils/font.nix deleted file mode 100644 index e079c99..0000000 --- a/modules/nixos/sils/font.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: let - cfg = config.sils.font; -in { - options.sils.font.enable = lib.mkEnableOption "font config"; - config = lib.mkIf cfg.enable { - fonts = { - packages = with pkgs; [ - nerd-fonts.fira-code - nerd-fonts.droid-sans-mono - nerd-fonts.lilex - nerd-fonts.symbols-only - ]; - fontconfig = { - defaultFonts = { - serif = ["Lilex"]; - sansSerif = ["Droid Sans Mono"]; - monospace = ["FiraCode"]; - }; - }; - fontDir.enable = true; - }; - }; -} diff --git a/modules/nixos/sils/fprintd.nix b/modules/nixos/sils/fprintd.nix deleted file mode 100644 index dd5c1cc..0000000 --- a/modules/nixos/sils/fprintd.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: let - cfg = config.sils.fingerprint; -in { - options.sils.fingerprint.enable = lib.mkEnableOption "fingerprint auth"; - config = lib.mkIf cfg.enable { - services.fprintd = { - enable = true; - tod = { - enable = true; - driver = pkgs.libfprint-2-tod1-vfs0090; - }; - }; - }; -} diff --git a/modules/nixos/sils/gnome.nix b/modules/nixos/sils/gnome.nix deleted file mode 100644 index 7b798d9..0000000 --- a/modules/nixos/sils/gnome.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ - config, - lib, - ... -}: let - cfg = config.sils.gnome; -in { - options.sils.gnome.enable = lib.mkEnableOption "The Gnome DE"; - config = lib.mkIf cfg.enable { - services = { - xserver.enable = true; - displayManager.gdm.enable = true; - desktopManager.gnome.enable = true; - tlp.enable = lib.mkForce false; - greetd.enable = lib.mkForce false; - gnome.gnome-keyring.enable = lib.mkForce false; - }; - }; -} diff --git a/modules/nixos/sils/graphics.nix b/modules/nixos/sils/graphics.nix deleted file mode 100644 index 77f58d8..0000000 --- a/modules/nixos/sils/graphics.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ - lib, - config, - ... -}: let - cfg = config.sils.graphics; -in { - options.sils.graphics.enable = lib.mkEnableOption "graphics"; - config = lib.mkIf cfg.enable { - hardware.graphics.enable = true; - }; -} diff --git a/modules/nixos/sils/hyprland.nix b/modules/nixos/sils/hyprland.nix deleted file mode 100644 index 73ba9c2..0000000 --- a/modules/nixos/sils/hyprland.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ - config, - lib, - ... -}: let - cfg = config.sils.hyprland; -in { - options.sils.hyprland.enable = lib.mkEnableOption "hyprland"; - config = lib.mkIf cfg.enable { - programs.hyprland = { - enable = true; - xwayland.enable = true; - }; - }; -} diff --git a/modules/nixos/sils/impermanence.nix b/modules/nixos/sils/impermanence.nix deleted file mode 100644 index cf67a91..0000000 --- a/modules/nixos/sils/impermanence.nix +++ /dev/null @@ -1,43 +0,0 @@ -{ - config, - lib, - ... -}: let - cfg = config.sils.impermanence; -in { - options.sils.impermanence.enable = lib.mkEnableOption "impermanence to persist directories"; - config = lib.mkIf cfg.enable { - environment.persistence."/srv".directories = [ - { - directory = "/var/lib/bluetooth"; - user = "root"; - group = "root"; - mode = "0700"; - } - { - directory = "/root"; - user = "root"; - group = "root"; - mode = "0700"; - } - { - directory = "/var/lib/waydroid"; - user = "root"; - group = "root"; - mode = "0700"; - } - { - directory = "/var/lib/nixos"; - user = "root"; - group = "root"; - mode = "0755"; - } - { - directory = "/var/log"; - user = "root"; - group = "root"; - mode = "0755"; - } - ]; - }; -} diff --git a/modules/nixos/sils/meta.nix b/modules/nixos/sils/meta.nix deleted file mode 100644 index 57ef081..0000000 --- a/modules/nixos/sils/meta.nix +++ /dev/null @@ -1,31 +0,0 @@ -{lib, ...}: let - nullable = type: lib.types.nullOr type; -in { - options.sils.meta = { - bootPart = lib.mkOption { - type = nullable lib.types.str; - default = null; - }; - bootstrapSystem = lib.mkEnableOption; - globalDataDir = lib.mkOption { - type = nullable lib.types.str; - default = null; - }; - hostname = lib.mkOption { - type = nullable lib.types.str; - default = null; - }; - mainDisk = lib.mkOption { - type = nullable lib.types.str; - default = null; - }; - rootPart = lib.mkOption { - type = nullable lib.types.str; - default = null; - }; - system = lib.mkOption { - type = nullable lib.types.str; - default = null; - }; - }; -} diff --git a/modules/nixos/sils/networking.nix b/modules/nixos/sils/networking.nix deleted file mode 100644 index 9ec34ab..0000000 --- a/modules/nixos/sils/networking.nix +++ /dev/null @@ -1,63 +0,0 @@ -{ - config, - pkgs, - lib, - ... -}: let - cfg = config.sils.networking; -in { - options.sils.networking.enable = lib.mkEnableOption "networking"; - config = lib.mkIf cfg.enable { - services.resolved.enable = true; - networking = { - enableIPv6 = false; - useNetworkd = false; - #useDHCP = true; - networkmanager = { - enable = true; - plugins = with pkgs; [ - networkmanager-openvpn - ]; - }; - nftables.enable = true; - firewall = { - enable = true; - }; - #nameservers = ["2620:fe::fe" "2620:fe::9" "9.9.9.9" "149.112.112.112"]; - #wireless = { - # enable = false; # TODO: Reenable - # environmentFile = config.age.secrets.wireless.path; - # networks = { - # # Important: Never forget the second '@'! - # "@SSID_N0@".psk = "@PSK_N0@"; - # "@SSID_N1@".psk = "@PSK_N1@"; - # "@SSID_N2@" = { - # hidden = true; - # psk = "@PSK_N2@"; - # }; - # "@SSID_N3@".psk = "@PSK_N3@"; - # "@SSID_N4@" = { - # auth = '' - # proto=RSN - # key_mgmt=WPA-EAP - # pairwise=CCMP - # auth_alg=OPEN - # eap=PEAP - # identity="@IDENTITY_N4@" - # password="@PSK_N4@" - # ca_cert="${self}/files/DNSX-CA.pem" - # ''; - # }; - # "@SSID_N5@".psk = "@PSK_N5@"; - # "GPN-Open".auth = '' - # key_mgmt=OWE - # ''; - # }; - # userControlled = { - # enable = true; - # group = "wheel"; # TODO: Change this? - # }; - #}; - }; - }; -} diff --git a/modules/nixos/sils/nix.nix b/modules/nixos/sils/nix.nix deleted file mode 100644 index 9d73fcd..0000000 --- a/modules/nixos/sils/nix.nix +++ /dev/null @@ -1,66 +0,0 @@ -{ - self, - config, - nixpkgs, - lib, - ... -}: let - cfg = config.sils.nix-config; -in { - options.sils.nix-config = { - enable = lib.mkEnableOption "nix config"; - remoteBuild = lib.mkEnableOption "remote builds"; - }; - config = { - nix = { - registry = { - nixpkgs.flake = self.inputs.nixpkgs; - n.flake = self.inputs.nixpkgs; - self.flake = self; - s.flake = self; - }; - channel.enable = false; - distributedBuilds = cfg.remoteBuild; - buildMachines = [ - { - hostName = "server1.vhack.eu"; - protocol = "ssh-ng"; - system = "x86_64-linux"; - supportedFeatures = ["big-parallel"]; - } - ]; - gc = { - automatic = true; - dates = "daily"; - options = "--delete-older-than 3"; - }; - settings = { - auto-optimise-store = true; - commit-lockfile-summary = "flake.lock: update"; - experimental-features = ["nix-command" "flakes"]; - substituters = [ - "https://cache.garnix.io" - "https://hyprland.cachix.org" - ]; - trusted-public-keys = [ - "cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g=" - "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" - ]; - }; - }; - home-manager.users.root.home = { - #lib.mkIf cfg.remoteBuild { TODO Why does this fail? - username = "root"; - homeDirectory = "/root"; - stateVersion = "23.05"; - file.".ssh/config" = { - text = '' - Host server1.vhack.eu - IdentitiesOnly yes - IdentityFIle ${config.age.secrets.nixremote.path} - User nixremote - ''; - }; - }; - }; -} diff --git a/modules/nixos/sils/pamconfig.nix b/modules/nixos/sils/pamconfig.nix deleted file mode 100644 index 4e9f3eb..0000000 --- a/modules/nixos/sils/pamconfig.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ - config, - lib, - ... -}: let - cfg = config.sils.pamconfig; -in { - options.sils.pamconfig.enable = lib.mkEnableOption "custom pamconfig"; - config = lib.mkIf cfg.enable { - security.pam = { - services = { - swaylock = {}; - sudo = { - u2fAuth = true; - }; - login = { - u2fAuth = true; - }; - }; - u2f = { - enable = true; - settings = { - cue = true; - authFile = config.age.secrets.pamu2f-mappings.path; - }; - }; - }; - }; -} diff --git a/modules/nixos/sils/plasma.nix b/modules/nixos/sils/plasma.nix deleted file mode 100644 index f196447..0000000 --- a/modules/nixos/sils/plasma.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: let - cfg = config.sils.plasma; -in { - options.sils.plasma.enable = lib.mkEnableOption "KDE Plasma"; - config = lib.mkIf cfg.enable { - services = { - greetd.enable = lib.mkForce false; - tlp.enable = lib.mkForce false; - displayManager.sddm = { - enable = true; - settings.General.DisplayServer = "wayland"; - wayland.enable = true; - }; - desktopManager.plasma6 = { - enable = true; - }; - }; - environment.plasma6.excludePackages = with pkgs.kdePackages; [ - kwallet - kwallet-pam - kwalletmanager - ]; - }; -} diff --git a/modules/nixos/sils/plymouth.nix b/modules/nixos/sils/plymouth.nix deleted file mode 100644 index 8e39220..0000000 --- a/modules/nixos/sils/plymouth.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ - config, - lib, - ... -}: let - cfg = config.sils.plymouth; -in { - options.sils.plymouth.enable = lib.mkEnableOption "Enable Plymouth"; - config = lib.mkIf cfg.enable { - boot.plymouth.enable = true; - }; -} diff --git a/modules/nixos/sils/printing.nix b/modules/nixos/sils/printing.nix deleted file mode 100644 index 44b2a10..0000000 --- a/modules/nixos/sils/printing.nix +++ /dev/null @@ -1,44 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: let - cfg = config.sils.printing; -in { - options.sils.printing.enable = lib.mkEnableOption "printing configuration"; - config = lib.mkIf cfg.enable { - services = { - printing = { - enable = true; - cups-pdf.enable = true; - startWhenNeeded = true; - webInterface = true; - stateless = true; - drivers = with pkgs; [epson-escpr epson-escpr2 hplip]; - }; - avahi = { - enable = true; - nssmdns4 = true; - nssmdns6 = true; - openFirewall = true; - }; - }; - - hardware.printers = { - ensureDefaultPrinter = "EPSON_ET-2720_Series"; - ensurePrinters = [ - { - name = "EPSON_ET-2720_Series"; - description = "EPSON ET-2720 Series"; - model = "epson-inkjet-printer-escpr/Epson-ET-2720_Series-epson-escpr-en.ppd"; - location = "Home Network"; - deviceUri = "dnssd://EPSON%20ET-2720%20Series._ipp._tcp.local/?uuid=cfe92100-67c4-11d4-a45f-e0bb9edcdbb9"; - ppdOptions = { - PageSize = "A4"; - }; - } - ]; - }; - }; -} diff --git a/modules/nixos/sils/roles.nix b/modules/nixos/sils/roles.nix deleted file mode 100644 index 52bfb54..0000000 --- a/modules/nixos/sils/roles.nix +++ /dev/null @@ -1,86 +0,0 @@ -{ - config, - lib, - ... -}: let - roleCmp = string: config.role.sils == string; -in { - config.sils = - if roleCmp "laptop" - then { - apparmor.enable = lib.mkDefault true; - basesystem.enable = lib.mkDefault true; - bluetooth.enable = lib.mkDefault true; - bootloader = lib.mkDefault "lanzaboote"; - disks.enable = lib.mkDefault true; - gnome.enable = lib.mkDefault true; - graphics.enable = lib.mkDefault true; - environment.enable = lib.mkDefault true; - firejail.enable = false; - font.enable = lib.mkDefault true; - hyprland.enable = lib.mkDefault true; - impermanence.enable = lib.mkDefault true; - networking.enable = lib.mkDefault true; - nix-config.enable = lib.mkDefault true; - pamconfig.enable = lib.mkDefault true; - plasma.enable = lib.mkDefault false; - plymouth.enable = lib.mkDefault true; - printing.enable = lib.mkDefault true; - sound.enable = lib.mkDefault true; - steam.enable = lib.mkDefault true; - sway.enable = lib.mkDefault false; - theming.enable = lib.mkDefault true; - tailscale = { - enable = lib.mkDefault false; - role = "client"; - }; - tor.enable = lib.mkDefault true; - } - else if roleCmp "laptop-light" - then { - apparmor.enable = lib.mkDefault true; - basesystem.enable = lib.mkDefault true; - bluetooth.enable = lib.mkDefault true; - bootloader = lib.mkDefault "lanzaboote"; - disks.enable = lib.mkDefault true; - graphics.enable = lib.mkDefault true; - environment.enable = lib.mkDefault true; - firejail.enable = false; - font.enable = lib.mkDefault true; - hyprland.enable = lib.mkDefault true; - impermanence.enable = lib.mkDefault true; - networking.enable = lib.mkDefault true; - nix-config.enable = lib.mkDefault true; - pamconfig.enable = lib.mkDefault true; - plymouth.enable = lib.mkDefault false; - printing.enable = lib.mkDefault true; - sound.enable = lib.mkDefault true; - sway.enable = lib.mkDefault false; - theming.enable = lib.mkDefault true; - } - else if roleCmp "vm" - then {} - else if roleCmp "workstation" - then { - apparmor.enable = lib.mkDefault true; - basesystem.enable = lib.mkDefault true; - bluetooth.enable = lib.mkDefault true; - bootloader = lib.mkDefault "lanzaboote"; - disks.enable = lib.mkDefault true; - graphics.enable = lib.mkDefault true; - environment.enable = lib.mkDefault true; - firejail.enable = false; - font.enable = lib.mkDefault true; - hyprland.enable = lib.mkDefault true; - impermanence.enable = lib.mkDefault true; - networking.enable = lib.mkDefault true; - nix-config.enable = lib.mkDefault true; - pamconfig.enable = lib.mkDefault true; - plymouth.enable = lib.mkDefault false; - printing.enable = lib.mkDefault true; - sound.enable = lib.mkDefault true; - sway.enable = lib.mkDefault false; - theming.enable = lib.mkDefault true; - } - else {}; -} diff --git a/modules/nixos/sils/sound.nix b/modules/nixos/sils/sound.nix deleted file mode 100644 index 3ad26fb..0000000 --- a/modules/nixos/sils/sound.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ - config, - lib, - ... -}: let - cfg = config.sils.sound; -in { - options.sils.sound.enable = lib.mkEnableOption "sound config"; - config = lib.mkIf cfg.enable { - services.pipewire = { - enable = true; - alsa = { - enable = true; - support32Bit = true; - }; - pulse.enable = true; - jack.enable = true; - }; - }; -} diff --git a/modules/nixos/sils/steam.nix b/modules/nixos/sils/steam.nix deleted file mode 100644 index 3c834a6..0000000 --- a/modules/nixos/sils/steam.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ - config, - lib, - ... -}: let - cfg = config.sils.steam; -in { - options.sils.steam.enable = lib.mkEnableOption "Steam"; - config = lib.mkIf cfg.enable { - nixpkgs.config.allowUnfreePredicate = pkg: - builtins.elem (lib.getName pkg) [ - "steam" - "steam-unwrapped" - ]; - programs.steam = { - enable = true; - }; - }; -} diff --git a/modules/nixos/sils/sudo.nix b/modules/nixos/sils/sudo.nix deleted file mode 100644 index 2ad117f..0000000 --- a/modules/nixos/sils/sudo.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ - config, - lib, - ... -}: let - persistentLecture = !config.sils.sudo.persistentLecture.disable; -in { - options.sils.sudo.persistentLecture.disable = lib.mkEnableOption "sudo lecture after every boot"; - config = { - security.sudo = { - enable = true; - }; - environment.persistence.${config.sils.meta.globalDataDir}.files = lib.mkIf persistentLecture [ - { - file = "/var/db/sudo/lectured/${builtins.toString config.users.users.jaki.uid}"; - parentDirectory = { - user = "root"; - group = config.users.users.jaki.group; - mode = "0600"; - }; - } - ]; - }; -} diff --git a/modules/nixos/sils/sway.nix b/modules/nixos/sils/sway.nix deleted file mode 100644 index 4aac2f4..0000000 --- a/modules/nixos/sils/sway.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ - config, - lib, - ... -}: let - cfg = config.sils.sway; -in { - options.sils.sway.enable = lib.mkEnableOption "sway"; - config = lib.mkIf cfg.enable { - programs.sway = { - enable = true; - package = null; - }; - }; -} diff --git a/modules/nixos/sils/tailscale.nix b/modules/nixos/sils/tailscale.nix deleted file mode 100644 index e1f49a4..0000000 --- a/modules/nixos/sils/tailscale.nix +++ /dev/null @@ -1,52 +0,0 @@ -{ - config, - lib, - ... -}: let - cfg = config.sils.tailscale; -in { - options.sils.tailscale = { - enable = lib.mkEnableOption "Tailscale"; - openFirewall = true; - role = lib.mkOption { - type = lib.types.enum [ - "client" - "server" - ]; - }; - }; - config = lib.mkIf cfg.enable { - services.tailscale = { - enable = true; - authKeyFile = config.age.secrets.tailscale.path; - useRoutingFeatures = cfg.role; - extraDaemonFlags = [ - "--no-logs-no-support" - ]; - extraSetFlags = [ - "--accept-routes" - ]; - }; - networking.firewall = { - trustedInterfaces = ["tailscale0"]; - allowedUDPPorts = [config.services.tailscale.port]; - checkReversePath = "loose"; - }; - systemd = { - services.tailscaled.serviceConfig.Environment = [ - "TS_DEBUG_FIREWALL_MODE=nftables" - ]; - network.wait-online.enable = false; - }; - boot.initrd.systemd.network.wait-online.enable = false; - - environment.persistence."/srv".directories = [ - { - directory = "/var/lib/tailscale"; - user = "root"; - group = "root"; - mode = "0700"; - } - ]; - }; -} diff --git a/modules/nixos/sils/theming/default.nix b/modules/nixos/sils/theming/default.nix deleted file mode 100644 index 2d5d2fd..0000000 --- a/modules/nixos/sils/theming/default.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: let - cfg = config.sils.theming; -in { - options.sils.theming.enable = lib.mkEnableOption "theming"; - config = lib.mkIf cfg.enable { - stylix = { - enable = true; - base16Scheme = "${pkgs.base16-schemes}/share/themes/ayu-dark.yaml"; - image = ../../../../files/wallpaper.jpg; - polarity = "dark"; - }; - }; -} diff --git a/modules/nixos/sils/theming/tokyo-night-dark.yaml b/modules/nixos/sils/theming/tokyo-night-dark.yaml deleted file mode 100644 index ec29944..0000000 --- a/modules/nixos/sils/theming/tokyo-night-dark.yaml +++ /dev/null @@ -1,18 +0,0 @@ -scheme: "Tokyo Night Dark" -author: "Michaël Ball" -base00: "1A1B26" -base01: "16161E" -base02: "2F3549" -base03: "444B6A" -base04: "787C99" -base05: "A9B1D6" -base06: "CBCCD1" -base07: "D5D6DB" -base08: "C0CAF5" -base09: "A9B1D6" -base0A: "0DB9D7" -base0B: "9ECE6A" -base0C: "B4F9F8" -base0D: "2AC3DE" -base0E: "BB9AF7" -base0F: "F7768E" diff --git a/modules/nixos/sils/tor.nix b/modules/nixos/sils/tor.nix deleted file mode 100644 index 01fdc1f..0000000 --- a/modules/nixos/sils/tor.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ - config, - pkgs, - lib, - ... -}: let - cfg = config.sils.tor; -in { - options.sils.tor.enable = lib.mkEnableOption "tor"; - config = lib.mkIf cfg.enable { - services = { - tor = { - enable = true; - torsocks.enable = true; - client.enable = true; - }; - snowflake-proxy = { - enable = true; - capacity = 5; - }; - }; - }; -} -- cgit v1.3.1