Compare commits

..

No commits in common. "5c55131b7d8f8ed7983a8895a443a768b6a541d7" and "71939c6c39a0505e7e0ba91a515678526b65e32b" have entirely different histories.

17 changed files with 138 additions and 143 deletions

View file

@ -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": {

View file

@ -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
}
'';
};

View file

@ -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}" ];

View file

@ -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}" ];

View file

@ -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"

View file

@ -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

View file

@ -23,7 +23,6 @@
openssl
dnsutils
nmap
curlFull
];
services.resolved = {
fallbackDns = [

View file

@ -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;

View file

@ -1,7 +1,6 @@
{ pkgs, ... }:
{
virtualisation = {
docker.enable = true;
libvirtd = {
enable = true;
qemu = {

View file

@ -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 { };

View file

@ -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;

View file

@ -7,8 +7,7 @@
./helix
./wayland
./mpv
# broken
# ./qutebrowser
./qutebrowser
./spotify
./ssh
./theme

View file

@ -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;

View file

@ -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 = [

View file

@ -1,4 +1,4 @@
{ ... }:
{ config, ... }:
{
programs.qutebrowser = {
enable = true;

View file

@ -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;
}

View file

@ -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};
}
'';