This commit is contained in:
2025-09-13 23:16:22 +02:00
commit 5057e1effa
179 changed files with 20524 additions and 0 deletions

View File

@@ -0,0 +1,277 @@
{ pkgs
, lib
, host
, config
, ...
}:
let
betterTransition = "all 0.3s cubic-bezier(.55,-0.68,.48,1.682)";
inherit (import ../../../hosts/${host}/variables.nix) clock24h;
in
with lib; {
# Configure & Theme Waybar
programs.waybar = {
enable = true;
package = pkgs.waybar;
settings = [
{
layer = "top";
position = "top";
modules-center = [ "hyprland/workspaces" ];
modules-left = [
"custom/startmenu"
"hyprland/window"
"pulseaudio"
"cpu"
"memory"
"idle_inhibitor"
];
modules-right = [
"custom/hyprbindings"
"custom/notification"
"custom/exit"
"battery"
"tray"
"clock"
];
"hyprland/workspaces" = {
format = "{name}";
format-icons = {
default = " ";
active = " ";
urgent = " ";
};
on-scroll-up = "hyprctl dispatch workspace e+1";
on-scroll-down = "hyprctl dispatch workspace e-1";
};
"clock" = {
format =
if clock24h == true
then '' {:L%H:%M}''
else '' {:L%I:%M %p}'';
tooltip = true;
tooltip-format = "<big>{:%A, %d.%B %Y }</big>\n<tt><small>{calendar}</small></tt>";
};
"hyprland/window" = {
max-length = 22;
separate-outputs = false;
rewrite = {
"" = " 🙈 No Windows? ";
};
};
"memory" = {
interval = 5;
format = " {}%";
tooltip = true;
};
"cpu" = {
interval = 5;
format = " {usage:2}%";
tooltip = true;
};
"disk" = {
format = " {free}";
tooltip = true;
};
"network" = {
format-icons = [
"󰤯"
"󰤟"
"󰤢"
"󰤥"
"󰤨"
];
format-ethernet = " {bandwidthDownOctets}";
format-wifi = "{icon} {signalStrength}%";
format-disconnected = "󰤮";
tooltip = false;
};
"tray" = {
spacing = 12;
};
"pulseaudio" = {
format = "{icon} {volume}% {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 = "sleep 0.1 && pavucontrol";
};
"custom/exit" = {
tooltip = false;
format = "";
on-click = "sleep 0.1 && wlogout";
};
"custom/startmenu" = {
tooltip = false;
format = "";
# exec = "rofi -show drun";
on-click = "sleep 0.1 && rofi-launcher";
};
"custom/hyprbindings" = {
tooltip = false;
format = "󱕴";
on-click = "sleep 0.1 && list-keybinds";
};
"idle_inhibitor" = {
format = "{icon}";
format-icons = {
activated = "";
deactivated = "";
};
tooltip = "true";
};
"custom/notification" = {
tooltip = false;
format = "{icon} {}";
format-icons = {
notification = "<span foreground='red'><sup></sup></span>";
none = "";
dnd-notification = "<span foreground='red'><sup></sup></span>";
dnd-none = "";
inhibited-notification = "<span foreground='red'><sup></sup></span>";
inhibited-none = "";
dnd-inhibited-notification = "<span foreground='red'><sup></sup></span>";
dnd-inhibited-none = "";
};
return-type = "json";
exec-if = "which swaync-client";
exec = "swaync-client -swb";
on-click = "sleep 0.1 && task-waybar";
escape = true;
};
"battery" = {
states = {
warning = 30;
critical = 15;
};
format = "{icon} {capacity}%";
format-charging = "󰂄 {capacity}%";
format-plugged = "󱘖 {capacity}%";
format-icons = [
"󰁺"
"󰁻"
"󰁼"
"󰁽"
"󰁾"
"󰁿"
"󰂀"
"󰂁"
"󰂂"
"󰁹"
];
on-click = "";
tooltip = false;
};
}
];
style = concatStrings [
''
* {
font-family: JetBrainsMono Nerd Font Mono;
font-size: 16px;
border-radius: 0px;
border: none;
min-height: 0px;
}
window#waybar {
background: rgba(0,0,0,0);
}
#workspaces {
color: #${config.lib.stylix.colors.base00};
background: #${config.lib.stylix.colors.base01};
margin: 4px 4px;
padding: 5px 5px;
border-radius: 16px;
}
#workspaces button {
font-weight: bold;
padding: 0px 5px;
margin: 0px 3px;
border-radius: 16px;
color: #${config.lib.stylix.colors.base00};
background: linear-gradient(45deg, #${config.lib.stylix.colors.base08}, #${config.lib.stylix.colors.base0D});
opacity: 0.5;
transition: ${betterTransition};
}
#workspaces button.active {
font-weight: bold;
padding: 0px 5px;
margin: 0px 3px;
border-radius: 16px;
color: #${config.lib.stylix.colors.base00};
background: linear-gradient(45deg, #${config.lib.stylix.colors.base08}, #${config.lib.stylix.colors.base0D});
transition: ${betterTransition};
opacity: 1.0;
min-width: 40px;
}
#workspaces button:hover {
font-weight: bold;
border-radius: 16px;
color: #${config.lib.stylix.colors.base00};
background: linear-gradient(45deg, #${config.lib.stylix.colors.base08}, #${config.lib.stylix.colors.base0D});
opacity: 0.8;
transition: ${betterTransition};
}
tooltip {
background: #${config.lib.stylix.colors.base00};
border: 1px solid #${config.lib.stylix.colors.base08};
border-radius: 12px;
}
tooltip label {
color: #${config.lib.stylix.colors.base08};
}
#window, #pulseaudio, #cpu, #memory, #idle_inhibitor {
font-weight: bold;
margin: 4px 0px;
margin-left: 7px;
padding: 0px 18px;
background: #${config.lib.stylix.colors.base04};
color: #${config.lib.stylix.colors.base00};
border-radius: 24px 10px 24px 10px;
}
#custom-startmenu {
color: #${config.lib.stylix.colors.base0B};
background: #${config.lib.stylix.colors.base02};
font-size: 28px;
margin: 0px;
padding: 0px 30px 0px 15px;
border-radius: 0px 0px 40px 0px;
}
#custom-hyprbindings, #network, #battery,
#custom-notification, #tray, #custom-exit {
font-weight: bold;
background: #${config.lib.stylix.colors.base0F};
color: #${config.lib.stylix.colors.base00};
margin: 4px 0px;
margin-right: 7px;
border-radius: 10px 24px 10px 24px;
padding: 0px 18px;
}
#clock {
font-weight: bold;
color: #0D0E15;
background: linear-gradient(90deg, #${config.lib.stylix.colors.base0E}, #${config.lib.stylix.colors.base0C});
margin: 0px;
padding: 0px 15px 0px 30px;
border-radius: 0px 0px 0px 40px;
}
''
];
};
}

View File

