From da22e65d5a417c82464ca9203a82574b1ae2f922 Mon Sep 17 00:00:00 2001 From: nx2 Date: Sun, 31 Mar 2024 23:02:09 +0200 Subject: [PATCH] hyprland + waybar --- home-modules/hyprland/waybar.nix | 190 +++++++++++++++++++++++++++++++ 1 file changed, 190 insertions(+) create mode 100644 home-modules/hyprland/waybar.nix diff --git a/home-modules/hyprland/waybar.nix b/home-modules/hyprland/waybar.nix new file mode 100644 index 0000000..4bec9f2 --- /dev/null +++ b/home-modules/hyprland/waybar.nix @@ -0,0 +1,190 @@ +{ config, lib, pkgs, ... }: +let +in +{ + home.packages = with pkgs; [ + waybar + ]; + + programs.waybar = { + enable = true; + settings = { + height = 20; + layer = "top"; + position = "bottom"; + margin-top = 0; + margin-left = 0; + margin-bottom = 0; + padding-bottom = 0; + margin-right = 0; + spacing = 10; + modules-left = [ + "cpu" + "memory" + "wireplumber" + "backlight" + "battery" + "network" + "hyprland/window" + ]; + modules-center = [ + "hyprland/workspaces" + ]; + modules-right = [ + "custom/mode" + "custom/ctimeremaining" + "custom/cclock" + "tray" + ]; + "hyprland/workspaces" = { + on-click = "activate"; + format = "{name}"; + all-outputs = false; + active-only = false; + }; + "hyprland/window" = { + format = "{}"; + separate-outputs = true; + }; + "custom/cclock" = { + exec = "/home/nx2/scripts/cclock.sh"; + restart-interval = 60; + }; + "custom/ctimeremaining" = { + exec = "python /home/nx2/scripts/NxGCalEvent/get-remaining-time.py"; + restart-interval = 60; + }; + "custom/mode" = { + exec = "cat /tmp/waybar-mode"; + interval = "once"; + signal = 8; + }; + + cpu = { + interval = 1; + format = "󰍛 {}%"; + max-length = 10; + }; + memory = { + interval = 5; + format = " {avail:.0f}G free"; + }; + battery = { + interval = 60; + tooltip = false; + format = "{icon} {capacity}%"; + states = { + warning = 25; + critical = 10; + }; + format-icons = [ + " " + " " + " " + " " + " " + ]; + format-charging = "{icon} +{capacity}%"; + format-plugged = "{icon} P{capacity}%"; + format-full = "{icon} F{capacity}%"; + }; + backlight = { + device = "DP-1"; + format = "{icon} {percent}%"; + format-icons = [ + "" + "" + "" + "" + "" + "" + "" + "" + "" + ]; + }; + network = { + format-wifi = "直 {essid}"; + format-ethernet = " Wired"; + format-disconnected = "睊 Disconnected"; + }; + wireplumber = { + format = "󰕾 {volume}%"; + format-muted = "婢 Muted"; + }; + }; + style = '' + * { + font-family: Atkinson Hyperlegible, Caskaydia Cove NF, Noto Sans; + font-weight: bold; + font-size: 1.01em; + min-height: 0; + } + + window#waybar { + background-color: rgba(0, 0, 0, 0.85); + transition-duration: 0.5s; + padding: 0.1em 1em; + padding-top: 0.1em; + border: 0px solid transparent; + } + + #clock, + #custom-cclock, + #custom-ctimeremaining, + #custom-mode, + #battery, + #cpu, + #tray, + #disk, + #backlight, + #network, + #wireplumber, + #memory, + #window, + #workspaces { + padding: 0px 3px; + margin-top: 0.3em; + border-radius: 0.8em; + color: white; + } + + #window { + font-weight: normal; + } + + #workspaces button { + color: grey; + padding: 0px 10px; + margin: 1px; + border-radius: 0.2em; + border: 0px solid transparent; + } + + #workspaces button.focused { + background-color: darkred; + } + + #workspaces button:hover { + background-color: green; + } + + #workspaces button.active { + color: white; + } + + #workspaces button.urgent { + background-color: darkorchid; + } + + #custom-mode { + color: crimson; + } + + #cpu { + margin-left: 0.5em; + } + ''; + + }; +} \ No newline at end of file