diff --git a/flake.lock b/flake.lock index a605e4c..991ccaa 100644 --- a/flake.lock +++ b/flake.lock @@ -28,11 +28,11 @@ "base16-schemes": { "flake": false, "locked": { - "lastModified": 1696158499, - "narHash": "sha256-5yIHgDTPjoX/3oDEfLSQ0eJZdFL1SaCfb9d6M0RmOTM=", + "lastModified": 1689473676, + "narHash": "sha256-L0RhUr9+W5EPWBpLcmkKpUeCEWRs/kLzVMF3Vao2ZU0=", "owner": "tinted-theming", "repo": "base16-schemes", - "rev": "a9112eaae86d9dd8ee6bb9445b664fba2f94037a", + "rev": "d95123ca6377cd849cfdce92c0a24406b0c6a789", "type": "github" }, "original": { @@ -180,11 +180,11 @@ ] }, "locked": { - "lastModified": 1707683400, - "narHash": "sha256-Zc+J3UO1Xpx+NL8UB6woPHyttEy9cXXtm+0uWwzuYDc=", + "lastModified": 1706306660, + "narHash": "sha256-lZvgkHtVeduGByPb0Tz9LpAi4olfkEm8XPgv0o7GRsk=", "owner": "nix-community", "repo": "home-manager", - "rev": "21b078306a2ab68748abf72650db313d646cf2ca", + "rev": "b2f56952074cb46e93902ecaabfb04dd93733434", "type": "github" }, "original": { @@ -200,11 +200,11 @@ ] }, "locked": { - "lastModified": 1706522977, - "narHash": "sha256-Tq69CQ+uutfY477w8uCRyF/2V0Wh/+zHzM3qwcVmqsk=", + "lastModified": 1703800710, + "narHash": "sha256-BlTnkNW50xEMojxDd+M4W1WUX4t33vkxJhsW/eeSCco=", "owner": "therealr5", "repo": "TruckSimulatorBot-images", - "rev": "d54a772d48a329a402433cc90502700a6699008e", + "rev": "ead83b4ce653e293b9459b0495f0a3f1baac0aa3", "type": "github" }, "original": { @@ -215,11 +215,11 @@ }, "impermanence": { "locked": { - "lastModified": 1706639736, - "narHash": "sha256-CaG4j9+UwBDfinxxvJMo6yOonSmSo0ZgnbD7aj2Put0=", + "lastModified": 1703656108, + "narHash": "sha256-hCSUqdFJKHHbER8Cenf5JRzjMlBjIdwdftGQsO0xoJs=", "owner": "nix-community", "repo": "impermanence", - "rev": "cd13c2917eaa68e4c49fea0ff9cada45440d7045", + "rev": "033643a45a4a920660ef91caa391fbffb14da466", "type": "github" }, "original": { @@ -261,11 +261,11 @@ "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1706637303, - "narHash": "sha256-K6SqE9diWDCoEQ+MzuVlTfNrAKcdIa/dLHBtKfz445U=", + "lastModified": 1695388192, + "narHash": "sha256-2jelpE7xK+4M7jZNyWL7QYOYegQLYBDQS5bvdo8XRUQ=", "owner": "Misterio77", "repo": "nix-colors", - "rev": "fc080c51d2a219b40d886870e364243783ed5ca1", + "rev": "37227f274b34a3b51649166deb94ce7fec2c6a4c", "type": "github" }, "original": { @@ -281,11 +281,11 @@ ] }, "locked": { - "lastModified": 1707620986, - "narHash": "sha256-XE0tCSkSVBeJDWhjFwusNInwAhrnp+TloUNUpvnTiLw=", + "lastModified": 1705806513, + "narHash": "sha256-FcOmNjhHFfPz2udZbRpZ1sfyhVMr+C2O8kOxPj+HDDk=", "owner": "nix-community", "repo": "nix-index-database", - "rev": "0cb4345704123492e6d1f1068629069413c80de0", + "rev": "f8e04fbcebcc24cebc91989981bd45f69b963ed7", "type": "github" }, "original": { @@ -296,11 +296,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1707546158, - "narHash": "sha256-nYYJTpzfPMDxI8mzhQsYjIUX+grorqjKEU9Np6Xwy/0=", + "lastModified": 1706191920, + "narHash": "sha256-eLihrZAPZX0R6RyM5fYAWeKVNuQPYjAkCUBr+JNvtdE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "d934204a0f8d9198e1e4515dd6fec76a139c87f0", + "rev": "ae5c332cbb5827f6b1f02572496b141021de335f", "type": "github" }, "original": { @@ -311,11 +311,11 @@ }, "nixpkgs-lib": { "locked": { - "lastModified": 1697935651, - "narHash": "sha256-qOfWjQ2JQSQL15KLh6D7xQhx0qgZlYZTYlcEiRuAMMw=", + "lastModified": 1694911725, + "narHash": "sha256-8YqI+YU1DGclEjHsnrrGfqsQg3Wyga1DfTbJrN3Ud0c=", "owner": "nix-community", "repo": "nixpkgs.lib", - "rev": "e1e11fdbb01113d85c7f41cada9d2847660e3902", + "rev": "819180647f428a3826bfc917a54449da1e532ce0", "type": "github" }, "original": { @@ -398,11 +398,11 @@ ] }, "locked": { - "lastModified": 1706780558, - "narHash": "sha256-tZRNaZKENRzd83oLgqgG/G2A+7FgsISFhgblGjFM244=", + "lastModified": 1705881825, + "narHash": "sha256-tFmDS9lSuDKx6voMK4HlLAI0/IR5x319Ng8LvhsfL1U=", "owner": "therealr5", "repo": "purge", - "rev": "3875053bd588aeee14849c50c60f6a33ac784da3", + "rev": "364bc2c5522dda77947f003d3ab03d023a7318e1", "type": "github" }, "original": { @@ -488,11 +488,11 @@ ] }, "locked": { - "lastModified": 1706780552, - "narHash": "sha256-qXEAZNReY2jeoxLO/uZmZMOEOQq6BRq/Mh20BQGF2Bs=", + "lastModified": 1705882231, + "narHash": "sha256-OyWYOsl876tAJ443p9lKSDIrBtq80JZ/OlmrVVdIHF4=", "owner": "therealr5", "repo": "TruckSimulatorBot", - "rev": "88194a54c984fb91090c00d116c821627af9ed2f", + "rev": "9ae3c21b72b1f49f0b15808eb61b10600e00a845", "type": "github" }, "original": { diff --git a/hosts/falkenstein/modules/mail/default.nix b/hosts/falkenstein/modules/mail/default.nix index dcbcb4e..54302df 100644 --- a/hosts/falkenstein/modules/mail/default.nix +++ b/hosts/falkenstein/modules/mail/default.nix @@ -1,4 +1,4 @@ -{ config, pkgs, lib, ... }: +{ config, pkgs, ... }: let domain = config.networking.domain; @@ -28,6 +28,34 @@ in description = "Rouven Seifert"; isNormalUser = true; }; + environment.etc = { + "dovecot/sieve-pipe/sa-learn-spam.sh" = { + text = '' + #!/bin/sh + ${pkgs.rspamd}/bin/rspamc learn_spam + ''; + mode = "0555"; + }; + "dovecot/sieve-pipe/sa-learn-ham.sh" = { + text = '' + #!/bin/sh + ${pkgs.rspamd}/bin/rspamc learn_ham + ''; + mode = "0555"; + }; + "dovecot/sieve/report-spam.sieve" = { + source = ./report-spam.sieve; + user = "dovecot2"; + group = "dovecot2"; + mode = "0544"; + }; + "dovecot/sieve/report-ham.sieve" = { + source = ./report-ham.sieve; + user = "dovecot2"; + group = "dovecot2"; + mode = "0544"; + }; + }; services = { postfix = { @@ -125,36 +153,6 @@ in modules = [ pkgs.dovecot_pigeonhole ]; - sieve = { - # just pot something in here to prevent empty strings - extensions = [ "notify" ]; - # globalExtensions = [ "+vnd.dovecot.pipe" ]; - pipeBins = map lib.getExe [ - (pkgs.writeShellScriptBin "learn-ham.sh" "exec ${pkgs.rspamd}/bin/rspamc learn_ham") - (pkgs.writeShellScriptBin "learn-spam.sh" "exec ${pkgs.rspamd}/bin/rspamc learn_spam") - ]; - plugins = [ - "sieve_imapsieve" - "sieve_extprograms" - ]; - }; - imapsieve.mailbox = [ - { - # Spam: From elsewhere to Spam folder or flag changed in Spam folder - name = "Spam"; - causes = [ "COPY" "APPEND" "FLAG" ]; - before = ./report-spam.sieve; - - } - { - # From Junk folder to elsewhere - name = "*"; - from = "Spam"; - causes = [ "COPY" ]; - before = ./report-ham.sieve; - } - ]; - extraConfig = '' auth_username_format = %Ln userdb { @@ -187,6 +185,23 @@ in } client_limit = 1 } + plugin { + sieve_plugins = sieve_imapsieve sieve_extprograms + sieve_global_extensions = +vnd.dovecot.pipe + sieve_pipe_bin_dir = /etc/dovecot/sieve-pipe + + # Spam: From elsewhere to Spam folder or flag changed in Spam folder + imapsieve_mailbox1_name = Spam + imapsieve_mailbox1_causes = COPY APPEND FLAG + imapsieve_mailbox1_before = file:/etc/dovecot/sieve/report-spam.sieve + + # From Junk folder to elsewhere + imapsieve_mailbox2_name = * + imapsieve_mailbox2_from = Spam + imapsieve_mailbox2_causes = COPY + imapsieve_mailbox2_before = file:/etc/dovecot/sieve/report-ham.sieve + + } ''; }; diff --git a/hosts/falkenstein/modules/mail/report-ham.sieve b/hosts/falkenstein/modules/mail/report-ham.sieve index 6217a90..a9d30cf 100644 --- a/hosts/falkenstein/modules/mail/report-ham.sieve +++ b/hosts/falkenstein/modules/mail/report-ham.sieve @@ -12,4 +12,4 @@ if environment :matches "imap.user" "*" { set "username" "${1}"; } -pipe :copy "learn-ham.sh" [ "${username}" ]; +pipe :copy "sa-learn-ham.sh" [ "${username}" ]; diff --git a/hosts/falkenstein/modules/mail/report-spam.sieve b/hosts/falkenstein/modules/mail/report-spam.sieve index 9d4c74b..4024b7a 100644 --- a/hosts/falkenstein/modules/mail/report-spam.sieve +++ b/hosts/falkenstein/modules/mail/report-spam.sieve @@ -4,4 +4,4 @@ if environment :matches "imap.user" "*" { set "username" "${1}"; } -pipe :copy "learn-spam.sh" [ "${username}" ]; +pipe :copy "sa-learn-spam.sh" [ "${username}" ]; \ No newline at end of file diff --git a/hosts/nuc/modules/networks/default.nix b/hosts/nuc/modules/networks/default.nix index 5daa117..a900607 100644 --- a/hosts/nuc/modules/networks/default.nix +++ b/hosts/nuc/modules/networks/default.nix @@ -14,7 +14,8 @@ }; services.resolved = { enable = true; - dnssec = "allow-downgrade"; + # dnssec is broken + # dnssec = "true"; fallbackDns = [ "9.9.9.9" "149.112.112.112" diff --git a/hosts/thinkpad/modules/graphics/default.nix b/hosts/thinkpad/modules/graphics/default.nix index 96944ca..460de5b 100644 --- a/hosts/thinkpad/modules/graphics/default.nix +++ b/hosts/thinkpad/modules/graphics/default.nix @@ -4,19 +4,19 @@ programs.light.enable = true; fonts = { - enableDefaultPackages = true; + enableDefaultPackages = false; packages = with pkgs; [ nerdfonts noto-fonts noto-fonts-cjk noto-fonts-emoji - roboto + dejavu_fonts fira ]; }; console = { - colors = let colors = config.home-manager.users.rouven.colorScheme.palette; in + colors = let colors = config.home-manager.users.rouven.colorScheme.colors; in [ colors.base00 colors.base08 diff --git a/hosts/thinkpad/modules/networks/default.nix b/hosts/thinkpad/modules/networks/default.nix index 4ea2bd5..aca0a3e 100644 --- a/hosts/thinkpad/modules/networks/default.nix +++ b/hosts/thinkpad/modules/networks/default.nix @@ -23,7 +23,6 @@ openssl dnsutils nmap - curlFull ]; services.resolved = { fallbackDns = [ diff --git a/hosts/thinkpad/modules/security/default.nix b/hosts/thinkpad/modules/security/default.nix index 416969f..29e2fdf 100644 --- a/hosts/thinkpad/modules/security/default.nix +++ b/hosts/thinkpad/modules/security/default.nix @@ -2,8 +2,6 @@ { age.identityPaths = [ "/nix/persist/system/etc/ssh/ssh_host_ed25519_key" ]; security = { - sudo.enable = false; - sudo-rs.enable = true; polkit.enable = true; tpm2 = { enable = true; diff --git a/hosts/thinkpad/modules/virtualisation/default.nix b/hosts/thinkpad/modules/virtualisation/default.nix index 373c689..b13d3e7 100644 --- a/hosts/thinkpad/modules/virtualisation/default.nix +++ b/hosts/thinkpad/modules/virtualisation/default.nix @@ -1,7 +1,6 @@ { pkgs, ... }: { virtualisation = { - docker.enable = true; libvirtd = { enable = true; qemu = { diff --git a/overlays/default.nix b/overlays/default.nix index 08f4b42..d97f598 100644 --- a/overlays/default.nix +++ b/overlays/default.nix @@ -1,12 +1,13 @@ _final: prev: let inherit (prev) callPackage; + inherit (prev) python3Packages; inherit (prev) fetchFromGitHub; inherit (prev) fetchPypi; inherit (prev) fetchpatch; inherit (prev) makeWrapper; in -rec { +{ pcmanfm = prev.pcmanfm.overrideAttrs (_: { # remove deskop preferences shortcut postInstall = '' @@ -17,23 +18,6 @@ rec { pww = callPackage ../pkgs/pww { }; ianny = callPackage ../pkgs/ianny { }; - python3 = prev.python3.override { - packageOverrides = _finel: prev: { - tpm2-pytss = prev.tpm2-pytss.overrideAttrs (old: { - # https://github.com/NixOS/nixpkgs/pull/287804/ - patches = old.patches ++ [ - (fetchpatch { - name = "fix-newer-cryptography-42-0-1-support.patch"; - url = "https://github.com/tpm2-software/tpm2-pytss/commit/0fbb9d099370c0a7031dd13990986538f586836a.patch"; - sha256 = "sha256-xnQIr4/iJra0+rn5estVqSvG8pXcuwWykmmayBpCzgw="; - }) - - ]; - }); - }; - - }; - python3Packages = python3.pkgs; tpm2-pkcs11 = prev.tpm2-pkcs11.override { fapiSupport = false; }; gnome-break-timer = callPackage ../pkgs/gnome-break-timer { }; diff --git a/users/rouven/default.nix b/users/rouven/default.nix index 4a1eeef..b1a1737 100644 --- a/users/rouven/default.nix +++ b/users/rouven/default.nix @@ -5,7 +5,7 @@ users.users.rouven = { description = "Rouven Seifert"; isNormalUser = true; - extraGroups = [ "wheel" "video" "dialout" "libvirtd" "tss" "input" "wireshark" "etherape" "docker" ]; + extraGroups = [ "wheel" "video" "dialout" "libvirtd" "tss" "input" "wireshark" "etherape" ]; initialHashedPassword = "$6$X3XERQv28Nt1UUT5$MjdMBDuXyEwexkuKqmNFweez69q4enY5cjMXSbBxOc6Bq7Fhhp7OqmCm02k3OGjoZFXzPV9ZHuMSGKZOtwYIk1"; }; home-manager.useUserPackages = true; diff --git a/users/rouven/modules/default.nix b/users/rouven/modules/default.nix index d913806..6896c64 100644 --- a/users/rouven/modules/default.nix +++ b/users/rouven/modules/default.nix @@ -7,8 +7,7 @@ ./helix ./wayland ./mpv - # broken - # ./qutebrowser + ./qutebrowser ./spotify ./ssh ./theme diff --git a/users/rouven/modules/foot/default.nix b/users/rouven/modules/foot/default.nix index 899c959..36b2c1a 100644 --- a/users/rouven/modules/foot/default.nix +++ b/users/rouven/modules/foot/default.nix @@ -29,13 +29,6 @@ programs.foot = { enable = true; server.enable = true; - package = pkgs.foot.overrideAttrs (old: { - # don't install systemd units - mesonFlags = old.mesonFlags ++ [ - "-Dsystemd-units-dir=''" - ]; - }); - settings = rec { main = { shell = "${pkgs.zsh}/bin/zsh"; @@ -53,7 +46,7 @@ }; colors = let - colors = config.colorScheme.palette; + colors = config.colorScheme.colors; in { # alpha = if (config.colorScheme.kind == "dark") then 0.0 else 1.0; diff --git a/users/rouven/modules/packages.nix b/users/rouven/modules/packages.nix index cc377b4..372622b 100644 --- a/users/rouven/modules/packages.nix +++ b/users/rouven/modules/packages.nix @@ -14,16 +14,19 @@ seafile-client # graphics - (zathura.override { plugins = [ zathuraPkgs.zathura_pdf_mupdf ]; }) + zathura gimp ffmpeg imv + remmina # bluetooth blueman # internet google-chrome + filezilla + dbeaver # messaging tdesktop @@ -48,8 +51,9 @@ xournalpp libreoffice mosh + ansible + plover.dev typst - typst-preview # programming languages cargo @@ -64,6 +68,8 @@ # fancy tools just himalaya + zellij + nushell # strace but with colors (strace.overrideAttrs (_: { patches = [ diff --git a/users/rouven/modules/qutebrowser/default.nix b/users/rouven/modules/qutebrowser/default.nix index 3a63291..6935a5b 100644 --- a/users/rouven/modules/qutebrowser/default.nix +++ b/users/rouven/modules/qutebrowser/default.nix @@ -1,4 +1,4 @@ -{ ... }: +{ config, ... }: { programs.qutebrowser = { enable = true; diff --git a/users/rouven/modules/wayland/default.nix b/users/rouven/modules/wayland/default.nix index 16f0b52..3603f27 100644 --- a/users/rouven/modules/wayland/default.nix +++ b/users/rouven/modules/wayland/default.nix @@ -79,12 +79,12 @@ terminal=${pkgs.foot}/bin/foot [colors] - background=${config.colorScheme.palette.base00}ff - text=${config.colorScheme.palette.base05}ff - match=${config.colorScheme.palette.base08}ff - selection=${config.colorScheme.palette.base02}ff - selection-text=${config.colorScheme.palette.base04}ff - border=${config.colorScheme.palette.base01}ff + background=${config.colorScheme.colors.base00}ff + text=${config.colorScheme.colors.base05}ff + match=${config.colorScheme.colors.base08}ff + selection=${config.colorScheme.colors.base02}ff + selection-text=${config.colorScheme.colors.base04}ff + border=${config.colorScheme.colors.base01}ff ''; "swappy/config".text = '' [Default] @@ -95,10 +95,10 @@ indicator-radius=200 indicator-thickness=3 inside-color=00000000 - inside-ver-color=${config.colorScheme.palette.base0D} - inside-clear-color=${config.colorScheme.palette.base0B} - ring-color=${config.colorScheme.palette.base03} - ring-wrong-color=${config.colorScheme.palette.base08} + inside-ver-color=${config.colorScheme.colors.base0D} + inside-clear-color=${config.colorScheme.colors.base0B} + ring-color=${config.colorScheme.colors.base03} + ring-wrong-color=${config.colorScheme.colors.base08} screenshot effect-blur=7x5 ''; @@ -110,8 +110,8 @@ background-color: rgba(12, 12, 12, 0); } button { - color: #${config.colorScheme.palette.base05}; - background-color: #${config.colorScheme.palette.base00}; + color: #${config.colorScheme.colors.base05}; + background-color: #${config.colorScheme.colors.base00}; border-style: solid; border-width: 2px; border-radius: 30px; @@ -122,7 +122,7 @@ } button:active, button:hover { - background-color: #${config.colorScheme.palette.base03}; + background-color: #${config.colorScheme.colors.base03}; outline-style: none; } diff --git a/users/rouven/modules/wayland/waybar.nix b/users/rouven/modules/wayland/waybar.nix index 7220107..a7cdc3d 100644 --- a/users/rouven/modules/wayland/waybar.nix +++ b/users/rouven/modules/wayland/waybar.nix @@ -102,12 +102,13 @@ xdg.configFile."waybar/style.css".text = '' * { + font-family: Roboto, Helvetica, Arial, sans-serif, Iosevka Nerd Font; font-size: 13px; } window#waybar { background-color: transparent; - color: #${config.colorScheme.palette.base05}; + color: #${config.colorScheme.colors.base05}; transition-property: background-color; transition-duration: .5s; } @@ -120,17 +121,17 @@ #tags button { padding: 0 5px; background-color: transparent; - color: #${config.colorScheme.palette.base05}; + color: #${config.colorScheme.colors.base05}; } #workspaces button.focused, #tags button.focused { - background-color: #${config.colorScheme.palette.base04}; - box-shadow: inset 0 -3px #${config.colorScheme.palette.base05}; + background-color: #${config.colorScheme.colors.base04}; + box-shadow: inset 0 -3px #${config.colorScheme.colors.base05}; } #tags button.occupied { - box-shadow: inset 0 -3px #${config.colorScheme.palette.base05}; + box-shadow: inset 0 -3px #${config.colorScheme.colors.base05}; } #workspaces button.urgent, @@ -151,7 +152,7 @@ #tray{ border-radius: 30px; padding: 0 10px; - color: #${config.colorScheme.palette.base05}; + color: #${config.colorScheme.colors.base05}; } #window, @@ -160,12 +161,12 @@ } #window { - background-color: #${config.colorScheme.palette.base00}; + background-color: #${config.colorScheme.colors.base00}; } #clock { - background-color: #${config.colorScheme.palette.base00}; + background-color: #${config.colorScheme.colors.base00}; } #custom-spotifytitle { @@ -182,53 +183,53 @@ } #battery { - background-color: #${config.colorScheme.palette.base02}; - color: #${config.colorScheme.palette.base05}; + background-color: #${config.colorScheme.colors.base02}; + color: #${config.colorScheme.colors.base05}; } #battery.charging, #battery.plugged { - color: #${config.colorScheme.palette.base05}; - background-color: #${config.colorScheme.palette.base02}; + color: #${config.colorScheme.colors.base05}; + background-color: #${config.colorScheme.colors.base02}; } #battery.critical:not(.charging) { - background-color: #${config.colorScheme.palette.base08}; - color: #${config.colorScheme.palette.base01}; + background-color: #${config.colorScheme.colors.base08}; + color: #${config.colorScheme.colors.base01}; } #cpu { - background-color: #${config.colorScheme.palette.base05}; - color: #${config.colorScheme.palette.base01}; + background-color: #${config.colorScheme.colors.base05}; + color: #${config.colorScheme.colors.base01}; } #network { - background-color: #${config.colorScheme.palette.base06}; - color: #${config.colorScheme.palette.base01}; + background-color: #${config.colorScheme.colors.base06}; + color: #${config.colorScheme.colors.base01}; } #network.disconnected { - background-color: #${config.colorScheme.palette.base08}; + background-color: #${config.colorScheme.colors.base08}; } #pulseaudio { - background-color: #${config.colorScheme.palette.base03}; - color: #${config.colorScheme.palette.base05}; + background-color: #${config.colorScheme.colors.base03}; + color: #${config.colorScheme.colors.base05}; } #temperature { - background-color: #${config.colorScheme.palette.base05}; - color: #${config.colorScheme.palette.base01}; + background-color: #${config.colorScheme.colors.base05}; + color: #${config.colorScheme.colors.base01}; } #temperature.critical { - background-color: #${config.colorScheme.palette.base08}; - color: #${config.colorScheme.palette.base01}; + background-color: #${config.colorScheme.colors.base08}; + color: #${config.colorScheme.colors.base01}; } #custom-notification, #tray { - background-color: #${config.colorScheme.palette.base01}; - color: #${config.colorScheme.palette.base05}; + background-color: #${config.colorScheme.colors.base01}; + color: #${config.colorScheme.colors.base05}; } '';