@@ -0,0 +1,356 @@
{ pkgs
, config
, lib
, ...
}:
let
terminal = "kitty";
base00 = "0F1419";
base01 = "131721";
base03 = "3E4B59";
base05 = "E6E1CF";
base06 = "E6E1CF";
base07 = "F3F4F5";
base08 = "F07178";
base09 = "FF8F40";
base0A = "FFB454";
base0B = "B8CC52";
base0C = "95E6CB";
base0D = "59C2FF";
base0E = "D2A6FF";
base0F = "E6B673";
in
with lib; {
# Configure & Theme Waybar
programs.waybar = {
enable = true;
package = pkgs.waybar;
settings = [
{
layer = "top";
position = "top";
modules-left = [ "custom/startmenu" "tray" "hyprland/window" ];
modules-center = [ "hyprland/workspaces" ];
modules-right = [ "idle_inhibitor" "custom/notification" "pulseaudio" "battery" "clock" "custom/exit" ];
"hyprland/workspaces" = {
format = "{name}";
format-icons = {
default = " ";
active = " ";
urgent = " ";
};
on-scroll-up = "hyprctl dispatch workspace e+1";
on-scroll-down = "hyprctl dispatch workspace e-1";
};
"clock" = {
format = '' {:%H:%M}'';
/*
''{: %I:%M %p}'';
*/
tooltip = true;
tooltip-format = "<big>{:%A, %d.%B %Y }</big><tt><small>{calendar}</small></tt>";
};
"hyprland/window" = {
max-length = 60;
separate-outputs = false;
};
"memory" = {
interval = 5;
format = " {}%";
tooltip = true;
on-click = "${terminal} -e btop";
};
"cpu" = {
interval = 5;
format = " {usage:2}%";
tooltip = true;
on-click = "${terminal} -e btop";
};
"disk" = {
format = " {free}";
tooltip = true;
# Not working with zaneyos window open then closes
#on-click = "${terminal} -e sh -c df -h ; read";
};
"network" = {
format-icons = [ "󰤯" "󰤟" "󰤢" "󰤥" "󰤨" ];
format-ethernet = " {bandwidthDownBits}";
format-wifi = " {bandwidthDownBits}";
format-disconnected = "󰤮";
tooltip = false;
on-click = "${terminal} -e btop";
};
"tray" = {
spacing = 12;
};
"pulseaudio" = {
format = "{icon} {volume}% {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/exit" = {
tooltip = false;
format = "";
on-click = "sleep 0.1 && wlogout";
};
"custom/startmenu" = {
tooltip = false;
format = " ";
# exec = "rofi -show drun";
on-click = "rofi -show drun";
};
"idle_inhibitor" = {
format = "{icon}";
format-icons = {
activated = " ";
deactivated = " ";
};
tooltip = "true";
};
"custom/notification" = {
tooltip = false;
format = "{icon} {}";
format-icons = {
notification = "<span foreground='red'><sup></sup></span>";
none = "";
dnd-notification = "<span foreground='red'><sup></sup></span>";
dnd-none = "";
inhibited-notification = "<span foreground='red'><sup></sup></span>";
inhibited-none = "";
dnd-inhibited-notification = "<span foreground='red'><sup></sup></span>";
dnd-inhibited-none = "";
};
return-type = "json";
exec-if = "which swaync-client";
exec = "swaync-client -swb";
on-click = "swaync-client -t";
escape = true;
};
"battery" = {
states = {
warning = 30;
critical = 15;
};
format = "{icon} {capacity}%";
format-charging = "󰂄 {capacity}%";
format-plugged = "󱘖 {capacity}%";
format-icons = [ "󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹" ];
on-click = "";
tooltip = false;
};
}
];
style = concatStrings [
''
* {
font-size: 16px;
font-family: JetBrainsMono Nerd Font, Font Awesome, sans-serif;
font-weight: bold;
}
window#waybar {
/*
background-color: rgba(26,27,38,0);
border-bottom: 1px solid rgba(26,27,38,0);
border-radius: 0px;
color: #${base0F};
*/
background-color: rgba(26,27,38,0);
border-bottom: 1px solid rgba(26,27,38,0);
border-radius: 0px;
color: #${base0F};
}
#workspaces {
/*
Eternal
background: linear-gradient(180deg, #${base00}, #${base01});
margin: 5px 5px 5px 0px;
padding: 0px 10px;
border-radius: 0px 15px 15px 0px;
border: 0px;
font-style: normal;
color: #${base00};
*/
background: linear-gradient(45deg, #${base01}, #${base01});
margin: 5px;
padding: 0px 1px;
border-radius: 15px;
border: 0px;
font-style: normal;
color: #${base00};
}
#workspaces button {
padding: 0px 5px;
margin: 4px 3px;
border-radius: 15px;
border: 0px;
color: #${base00};
background: linear-gradient(45deg, #${base0D}, #${base0E});
opacity: 0.5;
transition: all 0.3s ease-in-out;
}
#workspaces button.active {
padding: 0px 5px;
margin: 4px 3px;
border-radius: 15px;
border: 0px;
color: #${base00};
background: linear-gradient(45deg, #${base0D}, #${base0E});
opacity: 1.0;
min-width: 40px;
transition: all 0.3s ease-in-out;
}
#workspaces button:hover {
border-radius: 15px;
color: #${base00};
background: linear-gradient(45deg, #${base0D}, #${base0E});
opacity: 0.8;
}
tooltip {
background: #${base00};
border: 1px solid #${base0E};
border-radius: 10px;
}
tooltip label {
color: #${base07};
}
#window {
/*
Eternal
color: #${base05};
background: #${base00};
border-radius: 15px;
margin: 5px;
padding: 2px 20px;
*/
margin: 5px;
padding: 2px 20px;
color: #${base05};
background: #${base01};
border-radius: 15px 15px 15px 15px;
}
#memory {
color: #${base0F};
/*
Eternal
background: #${base00};
border-radius: 15px 15px 15px 15px;
margin: 5px;
padding: 2px 20px;
*/
background: #${base01};
margin: 5px;
padding: 2px 20px;
border-radius: 15px 15px 15px 15px;
}
#clock {
color: #${base0B};
background: #${base00};
border-radius: 15px 15px 15px 15px;
margin: 5px;
padding: 2px 20px;
}
#idle_inhibitor {
color: #${base0A};
background: #${base00};
border-radius: 15px 15px 15px 15px;
margin: 3px;
padding: 2px 20px;
}
#cpu {
color: #${base07};
background: #${base00};
border-radius: 15px 15px 15px 15px;
margin: 5px;
padding: 2px 20px;
}
#disk {
color: #${base0F};
background: #${base00};
border-radius: 15px 15px 15px 15px;
margin: 5px;
padding: 2px 20px;
}
#battery {
color: #${base08};
background: #${base00};
border-radius: 15px 15px 15px 15px;
margin: 5px;
padding: 2px 20px;
}
#network {
color: #${base09};
background: #${base00};
border-radius: 15px 15px 15px 15px;
margin: 5px;
padding: 2px 20px;
}
#tray {
color: #${base05};
background: #${base00};
border-radius: 15px 15px 15px 15px;
margin: 5px;
padding: 2px 15px;
}
#pulseaudio {
color: #${base0D};
/*
Eternal
background: #${base00};
border-radius: 15px 15px 15px 15px;
margin: 5px;
padding: 2px 20px;
*/
background: #${base01};
margin: 4px;
padding: 2px 20px;
border-radius: 15px 15px 15px 15px;
}
#custom-notification {
color: #${base0C};
background: #${base00};
border-radius: 15px 15px 15px 15px;
margin: 5px;
padding: 2px 20px;
}
#custom-startmenu {
color: #${base0E};
background: #${base00};
border-radius: 0px 15px 15px 0px;
margin: 5px 5px 5px 0px;
padding: 2px 20px;
}
#idle_inhibitor {
color: #${base09};
background: #${base00};
border-radius: 15px 15px 15px 15px;
margin: 5px;
padding: 2px 20px;
}
#custom-exit {
color: #${base0E};
background: #${base00};
border-radius: 15px 0px 0px 15px;
margin: 5px 0px 5px 5px;
padding: 2px 20px;
}
''
];
};
}

View File

