From 312d6d63efe87eee1a858782854af9937a883b23 Mon Sep 17 00:00:00 2001 From: Till Date: Fri, 27 Feb 2026 21:41:24 +0100 Subject: [PATCH] diesdas --- flake.nix | 21 +++- home/castget/castget.conf | 53 ---------- home/desktop-full.nix | 2 +- home/desktop-slim.nix | 7 +- home/devel.nix | 3 +- home/{gnome/default.nix => gnome.nix} | 12 ++- home/gnome/run-or-raise.conf | 25 ----- home/gnome/wallpaper_nix_paper_gray.svg | 128 ------------------------ home/gpg.nix | 3 +- home/mail/default.nix | 40 ++++++-- home/mail/neomutt_mailcap | 11 -- home/media.nix | 4 +- home/minimal.nix | 9 +- home/office-cli.nix | 1 - home/{tmux/default.nix => tmux.nix} | 22 ++-- home/tmux/jekyll.conf | 6 -- home/tmux/rloft.conf | 2 - home/tmux/vifm.conf | 1 - home/vifm.nix | 30 ++++++ home/vifm/default.nix | 13 --- home/vifm/light.vifm | 20 ---- system/mail-server/roundcube.nix | 4 +- system/web-server/letsencrypt.nix | 2 +- 23 files changed, 122 insertions(+), 297 deletions(-) delete mode 100644 home/castget/castget.conf rename home/{gnome/default.nix => gnome.nix} (92%) delete mode 100644 home/gnome/run-or-raise.conf delete mode 100644 home/gnome/wallpaper_nix_paper_gray.svg delete mode 100644 home/mail/neomutt_mailcap rename home/{tmux/default.nix => tmux.nix} (71%) delete mode 100644 home/tmux/jekyll.conf delete mode 100644 home/tmux/rloft.conf delete mode 100644 home/tmux/vifm.conf create mode 100644 home/vifm.nix delete mode 100644 home/vifm/default.nix delete mode 100644 home/vifm/light.vifm diff --git a/flake.nix b/flake.nix index 5170f3d..31617a5 100644 --- a/flake.nix +++ b/flake.nix @@ -25,12 +25,31 @@ specialArgs = { inherit inputs; }; modules = [ ./hosts/arielle + home-manager.nixosModules.home-manager { + home-manager = { + extraSpecialArgs = { inherit inputs; }; + useGlobalPkgs = true; + useUserPackages = true; + users = { + + till = { + imports = [ + ./home/on-server.nix + ./users/till/home.nix + ]; + }; + + }; + }; + } ]; }; homer = nixpkgs.lib.nixosSystem { specialArgs = { inherit inputs; }; - modules = [ ./hosts/homer ]; + modules = [ + ./hosts/homer + ]; }; mila = nixpkgs.lib.nixosSystem { diff --git a/home/castget/castget.conf b/home/castget/castget.conf deleted file mode 100644 index cd4f148..0000000 --- a/home/castget/castget.conf +++ /dev/null @@ -1,53 +0,0 @@ -# vim: set ft=conf - -[2.5admins] -url=https://2.5admins.com/feed/podcast - -[50plus2] -url=https://50plus2.podigee.io/feed/mp3 -album_tag=50+2 - -[drei90] -url=http://feeds.feedburner.com/Drei90 -album_tag=drei90 - -[efpodcast] -url=https://www.eintracht-podcast.de/feed/mp3 - -[latenightlinux] -url=https://latenightlinux.com/feed/mp3 - -[linuxafterdark] -url=https://linuxafterdark.net/feed/podcast - -[linuxdevtime] -url=https://latenightlinux.com/feed/extra - -[linuxmatters] -url=https://linuxmatters.sh/episode/index.xml - -[logbuchnetzpolitik] -url=https://feeds.metaebene.me/lnp/mp3 -album_tag=Logbuch Netzpolitik - -[schlusskonferenz] -url=https://schlusskonferenz.podigee.io/feed/mp3 - -[tribünengespräch] -url=https://tribuenengespraech.podigee.io/feed/mp3 - -[wettbrötchen] -url=https://www.wett-broetchen.de/feed/mp3 -album_tag=Wettbrötchen - -[edeltalk] -url=https://cdn.julephosting.de/podcasts/573-edeltalk-mit-dominik-kevin/feed.rss -album_tag=Edeltalk - -[youredeadtome] -url=https://podcasts.files.bbci.co.uk/p07mdbhg.rss - -[*] -genre_tag=Podcast -spool=/home/till/.local/share/podcasts -filename=%(channel_title)_%(date)_%(title).mp3 diff --git a/home/desktop-full.nix b/home/desktop-full.nix index ea29f46..3ff2da1 100644 --- a/home/desktop-full.nix +++ b/home/desktop-full.nix @@ -1,4 +1,4 @@ -{ pkgs, ... }: +{ ... }: { imports = [ diff --git a/home/desktop-slim.nix b/home/desktop-slim.nix index 9add985..dca19a8 100644 --- a/home/desktop-slim.nix +++ b/home/desktop-slim.nix @@ -1,4 +1,4 @@ -{ config, pkgs, inputs, lib, ... }: +{ pkgs, ... }: { imports = [ @@ -8,7 +8,7 @@ ./firefox.nix ./fonts.nix ./foot.nix - ./gnome + ./gnome.nix ./media.nix ./user-dirs.nix ]; @@ -25,8 +25,5 @@ zathura ]; - xdg.configFile."castget/castget.conf".source = ./castget/castget.conf; - services.syncthing.enable = true; - } diff --git a/home/devel.nix b/home/devel.nix index ba0cdca..0ff875b 100644 --- a/home/devel.nix +++ b/home/devel.nix @@ -1,4 +1,4 @@ -{ config, pkgs, inputs, lib, ... }: +{ config, pkgs, ... }: { home.file.".npmrc".text = '' @@ -10,6 +10,7 @@ bundix nodejs yarn-berry + yq duckdb tippecanoe pmtiles diff --git a/home/gnome/default.nix b/home/gnome.nix similarity index 92% rename from home/gnome/default.nix rename to home/gnome.nix index 4103a84..b7b8c4b 100644 --- a/home/gnome/default.nix +++ b/home/gnome.nix @@ -1,4 +1,4 @@ -{ config, pkgs, ... }: +{ pkgs, ... }: { home.pointerCursor = { @@ -35,7 +35,6 @@ gtk-theme = "Adwaita"; }; "org/gnome/desktop/background" = { - picture-uri = "file://" + ./wallpaper_nix_paper_gray.svg; picture-options = "zoom"; }; "org/gnome/desktop/wm/keybindings" = { @@ -104,5 +103,12 @@ sleep-inactive-battery-timeout = 1200; }; }; - xdg.configFile."run-or-raise/shortcuts.conf".source = ./run-or-raise.conf; + + xdg.configFile."run-or-raise/shortcuts.conf".text = '' + b,firefox,, + f,nautilus,, + g:always-run,tmux new-window -n vifm vifm ~/desktop,foot, + return,foot,, + p,keepassxc,,, + ''; } diff --git a/home/gnome/run-or-raise.conf b/home/gnome/run-or-raise.conf deleted file mode 100644 index b4bc39d..0000000 --- a/home/gnome/run-or-raise.conf +++ /dev/null @@ -1,25 +0,0 @@ -b,firefox,, -f,nautilus,, -g:always-run,tmux new-window -n vifm vifm ~/desktop,foot, -return,foot,, -p,keepassxc,,, - -# You may use regular expression in title or wm_class. -# Just put the regular expression between slashes. -# E.g. to jump to pidgin conversation window you may use this line -# (that means any windows of wm_class Pidgin, not containing the title Buddy List)" -# KP_1,pidgin,Pidgin,/^((?!Buddy List).)*$/ - -# Have the mail always at numpad-click. -# KP_2,chromium-browser --app=https://mail.google.com/mail/u/0/#inbox - -# ============= -# Run only form -# ============= -# -# This line will launch notify-send command. -# h,notify-send Hello world - -# Blank lines are allowed. Line starting with "#" means a comment. -# Now delete these shortcuts and put here yours. -# How to know wm_class? Alt+f2, lg, "windows" tab (at least on Ubuntu 17.10) diff --git a/home/gnome/wallpaper_nix_paper_gray.svg b/home/gnome/wallpaper_nix_paper_gray.svg deleted file mode 100644 index f729f2d..0000000 --- a/home/gnome/wallpaper_nix_paper_gray.svg +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - diff --git a/home/gpg.nix b/home/gpg.nix index 554398a..8a54d51 100644 --- a/home/gpg.nix +++ b/home/gpg.nix @@ -1,4 +1,4 @@ -{ config, pkgs, ... }: +{ pkgs, ... }: { @@ -15,7 +15,6 @@ programs.gpg = { enable = true; - # homedir = "${config.xdg.dataHome}/gnupg"; settings = { no-emit-version = true; no-comments = true; diff --git a/home/mail/default.nix b/home/mail/default.nix index 5133ecc..b9a709a 100644 --- a/home/mail/default.nix +++ b/home/mail/default.nix @@ -46,9 +46,25 @@ let }; }; + mailcap_path = pkgs.writeText "neomutt_mailcap" '' + application/pdf; zathura %s + multipart; xdg-open %s + text/html; firefox %s; description=HTML Text; nametemplate=%s.html; needsterminal + text/html; w3m -v -F -T text/html -dump %s; copiousoutput + text; neomutt %s + application; xdg-open %s + image; xdg-open %s + video; xdg-open %s + audio; xdg-open %s + message; xdg-open %s + model; xdg-open %s + ''; + in { + programs.mu.enable = true; + accounts.email = { maildirBasePath = "${config.xdg.dataHome}/mail"; accounts = { @@ -129,7 +145,7 @@ in new.tags = [ "new" "unread" ]; hooks = { preNew = '' - notmuch tag +draft -- folder:/\/Drafts\// not tag:draft + notmuch tag +draft -- 'folder:"/\/Drafts$/"' mbsync --all ''; postNew = '' @@ -159,7 +175,7 @@ in settings = { abort_noattach = "ask-yes"; abort_noattach_regex = "\"(attach|enclosed|anbei|anhängen|angehängt|anhang|anhänge|hängt an)\""; - # auto_edit = "yes"; + auto_edit = "yes"; beep = "no"; confirm_append = "no"; crypt_auto_sign = "yes"; @@ -171,34 +187,43 @@ in forward_attachments = "yes"; forward_format = "\"Fwd: %s\""; forward_quote = "yes"; + help = "no"; include = "yes"; mail_check_stats = "yes"; - mailcap_path = builtins.path { path = ./neomutt_mailcap; }; + mailcap_path = "${ mailcap_path }"; mark_old = "no"; + markers = "no"; mbox_type = "Maildir"; + menu_scroll = "yes"; mime_type_query_command = "\"file -b --mime-type %s\""; nm_record = "yes"; + pager_context = "3"; + pager_index_lines = "5"; + pager_stop = "yes"; query_command= "\"khard email --parsable '%s'\""; recall = "no"; resume_draft_files = "yes"; reverse_real_name = "no"; shell = "/bin/sh"; sleep_time = "0"; + smart_wrap = "yes"; + status_chars = "✔↻٪A"; + tilde = "yes"; use_envelope_from = "yes"; virtual_spool_file = "yes"; wait_key = "no"; }; binds = [ + { key = "m"; map = [ "index" "pager" ]; action = "noop"; } { key = "k"; map = "pager"; action = "previous-entry"; } { key = "j"; map = "pager"; action = "next-entry"; } { key = ""; map = "index"; action = "display-message"; } - { key = ""; map = "index"; action = "collapse-thread"; } + { key = ""; map = "index"; action = "entire-thread"; } { key = "gf"; map = [ "index" "pager" ]; action = "change-folder"; } - { key = "P"; map = "compose"; action = "pgp-menu"; } { key = ""; map = "editor"; action = "complete-query"; } - { key = "a"; map = [ "index" "pager" ]; action = "group-reply"; } - { key = "m"; map = [ "index" "pager" ]; action = "noop"; } + { key = "P"; map = "compose"; action = "pgp-menu"; } + { key = "p"; map = [ "compose" ]; action = "postpone-message"; } ]; macros = [ @@ -227,6 +252,7 @@ in { key = "S"; map = [ "index" "pager" ]; action = "ripmime -i - -d ~/tmp && rm ~/tmp/textfile*"; } { key = "gb"; map = [ "index" "pager" ]; action = "urlscan"; } { key = "I"; map = [ "compose" ]; action = "`tmpfile=$(mktemp -u --suffix .png -t XXXXXXXXXXXX -p ~/tmp) && wl-paste -t image/png > \"$tmpfile\" && echo \"$tmpfile\"`"; } + { key = "p"; map = [ "compose" ]; action = ""; } { key = "c"; map = [ "index" "pager" ]; action = "set signature=$my_signature"; } { key = "r"; map = [ "index" "pager" ]; action = "unset signature"; } diff --git a/home/mail/neomutt_mailcap b/home/mail/neomutt_mailcap deleted file mode 100644 index 1718345..0000000 --- a/home/mail/neomutt_mailcap +++ /dev/null @@ -1,11 +0,0 @@ -application/pdf; zathura %s -multipart; xdg-open %s -text/html; firefox %s; description=HTML Text; nametemplate=%s.html; needsterminal -text/html; w3m -v -F -T text/html -dump %s; copiousoutput -text; neomutt %s -application; xdg-open %s -image; xdg-open %s -video; xdg-open %s -audio; xdg-open %s -message; xdg-open %s -model; xdg-open %s diff --git a/home/media.nix b/home/media.nix index 46e02e6..5c5e14c 100644 --- a/home/media.nix +++ b/home/media.nix @@ -1,4 +1,4 @@ -{ config, pkgs, inputs, lib, ... }: +{ pkgs, ... }: { home.packages = with pkgs; [ @@ -11,6 +11,4 @@ yt-dlp zathura ]; - - xdg.configFile."castget/castget.conf".source = ./castget/castget.conf; } diff --git a/home/minimal.nix b/home/minimal.nix index eeb7f44..a33684c 100644 --- a/home/minimal.nix +++ b/home/minimal.nix @@ -1,4 +1,4 @@ -{ config, pkgs, inputs, lib, ... }: +{ config, pkgs, ... }: { programs.home-manager.enable = true; @@ -20,12 +20,13 @@ imports = [ ./fish.nix - ./tmux - ./password-store.nix - ./vifm + ./vifm.nix ./nvim + + ./tmux.nix ./gpg.nix ./ssh.nix + ./password-store.nix ]; programs.nix-index = { diff --git a/home/office-cli.nix b/home/office-cli.nix index 5baf102..cf86068 100644 --- a/home/office-cli.nix +++ b/home/office-cli.nix @@ -9,7 +9,6 @@ home.packages = with pkgs; [ bat - castget ghostscript hunspell hunspellDicts.de_DE diff --git a/home/tmux/default.nix b/home/tmux.nix similarity index 71% rename from home/tmux/default.nix rename to home/tmux.nix index 7ce808d..5c54bc3 100644 --- a/home/tmux/default.nix +++ b/home/tmux.nix @@ -1,4 +1,4 @@ -{ config, pkgs, ... }: +{ pkgs, ... }: { programs.tmux = { @@ -22,13 +22,19 @@ bind j select-pane -D bind k select-pane -U bind l select-pane -R + bind -r H resize-pane -L 5 + bind -r J resize-pane -D 5 + bind -r K resize-pane -U 5 + bind -r L resize-pane -R 5 bind c command-prompt -I "#{b:pane_current_path}" "rename-window '%%'" bind C-c command-prompt -I "#{b:pane_current_path}" "rename-window '%%'" # Layouts - bind f source-file ~/.config/tmux/vifm.conf - bind R source-file ~/.config/tmux/rloft.conf - bind J source-file ~/.config/tmux/jekyll.conf + bind f new-window -c '#{pane_current_path}' vifm + bind R source ${ pkgs.writeText "tmux-rloft" '' + split-window -c '#{pane_current_path}' -h R -q --no-save --no-restore; + select-pane -l + ''} # Unbind unbind p @@ -36,7 +42,6 @@ unbind % # Eye candy - # set-option -g status-position top set-option -g status-right "" set-option -g status-left "" set-option -g status-justify "centre" @@ -47,9 +52,10 @@ # Some more specifics set-option -g focus-events on + set -g base-index 1 + setw -g pane-base-index 1 + set -g default-terminal "tmux-256color" + set -as terminal-features ",xterm-256color:RGB" ''; }; - xdg.configFile."tmux/vifm.conf".source = ./vifm.conf; - xdg.configFile."tmux/rloft.conf".source = ./rloft.conf; - xdg.configFile."tmux/jekyll.conf".source = ./jekyll.conf; } diff --git a/home/tmux/jekyll.conf b/home/tmux/jekyll.conf deleted file mode 100644 index 8ecb9ee..0000000 --- a/home/tmux/jekyll.conf +++ /dev/null @@ -1,6 +0,0 @@ -split-window -c '#{pane_current_path}' -h nix-shell -send-keys "jekyll serve" Enter -resize-pane -x 40% -split-pane -c '#{pane_current_path}' "git status; fish" -select-pane -L -rename-window "jekyll" diff --git a/home/tmux/rloft.conf b/home/tmux/rloft.conf deleted file mode 100644 index 400c102..0000000 --- a/home/tmux/rloft.conf +++ /dev/null @@ -1,2 +0,0 @@ -split-window -c '#{pane_current_path}' -h R -q --no-save --no-restore -select-pane -l diff --git a/home/tmux/vifm.conf b/home/tmux/vifm.conf deleted file mode 100644 index 45fd508..0000000 --- a/home/tmux/vifm.conf +++ /dev/null @@ -1 +0,0 @@ -new-window -c '#{pane_current_path}' vifm diff --git a/home/vifm.nix b/home/vifm.nix new file mode 100644 index 0000000..d68ebbd --- /dev/null +++ b/home/vifm.nix @@ -0,0 +1,30 @@ +{ config, pkgs, ... }: + +{ + programs.vifm = { + enable = true; + extraConfig = " + colorscheme light + set vicmd=nvim + filetype * xdg-open + "; + }; + xdg.configFile."vifm/colors/light.vifm".text = '' + highlight clear + highlight Win cterm=none ctermfg=black ctermbg=default + highlight Directory cterm=none ctermfg=cyan ctermbg=default + highlight Link cterm=none ctermfg=yellow ctermbg=default + highlight BrokenLink cterm=none ctermfg=white ctermbg=red + highlight Socket cterm=none ctermfg=red ctermbg=default + highlight Device cterm=none ctermfg=red ctermbg=default + highlight Fifo cterm=none ctermfg=black ctermbg=cyan + highlight Executable cterm=none ctermfg=green ctermbg=default + highlight Selected cterm=bold ctermfg=magenta ctermbg=default + highlight CurrLine cterm=bold ctermfg=white ctermbg=magenta + highlight TopLine cterm=bold ctermfg=magenta ctermbg=default + highlight TopLineSel cterm=bold ctermfg=magenta ctermbg=white + highlight StatusLine cterm=bold ctermfg=magenta ctermbg=white + highlight CmdLine cterm=bold ctermfg=magenta ctermbg=default + highlight Border cterm=none ctermfg=default ctermbg=default + ''; +} diff --git a/home/vifm/default.nix b/home/vifm/default.nix deleted file mode 100644 index 4845d34..0000000 --- a/home/vifm/default.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ config, pkgs, ... }: - -{ - programs.vifm = { - enable = true; - extraConfig = " - colorscheme light - set vicmd=nvim - filetype * xdg-open - "; - }; - xdg.configFile."vifm/colors/light.vifm".source = ./light.vifm; -} diff --git a/home/vifm/light.vifm b/home/vifm/light.vifm deleted file mode 100644 index f770398..0000000 --- a/home/vifm/light.vifm +++ /dev/null @@ -1,20 +0,0 @@ -highlight clear - -highlight Win cterm=none ctermfg=black ctermbg=default -highlight Directory cterm=none ctermfg=cyan ctermbg=default -highlight Link cterm=none ctermfg=yellow ctermbg=default -highlight BrokenLink cterm=none ctermfg=white ctermbg=red -highlight Socket cterm=none ctermfg=red ctermbg=default -highlight Device cterm=none ctermfg=red ctermbg=default -highlight Fifo cterm=none ctermfg=black ctermbg=cyan -highlight Executable cterm=none ctermfg=green ctermbg=default -highlight Selected cterm=bold ctermfg=magenta ctermbg=default -highlight CurrLine cterm=bold ctermfg=white ctermbg=magenta -highlight TopLine cterm=bold ctermfg=magenta ctermbg=default -highlight TopLineSel cterm=bold ctermfg=magenta ctermbg=white -highlight StatusLine cterm=bold ctermfg=magenta ctermbg=white -"highlight WildMenu cterm=underline,reverse ctermfg=white ctermbg=black -highlight CmdLine cterm=bold ctermfg=magenta ctermbg=default -"highlight ErrorMsg cterm=none ctermfg=red ctermbg=black -highlight Border cterm=none ctermfg=default ctermbg=default -"highlight JobLine cterm=bold,reverse ctermfg=black ctermbg=white diff --git a/system/mail-server/roundcube.nix b/system/mail-server/roundcube.nix index 9379620..5c48fc1 100644 --- a/system/mail-server/roundcube.nix +++ b/system/mail-server/roundcube.nix @@ -1,4 +1,4 @@ -{ config, lib, ... }: +{ config, ... }: let @@ -24,6 +24,8 @@ in # not sure why this is currently working w/o the following # # services.nginx.virtualHosts."${webmailHostName}" = { + # onlySSL = true; + # forceSSL = lib.mkForce false; # enableACME = lib.mkForce false; # useACMEHost = config.networking.domain; # }; diff --git a/system/web-server/letsencrypt.nix b/system/web-server/letsencrypt.nix index 7e99212..9b462f9 100644 --- a/system/web-server/letsencrypt.nix +++ b/system/web-server/letsencrypt.nix @@ -5,7 +5,7 @@ acceptTerms = true; defaults.email = "till@ktiu.net"; certs."${config.networking.domain}" = { - domain = config.networking.domain; + # domain = config.networking.domain; webroot = "/var/lib/acme/.challenges"; group = config.services.nginx.group; extraDomainNames = [ config.networking.fqdn ];