357 lines
8.7 KiB
Nix
357 lines
8.7 KiB
Nix
{
|
|
# https://github.com/Alexays/Waybar/wiki/Module:-Hyprland
|
|
# https://www.nerdfonts.com/cheat-sheet
|
|
|
|
programs.waybar = {
|
|
enable = true;
|
|
systemd.enable = true;
|
|
settings = {
|
|
mainBar = {
|
|
layer = "bottom";
|
|
position = "top";
|
|
mod = "dock";
|
|
exclusive = true;
|
|
passthrough = false;
|
|
gtk-layer-shell = true;
|
|
height = 0;
|
|
modules-left = [ "hyprland/workspaces" ];
|
|
|
|
modules-center = [ "hyprland/window" ];
|
|
|
|
modules-right = [
|
|
"tray"
|
|
"custom/updates"
|
|
"temperature"
|
|
"temperature#gpu"
|
|
"keyboard-state#capslock"
|
|
"keyboard-state#numlock"
|
|
"pulseaudio"
|
|
"pulseaudio#microphone"
|
|
"clock"
|
|
"custom/weather"
|
|
];
|
|
|
|
"hyprland/window" = {
|
|
separate-outputs = true;
|
|
format = { };
|
|
};
|
|
|
|
"hyprland/workspaces" = {
|
|
disable-scroll = true;
|
|
all-outputs = true;
|
|
on-click = "activate";
|
|
persistent_workspaces = {
|
|
"*" = 1;
|
|
};
|
|
};
|
|
|
|
"custom/weather" = {
|
|
tooltip = true;
|
|
format = { };
|
|
interval = 30;
|
|
exec = "sudo waybar-weather";
|
|
return-type = "json";
|
|
};
|
|
|
|
"custom/updates" = {
|
|
tooltip = true;
|
|
format = { };
|
|
interval = 60;
|
|
exec = "sudo waybar-updates";
|
|
return-type = "json";
|
|
};
|
|
|
|
temperature = {
|
|
hwmon-path = "/sys/class/hwmon/hwmon4/temp1_input";
|
|
critical-threshold = 90;
|
|
format-critical = "{temperatureC}°C {icon}";
|
|
format = "{temperatureC}°C {icon}";
|
|
format-icons = [
|
|
"" # fa-temperature-empty
|
|
"" # fa-temperature-quarter
|
|
"" # fa-temperature-half
|
|
"" # fa-temperature-three-quarters
|
|
"" # fa-temperature-full
|
|
"" # fa-temperature-high
|
|
];
|
|
tooltip-format = "CPU: {temperatureC}°C";
|
|
};
|
|
|
|
"temperature#gpu" = {
|
|
hwmon-path = "/sys/class/hwmon/hwmon0/temp1_input";
|
|
critical-threshold = 100;
|
|
format-critical = "{temperatureC}°C {icon}";
|
|
format = "{temperatureC}°C {icon}";
|
|
format-icons = [
|
|
"" # fa-temperature-empty
|
|
"" # fa-temperature-quarter
|
|
"" # fa-temperature-half
|
|
"" # fa-temperature-three-quarters
|
|
"" # fa-temperature-full
|
|
"" # fa-temperature-high
|
|
];
|
|
on-click = "lact";
|
|
tooltip-format = "GPU: {temperatureC}°C";
|
|
};
|
|
|
|
tray = {
|
|
icon-size = 16;
|
|
spacing = 10;
|
|
};
|
|
|
|
clock = {
|
|
format = "{:%I:%M %p}";
|
|
tooltip-format = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>";
|
|
};
|
|
|
|
pulseaudio = {
|
|
format = "{icon} {volume}%";
|
|
tooltip = false;
|
|
format-muted = " Muted";
|
|
on-click = "pamixer -t";
|
|
on-click-right = "pavucontrol -t 1";
|
|
on-scroll-up = "pamixer -i 5";
|
|
on-scroll-down = "pamixer -d 5";
|
|
scroll-step = 5;
|
|
format-icons = {
|
|
headphone = "";
|
|
headphone-muted = "";
|
|
hands-free = "";
|
|
headset = "";
|
|
phone = "";
|
|
portable = "";
|
|
car = "";
|
|
default = [
|
|
""
|
|
""
|
|
""
|
|
""
|
|
];
|
|
};
|
|
};
|
|
|
|
"pulseaudio#microphone" = {
|
|
format = "{format_source}";
|
|
format-source = "";
|
|
format-source-muted = "";
|
|
on-click = "pamixer --default-source -t";
|
|
on-click-right = "pavucontrol -t 2";
|
|
on-scroll-up = "pamixer --default-source -i 5";
|
|
on-scroll-down = "pamixer --default-source -d 5";
|
|
scroll-step = 5;
|
|
};
|
|
|
|
"keyboard-state#capslock" = {
|
|
capslock = true;
|
|
icon-size = 20;
|
|
format = "{icon}";
|
|
format-icons = {
|
|
locked = "";
|
|
unlocked = "";
|
|
};
|
|
};
|
|
|
|
"keyboard-state#numlock" = {
|
|
numlock = true;
|
|
icon-size = 30;
|
|
format = "{icon}";
|
|
format-icons = {
|
|
locked = "";
|
|
unlocked = "";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
# https://catppuccin.com/palette
|
|
style = ''
|
|
@define-color rosewater #f4dbd6;
|
|
@define-color flamingo #f0c6c6;
|
|
@define-color pink #f5bde6;
|
|
@define-color mauve #c6a0f6;
|
|
@define-color red #ed8796;
|
|
@define-color maroon #ee99a0;
|
|
@define-color peach #f5a97f;
|
|
@define-color yellow #eed49f;
|
|
@define-color green #a6da95;
|
|
@define-color teal #8bd5ca;
|
|
@define-color sky #91d7e3;
|
|
@define-color sapphire #7dc4e4;
|
|
@define-color blue #8aadf4;
|
|
@define-color lavender #b7bdf8;
|
|
@define-color text #cad3f5;
|
|
@define-color subtext1 #b8c0e0;
|
|
@define-color subtext0 #a5adcb;
|
|
@define-color overlay2 #939ab7;
|
|
@define-color overlay1 #8087a2;
|
|
@define-color overlay0 #6e738d;
|
|
@define-color surface2 #5b6078;
|
|
@define-color surface1 #494d64;
|
|
@define-color surface0 #363a4f;
|
|
@define-color base #24273a;
|
|
@define-color mantle #1e2030;
|
|
@define-color crust #181926;
|
|
/*@import "macchiato.css";*/
|
|
|
|
* {
|
|
font-family:
|
|
Jetbrains Mono Nerd Font,
|
|
monospace;
|
|
font-size: 14px;
|
|
min-height: 0;
|
|
}
|
|
|
|
#waybar {
|
|
background: transparent;
|
|
color: @text;
|
|
margin: 5px 5px;
|
|
}
|
|
|
|
#workspaces {
|
|
padding: 0.5rem 1rem;
|
|
margin: 5px 0;
|
|
border-radius: 1rem;
|
|
background-color: @surface0;
|
|
opacity: 0.6;
|
|
margin-left: 1rem;
|
|
}
|
|
|
|
#workspaces button {
|
|
color: @lavender;
|
|
border-radius: 1rem;
|
|
padding: 0.4rem;
|
|
}
|
|
|
|
#workspaces button.active {
|
|
color: @sky;
|
|
border-radius: 1rem;
|
|
}
|
|
|
|
#workspaces button:hover {
|
|
color: @sapphire;
|
|
border-radius: 1rem;
|
|
}
|
|
|
|
#workspaces button.focused {
|
|
color: @subtext0;
|
|
background: @yellow;
|
|
border-radius: 1rem;
|
|
}
|
|
|
|
#workspaces button.urgent {
|
|
color: @crust;
|
|
background: @subtext0;
|
|
border-radius: 1rem;
|
|
}
|
|
|
|
#tooltip {
|
|
background: @surface0;
|
|
border-radius: 1rem;
|
|
border-width: 1rem;
|
|
border-style: solid;
|
|
border-color: @crust;
|
|
}
|
|
|
|
#window {
|
|
color: @lavender;
|
|
background-color: @surface0;
|
|
opacity: 0.6;
|
|
padding: 0.5rem 1rem;
|
|
margin: 5px 0;
|
|
border-radius: 1rem;
|
|
margin-left: 6rem;
|
|
margin-right: 6rem;
|
|
}
|
|
|
|
#custom-weather {
|
|
color: @rosewater;
|
|
background-color: @surface0;
|
|
padding: 0.5rem 1rem;
|
|
margin: 5px 0;
|
|
border-radius: 0rem 1rem 1rem 0rem;
|
|
margin-right: 1rem;
|
|
}
|
|
|
|
#clock {
|
|
color: @flamingo;
|
|
background-color: @surface0;
|
|
padding: 0.5rem 1rem;
|
|
margin: 5px 0;
|
|
border-radius: 1rem 0rem 0rem 1rem;
|
|
margin-left: 1rem;
|
|
}
|
|
|
|
/* ------------- */
|
|
|
|
#pulseaudio.microphone {
|
|
color: @mauve;
|
|
background-color: @surface0;
|
|
padding: 0.5rem 1rem;
|
|
margin: 5px 0;
|
|
border-radius: 0rem 1rem 1rem 0rem;
|
|
}
|
|
|
|
#pulseaudio {
|
|
color: @red;
|
|
background-color: @surface0;
|
|
padding: 0.5rem 1rem;
|
|
margin: 5px 0;
|
|
border-radius: 0;
|
|
}
|
|
|
|
#keyboard-state.numlock {
|
|
color: @maroon;
|
|
background-color: @surface0;
|
|
padding: 0.5rem 1rem;
|
|
margin: 5px 0;
|
|
border-radius: 0;
|
|
font-size: 50px;
|
|
}
|
|
|
|
#keyboard-state.capslock {
|
|
color: @peach;
|
|
background-color: @surface0;
|
|
padding: 0.5rem 1rem;
|
|
margin: 5px 0;
|
|
border-radius: 0;
|
|
font-size: 18px;
|
|
}
|
|
|
|
#temperature.gpu {
|
|
color: @yellow;
|
|
background-color: @surface0;
|
|
padding: 0.5rem 1rem;
|
|
margin: 5px 0;
|
|
border-radius: 0;
|
|
}
|
|
|
|
#temperature {
|
|
color: @green;
|
|
background-color: @surface0;
|
|
padding: 0.5rem 1rem;
|
|
margin: 5px 0;
|
|
border-radius: 0;
|
|
}
|
|
|
|
#custom-updates {
|
|
color: @teal;
|
|
background-color: @surface0;
|
|
padding: 0.5rem 1rem;
|
|
margin: 5px 0;
|
|
border-radius: 1rem 0rem 0rem 1rem;
|
|
margin-left: 1rem;
|
|
}
|
|
|
|
/* ------------- */
|
|
|
|
#tray {
|
|
background-color: @surface0;
|
|
padding: 0.5rem 1rem;
|
|
margin: 5px 0;
|
|
margin-right: 1rem;
|
|
border-radius: 1rem;
|
|
}
|
|
'';
|
|
};
|
|
}
|