@@ -0,0 +1,283 @@
{ pkgs
, lib
, host
, config
, ...
}:
let
betterTransition = "all 0.3s cubic-bezier(.55,-0.68,.48,1.682)";
inherit (import ../../../hosts/${host}/variables.nix) clock24h;
in
with lib; {
# Configure & Theme Waybar
programs.waybar = {
enable = true;
package = pkgs.waybar;
settings = [
{
layer = "top";
position = "top";
modules-center = [ "hyprland/workspaces" ];
modules-left = [
"custom/startmenu"
"hyprland/window"
"pulseaudio"
"cpu"
"memory"
"idle_inhibitor"
];
modules-right = [
"custom/hyprbindings"
"custom/notification"
"custom/exit"
"battery"
"tray"
"clock"
];
"hyprland/workspaces" = {
format = "{name}";
format-icons = {
default = " ";
active = " ";
urgent = " ";
};
on-scroll-up = "hyprctl dispatch workspace e+1";
on-scroll-down = "hyprctl dispatch workspace e-1";
};
"clock" = {
format =
if clock24h == true
then '' {:L%H:%M}''
else '' {:L%I:%M %p}'';
tooltip = true;
tooltip-format = "<big>{:%A, %d.%B %Y }</big>\n<tt><small>{calendar}</small></tt>";
};
"hyprland/window" = {
max-length = 22;
separate-outputs = false;
rewrite = {
"" = " 🙈 No Windows? ";
};
};
"memory" = {
interval = 5;
format = " {}%";
tooltip = true;
};
"cpu" = {
interval = 5;
format = " {usage:2}%";
tooltip = true;
};
"disk" = {
format = " {free}";
tooltip = true;
};
"network" = {
format-icons = [
"󰤯"
"󰤟"
"󰤢"
"󰤥"
"󰤨"
];
format-ethernet = " {bandwidthDownOctets}";
format-wifi = "{icon} {signalStrength}%";
format-disconnected = "󰤮";
tooltip = false;
};
"tray" = {
spacing = 12;
};
"pulseaudio" = {
format = "{icon} {volume}% {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 = "sleep 0.1 && pavucontrol";
};
"custom/exit" = {
tooltip = false;
format = "";
on-click = "sleep 0.1 && wlogout";
};
"custom/startmenu" = {
tooltip = false;
format = "";
# exec = "rofi -show drun";
#on-click = "sleep 0.1 && rofi-launcher";
on-click = "sleep 0.1 && nwg-drawer -mb 200 -mt 200 -mr 200 -ml 200";
};
"custom/hyprbindings" = {
tooltip = false;
format = "󱕴";
on-click = "sleep 0.1 && list-keybinds";
};
"idle_inhibitor" = {
format = "{icon}";
format-icons = {
activated = "";
deactivated = "";
};
tooltip = "true";
};
"custom/notification" = {
tooltip = false;
format = "{icon} {}";
format-icons = {
notification = "<span foreground='red'><sup></sup></span>";
none = "";
dnd-notification = "<span foreground='red'><sup></sup></span>";
dnd-none = "";
inhibited-notification = "<span foreground='red'><sup></sup></span>";
inhibited-none = "";
dnd-inhibited-notification = "<span foreground='red'><sup></sup></span>";
dnd-inhibited-none = "";
};
return-type = "json";
exec-if = "which swaync-client";
exec = "swaync-client -swb";
on-click = "sleep 0.1 && task-waybar";
escape = true;
};
"battery" = {
states = {
warning = 30;
critical = 15;
};
format = "{icon} {capacity}%";
format-charging = "󰂄 {capacity}%";
format-plugged = "󱘖 {capacity}%";
format-icons = [
"󰁺"
"󰁻"
"󰁼"
"󰁽"
"󰁾"
"󰁿"
"󰂀"
"󰂁"
"󰂂"
"󰁹"
];
on-click = "";
tooltip = false;
};
}
];
style = concatStrings [
''
* {
font-family: JetBrainsMono Nerd Font Mono;
font-size: 18px;
border-radius: 0px;
border: none;
min-height: 0px;
}
window#waybar {
background: rgba(0,0,0,0);
}
#workspaces {
color: #${config.lib.stylix.colors.base00};
background: #${config.lib.stylix.colors.base01};
margin: 4px 4px;
padding: 5px 5px;
border-radius: 16px;
}
#workspaces button {
font-weight: bold;
padding: 0px 5px;
margin: 0px 3px;
border-radius: 16px;
color: #${config.lib.stylix.colors.base00};
background: linear-gradient(45deg, #${config.lib.stylix.colors.base08}, #${config.lib.stylix.colors.base0D});
opacity: 0.5;
transition: ${betterTransition};
}
#workspaces button.active {
font-weight: bold;
padding: 0px 5px;
margin: 0px 3px;
border-radius: 16px;
color: #${config.lib.stylix.colors.base00};
background: linear-gradient(45deg, #${config.lib.stylix.colors.base08}, #${config.lib.stylix.colors.base0D});
transition: ${betterTransition};
opacity: 1.0;
min-width: 40px;
}
#workspaces button:hover {
font-weight: bold;
border-radius: 16px;
color: #${config.lib.stylix.colors.base00};
background: linear-gradient(45deg, #${config.lib.stylix.colors.base08}, #${config.lib.stylix.colors.base0D});
opacity: 0.8;
transition: ${betterTransition};
}
tooltip {
background: #${config.lib.stylix.colors.base00};
border: 1px solid #${config.lib.stylix.colors.base08};
border-radius: 12px;
}
tooltip label {
color: #${config.lib.stylix.colors.base08};
}
#window, #pulseaudio, #cpu, #memory, #idle_inhibitor {
font-weight: bold;
margin: 4px 0px;
margin-left: 7px;
padding: 0px 18px;
background: #${config.lib.stylix.colors.base00};
color: #${config.lib.stylix.colors.base08};
border-radius: 8px 8px 8px 8px;
}
#idle_inhibitor {
font-size: 28px;
}
#custom-startmenu {
color: #${config.lib.stylix.colors.base0B};
background: #${config.lib.stylix.colors.base02};
font-size: 22px;
margin: 0px;
padding: 0px 5px 0px 5px;
border-radius: 16px 16px 16px 16px;
}
#custom-hyprbindings, #network, #battery,
#custom-notification, #tray, #custom-exit {
/* font-weight: bold; */
font-size: 20px;
background: #${config.lib.stylix.colors.base00};
color: #${config.lib.stylix.colors.base08};
margin: 4px 0px;
margin-right: 7px;
border-radius: 8px 8px 8px 8px;
padding: 0px 18px;
}
#clock {
font-weight: bold;
font-size: 16px;
color: #0D0E15;
background: linear-gradient(90deg, #${config.lib.stylix.colors.base0B}, #${config.lib.stylix.colors.base02});
margin: 0px;
padding: 0px 5px 0px 5px;
border-radius: 16px 16px 16px 16px;
}
''
];
};
}

View File

