Update stylix scheme and refactor Hyprland configuration with new waybar setup

This commit is contained in:
Danilo Reyes 2025-10-03 19:09:39 -06:00
parent 04019415bd
commit 93f7e78540
5 changed files with 168 additions and 136 deletions

View File

@ -9,7 +9,7 @@ let
schemesFile = import ./schemes.nix { schemesFile = import ./schemes.nix {
inherit pkgs inputs; inherit pkgs inputs;
}; };
scheme = schemesFile.schemes.paul3; scheme = schemesFile.schemes.febroary;
cfg = config.my.stylix; cfg = config.my.stylix;
gnomeEnabled = config.services.xserver.desktopManager.gnome.enable; gnomeEnabled = config.services.xserver.desktopManager.gnome.enable;
in in

View File

@ -4,33 +4,9 @@
... ...
}: }:
let let
# misc
mod = "SUPER"; mod = "SUPER";
# waybar waybarConfig = import ./waybar-config.nix { inherit pkgs config; };
inherit (config.lib.stylix) colors; waybarStyle = import ./waybar-style.nix { inherit config; };
net-icons = [
"󰣾"
"󰣴"
"󰣶"
"󰣸"
"󰣺"
];
generic-percent-icons = [
""
""
""
""
""
""
""
""
];
temp-icons = [
""
""
""
""
];
in in
{ {
programs.hyprland.enable = true; programs.hyprland.enable = true;
@ -41,12 +17,6 @@ in
user = "greeter"; user = "greeter";
}; };
}; };
xdg.portal = {
enable = true;
extraPortals = [
pkgs.xdg-desktop-portal-hyprland
];
};
users.users.jawz.packages = builtins.attrValues { users.users.jawz.packages = builtins.attrValues {
inherit (pkgs) inherit (pkgs)
# Wayland utilities # Wayland utilities
@ -59,6 +29,8 @@ in
swaylock-effects # screen locker swaylock-effects # screen locker
yazi # file manager yazi # file manager
imv # images imv # images
playerctl # media player control
; ;
}; };
home-manager.users.jawz = { home-manager.users.jawz = {
@ -72,108 +44,8 @@ in
width = "30%"; width = "30%";
}; };
}; };
waybar = { waybar = waybarConfig.programs.waybar // {
enable = true; style = waybarStyle;
systemd.enable = true;
settings.main-bar = {
layer = "top";
tray.spacing = 5;
clock.format = "{:%H:%M %F}";
modules-left = [
"niri/workspaces"
"custom/sep"
"niri/window"
];
modules-center = [
"mpris"
];
modules-right = [
"cpu"
"temperature"
"memory"
"backlight"
"pulseaudio"
"battery"
"custom/recorder"
"clock"
"tray"
];
"hyprland/window".icon = true;
"niri/window".icon = true;
"niri/workspaces" = {
format = "{icon}";
format-icons = {
active = "";
default = "";
};
};
cava = {
format-icons = generic-percent-icons;
bars = 14;
method = "pulse";
framerate = 20;
bar_delimiter = 0;
stereo = false;
};
network = {
format = "{icon} {ipaddr}";
format-icons = net-icons;
};
# pulseaudio = {
# format = "{icon} {volume}%";
# format-muted = "vol: muted";
# format-icons.default = audio-icons;
# on-click = "pavucontrol";
# scroll-step = 1;
# };
cpu = {
interval = 1;
format = " {icon}";
format-icons = generic-percent-icons;
tooltip-format = "usage: {usage}%\nload: {load}";
};
memory = {
interval = 1;
format = " {icon}";
format-icons = generic-percent-icons;
tooltip-format = "{used} GiB / {total} GiB \n{percentage}%";
};
temperature = {
interval = 1;
critical-threshold = 80;
format = "{temperatureC}°C";
format-icons = temp-icons;
};
mpris = {
format = "{status_icon} {dynamic}";
dynamic-len = 60;
interval = 5;
status-icons = {
paused = "";
playing = "";
};
};
};
style = ''
* {
border: none;
font-family: "${config.stylix.fonts.monospace.name}";
font-size: ${toString config.stylix.fonts.sizes.desktop}pt;
color: #${colors.base04};
}
window#waybar {
background: #${colors.base00};
}
.module {
background: #${colors.base00};
margin: 0px 5px 0px 5px;
padding: 0px 0px 0px 5px;
}
#workspaces button {
padding: 0px;
border-bottom: 0px none transparent;
}
'';
}; };
}; };
wayland.windowManager.hyprland = { wayland.windowManager.hyprland = {
@ -185,6 +57,11 @@ in
border_size = 3; border_size = 3;
layout = "dwindle"; layout = "dwindle";
}; };
misc = {
disable_hyprland_logo = true;
disable_splash_rendering = true;
force_default_wallpaper = 0;
};
dwindle = { dwindle = {
pseudotile = true; pseudotile = true;
preserve_split = true; preserve_split = true;

View File

@ -0,0 +1,112 @@
_: {
programs.waybar = {
enable = true;
systemd.enable = true;
settings.main-bar = {
layer = "top";
height = 20;
tray.spacing = 5;
clock = {
format = "{:%a %b %d %I:%M %p}";
tooltip-format = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>";
};
modules-left = [
"hyprland/workspaces"
"custom/separator"
"temperature#cpu"
"custom/gpu-temp"
];
modules-center = [
"clock"
];
modules-right = [
"tray"
"mpris"
"wireplumber"
"wireplumber#microphone"
];
"hyprland/workspaces" = {
format = "{icon}";
on-scroll-up = "hyprctl dispatch workspace e-1";
on-scroll-down = "hyprctl dispatch workspace e+1";
persistent-workspaces."*" = 10; # Show 5 workspaces on all monitors
};
"custom/separator" = {
format = "|";
tooltip = false;
};
cava = {
bars = 14;
method = "pulse";
framerate = 20;
bar_delimiter = 0;
stereo = false;
format-icons.default = [
""
""
""
""
""
""
""
""
];
};
"temperature#cpu" = {
interval = 2;
format = " {temperatureC}°C";
critical-threshold = 80;
hwmon-path = "/sys/class/hwmon/hwmon1/temp1_input";
tooltip-format = "CPU: {temperatureC}°C";
};
"custom/gpu-temp" = {
exec = "nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader,nounits";
format = "󰢮 {}°C";
interval = 2;
tooltip-format = "GPU: {}°C";
};
mpris = {
interval = 2;
format = "{player_icon} {dynamic}";
format-paused = "{status_icon} {dynamic}";
dynamic-len = 40;
on-click = "playerctl play-pause";
on-scroll-up = "playerctl next";
on-scroll-down = "playerctl previous";
dynamic-order = [
"title"
"artist"
];
player-icons = {
default = "🎵";
firefox = "🦊";
librewolf = "🦊";
};
status-icons = {
paused = "";
playing = "";
};
};
wireplumber = {
format = "{icon} {volume}%";
format-muted = "󰝟 muted";
scroll-step = 5;
on-click = "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle";
format-icons.default = [
"󰕿"
"󰖀"
"󰕾"
];
};
"wireplumber#microphone" = {
format = "{format_source}";
format-source = " {volume}%";
format-source-muted = "";
on-click = "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle";
on-scroll-up = "wpctl set-volume @DEFAULT_AUDIO_SOURCE@ 5%+";
on-scroll-down = "wpctl set-volume @DEFAULT_AUDIO_SOURCE@ 5%-";
tooltip-format = "{source_desc}";
};
};
};
}

View File

@ -0,0 +1,43 @@
{
config,
...
}:
let
inherit (config.lib.stylix) colors;
in
''
* {
border: none;
font-family: "${config.stylix.fonts.monospace.name}";
font-size: ${toString config.stylix.fonts.sizes.desktop}pt;
color: #${colors.base04};
}
window#waybar {
background: #${colors.base00};
min-height: 20px;
}
.module {
background: #${colors.base00};
margin: 0px 5px 0px 5px;
padding: 8px 8px 8px 8px;
}
#workspaces button {
padding: 2px 8px;
margin: 2px;
border-radius: 8px;
background: transparent;
color: #${colors.base03};
border: none;
min-width: 20px;
}
#workspaces button.active {
background: #${colors.base02};
color: #${colors.base05};
}
#workspaces button:hover {
background: #${colors.base01};
color: #${colors.base04};
}
''

View File

@ -127,6 +127,7 @@ in
services = { services = {
flatpak.enable = true; flatpak.enable = true;
open-webui.enable = true; open-webui.enable = true;
tailscale.enable = true;
scx = { scx = {
enable = true; enable = true;
scheduler = "scx_lavd"; scheduler = "scx_lavd";
@ -150,6 +151,5 @@ in
capSysAdmin = true; capSysAdmin = true;
openFirewall = true; openFirewall = true;
}; };
tailscale.enable = true;
}; };
} }