VLQ45OFB6Q2PBFEV2LCV2UINWGUL5YFD4MJ3PWP464VZWLD75HAQC MQT74AV47PUYNCX27OMFK6BFN7PP4DX46JAACN2EPRYXUXV7EL3AC RTBMBSBABSGTRICJ4AWBKWO3JJHBRKV6FGOMYPDD7X6SS6X35ZIQC QOY7D3GZ3WF7HAMEHAW2CIUB5TDQCFE3YDZEO23R5MFQEBN635WAC USORQI4YM2FOILPSRJ444BEV6APPCI76CLGI5ZBDBOGCWAUALEQQC E5WANV7PYNPZFSJE4AMZABQ76TUNKVZN3M6ZFD5V6CKAFKG444NAC OQK4D36NJRFZWVHESTH4NHVYME62YBJSMR4J5K7B36YDERGFS5VAC {"layer": "top","height": ${toString theme.margin.big},"margin-top": ${toString theme.margin.normal},"margin-left": ${toString theme.margin.normal},"margin-right": ${toString theme.margin.normal},
{"layer": "top","height": ${toString theme.margin.big},"margin-top": ${toString theme.margin.normal},"margin-left": ${toString theme.margin.normal},"margin-right": ${toString theme.margin.normal},
"modules-left": ["niri/workspaces"],"modules-center": ["niri/window"],"modules-right": ["tray","pulseaudio","cpu","memory","disk","custom/gpu","battery","clock"],
"modules-left": ["niri/workspaces"],"modules-center": ["niri/window"],"modules-right": ["tray","pulseaudio","cpu","memory","disk","custom/gpu","battery","clock"],
"niri/window": {"max-length": 50,"separate-outputs": true,"rewrite": {"(.*) (—|-) (Zen Browser|Brave)": " $1","(.*) - Discord": " $1","(.*) — nu": " $1"}},
"niri/window": {"max-length": 50,"separate-outputs": true,"rewrite": {"(.*) (—|-) (Zen Browser|Brave)": " $1","(.*) - Discord": " $1","(.*) — nu": " $1"}},
"pulseaudio": {"format": "{format_source} {icon} {volume}%","format-muted": "{format_source} ","format-source": "","format-source-muted": "","format-icons": {"default": ["", "", ""]
"pulseaudio": {"format": "{format_source} {icon} {volume}%","format-muted": "{format_source} ","format-source": "","format-source-muted": "","format-icons": {"default": ["", "", ""]},"on-click": "pwvucontrol","on-click-right": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle","tooltip": true,"tooltip-format": "Volume: {volume}%\nClick: Open audio manager\nRight-click: Mute toggle"
"cpu": {"format": " {usage}%","tooltip": true,"tooltip-format": "CPU Usage: {usage}%\nLoad: {load}","interval": 2,"on-click": "kitty btop","states": {"warning": 70,"critical": 90}},
"cpu": {"format": " {usage}%","tooltip": true,"tooltip-format": "CPU Usage: {usage}%\nLoad: {load}","interval": 2,"on-click": "kitty btop","states": {"warning": 70,"critical": 90}},"memory": {"format": " {used:0.1f}G/{total:0.1f}G","tooltip": true,"tooltip-format": "Memory: {used:0.1f}G/{total:0.1f}G ({percentage}%)\nAvailable: {avail:0.1f}G","interval": 2,"on-click": "kitty btop","states": {"warning": 70,"critical": 90}},
"memory": {"format": " {used:0.1f}G/{total:0.1f}G","tooltip": true,"tooltip-format": "Memory: {used:0.1f}G/{total:0.1f}G ({percentage}%)\nAvailable: {avail:0.1f}G","interval": 2,"on-click": "kitty btop","states": {"warning": 70,"critical": 90}},
"disk": {"format": " {percentage_used}%","path": "/","tooltip": true,"tooltip-format": "Disk: {used}/{total} ({percentage_used}%)\nAvailable: {free}","interval": 300,"states": {"warning": 70,"critical": 90}},
"disk": {"format": " {percentage_used}%","path": "/","tooltip": true,"tooltip-format": "Disk: {used}/{total} ({percentage_used}%)\nAvailable: {free}","interval": 300,"states": {"warning": 70,"critical": 90}},
"custom/gpu": {"exec": "bash -c 'if command -v nvidia-smi >/dev/null; then nvidia-smi --query-gpu=utilization.gpu --format=csv,noheader,nounits | head -1; elif command -v radeontop >/dev/null; then radeontop -d - -l 1 | grep -o \"gpu [0-9]*\" | cut -d\" \" -f2; else echo \"N/A\"; fi'","format": " {}%","interval": 5,"tooltip": true,"tooltip-format": "GPU Usage: {}%\nClick: Open system monitor","on-click": "kitty btop","states": {"warning": 70,"critical": 90}},
"custom/gpu": {"exec": "bash -c 'if command -v nvidia-smi >/dev/null; then nvidia-smi --query-gpu=utilization.gpu --format=csv,noheader,nounits | head -1; elif command -v radeontop >/dev/null; then radeontop -d - -l 1 | grep -o \"gpu [0-9]*\" | cut -d\" \" -f2; else echo \"N/A\"; fi'","format": " {}%","interval": 5,"tooltip": true,"tooltip-format": "GPU Usage: {}%\nClick: Open system monitor","on-click": "kitty btop","states": {"warning": 70,"critical": 90}},
"battery": {"format": "{icon} {capacity}%","format-charging": " {capacity}%","format-plugged": " {capacity}%","format-icons": ["", "", "", "", "","", "", "", "", ""],"tooltip": true,"tooltip-format": "Battery: {capacity}%\nTime: {time}\nHealth: {health}%","states": {"warning": 30,"critical": 15}},
"battery": {"format": "{icon} {capacity}%","format-charging": " {capacity}%","format-plugged": " {capacity}%","format-icons": ["", "", "", "", "","", "", "", "", ""],"tooltip": true,"tooltip-format": "Battery: {capacity}%\nTime: {time}\nHealth: {health}%","states": {"warning": 30,"critical": 15
"clock": {"interval": 1,"format": " {:%Y-%m-%d | %H:%M:%S}","tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>"
config.flake.modules.darwinModules.unfree ={ config, lib, ... }:letinherit (lib.lists) elem;inherit (lib.options) mkOption;inherit (lib.types) listOf str;in{options.unfree.allowedPackageNames = mkOption {type = listOf str;default = [ ];description = "List of unfree package names to allow";example = ["discord""vscode"];};
{ config, lib, ... }: letinherit (lib) mkValue;in {options.unfree.allowedNames = mkValue [];}config.nixpkgs.config.allowUnfreePredicate = package: lib.elem (lib.getName package) config.unfree.allowedNames;