@@ -0,0 +1,480 @@
{
config,
pkgs,
...
}: {
home.packages = with pkgs; [waybar];
programs.waybar = {
enable = true;
settings = {
mainBar = {
layer = "top";
"modules-left" = ["hyprland/workspaces" "temperature" "hyprland/window"];
"modules-center" = ["custom/spacer"];
"modules-right" = ["tray" "cpu" "memory" "idle_inhibitor" "clock" "pulseaudio" "bluetooth"];
"hyprland/window" = {
format = "{title}";
"max-length" = 333;
"seperate-outputs" = true;
};
clock = {
format = "<span foreground='#282828'> </span><span>{:%I:%M %a %d}</span>";
"tooltip-format" = "{calendar}";
calendar = {
mode = "month";
"mode-mon-col" = 3;
"on-scroll" = 1;
"on-click-right" = "mode";
format = {
months = "<span color='#ffead3'><b>{}</b></span>";
days = "<span color='#ecc6d9'><b>{}</b></span>";
weeks = "<span color='#99ffdd'><b>{%W}</b></span>";
weekdays = "<span color='#ffcc66'><b>{}</b></span>";
today = "<span color='#ff6699'><b>{}</b></span>";
};
};
actions = {
"on-click-middle" = "mode";
"on-click-right" = "shift_up";
"on-click" = "shift_down";
};
};
cpu = {
format = "<span foreground='#b8bb26'>󰯳</span> {usage}%";
};
memory = {
format = "<span foreground='#d65d9e'>󰍛</span> {}%";
interval = 1;
};
"custom/gpu-util" = {
exec = "./scripts/gpu-util";
format = "<span foreground='#67b0e8'>󰯿</span> {}";
interval = 1;
};
"custom/gpu-temp" = {
exec = "./scripts/gpu-temp";
format = "<span foreground='#e57474'></span> {}";
interval = 1;
};
temperature = {
"hwmon-path" = "/sys/class/hwmon/hwmon1/temp1_input";
"critical-threshold" = 80;
format = "<span foreground='#83a598'></span> {temperatureC}°C";
interval = 1;
};
"hyprland/workspaces" = {
format = "{icon}";
"active-only" = false;
"sort-by-number" = false;
"on-click" = "activate";
"all-outputs" = false;
"format-icons" = {
"1" = "1";
"2" = "2";
"3" = "3";
"4" = "4";
"5" = "5";
"6" = "6";
"7" = "7";
"8" = "8";
"9" = "9";
"10" = "10";
};
};
network = {
format = "󰤭 Off";
"format-wifi" = "{essid} ({signalStrength}%)";
"format-ethernet" = "<span foreground='#b48ead'>󰈀</span>";
"format-disconnected" = "󰤭 Disconnected";
"tooltip-format" = "{ifname} via {gwaddr} ";
"tooltip-format-wifi" = "{essid}({signalStrength}%) ";
"tooltip-format-ethernet" = "󰈀 {ifname}";
"tooltip-format-disconnected" = "Disconnected";
};
pulseaudio = {
format = "<span foreground='#cc241d'>{icon}</span> {volume}% {format_source}";
"format-bluetooth" = "<span foreground='#b16286'>{icon}</span> {volume}% {format_source}";
"format-bluetooth-muted" = "<span foreground='#D699B6'>󰖁</span> {format_source}";
"format-muted" = "<span foreground='#7A8478'>󰖁</span> {format_source}";
"format-source" = "<span foreground='#E67E80'></span> {volume}%";
"format-source-muted" = "<span foreground='#F38BA8'></span>";
"format-icons" = {
headphone = "";
phone = "";
portable = "";
default = ["" "" ""];
};
"on-click-left" = "pavucontrol";
input = true;
};
"custom/playerctl" = {
format = "{icon} <span>{}</span>";
"return-type" = "json";
"max-length" = 333;
exec = "playerctl -a metadata --format '{\"text\": \"{{artist}} ~ {{markup_escape(title)}}\", \"tooltip\": \"{{playerName}} : {{markup_escape(title)}}\", \"alt\": \"{{status}}\", \"class\": \"{{status}}\"}' -F";
"on-click-middle" = "playerctl play-pause";
"on-click" = "playerctl previous";
"on-click-right" = "playerctl next";
"format-icons" = {
Playing = "<span foreground='#98BB6C'></span>";
Paused = "<span foreground='#E46876'></span>";
};
};
tray = {
format = "<span foreground='#D3C6AA'>{icon}</span>";
"icon-size" = 14;
spacing = 5;
};
idle_inhibitor = {
format = "{icon}";
"format-icons" = {
activated = "󱠛";
deactivated = "󱤱";
};
};
"custom/subs" = {
format = "<span foreground='#fbf1c7'>󰗃 </span> {}";
exec = "/usr/local/bin/subsfile.sh";
"on-click" = "vivaldi-stable https://youtube.com/thelinuxcast";
"restart-interval" = 1;
};
"custom/spacer" = {
format = " ";
};
"wlr/taskbar" = {
format = "{name}";
"icon-size" = 14;
"icon-theme" = "Numix-Circle";
"tooltip-format" = "{title}";
"on-click" = "activate";
"on-click-middle" = "close";
"ignore-list" = ["Alacritty"];
"app_ids-mapping" = {
firefoxdeveloperedition = "firefox-developer-edition";
};
rewrite = {
"Firefox Web Browser" = "Firefox";
"Foot Server" = "Terminal";
};
};
bluetooth = {
"on-click" = "./scripts/bluetooth-control";
"on-click-right" = "./scripts/rofi-bluetooth";
"on-click-middle" = "./scripts/rofi-bluetooth";
format = "{icon}";
interval = 15;
"format-icons" = {
on = "<span foreground='#43242B'></span>";
off = "<span foreground='#76946A'>󰂲</span>";
disabled = "󰂲";
connected = "";
};
"tooltip-format" = "{device_alias} {status}";
};
};
};
style = ''
@define-color background #${config.stylix.base16Scheme.base00};
@define-color foreground #${config.stylix.base16Scheme.base05};
@define-color border #${config.stylix.base16Scheme.base02};
@define-color color1 #${config.stylix.base16Scheme.base01};
@define-color color2 #${config.stylix.base16Scheme.base02};
@define-color color3 #${config.stylix.base16Scheme.base03};
@define-color color4 #${config.stylix.base16Scheme.base04};
@define-color color5 #${config.stylix.base16Scheme.base05};
@define-color color6 #${config.stylix.base16Scheme.base06};
@define-color color7 #${config.stylix.base16Scheme.base07};
@define-color color8 #${config.stylix.base16Scheme.base08};
@define-color color9 #${config.stylix.base16Scheme.base09};
@define-color color10 #${config.stylix.base16Scheme.base0A};
@define-color color11 #${config.stylix.base16Scheme.base0B};
@define-color color12 #${config.stylix.base16Scheme.base0C};
@define-color color13 #${config.stylix.base16Scheme.base0D};
@define-color color14 #${config.stylix.base16Scheme.base0E};
@define-color color15 #${config.stylix.base16Scheme.base0F};
* {
min-height: 0;
margin: 0;
padding: 0;
font-family: "JetBrains Mono Nerd Font";
font-size: 14pt;
font-weight: 700;
padding-bottom: 0px;
}
tooltip {
background: @background;
border: 2px solid @border;
}
#window {
margin: 0px 5px 0px 5px;
padding-left: 10px;
padding-right: 7px;
background-color: @color14;
color: #282828;
}
window#waybar.empty #window {
background-color: transparent;
border-bottom: none;
border-right: none;
}
window#waybar {
background-color:@color14;
color: @color2;
}
/* Workspaces */
#workspaces {
margin: 0px 0px 0px 0px;
padding: 0px;
background-color: @background;
color: @color7;
}
#workspaces button {
margin: 0px 0px 0px 0px;
padding-left: 3px;
padding-right: 9px;
background-color: @background;
color: @color7;
}
#workspaces button.active {
padding: 0 2px 0 1px;
color: @color3;
}
#workspaces button.urgent {
color: @color9;
}
#custom-gpu-util {
margin: 0px 5px 0px 5px;
padding-left: 10px;
padding-right: 10px;
background-color: @background;
color: @foreground;
}
#tray {
margin: 0px 0px 0px 0px;
padding-left: 10px;
padding-right: 10px;
background-color: @background;
color: @foreground;
}
#idle_inhibitor {
margin: 0px 0px 0px 0px;
padding-left: 10px;
padding-right: 12px;
background-color: @background;
color: @foreground;
}
#idle_inhibitor.activated {
color: @color9;
}
#network {
margin: 0px 0px 0px 0px;
padding-left: 10px;
padding-right: 12px;
background-color: @background;
color: @color11;
}
#network.linked {
color: @color6;
}
#network.disconnected,
#network.disabled {
color: @color4;
}
#custom-subs {
color: @foreground;
margin: 0px 5px 0px 5px;
padding-left: 10px;
padding-right: 12px;
border-bottom: 2px solid @background;
border-right: 2px solid @background;
border-color: @color8;
background-color: @color13;
}
#custom-cliphist {
color: @color14;
margin: 0px 5px 0px 5px;
padding-left: 10px;
padding-right: 12px;
background-color: @background;
}
#custom-gpu-temp,
#custom-clipboard {
margin: 0px 5px 0px 5px;
padding-left: 10px;
padding-right: 10px;
color: @foreground;
background-color: @background;
}
#cpu {
margin: 0px 0px 0px 0px;
padding-left: 6px;
padding-right: 6px;
color: @foreground;
background-color: @background;
}
#custom-cpuicon {
margin: 0px 0px 0px 0px;
padding: 0px 10px 0px 10px;
color: @color14;
background-color: @background;
}
#custom-diskicon {
margin: 0px 0px 0px 0;
padding: 0 10px 0 10px;
color: @color2;
background-color: @background;
}
#disk {
margin: 0px 0px 0px 0;
padding-left: 0px;
padding-right: 0px;
color: @foreground;
background-color: @background;
}
#custom-notification {
background-color: @background;
color: @color15;
padding: 0 12px;
margin-right: 0px;
font-size: 14px;
font-family: "JetBrainsMono Nerd Font";
}
#custom-memoryicon {
margin: 0px 0px 0px 0px;
color: @color4;
padding: 0 11px 0 7px;
background-color: @background;
}
#memory {
margin: 0px 0px 0px 0px;
padding-left: 5px;
padding-right: 10px;
color: @color4;
background-color: @background;
}
#custom-tempicon {
margin: 0px 0px 0px 0px;
color: @color10;
padding: 0 11px 0 8px;
background-color: @background;
}
#temperature {
margin: 0px 0px 0px 0px;
padding-left: 5px;
padding-right: 10px;
color: @color10;
background-color: @background;
}
#custom-playerctl {
margin: 0px 5px 0px 5px;
padding-left: 10px;
padding-right: 10px;
color: @foreground;
background-color: @background;
}
#battery,
#backlight,
#bluetooth,
#pulseaudio {
margin-top: 0px;
margin-bottom: 0px;
color: @foreground;
background-color: @background;
}
#pulseaudio {
margin-top: 0px;
margin-bottom: 0px;
color: @color15;
background-color: @background;
}
#battery,
#bluetooth {
margin-left: 0px;
margin-right: 0px;
padding-left: 0px;
padding-right: 2px;
}
#backlight,
#pulseaudio {
margin-right: 0px;
margin-left: 0px;
padding-left: 10px;
padding-right: 7.5px;
}
#clock {
margin: 0px 0px 0px 0px;
padding-left: 10px;
padding-right: 10px;
color: @color6;
background-color: @background;
}
#custom-clockicon {
margin: 0px 0 0px 0px;
color: @color6;
padding: 0 5px 0 10px;
background-color: @background;
}
#taskbar {
padding: 0 3px;
margin: 0 0px;
color: #ffffff;
background-color: rgba(120,118,117,0.3);
}
#taskbar button {
padding: 0 0 0 3px;
margin: 0px 0px;
color: #ffffff;
background-color: rgba(120,118,117,0.1);
}
#taskbar button.active {
background-color: rgba(120,118,117,0.8);
}
#mode {
margin: 0px 5px 0px 5px;
padding-left: 10px;
padding-right: 10px;
background-color: @background;
color: @color9;
}
'';
};
}

