summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--accounts/gkleen@sif/default.nix88
-rw-r--r--accounts/gkleen@sif/dunst-settings.nix2
-rw-r--r--accounts/gkleen@sif/hyprland.nix3
-rw-r--r--system-profiles/core/default.nix1
-rw-r--r--system-profiles/rebuild-machines/default.nix12
5 files changed, 85 insertions, 21 deletions
diff --git a/accounts/gkleen@sif/default.nix b/accounts/gkleen@sif/default.nix
index dc505f6d..1cb7c751 100644
--- a/accounts/gkleen@sif/default.nix
+++ b/accounts/gkleen@sif/default.nix
@@ -38,15 +38,25 @@ let
38 --prefix PATH : ${pkgs.pulseaudio}/bin 38 --prefix PATH : ${pkgs.pulseaudio}/bin
39 ''; 39 '';
40 }; 40 };
41 wrapElectron = { package, bin ? package.meta.mainProgram or package.pname or (pkgs.lib.strings.nameFromURL package.name "-"), outBin ? bin, sandbox ? true }: pkgs.runCommand "${package.name}-wrapped" { buildInputs = with pkgs; [ makeWrapper ]; } '' 41 wrapElectron = { package, bin ? package.meta.mainProgram or package.pname or (pkgs.lib.strings.nameFromURL package.name "-"), outBin ? bin, sandbox ? true }: pkgs.symlinkJoin {
42 mkdir -p "$out/bin" 42 name = "${package.name}-wrapped";
43 makeWrapper ${package}/bin/${bin} $out/bin/${outBin} \ 43 buildInputs = with pkgs; [ makeWrapper ];
44 ${optionalString (!sandbox) "--add-flags '--no-sandbox'"} 44 paths = [ package ];
45 ''; 45 inherit bin outBin;
46 postBuild = ''
47 hidden=$out/bin/."$(basename "$bin")"-wrapped
48 while [ -e "$hidden" ]; do
49 hidden="''${hidden}_"
50 done
51 mv "$out/bin/$bin" "$hidden"
52 makeWrapper "$hidden" "$out/bin/$outBin" \
53 ${optionalString (!sandbox) "--add-flags '--no-sandbox'"}
54 '';
55 };
46 56
47 wrappedChrome = wrapElectron { package = pkgs.google-chrome; outBin = "google-chrome"; }; 57 wrappedChrome = wrapElectron { package = pkgs.google-chrome; outBin = "google-chrome"; };
48 wrappedZulip = wrapElectron { package = pkgs.zulip; bin = "zulip"; outBin = "zulip"; }; 58 wrappedZulip = wrapElectron { package = pkgs.zulip; bin = "zulip"; outBin = "zulip"; };
49 wrappedElementDesktop = wrapElectron { package = pkgs.element-desktop; bin = "element-desktop"; outBin = "element"; }; 59 wrappedElementDesktop = wrapElectron { package = pkgs.element-desktop; bin = "element-desktop"; };
50 wrappedRocketChatDesktop = wrapElectron { package = pkgs.rocketchat-desktop; bin = "rocketchat-desktop"; outBin = "rocketchat"; }; 60 wrappedRocketChatDesktop = wrapElectron { package = pkgs.rocketchat-desktop; bin = "rocketchat-desktop"; outBin = "rocketchat"; };
51 wrappedYTMDesktop = wrapElectron { package = pkgs.ytmdesktop; sandbox = false; }; 61 wrappedYTMDesktop = wrapElectron { package = pkgs.ytmdesktop; sandbox = false; };
52 62
@@ -355,7 +365,7 @@ in {
355 }; 365 };
356 privacy = { 366 privacy = {
357 icon-spacing = 6; 367 icon-spacing = 6;
358 icon-size = 12; 368 icon-size = 11;
359 modules = [ { type = "screenshare"; } { type = "audio-in"; } ]; 369 modules = [ { type = "screenshare"; } { type = "audio-in"; } ];
360 }; 370 };
361 idle_inhibitor = { 371 idle_inhibitor = {
@@ -423,7 +433,7 @@ in {
423 margin-right: 9px; 433 margin-right: 9px;
424 } 434 }
425 435
426 label.module { 436 .module {
427 margin: 0 5px; 437 margin: 0 5px;
428 } 438 }
429 439
@@ -448,8 +458,15 @@ in {
448 opacity: 0.6; 458 opacity: 0.6;
449 } 459 }
450 460
461 #tray {
462 margin: 0 2px;
463 }
451 #battery, #idle_inhibitor, #backlight { 464 #battery, #idle_inhibitor, #backlight {
452 color: @grey; 465 color: @grey;
466 margin: 0 5px 0 2px;
467 }
468 #backlight, #idle_inhibitor {
469 margin: 0 7px 0 2px;
453 } 470 }
454 #battery.warning { 471 #battery.warning {
455 color: @orange; 472 color: @orange;
@@ -464,10 +481,17 @@ in {
464 color: @white; 481 color: @white;
465 } 482 }
466 483
484 #idle_inhibitor {
485 padding-top: 1px;
486 margin: 0 9px 0 2px;
487 }
488
467 #privacy { 489 #privacy {
468 color: @red; 490 color: @red;
469 margin-right: 4px; 491 margin: -1px 2px 0px 5px;
470 margin-left: 2px; 492 }
493 #clock {
494 margin-right: 5px;
471 } 495 }
472 ''; 496 '';
473 }; 497 };
@@ -514,6 +538,29 @@ in {
514 ]; 538 ];
515 }; 539 };
516 }; 540 };
541 fuzzel = {
542 enable = true;
543 settings = {
544 main = {
545 terminal = lib.getExe pkgs.kitty;
546 layer = "overlay";
547 icon-theme = "Paper";
548 font = "Fira Sans";
549 };
550 colors = {
551 background = "000000aa";
552 text = "cdd6f4ff";
553 match = "94e2d5ff";
554 selection = "585b70ff";
555 selection-match = "94e2d5ff";
556 selection-text = "cdd6f4ff";
557 border = "b4befeff";
558 };
559 dmenu = {
560 exit-immediately-if-empty = true;
561 };
562 };
563 };
517 }; 564 };
518 565
519 services = { 566 services = {
@@ -709,12 +756,12 @@ in {
709 wrappedKeepassxc sxiv xclip mumble pulseaudio-ctl pamixer 756 wrappedKeepassxc sxiv xclip mumble pulseaudio-ctl pamixer
710 libnotify synergy xorg.xbacklight screen-message 757 libnotify synergy xorg.xbacklight screen-message
711 wrappedYTMDesktop qt5ct playerctl evince thunderbird 758 wrappedYTMDesktop qt5ct playerctl evince thunderbird
712 wrappedZulip zoom-us steam steam-run wireshark virt-manager 759 zoom-us steam steam-run wireshark virt-manager
713 rclone cached-nix-shell xournal xmonad worktime 760 rclone cached-nix-shell xournal xmonad worktime
714 fira-code-symbols libreoffice xournalpp wrappedChrome 761 fira-code-symbols libreoffice xournalpp google-chrome
715 nixos-shell virt-viewer freerdp gnome-icon-theme 762 nixos-shell virt-viewer freerdp gnome-icon-theme
716 paper-icon-theme sshpassSecret weechat wrappedElementDesktop 763 paper-icon-theme sshpassSecret weechat element-desktop
717 matrix-synapse-tools.synadm wrappedRocketChatDesktop 764 matrix-synapse-tools.synadm
718 flakeInputs.deploy-rs.packages.${config.nixpkgs.system}.deploy-rs 765 flakeInputs.deploy-rs.packages.${config.nixpkgs.system}.deploy-rs
719 sieve-connect gimp inkscape udiskie glab scrot nitrokey-app 766 sieve-connect gimp inkscape udiskie glab scrot nitrokey-app
720 pynitrokey gtklock wlrctl nvidiaOffloadScript 767 pynitrokey gtklock wlrctl nvidiaOffloadScript
@@ -816,6 +863,19 @@ in {
816 }; 863 };
817 }; 864 };
818 865
866 xdg.desktopEntries = {
867 element-lmu = {
868 name = "Element (LMU)";
869 exec = "element-desktop --profile=lmu %u";
870 icon = "element";
871 genericName = "Matrix Client";
872 categories = [ "Network" "InstantMessaging" "Chat" ];
873 settings = {
874 StartupWMClass = "Element";
875 };
876 };
877 };
878
819 fonts = { 879 fonts = {
820 fontconfig.enable = true; 880 fontconfig.enable = true;
821 lmu-hausschrift.enable = true; 881 lmu-hausschrift.enable = true;
diff --git a/accounts/gkleen@sif/dunst-settings.nix b/accounts/gkleen@sif/dunst-settings.nix
index 90fffcc5..72687aea 100644
--- a/accounts/gkleen@sif/dunst-settings.nix
+++ b/accounts/gkleen@sif/dunst-settings.nix
@@ -33,7 +33,7 @@
33 sort = false; 33 sort = false;
34 sticky_history = false; 34 sticky_history = false;
35 35
36 dmenu = "wofi --show dmenu"; 36 dmenu = "fuzzel --dmenu";
37 browser = "${pkgs.xdg-utils}/bin/xdg-open"; 37 browser = "${pkgs.xdg-utils}/bin/xdg-open";
38 }; 38 };
39 # shortcuts = { 39 # shortcuts = {
diff --git a/accounts/gkleen@sif/hyprland.nix b/accounts/gkleen@sif/hyprland.nix
index 06d146a0..03afb319 100644
--- a/accounts/gkleen@sif/hyprland.nix
+++ b/accounts/gkleen@sif/hyprland.nix
@@ -6,7 +6,7 @@
6 ]; 6 ];
7 7
8 "$terminal" = "kitty"; 8 "$terminal" = "kitty";
9 "$menu" = "wofi --show run"; 9 "$menu" = "fuzzel";
10 10
11 exec-once = [ 11 exec-once = [
12 "wpaperd" 12 "wpaperd"
@@ -130,6 +130,7 @@
130 "$mainMod, Q, killactive" 130 "$mainMod, Q, killactive"
131 "$mainMod, V, togglefloating" 131 "$mainMod, V, togglefloating"
132 "$mainMod, D, exec, $menu" 132 "$mainMod, D, exec, $menu"
133 "$mainMod SHIFT, D, exec, $menu --list-executables-in-path"
133 # "$mainMod, J, togglesplit," 134 # "$mainMod, J, togglesplit,"
134 135
135 "$mainMod SHIFT, L, exec, loginctl lock-session" 136 "$mainMod SHIFT, L, exec, loginctl lock-session"
diff --git a/system-profiles/core/default.nix b/system-profiles/core/default.nix
index c2c821b7..b1898903 100644
--- a/system-profiles/core/default.nix
+++ b/system-profiles/core/default.nix
@@ -154,6 +154,7 @@ in {
154 documentation.nixos = { 154 documentation.nixos = {
155 includeAllModules = true; 155 includeAllModules = true;
156 options.warningsAreErrors = false; 156 options.warningsAreErrors = false;
157 extraModuleSources = map toString ([flake] ++ attrValues flakeInputs);
157 }; 158 };
158 159
159 home-manager = { 160 home-manager = {
diff --git a/system-profiles/rebuild-machines/default.nix b/system-profiles/rebuild-machines/default.nix
index cc01f66b..544f47e1 100644
--- a/system-profiles/rebuild-machines/default.nix
+++ b/system-profiles/rebuild-machines/default.nix
@@ -15,7 +15,7 @@ let
15 ''; 15 '';
16 16
17 knownHostsFile = pkgs.writeText "known_hosts" (concatMapStringsSep "\n" (kPath: cfg.repoHost + " " + readFile kPath) (attrValues cfg.repoPubkeys)); 17 knownHostsFile = pkgs.writeText "known_hosts" (concatMapStringsSep "\n" (kPath: cfg.repoHost + " " + readFile kPath) (attrValues cfg.repoPubkeys));
18 18
19 rebuildScript = pkgs.stdenv.mkDerivation { 19 rebuildScript = pkgs.stdenv.mkDerivation {
20 name = "rebuild-${hostName}"; 20 name = "rebuild-${hostName}";
21 21
@@ -52,7 +52,7 @@ in {
52 Name of the script wrapping <literal>nixos-rebuild</literal> 52 Name of the script wrapping <literal>nixos-rebuild</literal>
53 ''; 53 '';
54 }; 54 };
55 55
56 flake = mkOption { 56 flake = mkOption {
57 type = types.submodule { 57 type = types.submodule {
58 options = { 58 options = {
@@ -79,7 +79,7 @@ in {
79 type = types.str; 79 type = types.str;
80 default = "git.yggdrasil.li"; 80 default = "git.yggdrasil.li";
81 }; 81 };
82 82
83 repoUser = mkOption { 83 repoUser = mkOption {
84 type = types.str; 84 type = types.str;
85 default = "gitolite"; 85 default = "gitolite";
@@ -88,11 +88,13 @@ in {
88 repoPubkeys = mkOption { 88 repoPubkeys = mkOption {
89 type = types.attrsOf types.path; 89 type = types.attrsOf types.path;
90 default = genAttrs ["rsa" "ed25519"] (kType: ./ssh-pub + "/${cfg.repoHost}-${kType}.pub"); 90 default = genAttrs ["rsa" "ed25519"] (kType: ./ssh-pub + "/${cfg.repoHost}-${kType}.pub");
91 defaultText = literalExpression ''genAttrs ["rsa" "ed25519"] (kType: ./ssh-pub + "/''${cfg.repoHost}-''${kType}.pub")'';
91 }; 92 };
92 93
93 repoPrivkey = mkOption { 94 repoPrivkey = mkOption {
94 type = types.path; 95 type = types.path;
95 default = ./ssh + "/${hostName}/private"; 96 default = ./ssh + "/${hostName}/private";
97 defaultText = literalExpression ''./ssh + "/''${hostName}/private"'';
96 }; 98 };
97 99
98 sopsName = mkOption { 100 sopsName = mkOption {
@@ -115,14 +117,14 @@ in {
115 }; 117 };
116 }; 118 };
117 }; 119 };
118 120
119 config = { 121 config = {
120 assertions = [ 122 assertions = [
121 { assertion = isNull cfg.sopsConfig || (!(isNull cfg.sopsName)); 123 { assertion = isNull cfg.sopsConfig || (!(isNull cfg.sopsName));
122 message = "If option sopsConfig is not null option sopsName may not be null"; 124 message = "If option sopsConfig is not null option sopsName may not be null";
123 } 125 }
124 ]; 126 ];
125 127
126 sops.secrets = mkIf (!(isNull cfg.sopsConfig)) { 128 sops.secrets = mkIf (!(isNull cfg.sopsConfig)) {
127 "${cfg.sopsName}" = { 129 "${cfg.sopsName}" = {
128 sopsFile = cfg.repoPrivkey; 130 sopsFile = cfg.repoPrivkey;