diff --git a/modules/home/waybar/default.nix b/modules/home/waybar/default.nix
index 6999893..fda84c4 100644
--- a/modules/home/waybar/default.nix
+++ b/modules/home/waybar/default.nix
@@ -22,461 +22,495 @@
home.file = {
"/home/${username}/.config/waybar/config" = {
text = ''
- [{
- "layer": "top",
- "position": "top",
+ [{
+ "layer": "top",
+ "position": "top",
- "modules-left": [
- "privacy",
- "group/network",
- "custom/spotify",
- "tray",
- ],
+ "modules-left": [
+ "privacy",
+ "network",
+ "custom/vpn",
+ "custom/spotify",
+ "custom/devices",
+ "tray",
+ ],
- "modules-center": [
- "hyprland/workspaces",
- ],
+ "modules-center": [
+ "hyprland/workspaces",
+ ],
- "modules-right": [
- "custom/yubikey#icon",
- "custom/yubikey#data",
- "group/hardware",
- "group/resources",
- "bluetooth",
- // "wireplumber",
- "group/audio",
- "battery",
- "group/clock"
- ],
+ "modules-right": [
+ "custom/yubikey#icon",
+ "custom/yubikey#data",
+ "group/hardware",
+ "group/resources",
+ "bluetooth",
+ // "wireplumber",
+ "group/audio",
+ "group/battery",
+ "group/clock"
+ ],
- "hyprland/window": {
- "format": "{}",
- "rewrite": {
- "(.*) - zsh": "> [$1]"
- },
- "separate-outputs": true
- },
+ "hyprland/window": {
+ "format": "{}",
+ "rewrite": {
+ "(.*) - zsh": "> [$1]"
+ },
+ "separate-outputs": true
+ },
- "sway/workspaces": {
- "all-outputs": true,
- "disable-scroll": true,
- "format": "{name}"
- },
+ "sway/workspaces": {
+ "all-outputs": true,
+ "disable-scroll": true,
+ "format": "{name}"
+ },
- "hyprland/workspaces": {
- "all-outputs": true,
- "disable-scroll": true,
- "format": "{name}"
- },
+ "hyprland/workspaces": {
+ "all-outputs": true,
+ "disable-scroll": true,
+ "format": "{name}"
+ },
- "group/network": {
- "orientation": "horizontal",
- "modules": [
- "network",
- "custom/vpn",
- ],
- "drawer": {
- "transition-left-to-right": true,
- "transition-duration": 500
- }
- },
-
- "network": {
- "format": " {ifname}",
- "format-wifi": " {ipaddr}/{cidr} {signalStrength}%",
- "format-ethernet": " {ipaddr}/{cidr}",
- "format-disconnected": "",
- "tooltip-format": "{ifname} via {gwaddr}",
- "tooltip-format-wifi": "{essid} ({signalStrength}%)",
- "tooltip-format-ethernet": "{ifname}",
- "tooltip-format-disconnected": "Disconnected"
- },
+ // "group/network": {
+ // "orientation": "horizontal",
+ // "modules": [
+ // "network",
+ // "custom/vpn",
+ // ],
+ // "drawer": {
+ // "transition-left-to-right": true,
+ // "transition-duration": 500
+ // }
+ // },
+
+ "network": {
+ "format": " {ifname}",
+ "format-wifi": " {ipaddr}/{cidr} {signalStrength}%",
+ "format-ethernet": " {ipaddr}/{cidr}",
+ "format-disconnected": "",
+ "tooltip-format": "{ifname} via {gwaddr}",
+ "tooltip-format-wifi": "{essid} ({signalStrength}%)",
+ "tooltip-format-ethernet": "{ifname}",
+ "tooltip-format-disconnected": "Disconnected"
+ },
- "custom/spotify": {
- "interval": 1,
- "return-type": "json",
- "exec": "~/.local/bin/waybar-music",
- "on-click": "playerctl play-pause",
- "escape": true
- },
+ "custom/vpn": {
+ "format": "{icon}",
+ "tooltip-format": "{text}",
+ "format-icons": [ "","" ],
+ "return-type": "json",
+ "exec": "~/.local/bin/waybar-vpn",
+ "interval": 30
+ },
- // "custom/vpn": {
- // "format": "{icon} VPN {}",
- // "format-icons": {
- // "connected": "",
- // "disconnected": ""
- // },
- // "return-type": "json",
- // "exec": "/usr/local/bin/waybar-vpn current",
- // "on-click": "/usr/local/bin/waybar-vpn connect",
- // "on-click-middle": "/usr/local/bin/waybar-vpn disconnect",
- // "on-click-right": "/usr/local/bin/get-public-ip-info",
- // "interval": 30
- // },
+ "custom/spotify": {
+ "interval": 5,
+ "return-type": "json",
+ "exec": "~/.local/bin/waybar-music",
+ "on-click": "playerctl play-pause",
+ "escape": true
+ },
- "privacy": {
- "icon-spacing": 8,
- "icon-size": 14,
- "transition-duration": 250,
- "modules": [
- {
- "type": "screenshare",
- "tooltip": true,
- "tooltip-icon-size": 24
- },
- {
- "type": "audio-out",
- "tooltip": true,
- "tooltip-icon-size": 24
- },
- {
- "type": "audio-in",
- "tooltip": true,
- "tooltip-icon-size": 24
- }
- ]
- },
+ "custom/devices": {
+ "interval": 60,
+ // "return-type": "json",
+ "exec": "~/.local/bin/waybar-devices",
+ },
- "tray": {
- "icon-size": 12,
- "spacing": 0
- },
+ "privacy": {
+ "icon-spacing": 8,
+ "icon-size": 14,
+ "transition-duration": 250,
+ "modules": [
+ {
+ "type": "screenshare",
+ "tooltip": true,
+ "tooltip-icon-size": 24
+ },
+ {
+ "type": "audio-out",
+ "tooltip": true,
+ "tooltip-icon-size": 24
+ },
+ {
+ "type": "audio-in",
+ "tooltip": true,
+ "tooltip-icon-size": 24
+ }
+ ]
+ },
- "sway/mode": {
- "format": " {}",
- "tooltip": false
- },
+ "tray": {
+ "icon-size": 12,
+ "spacing": 0
+ },
- "custom/yubikey#icon": {
- "exec": "~/.local/bin/waybar-yubikey 0",
- "return-type": "json"
- },
+ "sway/mode": {
+ "format": " {}",
+ "tooltip": false
+ },
- "custom/yubikey#data": {
- "exec": "~/.local/bin/waybar-yubikey 1",
- "return-type": "json"
- },
+ "custom/yubikey#icon": {
+ "exec": "~/.local/bin/waybar-yubikey 0",
+ "return-type": "json"
+ },
- "group/hardware": {
- "orientation": "horizontal",
- "modules": [
- "cpu",
- "temperature#cpu",
- "temperature#gpu",
- "temperature#nvme",
- "temperature#wifi"
- ],
- "drawer": {
- "transition-left-to-right": false,
- "transition-duration": 500
- }
- },
+ "custom/yubikey#data": {
+ "exec": "~/.local/bin/waybar-yubikey 1",
+ "return-type": "json"
+ },
- "cpu": {
- "interval": 30,
- "format": " {avg_frequency:3.2f}GHz {usage}%",
- "states": {
- "warning": 70,
- "critical": 90
- },
- },
+ "group/hardware": {
+ "orientation": "horizontal",
+ "modules": [
+ "cpu",
+ "temperature#cpu",
+ "temperature#gpu",
+ "temperature#nvme",
+ "temperature#wifi"
+ ],
+ "drawer": {
+ "transition-left-to-right": false,
+ "transition-duration": 500
+ }
+ },
- "temperature#cpu": {
- "hwmon-path": "/sys/class/hwmon/hwmon5/temp1_input",
- "critical-threshold": 80,
- "format": " CPU {temperatureC}°C"
- },
+ "cpu": {
+ "interval": 30,
+ "format": " {avg_frequency:3.2f}GHz {usage}%",
+ "states": {
+ "warning": 70,
+ "critical": 90
+ },
+ },
- "temperature#gpu": {
- "hwmon-path": "/sys/class/hwmon/hwmon0/temp1_input",
- "critical-threshold": 80,
- "format": "· GPU {temperatureC}°C"
- },
+ "temperature#cpu": {
+ "hwmon-path": "/sys/class/hwmon/hwmon5/temp1_input",
+ "critical-threshold": 80,
+ "format": " CPU {temperatureC}°C"
+ },
- "temperature#nvme": {
- "hwmon-path": "/sys/class/hwmon/hwmon1/temp1_input",
- "critical-threshold": 80,
- "format": "· NVMe {temperatureC}°C"
- },
+ "temperature#gpu": {
+ "hwmon-path": "/sys/class/hwmon/hwmon0/temp1_input",
+ "critical-threshold": 80,
+ "format": "· GPU {temperatureC}°C"
+ },
- "temperature#wifi": {
- "hwmon-path": "/sys/class/hwmon/hwmon11/temp1_input",
- "critical-threshold": 80,
- "format": "· WiFi {temperatureC}°C"
- },
+ "temperature#nvme": {
+ "hwmon-path": "/sys/class/hwmon/hwmon1/temp1_input",
+ "critical-threshold": 80,
+ "format": "· NVMe {temperatureC}°C"
+ },
- "group/resources": {
- "orientation": "horizontal",
- "modules": [ "memory", "disk#root" ],
- "drawer": {
- "transition-left-to-right": false,
- "transition-duration": 500
- }
- },
+ "temperature#wifi": {
+ "hwmon-path": "/sys/class/hwmon/hwmon11/temp1_input",
+ "critical-threshold": 80,
+ "format": "· WiFi {temperatureC}°C"
+ },
- "memory": {
- "interval": 60,
- "format": " {used:3.1f}GiB/{total:3.1f}GiB"
- },
+ "group/resources": {
+ "orientation": "horizontal",
+ "modules": [ "memory", "disk#root" ],
+ "drawer": {
+ "transition-left-to-right": false,
+ "transition-duration": 500
+ }
+ },
- "disk#root": {
- "interval": 360,
- "format": " {used}/{total}",
- "path": "/"
- },
+ "memory": {
+ "interval": 60,
+ "format": " {used:3.1f}GiB/{total:3.1f}GiB"
+ },
- "bluetooth": {
- // "controller": "controller1",
- "on-click": "~/.local/bin/waybar-bluetooth toggle",
- "format": "",
- "format-disabled": "",
- "format-connected": "",
- "format-connected-battery": " {device_battery_percentage}%",
- "tooltip-format": "{controller_alias}\t\t[{controller_address}]",
- "tooltip-format-connected": "{controller_alias}\t\t[{controller_address}]\n\n{device_enumerate}",
- "tooltip-format-connected-battery": "{controller_alias}\t\t[{controller_address}]\n\n{device_enumerate}",
- "tooltip-format-enumerate-connected": "{device_alias}\t\t[{device_address}]",
- "tooltip-format-enumerate-connected-battery": "{device_alias} ({device_battery_percentage})\t\t[{device_address}]"
- },
+ "disk#root": {
+ "interval": 360,
+ "format": " {used}/{total}",
+ "path": "/"
+ },
- "group/audio": {
- "orientation": "horizontal",
- "modules": [
- "wireplumber",
- "custom/audio-internal",
- "custom/audio-headphones",
- "custom/audio-hdmi"
- ],
- "drawer": {
- "transition-left-to-right": false,
- "transition-duration": 500
- }
- },
+ "bluetooth": {
+ // "controller": "controller1",
+ "on-click": "~/.local/bin/waybar-bluetooth toggle",
+ "format": "",
+ "format-disabled": "",
+ "format-connected": "",
+ "format-connected-battery": " {device_battery_percentage}%",
+ "tooltip-format": "{controller_alias}\t\t[{controller_address}]",
+ "tooltip-format-connected": "{controller_alias}\t\t[{controller_address}]\n\n{device_enumerate}",
+ "tooltip-format-connected-battery": "{controller_alias}\t\t[{controller_address}]\n\n{device_enumerate}",
+ "tooltip-format-enumerate-connected": "{device_alias}\t\t[{device_address}]",
+ "tooltip-format-enumerate-connected-battery": "{device_alias} ({device_battery_percentage})\t\t[{device_address}]"
+ },
- "wireplumber": {
- "format": "{icon} {node_name}/{volume}",
- "format-muted": "",
- "on-click": "pavucontrol-qt",
- "on-click-right": "helvum",
- "format-icons": ["", "", ""]
- },
+ "group/audio": {
+ "orientation": "horizontal",
+ "modules": [
+ "wireplumber",
+ "custom/audio-internal",
+ "custom/audio-headphones",
+ "custom/audio-hdmi"
+ ],
+ "drawer": {
+ "transition-left-to-right": false,
+ "transition-duration": 500
+ }
+ },
- "custom/audio-internal": {
- "format": " ",
- "tooltip-format": "Internal",
- "on-click": "audio-router analog",
- "interval": "once"
- },
+ "wireplumber": {
+ "format": "{icon} {node_name}/{volume}",
+ "format-muted": "",
+ "on-click": "pavucontrol-qt",
+ "on-click-right": "helvum",
+ "format-icons": ["", "", ""]
+ },
- "custom/audio-hdmi": {
- "format": " ",
- "tooltip-format": "HDMI",
- "on-click": "audio-router hdmi",
- "interval": "once"
- },
+ "custom/audio-internal": {
+ "format": " ",
+ "tooltip-format": "Internal",
+ "on-click": "audio-router analog",
+ "interval": "once"
+ },
- "battery": {
- "bat": "BAT1",
- "interval": 30,
- "states": {
- "warning": 20,
- "critical": 10
- },
- "format-time": "{H}:{m}",
- "format": "{icon} {time} {capacity}%",
- "format-discharging": "{icon} {capacity}%",
- "format-discharging-warning": "{icon} {capacity}%",
- "format-discharging-critical": "{icon} {capacity}%",
- "format-charging": "{icon} {capacity}% @ {power:2.0f}W",
- "format-full": " {capacity}%",
- "format-not-charging": " {capacity}%",
- "format-icons": [" ", " ", " ", " ", " "],
- },
+ "custom/audio-hdmi": {
+ "format": " ",
+ "tooltip-format": "HDMI",
+ "on-click": "audio-router hdmi",
+ "interval": "once"
+ },
- "group/clock": {
- "orientation": "horizontal",
- "modules": [ "custom/clock#minutes", "clock#time", "clock#date" ],
- "drawer": {
- "transition-left-to-right": false,
- "transition-duration": 500
- }
- },
+ "group/battery": {
+ "orientation": "horizontal",
+ "modules": [
+ "battery",
+ "custom/powerdraw"
+ ],
+ "drawer": {
+ "transition-left-to-right": false,
+ "transition-duration": 500
+ }
+ },
- "clock#date": {
- "interval": 60,
- "format": " {:%a %e %b %Y}",
- "tooltip-format": "{:%B %Y}\n{calendar}",
- "calendar": {
- "mode" : "year",
- "mode-mon-col" : 2,
- "weeks-pos" : "right",
- "on-scroll" : 1,
- "format": {
- "months": "{}",
- "days": "{}",
- "weeks": "W{}",
- "weekdays": "{}",
- "today": "{}"
- }
- },
- "actions": {
- "on-click-right": "mode",
- "on-scroll-up": "shift_up",
- "on-scroll-down": "shift_down"
- }
- },
+ "battery": {
+ "bat": "BAT1",
+ "interval": 30,
+ "states": {
+ "warning": 20,
+ "critical": 10
+ },
+ "format-time": "{H}:{m}",
+ "format": "{icon} {time} {capacity}%",
+ "format-discharging": "{icon} {capacity}%",
+ "format-discharging-warning": "{icon} {capacity}%",
+ "format-discharging-critical": "{icon} {capacity}%",
+ "format-charging": "{icon} {capacity}% @ {power:2.0f}W",
+ "format-full": " {capacity}%",
+ "format-not-charging": " {capacity}%",
+ "format-icons": [" ", " ", " ", " ", " "],
+ },
- "clock#time": {
- "interval": 60,
- "format": " {:%I:%M %p}",
- "actions": {
- "on-scroll-up": "tz_up",
- "on-scroll-down": "tz_down"
- }
- },
+ "custom/powerdraw": {
+ "interval": 60,
+ "exec": "~/.local/bin/waybar-powerdraw",
+ },
- "custom/clock#minutes": {
- "interval": 60,
- "format": " {} ",
- "exec": "~/.local/bin/waybar-minutes"
- }
- }
- ]
+ "group/clock": {
+ "orientation": "horizontal",
+ "modules": [ "custom/clock#minutes", "clock#time", "clock#date" ],
+ "drawer": {
+ "transition-left-to-right": false,
+ "transition-duration": 500
+ }
+ },
+
+ "clock#date": {
+ "interval": 60,
+ "format": " {:%a %e %b %Y}",
+ "tooltip-format": "{:%B %Y}\n{calendar}",
+ "calendar": {
+ "mode" : "year",
+ "mode-mon-col" : 2,
+ "weeks-pos" : "right",
+ "on-scroll" : 1,
+ "format": {
+ "months": "{}",
+ "days": "{}",
+ "weeks": "W{}",
+ "weekdays": "{}",
+ "today": "{}"
+ }
+ },
+ "actions": {
+ "on-click-right": "mode",
+ "on-scroll-up": "shift_up",
+ "on-scroll-down": "shift_down"
+ }
+ },
+
+ "clock#time": {
+ "interval": 60,
+ "format": " {:%I:%M %p}",
+ "actions": {
+ "on-scroll-up": "tz_up",
+ "on-scroll-down": "tz_down"
+ }
+ },
+
+ "custom/clock#minutes": {
+ "interval": 60,
+ "format": " {} ",
+ "exec": "~/.local/bin/waybar-minutes"
+ }
+ }
+ ]
'';
};
"/home/${username}/.config/waybar/style.css" = {
text = ''
- * {
- border: none;
- border-radius: 0;
- font-family: 'CommitMono Nerd Font';
- font-weight: 400;
- font-size: 11px;
- min-height: 26px;
- /* margin: 0 0px; */
- }
+ * {
+ border: none;
+ border-radius: 0;
+ font-family: 'CommitMono Nerd Font';
+ font-weight: 400;
+ font-size: 11px;
+ min-height: 26px;
+ /* margin: 0 0px; */
+ }
- window#waybar.top {
- /* background-color: rgba(115, 116, 116, 0.22); */
- background-color: rgba(0, 0, 0, 0.75);
- border-bottom: none;
- color: #eeeeee;
- transition-property: background-color;
- transition-duration: .5s;
- }
+ window#waybar.top {
+ /* background-color: rgba(115, 116, 116, 0.22); */
+ background-color: rgba(0, 0, 0, 0.75);
+ border-bottom: none;
+ color: #eeeeee;
+ transition-property: background-color;
+ transition-duration: .5s;
+ }
- window#waybar.hidden {
- opacity: 0.5;
- }
+ window#waybar.hidden {
+ opacity: 0.5;
+ }
- label#window {
- text-shadow: 0px 0px 3px #18181e;
- }
+ label#window {
+ text-shadow: 0px 0px 3px #18181e;
+ }
- tooltip {
- background: rgba(43, 48, 59, 0.5);
- border: 1px solid rgba(100, 114, 125, 0.5);
- }
+ tooltip {
+ background: rgba(43, 48, 59, 0.5);
+ border: 1px solid rgba(100, 114, 125, 0.5);
+ }
- tooltip label {
- color: white;
- }
+ tooltip label {
+ color: white;
+ }
- .modules-left > widget > label,
- .modules-left > box > widget > label,
- .modules-right > widget > label,
- .modules-right > box > widget > label {
- padding: 0 10px;
- margin: 0px 0px 0px 10px;
- }
+ .modules-left > widget > label,
+ .modules-left > box > widget > label,
+ .modules-right > widget > label,
+ .modules-right > box > widget > label {
+ padding: 0 10px;
+ margin: 0px 0px 0px 10px;
+ }
- #network, #resources, #audio, #clock {
- padding: 0 4px;
- }
+ #network, #resourcese {
+ padding: 0px 2px 0px 2px;
+ }
- .drawer-child > label {
- margin: 0px 10px;
- }
+ #audio, #battery, #clock {
+ padding: 0px 6px 0px 6px;
+ }
- #custom-audio-internal,
- #custom-audio-motu,
- #custom-audio-headphones,
- #custom-audio-hdmi
- {
- padding: 4px 2px;
- border-radius: 0px;
- }
+ .drawer-child > label {
+ margin: 0px 10px;
+ }
- #workspaces {
- margin: 0px 0px 0px 0px;
- }
+ #custom-audio-internal,
+ #custom-audio-motu,
+ #custom-audio-headphones,
+ #custom-audio-hdmi
+ {
+ padding: 4px 2px;
+ border-radius: 0px;
+ }
- #workspaces button {
- /*padding: 4px 6px;*/
- padding: 4px 6px;
- color: #555555;
- border-radius: 0px;
- /*min-width: 32px;*/
- }
+ #workspaces {
+ margin: 0px 0px 0px 0px;
+ }
- /* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
+ #workspaces button {
+ /*padding: 4px 6px;*/
+ padding: 4px 6px;
+ color: #555555;
+ border-radius: 0px;
+ /*min-width: 32px;*/
+ }
- #workspaces button:hover {
- box-shadow: inherit;
- text-shadow: inherit;
- background: transparent;
- color: #ffffff;
- }
+ /* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
- #workspaces button.active {
- box-shadow: inherit;
- text-shadow: inherit;
- background: transparent;
- color: #ffffff;
- }
+ #workspaces button:hover {
+ box-shadow: inherit;
+ text-shadow: inherit;
+ background: transparent;
+ color: #ffffff;
+ }
- #workspaces button.focused {
- color: #eeeeee;
- }
+ #workspaces button.active {
+ box-shadow: inherit;
+ text-shadow: inherit;
+ background: transparent;
+ color: #ffffff;
+ }
- #workspaces button.focused:hover {
- color: #ffffff;
- }
+ #workspaces button.focused {
+ color: #eeeeee;
+ }
- #workspaces button.urgent {
- color: #ffffff;
- background-color: #e27878;
- }
+ #workspaces button.focused:hover {
+ color: #ffffff;
+ }
- #language {
- /* margin: 0px 0px 0px 0px; */
- color: #cccccc;
- }
+ #workspaces button.urgent {
+ color: #ffffff;
+ background-color: #e27878;
+ }
- #tray {
- background-color: rgba(0, 0, 0, 0);
- /* margin-left: 10px; */
- }
+ #language {
+ /* margin: 0px 0px 0px 0px; */
+ color: #cccccc;
+ }
- #tray image {
- margin: 0px 10px 0px 0px;
- }
+ #tray {
+ background-color: rgba(0, 0, 0, 0);
+ /* margin-left: 10px; */
+ }
- #mode {
- background-color: rgba(0, 0, 0, 0);
- border: 2px solid #e2a478;
- margin: 0px 10px 0px 0px;
- border-radius: 5px;
- }
+ #tray image {
+ margin: 0px 10px 0px 0px;
+ }
- #custom-yubikey.icon {
- background: #f9409d;
- }
+ #mode {
+ background-color: rgba(0, 0, 0, 0);
+ border: 2px solid #e2a478;
+ margin: 0px 10px 0px 0px;
+ border-radius: 5px;
+ }
- #custom-spotify {
- color: #ffffff;
- padding-right: 10px;
- }
+ #custom-yubikey.icon {
+ background: #f9409d;
+ }
+
+ #custom-spotify {
+ color: #ffffff;
+ padding-right: 5px;
+ }
+
+ #custom-devices {
+ color: #ffffff;
+ padding: 0px 2px 0px 2px;
+ }
+
+ #custom-powerdraw {
+ color: #ffffff;
+ padding: 0px;
+ }
'';
};
diff --git a/modules/home/waybar/scripts.nix b/modules/home/waybar/scripts.nix
index bbf9d6f..cd4e546 100644
--- a/modules/home/waybar/scripts.nix
+++ b/modules/home/waybar/scripts.nix
@@ -178,6 +178,57 @@
echo -e "{\"text\":\""$text"\", \"class\":\""$class"\"}"
'';
};
+ "/home/${username}/.local/bin/waybar-devices" = {
+ executable = true;
+ text = ''
+ #!/usr/bin/env bash
+
+ if [[ $(cat /proc/acpi/button/lid/LID0/state | grep "open") ]]; then
+ LTEXT=" "
+ else
+ LTEXT=" "
+ fi
+
+ MICROPHONE_STATE="$(sudo /home/liv/.local/src/framework-system/target/debug/framework_tool --privacy | tail -n2 | head -n1)"
+ CAMERA_STATE="$(sudo /home/liv/.local/src/framework-system/target/debug/framework_tool --privacy | tail -n1)"
+
+ if [[ "$(echo $MICROPHONE_STATE | grep 'Microphone: Connected')" ]]; then
+ MIC=1
+ MTEXT=" - available!"
+ else
+ MIC=0
+ MTEXT=" "
+ fi
+
+ if [[ "$(echo $CAMERA_STATE | grep 'Camera: Connected')" ]]; then
+ CAM=1
+ CTEXT=" - available!"
+ else
+ CAM=0
+ CTEXT=" "
+ fi
+
+ echo "$LTEXT $CTEXT $MTEXT"
+ '';
+ };
+ "/home/${username}/.local/bin/waybar-powerdraw" = {
+ executable = true;
+ text = ''
+ #!/usr/bin/env zsh
+
+ if [[ "$(cat /sys/class/power_supply/BAT1/status)" == "Discharging" ]]; then; cat /sys/class/power_supply/BAT1/current_now /sys/class/power_supply/BAT1/voltage_now | xargs | awk '{print $1*$2/1e12 " W"}'; fi
+ '';
+ };
+ "/home/${username}/.local/bin/waybar-vpn" = {
+ executable = true;
+ text = ''
+ #!/usr/bin/env bash
+
+ ip route | grep -q '10.7.0.0' \
+ && echo '{"text":"Connected","class":"connected","percentage":100}' \
+ || echo '{"text":"Disconnected","class":"disconnected","percentage":0}'
+ '';
+ };
};
home.packages = with pkgs; [
wf-recorder