View File

@@ -0,0 +1,429 @@
{
config,
pkgs,
...
}: {
home.packages = with pkgs; [waybar];
programs.waybar = {
enable = true;
settings = {
mainBar = {
layer = "top";
"modules-left" = ["hyprland/workspaces" "hyprland/window"];
"modules-center" = ["clock"];
"modules-right" = ["tray" "cpu" "memory" "idle_inhibitor" "pulseaudio" "bluetooth"];
"hyprland/window" = {
format = "{title}";
"max-length" = 333;
"seperate-outputs" = true;
};
clock = {
format = "<span foreground='#282828'> </span><span>{:%I:%M %a %d}</span>";
"tooltip-format" = "{calendar}";
calendar = {
mode = "month";
"mode-mon-col" = 3;
"on-scroll" = 1;
"on-click-right" = "mode";
format = {
months = "<span color='#ffead3'><b>{}</b></span>";
days = "<span color='#ecc6d9'><b>{}</b></span>";
weeks = "<span color='#99ffdd'><b>{%W}</b></span>";
weekdays = "<span color='#ffcc66'><b>{}</b></span>";
today = "<span color='#ff6699'><b>{}</b></span>";
};
};
actions = {
"on-click-middle" = "mode";
"on-click-right" = "shift_up";
"on-click" = "shift_down";
};
};
cpu = {
format = "<span foreground='#b8bb26'>󰯳</span> {usage}%";
};
memory = {
format = "<span foreground='#d65d9e'>󰍛</span> {}%";
interval = 1;
};
"custom/gpu-util" = {
exec = "./scripts/gpu-util";
format = "<span foreground='#67b0e8'>󰯿</span> {}";
interval = 1;
};
"custom/gpu-temp" = {
exec = "./scripts/gpu-temp";
format = "<span foreground='#e57474'></span> {}";
interval = 1;
};
temperature = {
"hwmon-path" = "/sys/class/hwmon/hwmon1/temp1_input";
"critical-threshold" = 80;
format = "<span foreground='#83a598'></span> {temperatureC}°C";
interval = 1;
};
"hyprland/workspaces" = {
format = "{icon}";
"active-only" = false;
"sort-by-number" = true;
"on-click" = "activate";
"all-outputs" = false;
"format-icons" = {
"1" = "1";
"2" = "2";
"3" = "3";
"4" = "4";
"5" = "5";
"6" = "6";
"7" = "7";
"8" = "8";
"9" = "9";
"10" = "10";
};
};
network = {
format = "󰤭 Off";
"format-wifi" = "{essid} ({signalStrength}%)";
"format-ethernet" = "<span foreground='#b48ead'>󰈀</span>";
"format-disconnected" = "󰤭 Disconnected";
"tooltip-format" = "{ifname} via {gwaddr} ";
"tooltip-format-wifi" = "{essid}({signalStrength}%) ";
"tooltip-format-ethernet" = "󰈀 {ifname}";
"tooltip-format-disconnected" = "Disconnected";
};
pulseaudio = {
format = "<span foreground='#cc241d'>{icon}</span> {volume}% {format_source}";
"format-bluetooth" = "<span foreground='#b16286'>{icon}</span> {volume}% {format_source}";
"format-bluetooth-muted" = "<span foreground='#D699B6'>󰖁</span> {format_source}";
"format-muted" = "<span foreground='#7A8478'>󰖁</span> {format_source}";
"format-source" = "<span foreground='#E67E80'></span> {volume}%";
"format-source-muted" = "<span foreground='#F38BA8'></span>";
"format-icons" = {
headphone = "";
phone = "";
portable = "";
default = ["" "" ""];
};
"on-click-left" = "pavucontrol";
input = true;
};
"custom/playerctl" = {
format = "{icon} <span>{}</span>";
"return-type" = "json";
"max-length" = 333;
exec = "playerctl -a metadata --format '{\"text\": \"{{artist}} ~ {{markup_escape(title)}}\", \"tooltip\": \"{{playerName}} : {{markup_escape(title)}}\", \"alt\": \"{{status}}\", \"class\": \"{{status}}\"}' -F";
"on-click-middle" = "playerctl play-pause";
"on-click" = "playerctl previous";
"on-click-right" = "playerctl next";
"format-icons" = {
Playing = "<span foreground='#98BB6C'></span>";
Paused = "<span foreground='#E46876'></span>";
};
};
tray = {
format = "<span foreground='#D3C6AA'>{icon}</span>";
"icon-size" = 14;
spacing = 5;
};
idle_inhibitor = {
format = "{icon}";
"format-icons" = {
activated = "󱠛";
deactivated = "󱤱";
};
};
"custom/subs" = {
format = "<span foreground='#fbf1c7'>󰗃 </span> {}";
exec = "/usr/local/bin/subsfile.sh";
"on-click" = "vivaldi-stable https://youtube.com/thelinuxcast";
"restart-interval" = 1;
};
"custom/spacer" = {
format = " ";
};
"wlr/taskbar" = {
format = "{name}";
"icon-size" = 14;
"icon-theme" = "Numix-Circle";
"tooltip-format" = "{title}";
"on-click" = "activate";
"on-click-middle" = "close";
"ignore-list" = ["Alacritty"];
"app_ids-mapping" = {
firefoxdeveloperedition = "firefox-developer-edition";
};
rewrite = {
"Firefox Web Browser" = "Firefox";
"Foot Server" = "Terminal";
};
};
bluetooth = {
"on-click" = "./scripts/bluetooth-control";
"on-click-right" = "./scripts/rofi-bluetooth";
"on-click-middle" = "./scripts/rofi-bluetooth";
format = "{icon}";
interval = 15;
"format-icons" = {
on = "<span foreground='#43242B'></span>";
off = "<span foreground='#76946A'>󰂲</span>";
disabled = "󰂲";
connected = "";
};
"tooltip-format" = "{device_alias} {status}";
};
};
};
style = ''
@define-color bg #${config.stylix.base16Scheme.base00};
@define-color fg #${config.stylix.base16Scheme.base05};
@define-color lbg #${config.stylix.base16Scheme.base01};
@define-color yellow #${config.stylix.base16Scheme.base0A};
@define-color lavender #${config.stylix.base16Scheme.base0E};
@define-color peach #${config.stylix.base16Scheme.base0A};
@define-color red #${config.stylix.base16Scheme.base08};
@define-color green #${config.stylix.base16Scheme.base0B};
@define-color blue #${config.stylix.base16Scheme.base0D};
@define-color border #${config.stylix.base16Scheme.base02};
* {
min-height: 0;
margin: 0px 0px 0px 0px;
padding: 0;
border-radius: 7px;
font-family: "JetBrains Mono Nerd Font";
font-size: 10pt;
font-weight: 700;
padding-bottom: 0px;
}
tooltip {
background: @bg;
border-radius: 7px;
border: 2px solid @border;
}
#window {
margin: 0px 0px 0px 0px;
padding-left: 10px;
padding-right: 7px;
border-radius: 3px;
border-color: @lbg;
background-color: @yellow;
color: @bg;
}
window#waybar.empty #window {
background-color: @bg;
border-bottom: none;
border-right: none;
}
window#waybar {
background-color: @bg;
color: @lavender;
}
/* Workspaces */
@keyframes button_activate {
from { opacity: .3 }
to { opacity: 1.; }
}
#workspaces {
margin: 0px 0px 0px 0px;
border-radius: 3px;
padding: 1px;
background-color: @bg;
color: @bg;
}
#workspaces button {
margin: 0px 0px 0px 0px;
border-radius: 3px;
padding-left: 3px;
padding-right: 9px;
background-color: @bg;
color: @fg;
}
#workspaces button.active {
background-color:@blue;
color: @bg;
}
#workspaces button.urgent {
color: #F38BA8;
}
#workspaces button:hover {
border: solid transparent;
}
#custom-gpu-util {
margin: 0px 0px 0px 0px;
padding-left: 10px;
padding-right: 10px;
border-radius: 7px;
background-color: @bg;
color: @fg;
}
#tray {
margin: 0px 0px 0px 0px;
border-radius: 3px;
padding-left: 10px;
padding-right: 10px;
background-color: @bg;
color: @fg;
}
#idle_inhibitor {
margin: 0px 0px 0px 0px;
padding-left: 10px;
padding-right: 12px;
border-radius: 3px;
background-color: @bg;
color: @fg;
}
#network {
margin: 5px 5px 2px 5px;
padding-left: 10px;
padding-right: 12px;
border-radius: 7px;
background-color: @bg;
color: @lavender;
}
#network.linked {
color: @peach;
}
#network.disconnected,
#network.disabled {
color: @red;
}
#custom-subs {
color: @fg;
margin: 5px 5px 2px 5px;
padding-left: 10px;
padding-right: 12px;
border-radius: 3px;
border-bottom: 2px solid @bg;
border-right: 2px solid @bg;
border-color: @lbg;
background-color: @red;
}
#custom-spacer {
background-color: @yellow;
}
#custom-cliphist {
color: @peach;
margin: 5px 5px 2px 5px;
padding-left: 10px;
padding-right: 12px;
border-radius: 3px;
background-color: @bg;
}
#custom-gpu-temp,
#cpu,
#memory,
#custom-clipboard,
#temperature {
margin: 0px 0px 0px 0px;
padding-left: 10px;
padding-right: 10px;
border-radius: 3px;
color: @fg;
background-color: @bg;
}
#custom-playerctl {
margin: 5px 5px 2px 5px;
padding-left: 10px;
padding-right: 10px;
border-radius: 3px;
color: @fg;
background-color: @bg;
}
#battery,
#backlight,
#bluetooth,
#pulseaudio {
margin-top: 5px;
margin-bottom: 2px;
color: @fg;
background-color: @bg;
border-top-right-radius: 0px;
border-bottom-right-radius: 0px;
border-top-left-radius: 3px;
border-bottom-left-radius: 3px;
}
#battery,
#bluetooth {
margin-left: 0px;
margin-right: 5px;
padding-left: 7.5px;
padding-right: 10px;
border-top-left-radius: 0px;
border-bottom-left-radius: 0px;
border-top-right-radius: 3px;
border-bottom-right-radius: 3px;
}
#backlight,
#pulseaudio {
margin-right: 0px;
margin-left: 5px;
padding-left: 10px;
padding-right: 7.5px;
border-top-right-radius: 0px;
border-bottom-right-radius: 0px;
border-top-left-radius: 3px;
border-bottom-left-radius: 3px;
}
#clock {
margin: 0px 0px 0px 0px;
padding-left: 10px;
padding-right: 10px;
border-radius: 3px;
color: @bg;
background-color: @green;
}
#taskbar {
border-radius: 0px 0px 0px 0;
padding: 0 3px;
margin: 0 0px;
color: #ffffff;
background-color: rgba(120,118,117,0.3);
}
#taskbar button {
border-radius: 0px 0px 0px 0px;
padding: 0 0 0 3px;
margin: 3px 1;
color: #ffffff;
background-color: rgba(120,118,117,0.1);
}
#taskbar button.active {
background-color: rgba(120,118,117,0.8);
}
#mode {
margin: 0px 0px 0px 0px;
padding-left: 10px;
padding-right: 10px;
border-radius: 3px;
background-color: @bg;
color: @peach;
}
'';
};
}

