diff options
Diffstat (limited to 'modules')
24 files changed, 364 insertions, 39 deletions
diff --git a/modules/hm/sils/default.nix b/modules/hm/sils/default.nix index a3ff1ed..c27a29c 100644 --- a/modules/hm/sils/default.nix +++ b/modules/hm/sils/default.nix @@ -3,16 +3,26 @@ ./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 + ./wofi ./yt-dlp.nix ./zathura.nix + ./zellij.nix ]; } diff --git a/modules/hm/sils/fastfetch.nix b/modules/hm/sils/fastfetch.nix new file mode 100644 index 0000000..f3efcab --- /dev/null +++ b/modules/hm/sils/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/sils/fd.nix b/modules/hm/sils/fd.nix new file mode 100644 index 0000000..7f8e35c --- /dev/null +++ b/modules/hm/sils/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/sils/firefox/default.nix b/modules/hm/sils/firefox/default.nix index b877c34..43d21b1 100644 --- a/modules/hm/sils/firefox/default.nix +++ b/modules/hm/sils/firefox/default.nix @@ -17,6 +17,7 @@ in { enable = lib.mkEnableOption "opinionated firefox configuration"; }; config = lib.mkIf cfg.enable { + stylix.targets.firefox.profileNames = ["default"]; programs.firefox = { enable = true; profiles = { @@ -38,8 +39,8 @@ in { isDefault = true; name = "default"; search = { - default = "DuckDuckGo"; - privateDefault = "DuckDuckGo"; + default = "ddg"; + privateDefault = "ddg"; force = true; }; }; diff --git a/modules/hm/sils/firefox/user-overrides.js b/modules/hm/sils/firefox/user-overrides.js index f5ff8d6..331a506 100755 --- a/modules/hm/sils/firefox/user-overrides.js +++ b/modules/hm/sils/firefox/user-overrides.js @@ -3,7 +3,7 @@ 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", true); +user_pref("privacy.resistFingerprinting", false); user_pref("privacy.resistFingerprinting.letterboxing", false); /* override recipe: enable session restore ***/ @@ -17,6 +17,7 @@ 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); diff --git a/modules/hm/sils/ghostty.nix b/modules/hm/sils/ghostty.nix new file mode 100644 index 0000000..cd871bc --- /dev/null +++ b/modules/hm/sils/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/sils/git.nix b/modules/hm/sils/git.nix index 5bd4dd2..61093ac 100644 --- a/modules/hm/sils/git.nix +++ b/modules/hm/sils/git.nix @@ -27,7 +27,7 @@ in { }; signing = { key = "467B7D129EA73AC9"; - signByDefault = true; + signByDefault = false; }; extraConfig = { core = { @@ -46,7 +46,7 @@ in { verbose = true; }; sendemail = { - smtpserver = "server1.vhack.eu"; + smtpserver = "mail.foss-syndicate.org"; smtpuser = "sils@sils.li"; smtpencryption = "ssl"; smtpserverport = "465"; diff --git a/modules/hm/sils/hyfetch.nix b/modules/hm/sils/hyfetch.nix new file mode 100644 index 0000000..08321e6 --- /dev/null +++ b/modules/hm/sils/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_shown = []; + }; + }; + }; +} diff --git a/modules/hm/sils/hyprland.nix b/modules/hm/sils/hyprland.nix index 39f0920..5c4a452 100644 --- a/modules/hm/sils/hyprland.nix +++ b/modules/hm/sils/hyprland.nix @@ -9,6 +9,14 @@ 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 = { @@ -23,6 +31,10 @@ in { # Source a file (multi-file configs) # source = ~/.config/hypr/myColors.conf + ecosystem = { + no_update_news = true; + }; + # Some default env vars. env = "XCURSOR_SIZE,24"; @@ -46,9 +58,9 @@ in { general = { # See https://wiki.hyprland.org/Configuring/Variables/ for more - gaps_in = "1"; - gaps_out = "2"; - border_size = "1"; + gaps_in = "5"; + gaps_out = "10"; + border_size = "3"; #"col.active_border" = "rgba(000000cc)"; #"col.inactive_border" = "rgba(595959aa)"; @@ -58,24 +70,25 @@ in { decoration = { # See https://wiki.hyprland.org/Configuring/Variables/ for more - inactive_opacity = "1"; + inactive_opacity = "0.8"; active_opacity = "1"; - rounding = "1"; + rounding = "10"; blur = { - enabled = false; - #size = "3"; - #passes = "1"; - #new_optimizations = "on"; + enabled = true; + size = "3"; + passes = "1"; + new_optimizations = "on"; }; - # drop_shadow = "yes"; - # shadow_range = "4"; - # shadow_render_power = "3"; + #drop_shadow = "yes"; + + #shadow_range = "4"; + #shadow_render_power = "3"; #"col.shadow" = "rgba(1a1a1aee)"; }; animations = { - enabled = "no"; + enabled = "yes"; # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more @@ -104,7 +117,7 @@ in { gestures = { # See https://wiki.hyprland.org/Configuring/Variables/ for more - workspace_swipe = "off"; + workspace_swipe = "on"; }; # Example windowrule v1 @@ -118,12 +131,12 @@ in { # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more bind = [ - "$mainMod, T, exec, foot" + "$mainMod, T, exec, ghostty" "$mainMod, C, killactive, " "$mainMod, M, exit, " "$mainMod, E, exec, dolphin " "$mainMod, V, togglefloating, " - "$mainMod, R, exec, rofi -show drun" + "$mainMod, R, exec, wofi --show drun" "$mainMod, P, pseudo, " # dwindle "$mainMod, J, togglesplit, " # dwindle "$mainMod, L, exec, swaylock" # screenlock @@ -138,16 +151,16 @@ in { "$mainMod, down, movefocus, d" # Switch workspaces with mainMod + [0-9] - "$mainMod, 1, focusworkspaceoncurrentmonitor, 1" - "$mainMod, 2, focusworkspaceoncurrentmonitor, 2" - "$mainMod, 3, focusworkspaceoncurrentmonitor, 3" - "$mainMod, 4, focusworkspaceoncurrentmonitor, 4" - "$mainMod, 5, focusworkspaceoncurrentmonitor, 5" - "$mainMod, 6, focusworkspaceoncurrentmonitor, 6" - "$mainMod, 7, focusworkspaceoncurrentmonitor, 7" - "$mainMod, 8, focusworkspaceoncurrentmonitor, 8" - "$mainMod, 9, focusworkspaceoncurrentmonitor, 9" - "$mainMod, 0, focusworkspaceoncurrentmonitor, 10" + "$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" @@ -186,10 +199,10 @@ in { #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" - #"nm-applet --indicator" + "${pkgs.networkmanagerapplet}/bin/nm-applet --indicator" #"${pkgs.waybar}/bin/waybar" - "${pkgs.mako}/bin/mako" "${pkgs.swaybg}/bin/swaybg -i ${self}/files/wallpaper.jpg" ]; }; diff --git a/modules/hm/sils/iamb.nix b/modules/hm/sils/iamb.nix new file mode 100644 index 0000000..2c6932a --- /dev/null +++ b/modules/hm/sils/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/sils/mail.nix b/modules/hm/sils/mail.nix index 06f6917..85583a2 100644 --- a/modules/hm/sils/mail.nix +++ b/modules/hm/sils/mail.nix @@ -6,11 +6,11 @@ }: let cfg = config.sils.mail; vhackImap = { - host = "server1.vhack.eu"; + host = "mail.foss-syndicate.org"; port = 993; }; vhackSmtp = { - host = "server1.vhack.eu"; + host = "mail.foss-syndicate.org"; port = 993; }; in { diff --git a/modules/hm/sils/poweralertd/default.nix b/modules/hm/sils/poweralertd/default.nix new file mode 100644 index 0000000..15cfdc9 --- /dev/null +++ b/modules/hm/sils/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/sils/swaync/default.nix b/modules/hm/sils/swaync/default.nix new file mode 100644 index 0000000..328888b --- /dev/null +++ b/modules/hm/sils/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/sils/theming.nix b/modules/hm/sils/theming.nix new file mode 100644 index 0000000..9b7535c --- /dev/null +++ b/modules/hm/sils/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/sils/wofi/default.nix b/modules/hm/sils/wofi/default.nix new file mode 100644 index 0000000..36f5916 --- /dev/null +++ b/modules/hm/sils/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/sils/zellij.nix b/modules/hm/sils/zellij.nix new file mode 100644 index 0000000..1038a0c --- /dev/null +++ b/modules/hm/sils/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/nixos/sils/default.nix b/modules/nixos/sils/default.nix index 0f714f7..01870c8 100644 --- a/modules/nixos/sils/default.nix +++ b/modules/nixos/sils/default.nix @@ -5,6 +5,7 @@ ./bluetooth.nix ./bootloader.nix ./disks.nix + ./docker.nix ./environment.nix ./firejail.nix ./font.nix @@ -19,6 +20,7 @@ ./plymouth.nix ./printing.nix ./roles.nix + ./sound.nix ./sudo.nix ./sway.nix ./theming diff --git a/modules/nixos/sils/docker.nix b/modules/nixos/sils/docker.nix new file mode 100644 index 0000000..7d6f046 --- /dev/null +++ b/modules/nixos/sils/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.sils.extraGroups = ["docker"]; + environment.persistence."/srv".directories = [ + { + directory = "/var/lib/docker"; + user = "docker"; + group = "docker"; + mode = "0755"; + } + ]; + }; +} diff --git a/modules/nixos/sils/impermanence.nix b/modules/nixos/sils/impermanence.nix index 4acdc6f..cf67a91 100644 --- a/modules/nixos/sils/impermanence.nix +++ b/modules/nixos/sils/impermanence.nix @@ -32,6 +32,12 @@ in { group = "root"; mode = "0755"; } + { + directory = "/var/log"; + user = "root"; + group = "root"; + mode = "0755"; + } ]; }; } diff --git a/modules/nixos/sils/nix.nix b/modules/nixos/sils/nix.nix index c23fdce..9d73fcd 100644 --- a/modules/nixos/sils/nix.nix +++ b/modules/nixos/sils/nix.nix @@ -14,8 +14,8 @@ in { config = { nix = { registry = { - nixpkgs.flake = nixpkgs; - n.flake = nixpkgs; + nixpkgs.flake = self.inputs.nixpkgs; + n.flake = self.inputs.nixpkgs; self.flake = self; s.flake = self; }; diff --git a/modules/nixos/sils/printing.nix b/modules/nixos/sils/printing.nix index d447255..9247146 100644 --- a/modules/nixos/sils/printing.nix +++ b/modules/nixos/sils/printing.nix @@ -11,12 +11,33 @@ in { services = { printing = { enable = true; - #drivers = with pkgs; [hplip]; # if building again: epson-escpr + 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 index cca3cf6..346149c 100644 --- a/modules/nixos/sils/roles.nix +++ b/modules/nixos/sils/roles.nix @@ -24,6 +24,7 @@ in { pamconfig.enable = lib.mkDefault true; plymouth.enable = lib.mkDefault true; printing.enable = lib.mkDefault true; + sound.enable = lib.mkDefault true; sway.enable = lib.mkDefault false; theming.enable = lib.mkDefault true; } @@ -45,6 +46,7 @@ in { 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; } @@ -68,6 +70,7 @@ in { 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; } diff --git a/modules/nixos/sils/sound.nix b/modules/nixos/sils/sound.nix new file mode 100644 index 0000000..3ad26fb --- /dev/null +++ b/modules/nixos/sils/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/sils/theming/default.nix b/modules/nixos/sils/theming/default.nix index e8cf7bf..2d5d2fd 100644 --- a/modules/nixos/sils/theming/default.nix +++ b/modules/nixos/sils/theming/default.nix @@ -1,6 +1,7 @@ { config, lib, + pkgs, ... }: let cfg = config.sils.theming; @@ -9,7 +10,7 @@ in { config = lib.mkIf cfg.enable { stylix = { enable = true; - base16Scheme = ./tokyo-night-dark.yaml; + base16Scheme = "${pkgs.base16-schemes}/share/themes/ayu-dark.yaml"; image = ../../../../files/wallpaper.jpg; polarity = "dark"; }; |