aboutsummaryrefslogtreecommitdiff
path: root/modules/desktop/home/environments/hyprland/waybar
diff options
context:
space:
mode:
Diffstat (limited to 'modules/desktop/home/environments/hyprland/waybar')
-rw-r--r--modules/desktop/home/environments/hyprland/waybar/catppuccin.scss26
-rw-r--r--modules/desktop/home/environments/hyprland/waybar/config.nix59
-rw-r--r--modules/desktop/home/environments/hyprland/waybar/default.nix20
-rw-r--r--modules/desktop/home/environments/hyprland/waybar/power_menu.xml23
-rw-r--r--modules/desktop/home/environments/hyprland/waybar/style.scss86
5 files changed, 214 insertions, 0 deletions
diff --git a/modules/desktop/home/environments/hyprland/waybar/catppuccin.scss b/modules/desktop/home/environments/hyprland/waybar/catppuccin.scss
new file mode 100644
index 0000000..0eb6a82
--- /dev/null
+++ b/modules/desktop/home/environments/hyprland/waybar/catppuccin.scss
@@ -0,0 +1,26 @@
+@define-color rosewater #f5e0dc;
+@define-color flamingo #f2cdcd;
+@define-color pink #f5c2e7;
+@define-color mauve #cba6f7;
+@define-color red #f38ba8;
+@define-color maroon #eba0ac;
+@define-color peach #fab387;
+@define-color yellow #f9e2af;
+@define-color green #a6e3a1;
+@define-color teal #94e2d5;
+@define-color sky #89dceb;
+@define-color sapphire #74c7ec;
+@define-color blue #89b4fa;
+@define-color lavender #b4befe;
+@define-color text #cdd6f4;
+@define-color subtext1 #bac2de;
+@define-color subtext0 #a6adc8;
+@define-color overlay2 #9399b2;
+@define-color overlay1 #7f849c;
+@define-color overlay0 #6c7086;
+@define-color surface2 #585b70;
+@define-color surface1 #45475a;
+@define-color surface0 #313244;
+@define-color base #1e1e2e;
+@define-color mantle #181825;
+@define-color crust #11111b;
diff --git a/modules/desktop/home/environments/hyprland/waybar/config.nix b/modules/desktop/home/environments/hyprland/waybar/config.nix
new file mode 100644
index 0000000..7afa83c
--- /dev/null
+++ b/modules/desktop/home/environments/hyprland/waybar/config.nix
@@ -0,0 +1,59 @@
+{pkgs, ...}: {
+ spacing = 4;
+ modules-left = ["custom/launcher" "hyprland/workspaces"];
+ modules-center = ["hyprland/window"];
+ modules-right = ["bluetooth" "wireplumber" "battery" "clock" "custom/power"];
+
+ "custom/launcher" = {
+ format = " ";
+ on-click = "${pkgs.fuzzel}/bin/fuzzel";
+ };
+ "hyprland/workspaces" = {
+ disable-scroll = true;
+ all-outputs = true;
+ warp-on-scroll = false;
+ format = "{icon}";
+ format-icons = {
+ "1" = "";
+ "2" = "󰈹";
+ "3" = "󰝚";
+ "4" = "󰎚";
+ "5" = "";
+ };
+ };
+ "hyprland/window" = {
+ on-click = "hyprctl dispatch float";
+ };
+ "bluetooth" = {
+ format = "";
+ format-connected = "󰂯 {device_alias}";
+ };
+ "battery" = {
+ format = "{icon} {capacity}%";
+ format-alt = "{icon}";
+ format-icons = [" " " " " " " " " "];
+ };
+ "wireplumber" = {
+ format = "{icon} {volume}%";
+ format-alt = "{icon}";
+ format-muted = "󰖁 {volume}%";
+ format-icons.default = ["󰕿" "󰖀" "󰕾"];
+ tooltip = false;
+ };
+ "clock" = {
+ format = "{:%I:%M}";
+ format-alt = "/{:%Y/%b/%d-%a}";
+ tooltip = false;
+ };
+ "custom/power" = {
+ format = " collin";
+ tooltip = false;
+ menu = "on-click";
+ menu-file = "${./power_menu.xml}";
+ menu-actions = {
+ logout = "hyprctl dispatch exit";
+ reboot = "reboot";
+ shutdown = "poweroff";
+ };
+ };
+}
diff --git a/modules/desktop/home/environments/hyprland/waybar/default.nix b/modules/desktop/home/environments/hyprland/waybar/default.nix
new file mode 100644
index 0000000..3b73a78
--- /dev/null
+++ b/modules/desktop/home/environments/hyprland/waybar/default.nix
@@ -0,0 +1,20 @@
+{
+ pkgs,
+ config,
+ lib,
+ ...
+}: let
+ cfg = config.collinux.desktop.hyprland.components.waybar;
+in
+ lib.mkIf cfg.enable {
+ programs.waybar = {
+ enable = true;
+ systemd.enable = true;
+ settings."mainBar" = import ./config.nix {inherit pkgs;};
+ style = lib.mkIf (cfg.theme == "catppuccin") ''
+ @import "${./catppuccin.scss}";
+
+ ${builtins.readFile ./style.scss}
+ '';
+ };
+ }
diff --git a/modules/desktop/home/environments/hyprland/waybar/power_menu.xml b/modules/desktop/home/environments/hyprland/waybar/power_menu.xml
new file mode 100644
index 0000000..2935c89
--- /dev/null
+++ b/modules/desktop/home/environments/hyprland/waybar/power_menu.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkMenu" id="menu">
+ <child>
+ <object class="GtkMenuItem" id="logout">
+ <property name="label">Log Out</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkSeparatorMenuItem" id="delimiter1"/>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="reboot">
+ <property name="label">Reboot</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="shutdown">
+ <property name="label">Shutdown</property>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/modules/desktop/home/environments/hyprland/waybar/style.scss b/modules/desktop/home/environments/hyprland/waybar/style.scss
new file mode 100644
index 0000000..7674164
--- /dev/null
+++ b/modules/desktop/home/environments/hyprland/waybar/style.scss
@@ -0,0 +1,86 @@
+* {
+ font-family: Iosevka Nerd Font;
+ font-size: 10pt;
+ min-height: 0;
+}
+
+#waybar {
+ background: @base;
+ color: @text;
+}
+
+#workspaces,
+#clock,
+#battery,
+#wireplumber,
+#bluetooth.connected,
+#custom-power {
+ color: @text;
+ background: @surface0;
+
+ padding: 0.5rem 1rem;
+ border-radius: 1rem;
+
+ margin: 5px 0;
+}
+
+#workspaces button {
+ color: @lavender;
+ border-radius: 1rem;
+ padding: 0rem 0.75rem;
+}
+
+#workspaces button.active {
+ color: @sky;
+}
+
+#workspaces button:hover {
+ box-shadow: inherit;
+ text-shadow: inherit;
+ background: none;
+ border: none;
+ border-color: transparent;
+ padding: 0 0.75rem;
+ margin: 0;
+}
+
+#window {
+ font-size: 12pt;
+}
+
+#custom-launcher {
+ color: @blue;
+ font-size: 12pt;
+ padding: 0;
+ margin: 0;
+
+ margin-left: 1rem;
+ margin-right: 1rem;
+}
+
+#bluetooth.connected {
+ color: @blue;
+}
+
+#wireplumber {
+ color: @maroon;
+ border-radius: 1rem 0 0 1rem;
+ margin-left: 1rem;
+}
+
+#battery {
+ color: @green;
+ border-radius: 0;
+}
+
+#clock {
+ color: @blue;
+ border-radius: 0 1rem 1rem 0;
+ margin-right: 1rem;
+}
+
+#custom-power {
+ color: @rosewater;
+ margin-right: 1rem;
+ /* border: @rosewater 1px solid; */
+} \ No newline at end of file