View File

@@ -0,0 +1,356 @@
{ pkgs
, config
, lib
, ...
}:
let
terminal = "kitty";
base00 = "0F1419";
base01 = "131721";
base03 = "3E4B59";
base05 = "E6E1CF";
base06 = "E6E1CF";
base07 = "F3F4F5";
base08 = "F07178";
base09 = "FF8F40";
base0A = "FFB454";
base0B = "B8CC52";
base0C = "95E6CB";
base0D = "59C2FF";
base0E = "D2A6FF";
base0F = "E6B673";
in
with lib; {
# Configure & Theme Waybar
programs.waybar = {
enable = true;
package = pkgs.waybar;
settings = [
{
layer = "top";
position = "top";
modules-center = [ "network" "pulseaudio" "cpu" "hyprland/workspaces" "memory" "disk" "clock" ]; # Eterna: [ "hyprland/window" ]
modules-left = [ "custom/startmenu" "hyprland/window" ]; # Eternal: [ "hyprland/workspaces" "cpu" "memory" "network" ]
modules-right = [ "tray" "idle_inhibitor" "custom/notification" "battery" "custom/exit" ]; # Eternal: [ "idle_inhibitor" "pulseaudio" "clock" "custom/notification" "tray" ]
"hyprland/workspaces" = {
format = "{name}";
format-icons = {
default = " ";
active = " ";
urgent = " ";
};
on-scroll-up = "hyprctl dispatch workspace e+1";
on-scroll-down = "hyprctl dispatch workspace e-1";
};
"clock" = {
format = '' {:%H:%M}'';
/*
''{: %I:%M %p}'';
*/
tooltip = true;
tooltip-format = "<big>{:%A, %d.%B %Y }</big><tt><small>{calendar}</small></tt>";
};
"hyprland/window" = {
max-length = 60;
separate-outputs = false;
};
"memory" = {
interval = 5;
format = " {}%";
tooltip = true;
on-click = "${terminal} -e btop";
};
"cpu" = {
interval = 5;
format = " {usage:2}%";
tooltip = true;
on-click = "${terminal} -e btop";
};
"disk" = {
format = " {free}";
tooltip = true;
# Not working with zaneyos window open then closes
#on-click = "${terminal} -e sh -c df -h ; read";
};
"network" = {
format-icons = [ "󰤯" "󰤟" "󰤢" "󰤥" "󰤨" ];
format-ethernet = " {bandwidthDownBits}";
format-wifi = " {bandwidthDownBits}";
format-disconnected = "󰤮";
tooltip = false;
on-click = "${terminal} -e btop";
};
"tray" = {
spacing = 12;
};
"pulseaudio" = {
format = "{icon} {volume}% {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/exit" = {
tooltip = false;
format = "";
on-click = "sleep 0.1 && wlogout";
};
"custom/startmenu" = {
tooltip = false;
format = " ";
# exec = "rofi -show drun";
on-click = "rofi -show drun";
};
"idle_inhibitor" = {
format = "{icon}";
format-icons = {
activated = " ";
deactivated = " ";
};
tooltip = "true";
};
"custom/notification" = {
tooltip = false;
format = "{icon} {}";
format-icons = {
notification = "<span foreground='red'><sup></sup></span>";
none = "";
dnd-notification = "<span foreground='red'><sup></sup></span>";
dnd-none = "";
inhibited-notification = "<span foreground='red'><sup></sup></span>";
inhibited-none = "";
dnd-inhibited-notification = "<span foreground='red'><sup></sup></span>";
dnd-inhibited-none = "";
};
return-type = "json";
exec-if = "which swaync-client";
exec = "swaync-client -swb";
on-click = "swaync-client -t";
escape = true;
};
"battery" = {
states = {
warning = 30;
critical = 15;
};
format = "{icon} {capacity}%";
format-charging = "󰂄 {capacity}%";
format-plugged = "󱘖 {capacity}%";
format-icons = [ "󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹" ];
on-click = "";
tooltip = false;
};
}
];
style = concatStrings [
''
* {
font-size: 16px;
font-family: JetBrainsMono Nerd Font, Font Awesome, sans-serif;
font-weight: bold;
}
window#waybar {
/*
background-color: rgba(26,27,38,0);
border-bottom: 1px solid rgba(26,27,38,0);
border-radius: 0px;
color: #${base0F};
*/
background-color: rgba(26,27,38,0);
border-bottom: 1px solid rgba(26,27,38,0);
border-radius: 0px;
color: #${base0F};
}
#workspaces {
/*
Eternal
background: linear-gradient(180deg, #${base00}, #${base01});
margin: 5px 5px 5px 0px;
padding: 0px 10px;
border-radius: 0px 15px 50px 0px;
border: 0px;
font-style: normal;
color: #${base00};
*/
background: linear-gradient(45deg, #${base01}, #${base01});
margin: 5px;
padding: 0px 1px;
border-radius: 15px;
border: 0px;
font-style: normal;
color: #${base00};
}
#workspaces button {
padding: 0px 5px;
margin: 4px 3px;
border-radius: 15px;
border: 0px;
color: #${base00};
background: linear-gradient(45deg, #${base0D}, #${base0E});
opacity: 0.5;
transition: all 0.3s ease-in-out;
}
#workspaces button.active {
padding: 0px 5px;
margin: 4px 3px;
border-radius: 15px;
border: 0px;
color: #${base00};
background: linear-gradient(45deg, #${base0D}, #${base0E});
opacity: 1.0;
min-width: 40px;
transition: all 0.3s ease-in-out;
}
#workspaces button:hover {
border-radius: 15px;
color: #${base00};
background: linear-gradient(45deg, #${base0D}, #${base0E});
opacity: 0.8;
}
tooltip {
background: #${base00};
border: 1px solid #${base0E};
border-radius: 10px;
}
tooltip label {
color: #${base07};
}
#window {
/*
Eternal
color: #${base05};
background: #${base00};
border-radius: 15px;
margin: 5px;
padding: 2px 20px;
*/
margin: 5px;
padding: 2px 20px;
color: #${base05};
background: #${base01};
border-radius: 50px 15px 50px 15px;
}
#memory {
color: #${base0F};
/*
Eternal
background: #${base00};
border-radius: 50px 15px 50px 15px;
margin: 5px;
padding: 2px 20px;
*/
background: #${base01};
margin: 5px;
padding: 2px 20px;
border-radius: 15px 50px 15px 50px;
}
#clock {
color: #${base0B};
background: #${base00};
border-radius: 15px 50px 15px 50px;
margin: 5px;
padding: 2px 20px;
}
#idle_inhibitor {
color: #${base0A};
background: #${base00};
border-radius: 50px 15px 50px 15px;
margin: 5px;
padding: 2px 20px;
}
#cpu {
color: #${base07};
background: #${base00};
border-radius: 50px 15px 50px 15px;
margin: 5px;
padding: 2px 20px;
}
#disk {
color: #${base0F};
background: #${base00};
border-radius: 15px 50px 15px 50px;
margin: 5px;
padding: 2px 20px;
}
#battery {
color: #${base08};
background: #${base00};
border-radius: 15px 50px 15px 50px;
margin: 5px;
padding: 2px 20px;
}
#network {
color: #${base09};
background: #${base00};
border-radius: 50px 15px 50px 15px;
margin: 5px;
padding: 2px 20px;
}
#tray {
color: #${base05};
background: #${base00};
border-radius: 15px 50px 15px 50px;
margin: 5px;
padding: 2px 20px;
}
#pulseaudio {
color: #${base0D};
/*
Eternal
background: #${base00};
border-radius: 15px 50px 15px 50px;
margin: 5px;
padding: 2px 20px;
*/
background: #${base01};
margin: 4px;
padding: 2px 20px;
border-radius: 50px 15px 50px 15px;
}
#custom-notification {
color: #${base0C};
background: #${base00};
border-radius: 15px 50px 15px 50px;
margin: 5px;
padding: 2px 20px;
}
#custom-startmenu {
color: #${base0E};
background: #${base00};
border-radius: 0px 15px 50px 0px;
margin: 5px 5px 5px 0px;
padding: 2px 20px;
}
#idle_inhibitor {
color: #${base09};
background: #${base00};
border-radius: 15px 50px 15px 50px;
margin: 5px;
padding: 2px 20px;
}
#custom-exit {
color: #${base0E};
background: #${base00};
border-radius: 15px 0px 0px 50px;
margin: 5px 0px 5px 5px;
padding: 2px 20px;
}
''
];
};
}

