From 804533cde06189bb2109c063092d59b2d53ee4db Mon Sep 17 00:00:00 2001 From: Gregor Kleen Date: Sun, 16 Mar 2025 17:15:39 +0100 Subject: ... --- accounts/gkleen@sif/default.nix | 107 ++++++++++++---------------------------- 1 file changed, 32 insertions(+), 75 deletions(-) (limited to 'accounts/gkleen@sif/default.nix') diff --git a/accounts/gkleen@sif/default.nix b/accounts/gkleen@sif/default.nix index 6f720bbf..1254b6db 100644 --- a/accounts/gkleen@sif/default.nix +++ b/accounts/gkleen@sif/default.nix @@ -4,33 +4,6 @@ with lib; let cfg = config.home-manager.users.${userName}; - emacsScratch = pkgs.stdenv.mkDerivation (sources.emacs-scratch_el // rec { - phases = [ "installPhase" ]; - - installPhase = '' - mkdir -p $out/share/emacs/site-lisp - cp $src/scratch.el $out/share/emacs/site-lisp/default.el - ''; - }); - muteScript = pkgs.stdenv.mkDerivation { - name = "mute"; - src = ./scripts/mute.zsh; - - buildInputs = with pkgs; [ makeWrapper ]; - - phases = [ "installPhase" ]; - - installPhase = '' - mkdir -p $out/bin - install -m 0755 $src $out/bin/mute - wrapProgram $out/bin/mute \ - --prefix PATH : ${pkgs.zsh}/bin \ - --prefix PATH : ${pkgs.findutils}/bin \ - --prefix PATH : ${pkgs.util-linux}/bin \ - --prefix PATH : ${pkgs.coreutils}/bin \ - --prefix PATH : ${pkgs.pulseaudio}/bin - ''; - }; wrapElectron = { package, bin ? package.meta.mainProgram or package.pname or (pkgs.lib.strings.nameFromURL package.name "-"), outBin ? bin, sandbox ? true }: pkgs.symlinkJoin { name = "${package.name}-wrapped"; buildInputs = with pkgs; [ makeWrapper ]; @@ -47,10 +20,6 @@ let ''; }; - wrappedChrome = wrapElectron { package = pkgs.google-chrome; outBin = "google-chrome"; }; - wrappedZulip = wrapElectron { package = pkgs.zulip; bin = "zulip"; outBin = "zulip"; }; - wrappedElementDesktop = wrapElectron { package = pkgs.element-desktop; bin = "element-desktop"; }; - wrappedRocketChatDesktop = wrapElectron { package = pkgs.rocketchat-desktop; bin = "rocketchat-desktop"; outBin = "rocketchat"; }; wrappedYTMDesktop = wrapElectron { package = pkgs.ytmdesktop; sandbox = false; }; wrappedKeepassxc = pkgs.symlinkJoin { @@ -63,7 +32,7 @@ let text = '' [D-BUS Service] Name=org.keepassxc.KeePassXC.MainWindow - Exec=${pkgs.coreutils}/bin/false + Exec=${lib.getExe' pkgs.coreutils "false"} SystemdService=keepassxc.service ''; }) @@ -73,7 +42,7 @@ let text = '' [D-BUS Service] Name=org.freedesktop.secrets - Exec=${pkgs.coreutils}/bin/false + Exec=${lib.getExe' pkgs.coreutils "false"} SystemdService=keepassxc.service ''; }) @@ -87,8 +56,6 @@ in { ]; config = { - services.displayManager.defaultSession = "Hyprland"; # "none+xmonad"; - home-manager.users.${userName} = { imports = [ ./libvirt @@ -137,8 +104,8 @@ in { ''} Match host *.mathinst.loc,*.math.lmu.de !host ssh.math.lmu.de !exec "nc -z -w 1 %h %p &>/dev/null" - # ProxyCommand ${pkgs.socat}/bin/socat - SOCKS4A:127.0.0.1:%h:%p,socksport=8118 - ProxyJump ssh.math.lmu.de + ProxyCommand ${lib.getExe pkgs.socat} - SOCKS4A:127.0.0.1:%h:%p,socksport=8118 + # ProxyJump ssh.math.lmu.de Match host *.cipmath.loc !host cip04.cipmath.loc,mgmt-cls01.cipmath.loc !exec "nc -z -w 1 %h %p &>/dev/null" ProxyJump cip04 @@ -159,18 +126,27 @@ in { extraPackages = epkgs: with epkgs; [ evil evil-dvorak undo-tree magit haskell-tng-mode nix-mode yaml-mode json-mode shakespeare-mode smart-mode-line - highlight-parentheses highlight-symbol ag sass-mode lua-mode - fira-code-mode use-package wanderlust # notmuch - git-gutter emacsScratch - edit-server mediawiki editorconfig typescript-mode - markdown-mode nftables-mode rustic lsp-mode lsp-ui - direnv company projectile tomorrow-night-paradise-theme + highlight-parentheses highlight-symbol ag sass-mode + lua-mode fira-code-mode use-package wanderlust # notmuch + git-gutter scratch edit-server mediawiki editorconfig + typescript-mode markdown-mode nftables-mode rustic + lsp-mode lsp-ui direnv company projectile + tomorrow-night-paradise-theme treesit-grammars.with-all-grammars magit-delta scad-mode ]; overrides = self: super: { tomorrow-night-paradise-theme = super.trivialBuild { inherit (sources.tomorrow-night-paradise-theme) pname version src; }; + scratch = pkgs.stdenv.mkDerivation { + inherit (sources.emacs-scratch_el) pname version src; + + phases = [ "unpackPhase" "installPhase" ]; + + installPhase = '' + install -Dt $out/share/emacs/site-lisp scratch.el + ''; + }; }; }; firefox = { @@ -226,7 +202,7 @@ in { gh = { enable = true; settings = { - editor = "${config.home-manager.users.${userName}.programs.emacs.package}/bin/emacsclient"; + editor = lib.getExe' config.home-manager.users.${userName}.programs.emacs.package "emacsclient"; gitProtocol = "ssh"; }; }; @@ -287,6 +263,10 @@ in { }; }; }; + pandoc = { + enable = true; + extraAbbreviations = ["i.A." "d.h." "D.h." "gdw."]; + }; }; services = { @@ -302,7 +282,7 @@ in { enable = true; enableSshSupport = true; extraConfig = '' - pinentry-program ${pkgs.pinentry-gtk2}/bin/pinentry + pinentry-program ${lib.getExe' pkgs.pinentry-gtk2 "pinentry"} grab ''; }; @@ -342,7 +322,7 @@ in { batch = "true"; log = "false"; repeat = "watch"; - sshcmd = "${pkgs.openssh}/bin/ssh"; + sshcmd = lib.getExe' pkgs.openssh "ssh"; ui = "text"; }; }; @@ -418,13 +398,13 @@ in { fira-code-symbols libreoffice xournalpp google-chrome nixos-shell virt-viewer freerdp gnome-icon-theme paper-icon-theme sshpassSecret weechat element-desktop - matrix-synapse-tools.synadm flakeInputs.deploy-rs.packages.${config.nixpkgs.system}.deploy-rs sieve-connect gimp inkscape udiskie glab nitrokey-app pynitrokey gtklock wlrctl remmina openscad spice-record libguestfs-with-appliance nerd-fonts.fira-mono nerd-fonts.symbols-only nerd-fonts.fira-code powerline-fonts swtpm (hunspellWithDicts (with hunspellDicts; [en_GB-large de_DE])) + # synadm ]; file = { @@ -448,9 +428,9 @@ in { EDITOR = pkgs.writeShellScript "editor" '' args=("--reuse-frame" "--alternate-editor" "") args+=("$@") - exec -a emacsclient ${cfg.services.emacs.package}/bin/emacsclient "''${args[@]}" + exec -a emacsclient ${lib.getExe' cfg.services.emacs.package "emacsclient"} "''${args[@]}" ''; - RCLONE_PASSWORD_COMMAND = "${pkgs.libsecret}/bin/secret-tool lookup service rclone"; + RCLONE_PASSWORD_COMMAND = "${lib.getExe' pkgs.libsecret "secret-tool"} lookup service rclone"; }; extraProfileCommands = '' @@ -463,7 +443,7 @@ in { source = ./wireplumber; recursive = true; onChange = '' - ${pkgs.systemd}/bin/systemctl --user try-restart wireplumber + ${lib.getExe' config.systemd.package "systemctl"} --user try-restart wireplumber ''; }; "stack/config.yaml" = { @@ -505,29 +485,6 @@ in { }; xdg.dataFile = { - "pandoc/abbreviations" = { - source = pkgs.runCommand "pandoc-abbreviations" { - buildInputs = [ pkgs.pandoc pkgs.coreutils ]; - } (let - germanAbbrevs = pkgs.fetchFromGitHub { - owner = "jfilter"; - repo = "german-abbreviations"; - rev = "8eb9dae93b6f05d7c53374cd217ab2dc89558e0c"; - sha256 = "SaD3tSqzen6Y3SPICe6/9vhe4iMHlArZ3kFQaEk7Hps="; - }; - in '' - cat \ - <(pandoc --print-default-data-file=abbreviations) \ - <(grep -E '^[^ ]+\.$' ${germanAbbrevs}/german_abbreviations.txt) \ - ${pkgs.writeText "abbrevs.txt" '' - i.A. - d.h. - D.h. - gdw. - ''} \ - | sort | uniq >$out - ''); - }; "dbus-1/services/org.keepassxc.KeePassXC.service".source = "${wrappedKeepassxc}/share/dbus-1/services/org.keepassxc.KeePassXC.service"; "dbus-1/services/org.freedesktop.secrets.service.service".source = "${wrappedKeepassxc}/share/dbus-1/services/org.freedesktop.secrets.service.service"; "emoji-data/list.txt".source = pkgs.stdenv.mkDerivation { @@ -615,10 +572,10 @@ in { name = "Rainbow"; exec = toString (pkgs.writeShellScript "rainbow" '' exec -- \ - ${config.systemd.package}/bin/systemd-run --wait --user --slice-inherit \ + ${lib.getExe' config.systemd.package "systemd-run"} --wait --user --slice-inherit \ --property 'CPUAccounting=yes' --property 'CPUQuotaPeriodSec=50ms' \ --property 'Environment=DSCP=46' \ - -- ${pkgs.dscp}/bin/dscp ${pkgs.google-chrome}/bin/google-chrome-stable \ + -- ${lib.getExe pkgs.dscp} ${lib.getExe' pkgs.google-chrome "google-chrome-stable"} \ --class=Rainbow \ --kiosk "https://web.openrainbow.com" \ --user-data-dir=''${HOME}/.config/google-chrome-rainbow -- cgit v1.2.3