diff --git a/SwarselSystems.org b/SwarselSystems.org
index a683057..3a53aa0 100644
--- a/SwarselSystems.org
+++ b/SwarselSystems.org
@@ -4941,6 +4941,7 @@ Also, the system state version is set here. No need to touch it.
./xdg-portal.nix
# ./yubikey-touch-detector.nix
./safeeyes.nix
+ ./lid.nix
];
nix =
@@ -5013,7 +5014,7 @@ This ensures that all user-configuration happens here in the config file.
isNormalUser = true;
description = "Leon S";
hashedPasswordFile = lib.mkIf (!config.swarselsystems.initialSetup) config.sops.secrets.swarseluser.path;
- extraGroups = [ "networkmanager" "root" "docker""wheel" "lp" "audio" "video" "vboxusers" "scanner" ];
+ extraGroups = [ "networkmanager" "docker" "wheel" "lp" "audio" "video" "vboxusers" "scanner" ];
packages = with pkgs; [ ];
};
};
@@ -5148,7 +5149,6 @@ Enable OpenGL, Sound, Bluetooth and various drivers.
keyboard.qmk.enable = true;
-
pulseaudio = {
enable = lib.mkIf (!config.services.pipewire.enable) true;
package = pkgs.pulseaudioFull;
@@ -5187,6 +5187,7 @@ Pipewire handles communication on Wayland. This enables several sound tools as w
pulse.enable = true;
jack.enable = true;
audio.enable = true;
+ wireplumber.enable = true;
alsa = {
enable = true;
support32Bit = true;
@@ -5748,6 +5749,7 @@ Enables the blueman service including the nice system tray icon.
_:
{
services.blueman.enable = true;
+ services.hardware.bolt.enable = true;
}
#+end_src
@@ -6292,6 +6294,39 @@ A friend of mine used this service and I used to make fun of him. But I have to
}
#+end_src
+**** Handle lid switch correctly
+
+This turns off the display when the lid is closed.
+
+#+begin_src nix :tangle profiles/common/nixos/lid.nix
+ { config, pkgs, ... }:
+ {
+ services.logind = {
+ lidSwitch = "suspend";
+ lidSwitchDocked = "ignore";
+ };
+ services.acpid = {
+ enable = true;
+ lidEventCommands =
+ ''
+ export PATH=$PATH:/run/current-system/sw/bin
+ export WAYLAND_DISPLAY=wayland-1
+ export XDG_RUNTIME_DIR=/run/user/1000
+ export SWAYSOCK=$(ls /run/user/1000/sway-ipc.* | head -n 1)
+
+ LID_STATE=$(cat /proc/acpi/button/lid/*/state | grep -q closed && echo "closed" || echo "open")
+ DOCKED=$(swaymsg -t get_outputs | grep -q 'HDMI\|DP' && echo "docked" || echo "undocked")
+
+ if [ "$LID_STATE" == "closed" ] && [ "$DOCKED" == "docked" ]; then
+ swaymsg output eDP-2 disable
+ else
+ swaymsg output eDP-2 enable
+ fi
+ '';
+ };
+ }
+#+end_src
+
*** Optional
:PROPERTIES:
@@ -6420,6 +6455,7 @@ Integrates 1password mostly. There are more options at [[#h:f0b2ea93-94c8-48d8-8
{ pkgs, ... }:
{
# boot.initrd.luks.yubikeySupport = true;
+ programs.browserpass.enable = true;
programs._1password.enable = true;
programs._1password-gui = {
enable = true;
@@ -6555,7 +6591,6 @@ This holds packages that I can use as provided, or with small modifications (as
picard-tools
audacity
sox
- google-chrome
# printing
cups
@@ -7663,270 +7698,270 @@ The rest of the related configuration is found here:
- [[#h:f93f66f9-6b8b-478e-b139-b2f382c1f25e][waybarupdate]]
#+begin_src nix :tangle profiles/common/home/waybar.nix
- { config, lib, pkgs, ... }:
- {
- programs.waybar = {
+{ config, lib, pkgs, ... }:
+{
+ programs.waybar = {
- enable = true;
- systemd = {
- enable = true;
- target = "sway-sessions.target";
+ enable = true;
+ systemd = {
+ enable = true;
+ target = "sway-sessions.target";
+ };
+ settings = {
+ mainBar = {
+ layer = "top";
+ position = "top";
+ modules-left = [ "sway/workspaces" "custom/outer-right-arrow-dark" "sway/window" ];
+ modules-center = [ "sway/mode" "privacy" "custom/github" "custom/configwarn" "custom/nix-updates" ];
+ "sway/mode" = {
+ format = "{}";
};
- settings = {
- mainBar = {
- layer = "top";
- position = "top";
- modules-left = [ "sway/workspaces" "custom/outer-right-arrow-dark" "sway/window" ];
- modules-center = [ "sway/mode" "privacy" "custom/github" "custom/configwarn" "custom/nix-updates" ];
- "sway/mode" = {
- format = "{}";
- };
- modules-right = config.swarselsystems.waybarModules;
+ modules-right = config.swarselsystems.waybarModules;
- "custom/pseudobat" = lib.mkIf (!config.swarselsystems.isLaptop) {
- format = "";
- on-click-right = "wlogout -p layer-shell";
- };
+ "custom/pseudobat" = lib.mkIf (!config.swarselsystems.isLaptop) {
+ format = "";
+ on-click-right = "wlogout -p layer-shell";
+ };
- "custom/configwarn" = {
- exec = "waybarupdate";
- interval = 60;
- };
+ "custom/configwarn" = {
+ exec = "waybarupdate";
+ interval = 60;
+ };
- "custom/scratchpad-indicator" = {
- interval = 3;
- exec = "swaymsg -t get_tree | jq 'recurse(.nodes[]) | first(select(.name==\"__i3_scratch\")) | .floating_nodes | length | select(. >= 1)'";
- format = "{} ";
- on-click = "swaymsg 'scratchpad show'";
- on-click-right = "swaymsg 'move scratchpad'";
- };
+ "custom/scratchpad-indicator" = {
+ interval = 3;
+ exec = "swaymsg -t get_tree | jq 'recurse(.nodes[]) | first(select(.name==\"__i3_scratch\")) | .floating_nodes | length | select(. >= 1)'";
+ format = "{} ";
+ on-click = "swaymsg 'scratchpad show'";
+ on-click-right = "swaymsg 'move scratchpad'";
+ };
- "custom/github" = {
- format = "{} ";
- return-type = "json";
- interval = 60;
- exec = "github-notifications";
- on-click = "xdg-open https://github.com/notifications";
- };
+ "custom/github" = {
+ format = "{} ";
+ return-type = "json";
+ interval = 60;
+ exec = "github-notifications";
+ on-click = "xdg-open https://github.com/notifications";
+ };
- "custom/nix-updates" = {
- exec = "update-checker";
- on-click = "update-checker && notify-send 'The system has been updated'";
- interval = "once";
- tooltip = true;
- return-type = "json";
- format = "{} {icon}";
- format-icon = {
- "has-updates" = "";
- "updated" = " ";
- };
- };
+ # "custom/nix-updates" = {
+ # exec = "update-checker";
+ # on-click = "update-checker && notify-send 'The system has been updated'";
+ # interval = "once";
+ # tooltip = true;
+ # return-type = "json";
+ # format = "{} {icon}";
+ # format-icon = {
+ # "has-updates" = "";
+ # "updated" = " ";
+ # };
+ # };
- idle_inhibitor = {
- format = "{icon}";
- format-icons = {
- activated = "";
- deactivated = "";
- };
- };
-
- "group/hardware" = {
- orientation = "inherit";
- drawer = {
- "transition-left-to-right" = false;
- };
- modules = [
- "tray"
- "temperature"
- "power-profiles-daemon"
- "custom/left-arrow-light"
- "custom/left-arrow-dark"
- "custom/scratchpad-indicator"
- "custom/left-arrow-light"
- "disk"
- "custom/left-arrow-dark"
- "memory"
- "custom/left-arrow-light"
- "cpu"
- "custom/left-arrow-dark"
- "backlight/slider"
- "idle_inhibitor"
- ];
- };
-
- "backlight/slider" = {
- min = 0;
- max = 100;
- orientation = "horizontal";
- device = "intel_backlight";
- };
-
- power-profiles-daemon = {
- format = "{icon}";
- tooltip-format = "Power profile: {profile}\nDriver: {driver}";
- tooltip = true;
- format-icons = {
- "default" = "";
- "performance" = "";
- "balanced" = "";
- "power-saver" = "";
- };
- };
-
- temperature = {
- hwmon-path = lib.mkIf (!config.swarselsystems.temperatureHwmon.isAbsolutePath) config.swarselsystems.temperatureHwmon.path;
- hwmon-path-abs = lib.mkIf config.swarselsystems.temperatureHwmon.isAbsolutePath config.swarselsystems.temperatureHwmon.path;
- input-filename = lib.mkIf config.swarselsystems.temperatureHwmon.isAbsolutePath config.swarselsystems.temperatureHwmon.input-filename;
- critical-threshold = 80;
- format-critical = " {temperatureC}°C";
- format = " {temperatureC}°C";
-
- };
-
- mpris = {
- format = "{player_icon} {title} [{position}/{length}]";
- format-paused = "{player_icon} {title} [{position}/{length}]";
- player-icons = {
- "default" = "▶ ";
- "mpv" = "🎵 ";
- "spotify" = " ";
- };
- status-icons = {
- "paused" = " ";
- };
- interval = 1;
- title-len = 20;
- artist-len = 20;
- album-len = 10;
- };
- "custom/left-arrow-dark" = {
- format = "";
- tooltip = false;
- };
- "custom/outer-left-arrow-dark" = {
- format = "";
- tooltip = false;
- };
- "custom/left-arrow-light" = {
- format = "";
- tooltip = false;
- };
- "custom/right-arrow-dark" = {
- format = "";
- tooltip = false;
- };
- "custom/outer-right-arrow-dark" = {
- format = "";
- tooltip = false;
- };
- "custom/right-arrow-light" = {
- format = "";
- tooltip = false;
- };
- "sway/workspaces" = {
- disable-scroll = true;
- format = "{name}";
- };
-
- "clock#1" = {
- min-length = 8;
- interval = 1;
- format = "{:%H:%M:%S}";
- # on-click-right= "gnome-clocks";
- tooltip-format = "{:%Y %B}\n{calendar}";
- };
-
- "clock#2" = {
- format = "{:%d. %B %Y}";
- # on-click-right= "gnome-clocks";
- tooltip-format = "{:%Y %B}\n{calendar}";
- };
-
- pulseaudio = {
- format = "{icon} {volume:2}%";
- format-bluetooth = "{icon} {volume}%";
- format-muted = "MUTE";
- format-icons = {
- headphones = "";
- default = [
- ""
- ""
- ];
- };
- scroll-step = 1;
- on-click = "pamixer -t";
- on-click-right = "pavucontrol";
- };
-
- memory = {
- interval = 5;
- format = " {}%";
- tooltip-format = "Memory: {used:0.1f}G/{total:0.1f}G\nSwap: {swapUsed}G/{swapTotal}G";
- };
- cpu = {
- format = config.swarselsystems.cpuString;
- min-length = 6;
- interval = 5;
- format-icons = [ "▁" "▂" "▃" "▄" "▅" "▆" "▇" "█" ];
- # on-click-right= "com.github.stsdc.monitor";
- on-click-right = "kitty -o confirm_os_window_close=0 btm";
-
- };
- "custom/vpn" = {
- format = "()";
- exec = "echo '{\"class\": \"connected\"}'";
- exec-if = "test -d /proc/sys/net/ipv4/conf/tun0";
- return-type = "json";
- interval = 5;
- };
- battery = {
- states = {
- "warning" = 60;
- "error" = 30;
- "critical" = 15;
- };
- interval = 5;
- format = "{icon} {capacity}%";
- format-charging = "{capacity}% ";
- format-plugged = "{capacity}% ";
- format-icons = [
- ""
- ""
- ""
- ""
- ""
- ];
- on-click-right = "wlogout -p layer-shell";
- };
- disk = {
- interval = 30;
- format = "Disk {percentage_used:2}%";
- path = "/";
- states = {
- "warning" = 80;
- "critical" = 90;
- };
- tooltip-format = "{used} used out of {total} on {path} ({percentage_used}%)\n{free} free on {path} ({percentage_free}%)";
- };
- tray = {
- icon-size = 20;
- };
- network = {
- interval = 5;
- format-wifi = "{signalStrength}% ";
- format-ethernet = "";
- format-linked = "{ifname} (No IP) ";
- format-disconnected = "Disconnected ⚠";
- format-alt = "{ifname}: {ipaddr}/{cidr}";
- tooltip-format-ethernet = "{ifname} via {gwaddr}: {essid} {ipaddr}/{cidr}\n\n⇡{bandwidthUpBytes} ⇣{bandwidthDownBytes}";
- tooltip-format-wifi = "{ifname} via {gwaddr}: {essid} {ipaddr}/{cidr} \n{signaldBm}dBm @ {frequency}MHz\n\n⇡{bandwidthUpBytes} ⇣{bandwidthDownBytes}";
- };
+ idle_inhibitor = {
+ format = "{icon}";
+ format-icons = {
+ activated = "";
+ deactivated = "";
};
};
- style = builtins.readFile ../../../programs/waybar/style.css;
+
+ "group/hardware" = {
+ orientation = "inherit";
+ drawer = {
+ "transition-left-to-right" = false;
+ };
+ modules = [
+ "tray"
+ "temperature"
+ "power-profiles-daemon"
+ "custom/left-arrow-light"
+ "custom/left-arrow-dark"
+ "custom/scratchpad-indicator"
+ "custom/left-arrow-light"
+ "disk"
+ "custom/left-arrow-dark"
+ "memory"
+ "custom/left-arrow-light"
+ "cpu"
+ "custom/left-arrow-dark"
+ "backlight/slider"
+ "idle_inhibitor"
+ ];
+ };
+
+ "backlight/slider" = {
+ min = 0;
+ max = 100;
+ orientation = "horizontal";
+ device = "intel_backlight";
+ };
+
+ power-profiles-daemon = {
+ format = "{icon}";
+ tooltip-format = "Power profile: {profile}\nDriver: {driver}";
+ tooltip = true;
+ format-icons = {
+ "default" = "";
+ "performance" = "";
+ "balanced" = "";
+ "power-saver" = "";
+ };
+ };
+
+ temperature = {
+ hwmon-path = lib.mkIf (!config.swarselsystems.temperatureHwmon.isAbsolutePath) config.swarselsystems.temperatureHwmon.path;
+ hwmon-path-abs = lib.mkIf config.swarselsystems.temperatureHwmon.isAbsolutePath config.swarselsystems.temperatureHwmon.path;
+ input-filename = lib.mkIf config.swarselsystems.temperatureHwmon.isAbsolutePath config.swarselsystems.temperatureHwmon.input-filename;
+ critical-threshold = 80;
+ format-critical = " {temperatureC}°C";
+ format = " {temperatureC}°C";
+
+ };
+
+ mpris = {
+ format = "{player_icon} {title} [{position}/{length}]";
+ format-paused = "{player_icon} {title} [{position}/{length}]";
+ player-icons = {
+ "default" = "▶ ";
+ "mpv" = "🎵 ";
+ "spotify" = " ";
+ };
+ status-icons = {
+ "paused" = " ";
+ };
+ interval = 1;
+ title-len = 20;
+ artist-len = 20;
+ album-len = 10;
+ };
+ "custom/left-arrow-dark" = {
+ format = "";
+ tooltip = false;
+ };
+ "custom/outer-left-arrow-dark" = {
+ format = "";
+ tooltip = false;
+ };
+ "custom/left-arrow-light" = {
+ format = "";
+ tooltip = false;
+ };
+ "custom/right-arrow-dark" = {
+ format = "";
+ tooltip = false;
+ };
+ "custom/outer-right-arrow-dark" = {
+ format = "";
+ tooltip = false;
+ };
+ "custom/right-arrow-light" = {
+ format = "";
+ tooltip = false;
+ };
+ "sway/workspaces" = {
+ disable-scroll = true;
+ format = "{name}";
+ };
+
+ "clock#1" = {
+ min-length = 8;
+ interval = 1;
+ format = "{:%H:%M:%S}";
+ # on-click-right= "gnome-clocks";
+ tooltip-format = "{:%Y %B}\n{calendar}";
+ };
+
+ "clock#2" = {
+ format = "{:%d. %B %Y}";
+ # on-click-right= "gnome-clocks";
+ tooltip-format = "{:%Y %B}\n{calendar}";
+ };
+
+ pulseaudio = {
+ format = "{icon} {volume:2}%";
+ format-bluetooth = "{icon} {volume}%";
+ format-muted = "MUTE";
+ format-icons = {
+ headphones = "";
+ default = [
+ ""
+ ""
+ ];
+ };
+ scroll-step = 1;
+ on-click = "pamixer -t";
+ on-click-right = "pavucontrol";
+ };
+
+ memory = {
+ interval = 5;
+ format = " {}%";
+ tooltip-format = "Memory: {used:0.1f}G/{total:0.1f}G\nSwap: {swapUsed}G/{swapTotal}G";
+ };
+ cpu = {
+ format = config.swarselsystems.cpuString;
+ min-length = 6;
+ interval = 5;
+ format-icons = [ "▁" "▂" "▃" "▄" "▅" "▆" "▇" "█" ];
+ # on-click-right= "com.github.stsdc.monitor";
+ on-click-right = "kitty -o confirm_os_window_close=0 btm";
+
+ };
+ "custom/vpn" = {
+ format = "()";
+ exec = "echo '{\"class\": \"connected\"}'";
+ exec-if = "test -d /proc/sys/net/ipv4/conf/tun0";
+ return-type = "json";
+ interval = 5;
+ };
+ battery = {
+ states = {
+ "warning" = 60;
+ "error" = 30;
+ "critical" = 15;
+ };
+ interval = 5;
+ format = "{icon} {capacity}%";
+ format-charging = "{capacity}% ";
+ format-plugged = "{capacity}% ";
+ format-icons = [
+ ""
+ ""
+ ""
+ ""
+ ""
+ ];
+ on-click-right = "wlogout -p layer-shell";
+ };
+ disk = {
+ interval = 30;
+ format = "Disk {percentage_used:2}%";
+ path = "/";
+ states = {
+ "warning" = 80;
+ "critical" = 90;
+ };
+ tooltip-format = "{used} used out of {total} on {path} ({percentage_used}%)\n{free} free on {path} ({percentage_free}%)";
+ };
+ tray = {
+ icon-size = 20;
+ };
+ network = {
+ interval = 5;
+ format-wifi = "{signalStrength}% ";
+ format-ethernet = "";
+ format-linked = "{ifname} (No IP) ";
+ format-disconnected = "Disconnected ⚠";
+ format-alt = "{ifname}: {ipaddr}/{cidr}";
+ tooltip-format-ethernet = "{ifname} via {gwaddr}: {essid} {ipaddr}/{cidr}\n\n⇡{bandwidthUpBytes} ⇣{bandwidthDownBytes}";
+ tooltip-format-wifi = "{ifname} via {gwaddr}: {essid} {ipaddr}/{cidr} \n{signaldBm}dBm @ {frequency}MHz\n\n⇡{bandwidthUpBytes} ⇣{bandwidthDownBytes}";
+ };
};
- }
+ };
+ style = builtins.readFile ../../../programs/waybar/style.css;
+ };
+}
#+end_src
**** Firefox
@@ -8249,6 +8284,10 @@ Currently, I am too lazy to explain every option here, but most of it is very se
"${modifier}+Ctrl+Shift+m" = "move container to workspace 11:M";
"${modifier}+Ctrl+s" = "workspace 12:S";
"${modifier}+Ctrl+Shift+s" = "move container to workspace 12:S";
+ "${modifier}+Ctrl+e" = "workspace 13:E";
+ "${modifier}+Ctrl+Shift+e" = "move container to workspace 13:E";
+ "${modifier}+Ctrl+t" = "workspace 14:T";
+ "${modifier}+Ctrl+Shift+t" = "move container to workspace 14:T";
"${modifier}+Left" = "focus left";
"${modifier}+Right" = "focus right";
"${modifier}+Down" = "focus down";
@@ -8355,6 +8394,12 @@ Currently, I am too lazy to explain every option here, but most of it is very se
app_id = "firefox";
};
}
+ {
+ command = "opacity 0.99";
+ criteria = {
+ app_id = "chromium-browser";
+ };
+ }
{
command = "sticky enable, shadows enable";
criteria = {
@@ -8561,51 +8606,72 @@ The rest of the settings is at [[#h:bbf2ecb6-c8ff-4462-b5d5-d45b28604ddf][work]]
{
home.packages = with pkgs; [
stable.teams-for-linux
- google-chrome
shellcheck
dig
docker
];
- programs.ssh = {
- matchBlocks = {
- "uc" = {
- hostname = "uc.clip.vbc.ac.at";
- user = "stack";
- };
- "uc-stg" = {
- hostname = "uc.staging.clip.vbc.ac.at";
- user = "stack";
- };
- "cbe" = {
- hostname = "cbe.vbc.ac.at";
- user = "dc_adm_schwarzaeugl";
- };
- "cbe-stg" = {
- hostname = "cbe.staging.vbc.ac.at";
- user = "dc_adm_schwarzaeugl";
- };
- "*.vbc.ac.at" = {
- user = "dc_adm_schwarzaeugl";
+ programs = {
+ git.userEmail = "leon.schwarzaeugl@imba.oeaw.ac.at";
+
+ ssh = {
+ matchBlocks = {
+ "uc" = {
+ hostname = "uc.clip.vbc.ac.at";
+ user = "stack";
+ };
+ "uc-stg" = {
+ hostname = "uc.staging.clip.vbc.ac.at";
+ user = "stack";
+ };
+ "cbe" = {
+ hostname = "cbe.vbc.ac.at";
+ user = "dc_adm_schwarzaeugl";
+ };
+ "cbe-stg" = {
+ hostname = "cbe.staging.vbc.ac.at";
+ user = "dc_adm_schwarzaeugl";
+ };
+ "*.vbc.ac.at" = {
+ user = "dc_adm_schwarzaeugl";
+ };
};
};
- };
- programs.firefox = {
- profiles = {
- dc_adm = {
- id = 1;
- <>
- };
- cl_adm = {
- id = 2;
- <>
- };
- ws_adm = {
- id = 3;
- <>
+ firefox = {
+ profiles = {
+ dc_adm = {
+ id = 1;
+ <>
+ };
+ cl_adm = {
+ id = 2;
+ <>
+ };
+ ws_adm = {
+ id = 3;
+ <>
+ };
};
};
+
+ chromium = {
+ enable = true;
+ package = pkgs.chromium;
+
+ extensions = [
+ # 1password
+ "gejiddohjgogedgjnonbofjigllpkmbf"
+ # dark reader
+ "eimadpbcbfnmbkopoojfekhnkhdbieeh"
+ # ublock origin
+ "cjpalhdlnbpafiamejdnhcphjbkeiagm"
+ # i still dont care about cookies
+ "edibdbjcniadpccecjdfdjjppcpchdlm"
+ # browserpass
+ "naepdomgkenhinolocfifgehidddafch"
+ ];
+ };
};
xdg.desktopEntries =
@@ -8637,7 +8703,6 @@ The rest of the settings is at [[#h:bbf2ecb6-c8ff-4462-b5d5-d45b28604ddf][work]]
};
};
- programs.git.userEmail = "leon.schwarzaeugl@imba.oeaw.ac.at";
}
diff --git a/profiles/common/home/packages.nix b/profiles/common/home/packages.nix
index a78023e..97de800 100644
--- a/profiles/common/home/packages.nix
+++ b/profiles/common/home/packages.nix
@@ -12,7 +12,6 @@
picard-tools
audacity
sox
- google-chrome
# printing
cups
diff --git a/profiles/common/home/sway.nix b/profiles/common/home/sway.nix
index daa0e25..78936dc 100644
--- a/profiles/common/home/sway.nix
+++ b/profiles/common/home/sway.nix
@@ -80,6 +80,10 @@ in
"${modifier}+Ctrl+Shift+m" = "move container to workspace 11:M";
"${modifier}+Ctrl+s" = "workspace 12:S";
"${modifier}+Ctrl+Shift+s" = "move container to workspace 12:S";
+ "${modifier}+Ctrl+e" = "workspace 13:E";
+ "${modifier}+Ctrl+Shift+e" = "move container to workspace 13:E";
+ "${modifier}+Ctrl+t" = "workspace 14:T";
+ "${modifier}+Ctrl+Shift+t" = "move container to workspace 14:T";
"${modifier}+Left" = "focus left";
"${modifier}+Right" = "focus right";
"${modifier}+Down" = "focus down";
@@ -186,6 +190,12 @@ in
app_id = "firefox";
};
}
+ {
+ command = "opacity 0.99";
+ criteria = {
+ app_id = "chromium-browser";
+ };
+ }
{
command = "sticky enable, shadows enable";
criteria = {
diff --git a/profiles/common/home/waybar.nix b/profiles/common/home/waybar.nix
index 0b922a3..339b139 100644
--- a/profiles/common/home/waybar.nix
+++ b/profiles/common/home/waybar.nix
@@ -45,18 +45,18 @@
on-click = "xdg-open https://github.com/notifications";
};
- "custom/nix-updates" = {
- exec = "update-checker";
- on-click = "update-checker && notify-send 'The system has been updated'";
- interval = "once";
- tooltip = true;
- return-type = "json";
- format = "{} {icon}";
- format-icon = {
- "has-updates" = "";
- "updated" = " ";
- };
- };
+ # "custom/nix-updates" = {
+ # exec = "update-checker";
+ # on-click = "update-checker && notify-send 'The system has been updated'";
+ # interval = "once";
+ # tooltip = true;
+ # return-type = "json";
+ # format = "{} {icon}";
+ # format-icon = {
+ # "has-updates" = "";
+ # "updated" = " ";
+ # };
+ # };
idle_inhibitor = {
format = "{icon}";
diff --git a/profiles/common/nixos/blueman.nix b/profiles/common/nixos/blueman.nix
index 6e1cdc1..63ce655 100644
--- a/profiles/common/nixos/blueman.nix
+++ b/profiles/common/nixos/blueman.nix
@@ -1,4 +1,5 @@
_:
{
services.blueman.enable = true;
+ services.hardware.bolt.enable = true;
}
diff --git a/profiles/common/nixos/default.nix b/profiles/common/nixos/default.nix
index 3700531..483b7d1 100644
--- a/profiles/common/nixos/default.nix
+++ b/profiles/common/nixos/default.nix
@@ -34,6 +34,7 @@
./xdg-portal.nix
# ./yubikey-touch-detector.nix
./safeeyes.nix
+ ./lid.nix
];
nix =
diff --git a/profiles/common/nixos/hardware.nix b/profiles/common/nixos/hardware.nix
index 456cff3..45afc54 100644
--- a/profiles/common/nixos/hardware.nix
+++ b/profiles/common/nixos/hardware.nix
@@ -15,7 +15,6 @@
keyboard.qmk.enable = true;
-
pulseaudio = {
enable = lib.mkIf (!config.services.pipewire.enable) true;
package = pkgs.pulseaudioFull;
diff --git a/profiles/common/nixos/lid.nix b/profiles/common/nixos/lid.nix
new file mode 100644
index 0000000..33e3d32
--- /dev/null
+++ b/profiles/common/nixos/lid.nix
@@ -0,0 +1,26 @@
+{ config, pkgs, ... }:
+{
+ services.logind = {
+ lidSwitch = "suspend";
+ lidSwitchDocked = "ignore";
+ };
+ services.acpid = {
+ enable = true;
+ lidEventCommands =
+ ''
+ export PATH=$PATH:/run/current-system/sw/bin
+ export WAYLAND_DISPLAY=wayland-1
+ export XDG_RUNTIME_DIR=/run/user/1000
+ export SWAYSOCK=$(ls /run/user/1000/sway-ipc.* | head -n 1)
+
+ LID_STATE=$(cat /proc/acpi/button/lid/*/state | grep -q closed && echo "closed" || echo "open")
+ DOCKED=$(swaymsg -t get_outputs | grep -q 'HDMI\|DP' && echo "docked" || echo "undocked")
+
+ if [ "$LID_STATE" == "closed" ] && [ "$DOCKED" == "docked" ]; then
+ swaymsg output eDP-2 disable
+ else
+ swaymsg output eDP-2 enable
+ fi
+ '';
+ };
+}
diff --git a/profiles/common/nixos/pipewire.nix b/profiles/common/nixos/pipewire.nix
index b557f03..d4e29f5 100644
--- a/profiles/common/nixos/pipewire.nix
+++ b/profiles/common/nixos/pipewire.nix
@@ -6,6 +6,7 @@ _: {
pulse.enable = true;
jack.enable = true;
audio.enable = true;
+ wireplumber.enable = true;
alsa = {
enable = true;
support32Bit = true;
diff --git a/profiles/common/nixos/users.nix b/profiles/common/nixos/users.nix
index a68c3e3..205d1d2 100644
--- a/profiles/common/nixos/users.nix
+++ b/profiles/common/nixos/users.nix
@@ -6,7 +6,7 @@
isNormalUser = true;
description = "Leon S";
hashedPasswordFile = lib.mkIf (!config.swarselsystems.initialSetup) config.sops.secrets.swarseluser.path;
- extraGroups = [ "networkmanager" "root" "docker" "wheel" "lp" "audio" "video" "vboxusers" "scanner" ];
+ extraGroups = [ "networkmanager" "docker" "wheel" "lp" "audio" "video" "vboxusers" "scanner" ];
packages = with pkgs; [ ];
};
};
diff --git a/profiles/optional/home/work.nix b/profiles/optional/home/work.nix
index 3fc0368..7a3299f 100644
--- a/profiles/optional/home/work.nix
+++ b/profiles/optional/home/work.nix
@@ -3,270 +3,291 @@
{
home.packages = with pkgs; [
stable.teams-for-linux
- google-chrome
shellcheck
dig
docker
];
- programs.ssh = {
- matchBlocks = {
- "uc" = {
- hostname = "uc.clip.vbc.ac.at";
- user = "stack";
- };
- "uc-stg" = {
- hostname = "uc.staging.clip.vbc.ac.at";
- user = "stack";
- };
- "cbe" = {
- hostname = "cbe.vbc.ac.at";
- user = "dc_adm_schwarzaeugl";
- };
- "cbe-stg" = {
- hostname = "cbe.staging.vbc.ac.at";
- user = "dc_adm_schwarzaeugl";
- };
- "*.vbc.ac.at" = {
- user = "dc_adm_schwarzaeugl";
+ programs = {
+ git.userEmail = "leon.schwarzaeugl@imba.oeaw.ac.at";
+
+ ssh = {
+ matchBlocks = {
+ "uc" = {
+ hostname = "uc.clip.vbc.ac.at";
+ user = "stack";
+ };
+ "uc-stg" = {
+ hostname = "uc.staging.clip.vbc.ac.at";
+ user = "stack";
+ };
+ "cbe" = {
+ hostname = "cbe.vbc.ac.at";
+ user = "dc_adm_schwarzaeugl";
+ };
+ "cbe-stg" = {
+ hostname = "cbe.staging.vbc.ac.at";
+ user = "dc_adm_schwarzaeugl";
+ };
+ "*.vbc.ac.at" = {
+ user = "dc_adm_schwarzaeugl";
+ };
};
};
- };
- programs.firefox = {
- profiles = {
- dc_adm = {
- id = 1;
+ firefox = {
+ profiles = {
+ dc_adm = {
+ id = 1;
- isDefault = false;
- userChrome = builtins.readFile ../../../programs/firefox/chrome/userChrome.css;
- extensions = with pkgs.nur.repos.rycee.firefox-addons; [
- tridactyl
- browserpass
- clearurls
- darkreader
- enhancer-for-youtube
- istilldontcareaboutcookies
- translate-web-pages
- ublock-origin
- reddit-enhancement-suite
- sponsorblock
- web-archives
- onepassword-password-manager
- single-file
- widegithub
- enhanced-github
- unpaywall
- don-t-fuck-with-paste
- plasma-integration
- ];
+ isDefault = false;
+ userChrome = builtins.readFile ../../../programs/firefox/chrome/userChrome.css;
+ extensions = with pkgs.nur.repos.rycee.firefox-addons; [
+ tridactyl
+ browserpass
+ clearurls
+ darkreader
+ enhancer-for-youtube
+ istilldontcareaboutcookies
+ translate-web-pages
+ ublock-origin
+ reddit-enhancement-suite
+ sponsorblock
+ web-archives
+ onepassword-password-manager
+ single-file
+ widegithub
+ enhanced-github
+ unpaywall
+ don-t-fuck-with-paste
+ plasma-integration
+ ];
- search.engines = {
- "Nix Packages" = {
- urls = [{
- template = "https://search.nixos.org/packages";
- params = [
- { name = "type"; value = "packages"; }
- { name = "query"; value = "{searchTerms}"; }
- ];
- }];
- icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
- definedAliases = [ "@np" ];
+ search.engines = {
+ "Nix Packages" = {
+ urls = [{
+ template = "https://search.nixos.org/packages";
+ params = [
+ { name = "type"; value = "packages"; }
+ { name = "query"; value = "{searchTerms}"; }
+ ];
+ }];
+ icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
+ definedAliases = [ "@np" ];
+ };
+
+ "NixOS Wiki" = {
+ urls = [{
+ template = "https://nixos.wiki/index.php?search={searchTerms}";
+ }];
+ iconUpdateURL = "https://nixos.wiki/favicon.png";
+ updateInterval = 24 * 60 * 60 * 1000; # every day
+ definedAliases = [ "@nw" ];
+ };
+
+ "NixOS Options" = {
+ urls = [{
+ template = "https://search.nixos.org/options";
+ params = [
+ { name = "query"; value = "{searchTerms}"; }
+ ];
+ }];
+
+ icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
+ definedAliases = [ "@no" ];
+ };
+
+ "Home Manager Options" = {
+ urls = [{
+ template = "https://home-manager-options.extranix.com/";
+ params = [
+ { name = "query"; value = "{searchTerms}"; }
+ ];
+ }];
+
+ icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
+ definedAliases = [ "@hm" "@ho" "@hmo" ];
+ };
+
+ "Google".metaData.alias = "@g";
};
+ search.force = true; # this is required because otherwise the search.json.mozlz4 symlink gets replaced on every firefox restart
- "NixOS Wiki" = {
- urls = [{
- template = "https://nixos.wiki/index.php?search={searchTerms}";
- }];
- iconUpdateURL = "https://nixos.wiki/favicon.png";
- updateInterval = 24 * 60 * 60 * 1000; # every day
- definedAliases = [ "@nw" ];
- };
-
- "NixOS Options" = {
- urls = [{
- template = "https://search.nixos.org/options";
- params = [
- { name = "query"; value = "{searchTerms}"; }
- ];
- }];
-
- icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
- definedAliases = [ "@no" ];
- };
-
- "Home Manager Options" = {
- urls = [{
- template = "https://home-manager-options.extranix.com/";
- params = [
- { name = "query"; value = "{searchTerms}"; }
- ];
- }];
-
- icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
- definedAliases = [ "@hm" "@ho" "@hmo" ];
- };
-
- "Google".metaData.alias = "@g";
};
- search.force = true; # this is required because otherwise the search.json.mozlz4 symlink gets replaced on every firefox restart
+ cl_adm = {
+ id = 2;
- };
- cl_adm = {
- id = 2;
+ isDefault = false;
+ userChrome = builtins.readFile ../../../programs/firefox/chrome/userChrome.css;
+ extensions = with pkgs.nur.repos.rycee.firefox-addons; [
+ tridactyl
+ browserpass
+ clearurls
+ darkreader
+ enhancer-for-youtube
+ istilldontcareaboutcookies
+ translate-web-pages
+ ublock-origin
+ reddit-enhancement-suite
+ sponsorblock
+ web-archives
+ onepassword-password-manager
+ single-file
+ widegithub
+ enhanced-github
+ unpaywall
+ don-t-fuck-with-paste
+ plasma-integration
+ ];
- isDefault = false;
- userChrome = builtins.readFile ../../../programs/firefox/chrome/userChrome.css;
- extensions = with pkgs.nur.repos.rycee.firefox-addons; [
- tridactyl
- browserpass
- clearurls
- darkreader
- enhancer-for-youtube
- istilldontcareaboutcookies
- translate-web-pages
- ublock-origin
- reddit-enhancement-suite
- sponsorblock
- web-archives
- onepassword-password-manager
- single-file
- widegithub
- enhanced-github
- unpaywall
- don-t-fuck-with-paste
- plasma-integration
- ];
+ search.engines = {
+ "Nix Packages" = {
+ urls = [{
+ template = "https://search.nixos.org/packages";
+ params = [
+ { name = "type"; value = "packages"; }
+ { name = "query"; value = "{searchTerms}"; }
+ ];
+ }];
+ icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
+ definedAliases = [ "@np" ];
+ };
- search.engines = {
- "Nix Packages" = {
- urls = [{
- template = "https://search.nixos.org/packages";
- params = [
- { name = "type"; value = "packages"; }
- { name = "query"; value = "{searchTerms}"; }
- ];
- }];
- icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
- definedAliases = [ "@np" ];
+ "NixOS Wiki" = {
+ urls = [{
+ template = "https://nixos.wiki/index.php?search={searchTerms}";
+ }];
+ iconUpdateURL = "https://nixos.wiki/favicon.png";
+ updateInterval = 24 * 60 * 60 * 1000; # every day
+ definedAliases = [ "@nw" ];
+ };
+
+ "NixOS Options" = {
+ urls = [{
+ template = "https://search.nixos.org/options";
+ params = [
+ { name = "query"; value = "{searchTerms}"; }
+ ];
+ }];
+
+ icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
+ definedAliases = [ "@no" ];
+ };
+
+ "Home Manager Options" = {
+ urls = [{
+ template = "https://home-manager-options.extranix.com/";
+ params = [
+ { name = "query"; value = "{searchTerms}"; }
+ ];
+ }];
+
+ icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
+ definedAliases = [ "@hm" "@ho" "@hmo" ];
+ };
+
+ "Google".metaData.alias = "@g";
};
+ search.force = true; # this is required because otherwise the search.json.mozlz4 symlink gets replaced on every firefox restart
- "NixOS Wiki" = {
- urls = [{
- template = "https://nixos.wiki/index.php?search={searchTerms}";
- }];
- iconUpdateURL = "https://nixos.wiki/favicon.png";
- updateInterval = 24 * 60 * 60 * 1000; # every day
- definedAliases = [ "@nw" ];
- };
-
- "NixOS Options" = {
- urls = [{
- template = "https://search.nixos.org/options";
- params = [
- { name = "query"; value = "{searchTerms}"; }
- ];
- }];
-
- icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
- definedAliases = [ "@no" ];
- };
-
- "Home Manager Options" = {
- urls = [{
- template = "https://home-manager-options.extranix.com/";
- params = [
- { name = "query"; value = "{searchTerms}"; }
- ];
- }];
-
- icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
- definedAliases = [ "@hm" "@ho" "@hmo" ];
- };
-
- "Google".metaData.alias = "@g";
};
- search.force = true; # this is required because otherwise the search.json.mozlz4 symlink gets replaced on every firefox restart
+ ws_adm = {
+ id = 3;
- };
- ws_adm = {
- id = 3;
+ isDefault = false;
+ userChrome = builtins.readFile ../../../programs/firefox/chrome/userChrome.css;
+ extensions = with pkgs.nur.repos.rycee.firefox-addons; [
+ tridactyl
+ browserpass
+ clearurls
+ darkreader
+ enhancer-for-youtube
+ istilldontcareaboutcookies
+ translate-web-pages
+ ublock-origin
+ reddit-enhancement-suite
+ sponsorblock
+ web-archives
+ onepassword-password-manager
+ single-file
+ widegithub
+ enhanced-github
+ unpaywall
+ don-t-fuck-with-paste
+ plasma-integration
+ ];
- isDefault = false;
- userChrome = builtins.readFile ../../../programs/firefox/chrome/userChrome.css;
- extensions = with pkgs.nur.repos.rycee.firefox-addons; [
- tridactyl
- browserpass
- clearurls
- darkreader
- enhancer-for-youtube
- istilldontcareaboutcookies
- translate-web-pages
- ublock-origin
- reddit-enhancement-suite
- sponsorblock
- web-archives
- onepassword-password-manager
- single-file
- widegithub
- enhanced-github
- unpaywall
- don-t-fuck-with-paste
- plasma-integration
- ];
+ search.engines = {
+ "Nix Packages" = {
+ urls = [{
+ template = "https://search.nixos.org/packages";
+ params = [
+ { name = "type"; value = "packages"; }
+ { name = "query"; value = "{searchTerms}"; }
+ ];
+ }];
+ icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
+ definedAliases = [ "@np" ];
+ };
- search.engines = {
- "Nix Packages" = {
- urls = [{
- template = "https://search.nixos.org/packages";
- params = [
- { name = "type"; value = "packages"; }
- { name = "query"; value = "{searchTerms}"; }
- ];
- }];
- icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
- definedAliases = [ "@np" ];
+ "NixOS Wiki" = {
+ urls = [{
+ template = "https://nixos.wiki/index.php?search={searchTerms}";
+ }];
+ iconUpdateURL = "https://nixos.wiki/favicon.png";
+ updateInterval = 24 * 60 * 60 * 1000; # every day
+ definedAliases = [ "@nw" ];
+ };
+
+ "NixOS Options" = {
+ urls = [{
+ template = "https://search.nixos.org/options";
+ params = [
+ { name = "query"; value = "{searchTerms}"; }
+ ];
+ }];
+
+ icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
+ definedAliases = [ "@no" ];
+ };
+
+ "Home Manager Options" = {
+ urls = [{
+ template = "https://home-manager-options.extranix.com/";
+ params = [
+ { name = "query"; value = "{searchTerms}"; }
+ ];
+ }];
+
+ icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
+ definedAliases = [ "@hm" "@ho" "@hmo" ];
+ };
+
+ "Google".metaData.alias = "@g";
};
+ search.force = true; # this is required because otherwise the search.json.mozlz4 symlink gets replaced on every firefox restart
- "NixOS Wiki" = {
- urls = [{
- template = "https://nixos.wiki/index.php?search={searchTerms}";
- }];
- iconUpdateURL = "https://nixos.wiki/favicon.png";
- updateInterval = 24 * 60 * 60 * 1000; # every day
- definedAliases = [ "@nw" ];
- };
-
- "NixOS Options" = {
- urls = [{
- template = "https://search.nixos.org/options";
- params = [
- { name = "query"; value = "{searchTerms}"; }
- ];
- }];
-
- icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
- definedAliases = [ "@no" ];
- };
-
- "Home Manager Options" = {
- urls = [{
- template = "https://home-manager-options.extranix.com/";
- params = [
- { name = "query"; value = "{searchTerms}"; }
- ];
- }];
-
- icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
- definedAliases = [ "@hm" "@ho" "@hmo" ];
- };
-
- "Google".metaData.alias = "@g";
};
- search.force = true; # this is required because otherwise the search.json.mozlz4 symlink gets replaced on every firefox restart
-
};
};
+
+ chromium = {
+ enable = true;
+ package = pkgs.chromium;
+
+ extensions = [
+ # 1password
+ "gejiddohjgogedgjnonbofjigllpkmbf"
+ # dark reader
+ "eimadpbcbfnmbkopoojfekhnkhdbieeh"
+ # ublock origin
+ "cjpalhdlnbpafiamejdnhcphjbkeiagm"
+ # i still dont care about cookies
+ "edibdbjcniadpccecjdfdjjppcpchdlm"
+ # browserpass
+ "naepdomgkenhinolocfifgehidddafch"
+ ];
+ };
};
xdg.desktopEntries =
@@ -298,6 +319,5 @@
};
};
- programs.git.userEmail = "leon.schwarzaeugl@imba.oeaw.ac.at";
}
diff --git a/profiles/optional/nixos/work.nix b/profiles/optional/nixos/work.nix
index d694976..d9685ed 100644
--- a/profiles/optional/nixos/work.nix
+++ b/profiles/optional/nixos/work.nix
@@ -1,6 +1,7 @@
{ pkgs, ... }:
{
# boot.initrd.luks.yubikeySupport = true;
+ programs.browserpass.enable = true;
programs._1password.enable = true;
programs._1password-gui = {
enable = true;