View File

@@ -0,0 +1,306 @@
{ pkgs
, lib
, host
, config
, ...
}:
let
betterTransition = "all 0.3s cubic-bezier(.55,-0.68,.48,1.682)";
inherit (import ../../../hosts/${host}/variables.nix) clock24h;
in
with lib; {
# Configure & Theme Waybar
programs.waybar = {
enable = true;
package = pkgs.waybar;
settings = [
{
layer = "top";
position = "top";
margin-top = 6;
margin-left = 6;
margin-right = 6;
modules-center = [ "hyprland/workspaces" ];
modules-left = [
"custom/startmenu"
"cpu"
"memory"
"temperature"
"disk"
"hyprland/window"
"idle_inhibitor"
];
modules-right = [
"pulseaudio"
"battery"
"custom/hyprbindings"
"custom/notification"
"clock"
"tray"
];
"hyprland/workspaces" = {
format = "{name}";
format-icons = {
default = " ";
active = " ";
urgent = " ";
};
on-scroll-up = "hyprctl dispatch workspace e+1";
on-scroll-down = "hyprctl dispatch workspace e-1";
};
"pulseaudio/slider" = {
min = 0;
max = 100;
orientation = "horizontal";
};
"temperature" = {
format = " {temperatureC}°C ";
};
"clock" = {
format =
if clock24h == true
then '' {:L%H:%M}''
else '' {:L%I:%M %p}'';
tooltip = true;
tooltip-format = "<big>{:%A, %d.%B %Y }</big>\n<tt><small>{calendar}</small></tt>";
};
"hyprland/window" = {
max-length = 22;
separate-outputs = false;
rewrite = {
"" = " 🙈 No Windows? ";
};
};
"memory" = {
interval = 5;
icon-size = 20;
format = " {}%";
tooltip = true;
};
"cpu" = {
interval = 5;
format = " {usage:2}%";
tooltip = true;
};
"disk" = {
format = "󱛟 {free}";
tooltip = true;
};
"network" = {
format-icons = [
"󰤯"
"󰤟"
"󰤢"
"󰤥"
"󰤨"
];
format-ethernet = " {bandwidthDownOctets}";
format-wifi = "{icon} {signalStrength}%";
format-disconnected = "󰤮";
tooltip = false;
};
"tray" = {
spacing = 12;
};
"pulseaudio" = {
format = "{icon} {volume}% {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 = "sleep 0.1 && pavucontrol";
scroll-step = 2;
};
"custom/exit" = {
tooltip = false;
format = "";
on-click = "sleep 0.1 && wlogout";
};
"custom/startmenu" = {
tooltip = false;
format = "";
# exec = "rofi -show drun";
#on-click = "sleep 0.1 && rofi-launcher";
on-click = "sleep 0.1 && nwg-drawer -mb 200 -mt 200 -mr 200 -ml 200";
};
"custom/hyprbindings" = {
tooltip = false;
format = "󱕴";
on-click = "sleep 0.1 && list-keybinds";
};
"idle_inhibitor" = {
format = "{icon}";
format-icons = {
activated = "";
deactivated = "";
};
tooltip = "true";
};
"custom/notification" = {
tooltip = false;
format = "{icon} {}";
format-icons = {
notification = "<span foreground='red'><sup></sup></span>";
none = "";
dnd-notification = "<span foreground='red'><sup></sup></span>";
dnd-none = "";
inhibited-notification = "<span foreground='red'><sup></sup></span>";
inhibited-none = "";
dnd-inhibited-notification = "<span foreground='red'><sup></sup></span>";
dnd-inhibited-none = "";
};
return-type = "json";
exec-if = "which swaync-client";
exec = "swaync-client -swb";
on-click = "sleep 0.1 && task-waybar";
escape = true;
};
"battery" = {
states = {
warning = 30;
critical = 15;
};
format = "{icon} {capacity}%";
format-charging = "󰂄 {capacity}%";
format-plugged = "󱘖 {capacity}%";
format-icons = [
"󰁺"
"󰁻"
"󰁼"
"󰁽"
"󰁾"
"󰁿"
"󰂀"
"󰂁"
"󰂂"
"󰁹"
];
on-click = "";
tooltip = false;
};
}
];
style = concatStrings [
''
* {
font-family: JetBrainsMono Nerd Font Mono;
font-size: 18px;
border-radius: 0px;
border: none;
min-height: 0px;
margin: 0px;
}
window#waybar {
background: #${config.lib.stylix.colors.base00};
padding: 2px;
border-radius: 4px;
}
#workspaces {
color: #${config.lib.stylix.colors.base00};
background: #${config.lib.stylix.colors.base00};
border: 2px solid #${config.lib.stylix.colors.base0B};
margin: 2px 4px;
padding: 5px 5px;
border-radius: 4px;
}
#workspaces button {
font-weight: bold;
padding: 0px 5px;
margin: 0px 3px;
border-radius: 16px;
color: #${config.lib.stylix.colors.base0B};
background: #${config.lib.stylix.colors.base00};
}
#workspaces button.active {
font-weight: bold;
padding: 0px 5px;
margin: 0px 3px;
border-radius: 4px;
color: #${config.lib.stylix.colors.base00};
background: #${config.lib.stylix.colors.base0B};
transition: ${betterTransition};
opacity: 1.0;
min-width: 40px;
}
#workspaces button:hover {
font-weight: bold;
border-radius: 4px;
color: #${config.lib.stylix.colors.base00};
background: #${config.lib.stylix.colors.base0B};
opacity: 0.8;
}
tooltip {
background: #${config.lib.stylix.colors.base00};
border: 1px solid #${config.lib.stylix.colors.base08};
border-radius: 12px;
}
tooltip label {
color: #${config.lib.stylix.colors.base08};
}
#window, #pulseaudio, #temperature, #cpu, #memory, #idle_inhibitor, #disk {
font-weight: bold;
margin: 2px 0px;
margin-right: 7px;
padding: 0px 18px;
background: #${config.lib.stylix.colors.base00};
color: #${config.lib.stylix.colors.base0B};
border: 2px solid #${config.lib.stylix.colors.base0B};
border-radius: 4px;
}
#idle_inhibitor {
font-size: 28px;
}
#custom-startmenu {
color: #${config.lib.stylix.colors.base00};
background: #${config.lib.stylix.colors.base0B};
font-size: 22px;
padding: 0px 5px 0px 5px;
border-radius: 4px;
padding: 0px 8px;
margin: 0px;
margin-right:7px;
}
#custom-hyprbindings, #network, #battery,
#custom-notification, #clock, #custom-exit {
/* font-weight: bold; */
font-size: 20px;
background: #${config.lib.stylix.colors.base00};
color: #${config.lib.stylix.colors.base0B};
margin: 2px 0px;
margin-right: 7px;
border: 2px solid #${config.lib.stylix.colors.base0B};
border-radius: 4px;
padding: 0px 12px;
}
#tray{
font-weight: bold;
font-size: 16px;
margin: 0px;
background: #${config.lib.stylix.colors.base0B};
color: #${config.lib.stylix.colors.base00};
border: 2px solid #${config.lib.stylix.colors.base0B};
padding: 0px 18px;
margin: 0px 0px;
border-radius: 4px;
}
''
];
};
}

