diff --git a/home/david/configurations/Tytonidae/default.nix b/home/david/configurations/Tytonidae/default.nix
index bce66c6..c7e183d 100644
--- a/home/david/configurations/Tytonidae/default.nix
+++ b/home/david/configurations/Tytonidae/default.nix
@@ -10,7 +10,6 @@
imports = [
./niri
./wluma
- ./waybar
];
youthlic.programs = {
diff --git a/home/david/configurations/Tytonidae/waybar/config/config.jsonc b/home/david/configurations/Tytonidae/waybar/config/config.jsonc
deleted file mode 100644
index e87e71e..0000000
--- a/home/david/configurations/Tytonidae/waybar/config/config.jsonc
+++ /dev/null
@@ -1,215 +0,0 @@
-// -*- mode: jsonc -*-
-{
- // "layer": "top", // Waybar at top layer
- // "position": "bottom", // Waybar position (top|bottom|left|right)
- "height": 30, // Waybar height (to be removed for auto height)
- // "width": 1280, // Waybar width
- "spacing": 4, // Gaps between modules (4px)
- // Choose the order of the modules
- "modules-left": [
- "sway/workspaces",
- "sway/mode",
- "sway/scratchpad",
- "custom/media"
- ],
- "modules-center": [
- "sway/window"
- ],
- "modules-right": [
- "mpd",
- "idle_inhibitor",
- "pulseaudio",
- "network",
- "power-profiles-daemon",
- "cpu",
- "memory",
- "temperature",
- "backlight",
- "keyboard-state",
- "sway/language",
- "battery",
- "battery#bat2",
- "clock",
- "tray",
- "custom/power"
- ],
- // Modules configuration
- // "sway/workspaces": {
- // "disable-scroll": true,
- // "all-outputs": true,
- // "warp-on-scroll": false,
- // "format": "{name}: {icon}",
- // "format-icons": {
- // "1": "",
- // "2": "",
- // "3": "",
- // "4": "",
- // "5": "",
- // "urgent": "",
- // "focused": "",
- // "default": ""
- // }
- // },
- "keyboard-state": {
- "numlock": true,
- "capslock": true,
- "format": "{name} {icon}",
- "format-icons": {
- "locked": "",
- "unlocked": ""
- }
- },
- "sway/mode": {
- "format": "{}"
- },
- "sway/scratchpad": {
- "format": "{icon} {count}",
- "show-empty": false,
- "format-icons": ["", ""],
- "tooltip": true,
- "tooltip-format": "{app}: {title}"
- },
- "mpd": {
- "format": "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) ⸨{songPosition}|{queueLength}⸩ {volume}% ",
- "format-disconnected": "Disconnected ",
- "format-stopped": "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped ",
- "unknown-tag": "N/A",
- "interval": 5,
- "consume-icons": {
- "on": " "
- },
- "random-icons": {
- "off": " ",
- "on": " "
- },
- "repeat-icons": {
- "on": " "
- },
- "single-icons": {
- "on": "1 "
- },
- "state-icons": {
- "paused": "",
- "playing": ""
- },
- "tooltip-format": "MPD (connected)",
- "tooltip-format-disconnected": "MPD (disconnected)"
- },
- "idle_inhibitor": {
- "format": "{icon}",
- "format-icons": {
- "activated": "",
- "deactivated": ""
- }
- },
- "tray": {
- // "icon-size": 21,
- "spacing": 10
- },
- "clock": {
- // "timezone": "America/New_York",
- "tooltip-format": "{:%Y %B}\n{calendar}",
- "format-alt": "{:%Y-%m-%d}"
- },
- "cpu": {
- "format": "{usage}% ",
- "tooltip": false
- },
- "memory": {
- "format": "{}% "
- },
- "temperature": {
- // "thermal-zone": 2,
- // "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input",
- "critical-threshold": 80,
- // "format-critical": "{temperatureC}°C {icon}",
- "format": "{temperatureC}°C {icon}",
- "format-icons": ["", "", ""]
- },
- "backlight": {
- // "device": "acpi_video1",
- "format": "{percent}% {icon}",
- "format-icons": ["", "", "", "", "", "", "", "", ""]
- },
- "battery": {
- "states": {
- // "good": 95,
- "warning": 30,
- "critical": 15
- },
- "format": "{capacity}% {icon}",
- "format-full": "{capacity}% {icon}",
- "format-charging": "{capacity}% ",
- "format-plugged": "{capacity}% ",
- "format-alt": "{time} {icon}",
- // "format-good": "", // An empty format will hide the module
- // "format-full": "",
- "format-icons": ["", "", "", "", ""]
- },
- "battery#bat2": {
- "bat": "BAT2"
- },
- "power-profiles-daemon": {
- "format": "{icon}",
- "tooltip-format": "Power profile: {profile}\nDriver: {driver}",
- "tooltip": true,
- "format-icons": {
- "default": "",
- "performance": "",
- "balanced": "",
- "power-saver": ""
- }
- },
- "network": {
- // "interface": "wlp2*", // (Optional) To force the use of this interface
- "format-wifi": "{essid} ({signalStrength}%) ",
- "format-ethernet": "{ipaddr}/{cidr} ",
- "tooltip-format": "{ifname} via {gwaddr} ",
- "format-linked": "{ifname} (No IP) ",
- "format-disconnected": "Disconnected ⚠",
- "format-alt": "{ifname}: {ipaddr}/{cidr}"
- },
- "pulseaudio": {
- // "scroll-step": 1, // %, can be a float
- "format": "{volume}% {icon} {format_source}",
- "format-bluetooth": "{volume}% {icon} {format_source}",
- "format-bluetooth-muted": " {icon} {format_source}",
- "format-muted": " {format_source}",
- "format-source": "{volume}% ",
- "format-source-muted": "",
- "format-icons": {
- "headphone": "",
- "hands-free": "",
- "headset": "",
- "phone": "",
- "portable": "",
- "car": "",
- "default": ["", "", ""]
- },
- "on-click": "pavucontrol"
- },
- "custom/media": {
- "format": "{icon} {text}",
- "return-type": "json",
- "max-length": 40,
- "format-icons": {
- "spotify": "",
- "default": "🎜"
- },
- "escape": true,
- "exec": "$HOME/.config/waybar/mediaplayer.py 2> /dev/null" // Script in resources folder
- // "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name
- },
- "custom/power": {
- "format": "⏻ ",
- "tooltip": false,
- "menu": "on-click",
- "menu-file": "$HOME/.config/waybar/power_menu.xml", // Menu file in resources folder
- "menu-actions": {
- "shutdown": "shutdown",
- "reboot": "reboot",
- "suspend": "systemctl suspend",
- "hibernate": "systemctl hibernate"
- }
- }
-}
diff --git a/home/david/configurations/Tytonidae/waybar/default.nix b/home/david/configurations/Tytonidae/waybar/default.nix
deleted file mode 100644
index b80cabe..0000000
--- a/home/david/configurations/Tytonidae/waybar/default.nix
+++ /dev/null
@@ -1,4 +0,0 @@
-{ ... }:
-{
- youthlic.programs.waybar.configDir = ./config;
-}
diff --git a/home/modules/niri.nix b/home/modules/niri.nix
index 29b9ec4..6ae2d40 100644
--- a/home/modules/niri.nix
+++ b/home/modules/niri.nix
@@ -25,6 +25,7 @@ in
swaynotificationcenter
swaybg
xwayland-satellite
+ niri-unstable
];
youthlic.programs = {
fuzzel.enable = true;
@@ -33,6 +34,7 @@ in
};
programs.niri = {
config = builtins.readFile cfg.config;
+ package = pkgs.niri-unstable;
};
};
}
diff --git a/home/modules/waybar.nix b/home/modules/waybar.nix
index 4512296..fd86d4a 100644
--- a/home/modules/waybar.nix
+++ b/home/modules/waybar.nix
@@ -11,23 +11,162 @@ in
options = {
youthlic.programs.waybar = {
enable = lib.mkEnableOption "waybar";
- configDir = lib.mkOption {
- type = lib.types.path;
- example = ./config;
- description = ''
- path to waybar config dir
- '';
- };
};
};
config = lib.mkIf cfg.enable {
- home.packages = with pkgs; [
- waybar
- ];
- xdg.configFile."waybar" = {
+ programs.waybar = {
enable = true;
- source = cfg.configDir;
- recursive = true;
+ systemd.enable = false;
+ settings = [
+ {
+ layer = "top";
+ position = "top";
+ modules-left = [
+ "niri/workspaces"
+ "wlr/taskbar"
+ ];
+ modules-center = [ "clock" ];
+ modules-right = [
+ "tray"
+ "idle_inhibitor"
+ "memory"
+ "backlight"
+ "pulseaudio"
+ "battery"
+ ];
+
+ "niri/worksapces" = { };
+ "niri/taskbar" = {
+ icon-size = 15;
+ on-click = "activate";
+ on-click-middle = "close";
+ };
+ "tray" = {
+ icon-size = 15;
+ spacing = 10;
+ };
+
+ idle_inhibitor = {
+ format = "{icon}";
+ format-icons = {
+ activated = " ";
+ deactivated = " ";
+ };
+ };
+
+ memory = {
+ format = " {percentage}%";
+ on-click = lib.getExe pkgs.resources;
+ };
+ backlight = {
+ format = "{icon}{percent}%";
+ format-icons = " ";
+ on-scroll-up = "${lib.getExe pkgs.brightnessctl} set +1%";
+ on-scroll-down = "${lib.getExe pkgs.brightnessctl} set 1%-";
+ };
+
+ pulseaudio = {
+ format = "{icon}{volume}%";
+ format-bluetooth = " {volume}%";
+ format-muted = " -%";
+ format-source = " {volume}%";
+ format-source-muted = " ";
+ format-icons = {
+ default = [
+ " "
+ " "
+ " "
+ ];
+ headphone = " ";
+ headset = " ";
+ hands-free = " ";
+ };
+ on-click = "${lib.getExe' pkgs.wireplumber "wpctl"} set-mute @DEFAULT_AUDIO_SINK@ toggle";
+ on-click-right = lib.getExe pkgs.pwvucontrol;
+ tooltip-format = "{icon}{desc} {volume}%";
+ };
+
+ battery = {
+ states = {
+ warning = 30;
+ critical = 15;
+ };
+ format = "{icon}{capacity}%";
+ format-charging = " {capacity}%";
+ format-icons = [
+ " "
+ " "
+ " "
+ " "
+ " "
+ ];
+ tooltip-format = ''
+ {power}W
+ {timeTo}'';
+ };
+
+ clock = {
+ format = "{:%a %b %d %R}";
+ calendar.format = {
+ months = "{}";
+ days = "{}";
+ weeks = "W{}";
+ weekdays = "{}";
+ today = "{}";
+ };
+ actions = {
+ on-scroll-up = "shift_up";
+ on-scroll-down = "shift_down";
+ };
+ tooltip-format = "{calendar}";
+ };
+ }
+ ];
+ style = ''
+ * {
+ font-family: Noto Sans Mono, Noto Sans Mono CJK SC, FiraCode Nerd Font;
+ font-weight: bold;
+ font-size: 14px;
+ }
+
+ window#waybar {
+ background: alpha(@theme_base_color, 0.9);
+ color: @theme_text_color;
+ }
+
+ #workspaces,
+ #taskbar button,
+ #mode,
+ #clock,
+ #tray,
+ #mpris,
+ #idle_inhibitor,
+ #backlight,
+ #cpu,
+ #memory,
+ #pulseaudio,
+ #battery {
+ padding: 0 6px;
+ }
+
+ #workspaces button {
+ padding: 3px 6px;
+ }
+ #workspaces button.focused,
+ #workspaces button.active {
+ color: #78aeed;
+ }
+
+ #battery.warning {
+ color: #f8e45c;
+ }
+ #battery.critical {
+ color: #ff7b63;
+ }
+ #battery.charging {
+ color: #8ff0a4;
+ }
+ '';
};
};
}