diff --git a/modules/hyprland/home.nix b/modules/hyprland/home.nix
index 9fb9715..f7fcc88 100644
--- a/modules/hyprland/home.nix
+++ b/modules/hyprland/home.nix
@@ -21,6 +21,7 @@
"ibus-daemon -drx"
"hypridle"
"waybar"
+ "nm-applet --indicator"
];
# Input configuration
@@ -158,6 +159,16 @@
# Input method switching
"SUPER, Space, exec, ibus engine xkb:us::eng"
+
+ # Brightness control
+ ", XF86MonBrightnessUp, exec, brightnessctl set +5%"
+ ", XF86MonBrightnessDown, exec, brightnessctl set 5%-"
+
+ # Volume control
+ ", XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"
+ ", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
+ ", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
+ ", XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"
];
# Mouse bindings
@@ -236,4 +247,132 @@
package = pkgs.gnome-themes-extra;
};
};
+
+ # Waybar configuration for Hyprland
+ programs.waybar = {
+ enable = true;
+ settings = {
+ mainBar = {
+ layer = "top";
+ position = "top";
+ height = 30;
+ spacing = 4;
+
+ modules-left = [ "hyprland/workspaces" "hyprland/window" ];
+ modules-center = [ "clock" ];
+ modules-right = [ "pulseaudio" "network" "backlight" "battery" "tray" ];
+
+ "hyprland/workspaces" = {
+ format = "{name}";
+ on-click = "activate";
+ };
+
+ "hyprland/window" = {
+ format = "{}";
+ max-length = 50;
+ };
+
+ "clock" = {
+ format = "{:%H:%M %a %d %b}";
+ tooltip-format = "{:%Y %B}\n{calendar}";
+ };
+
+ "battery" = {
+ bat = "BAT0";
+ states = {
+ warning = 30;
+ critical = 15;
+ };
+ format = "{capacity}% {icon}";
+ format-charging = "{capacity}% ";
+ format-plugged = "{capacity}% ";
+ format-icons = ["" "" "" "" ""];
+ };
+
+ "network" = {
+ format-wifi = "{essid} ({signalStrength}%) ";
+ format-ethernet = "{ipaddr}/{cidr} ";
+ format-disconnected = "Disconnected ⚠";
+ tooltip-format = "{ifname}: {ipaddr}";
+ };
+
+ "pulseaudio" = {
+ format = "{volume}% {icon}";
+ format-bluetooth = "{volume}% {icon}";
+ format-muted = "";
+ format-icons = {
+ headphone = "";
+ hands-free = "";
+ headset = "";
+ phone = "";
+ portable = "";
+ car = "";
+ default = ["" "" ""];
+ };
+ on-click = "pavucontrol";
+ };
+
+ "backlight" = {
+ device = "intel_backlight";
+ format = "{percent}% {icon}";
+ format-icons = ["" ""];
+ };
+
+ "tray" = {
+ spacing = 10;
+ };
+ };
+ };
+
+ style = ''
+ * {
+ border: none;
+ border-radius: 0;
+ font-family: monospace;
+ font-size: 13px;
+ }
+
+ window#waybar {
+ background-color: rgba(43, 48, 59, 0.9);
+ color: #ffffff;
+ }
+
+ #workspaces button {
+ padding: 0 5px;
+ background-color: transparent;
+ color: #ffffff;
+ }
+
+ #workspaces button.active {
+ background-color: #64727D;
+ }
+
+ #workspaces button:hover {
+ background-color: rgba(0, 0, 0, 0.2);
+ }
+
+ #window,
+ #clock,
+ #battery,
+ #network,
+ #pulseaudio,
+ #backlight,
+ #tray {
+ padding: 0 10px;
+ color: #ffffff;
+ }
+
+ #battery.charging {
+ color: #26A65B;
+ }
+
+ #battery.warning:not(.charging) {
+ color: #ffbe61;
+ }
+
+ #battery.critical:not(.charging) {
+ color: #f53c3c;
+ }
+ '';
+ };
}
diff --git a/modules/hyprland/system.nix b/modules/hyprland/system.nix
index 8ce2b5e..b545ac4 100644
--- a/modules/hyprland/system.nix
+++ b/modules/hyprland/system.nix
@@ -46,5 +46,7 @@
tuigreet
waybar
wofi
+ networkmanagerapplet
+ pavucontrol
];
}