View File

@@ -0,0 +1,305 @@
{ pkgs
, lib
, host
, config
, ...
}:
let
inherit (import ../../../hosts/${host}/variables.nix) clock24h;
in
with lib; {
# Configure & Theme Waybar
programs.waybar = {
enable = true;
package = pkgs.waybar;
settings = [
{
layer = "top";
position = "top";
modules-center = [ "hyprland/workspaces" ];
modules-left = [
"custom/startmenu"
"custom/arrow6"
"pulseaudio"
"cpu"
"memory"
"idle_inhibitor"
"custom/arrow7"
"hyprland/window"
];
modules-right = [
"custom/arrow4"
"custom/hyprbindings"
"custom/arrow3"
"custom/notification"
"custom/arrow3"
"custom/exit"
"battery"
"custom/arrow2"
"tray"
"custom/arrow1"
"clock"
];
"hyprland/workspaces" = {
format = "{name}";
format-icons = {
default = " ";
active = " ";
urgent = " ";
};
on-scroll-up = "hyprctl dispatch workspace e+1";
on-scroll-down = "hyprctl dispatch workspace e-1";
};
"clock" = {
format =
if clock24h == true
then '' {:L%H:%M}''
else '' {:L%I:%M %p}'';
tooltip = true;
tooltip-format = "<big>{:%A, %d.%B %Y }</big>\n<tt><small>{calendar}</small></tt>";
};
"hyprland/window" = {
max-length = 22;
separate-outputs = false;
rewrite = {
"" = " 🙈 No Windows? ";
};
};
"memory" = {
interval = 5;
format = " {}%";
tooltip = true;
};
"cpu" = {
interval = 5;
format = " {usage:2}%";
tooltip = true;
};
"disk" = {
format = " {free}";
tooltip = true;
};
"network" = {
format-icons = [
"󰤯"
"󰤟"
"󰤢"
"󰤥"
"󰤨"
];
format-ethernet = " {bandwidthDownOctets}";
format-wifi = "{icon} {signalStrength}%";
format-disconnected = "󰤮";
tooltip = false;
};
"tray" = {
spacing = 12;
};
"pulseaudio" = {
format = "{icon} {volume}% {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 = "sleep 0.1 && pavucontrol";
};
"custom/exit" = {
tooltip = false;
format = "";
on-click = "sleep 0.1 && wlogout";
};
"custom/startmenu" = {
tooltip = false;
format = "";
on-click = "sleep 0.1 && rofi-launcher";
};
"custom/hyprbindings" = {
tooltip = false;
format = "󱕴";
on-click = "sleep 0.1 && list-keybinds";
};
"idle_inhibitor" = {
format = "{icon}";
format-icons = {
activated = "";
deactivated = "";
};
tooltip = "true";
};
"custom/notification" = {
tooltip = false;
format = "{icon} {}";
format-icons = {
notification = "<span foreground='red'><sup></sup></span>";
none = "";
dnd-notification = "<span foreground='red'><sup></sup></span>";
dnd-none = "";
inhibited-notification = "<span foreground='red'><sup></sup></span>";
inhibited-none = "";
dnd-inhibited-notification = "<span foreground='red'><sup></sup></span>";
dnd-inhibited-none = "";
};
return-type = "json";
exec-if = "which swaync-client";
exec = "swaync-client -swb";
on-click = "sleep 0.1 && task-waybar";
escape = true;
};
"battery" = {
states = {
warning = 30;
critical = 15;
};
format = "{icon} {capacity}%";
format-charging = "󰂄 {capacity}%";
format-plugged = "󱘖 {capacity}%";
format-icons = [
"󰁺"
"󰁻"
"󰁼"
"󰁽"
"󰁾"
"󰁿"
"󰂀"
"󰂁"
"󰂂"
"󰁹"
];
on-click = "";
tooltip = false;
};
"custom/arrow1" = {
format = "";
};
"custom/arrow2" = {
format = "";
};
"custom/arrow3" = {
format = "";
};
"custom/arrow4" = {
format = "";
};
"custom/arrow5" = {
format = "";
};
"custom/arrow6" = {
format = "";
};
"custom/arrow7" = {
format = "";
};
}
];
style = concatStrings [
''
* {
font-family: JetBrainsMono Nerd Font Mono;
font-size: 14px;
border-radius: 0px;
border: none;
min-height: 0px;
}
window#waybar {
background: #${config.lib.stylix.colors.base00};
color: #${config.lib.stylix.colors.base05};
}
#workspaces button {
padding: 0px 5px;
background: transparent;
color: #${config.lib.stylix.colors.base04};
}
#workspaces button.active {
color: #${config.lib.stylix.colors.base08};
}
#workspaces button:hover {
color: #${config.lib.stylix.colors.base08};
}
tooltip {
background: #${config.lib.stylix.colors.base00};
border: 1px solid #${config.lib.stylix.colors.base05};
border-radius: 12px;
}
tooltip label {
color: #${config.lib.stylix.colors.base05};
}
#window {
padding: 0px 10px;
}
#pulseaudio, #cpu, #memory, #idle_inhibitor {
padding: 0px 10px;
background: #${config.lib.stylix.colors.base04};
color: #${config.lib.stylix.colors.base00};
}
#custom-startmenu {
color: #${config.lib.stylix.colors.base02};
padding: 0px 14px;
font-size: 20px;
background: #${config.lib.stylix.colors.base0B};
}
#custom-hyprbindings, #network, #battery,
#custom-notification, #custom-exit {
background: #${config.lib.stylix.colors.base0F};
color: #${config.lib.stylix.colors.base00};
padding: 0px 10px;
}
#tray {
background: #${config.lib.stylix.colors.base02};
color: #${config.lib.stylix.colors.base00};
padding: 0px 10px;
}
#clock {
font-weight: bold;
padding: 0px 10px;
color: #${config.lib.stylix.colors.base00};
background: #${config.lib.stylix.colors.base0E};
}
#custom-arrow1 {
font-size: 24px;
color: #${config.lib.stylix.colors.base0E};
background: #${config.lib.stylix.colors.base02};
}
#custom-arrow2 {
font-size: 24px;
color: #${config.lib.stylix.colors.base02};
background: #${config.lib.stylix.colors.base0F};
}
#custom-arrow3 {
font-size: 24px;
color: #${config.lib.stylix.colors.base00};
background: #${config.lib.stylix.colors.base0F};
}
#custom-arrow4 {
font-size: 24px;
color: #${config.lib.stylix.colors.base0F};
background: transparent;
}
#custom-arrow6 {
font-size: 24px;
color: #${config.lib.stylix.colors.base0B};
background: #${config.lib.stylix.colors.base04};
}
#custom-arrow7 {
font-size: 24px;
color: #${config.lib.stylix.colors.base04};
background: transparent;
}
''
];
};
}