waybar.css

This commit is contained in:
TheCrazyInsanity
2026-04-12 14:43:58 -04:00
parent 99b008305c
commit 302a4fe136
5 changed files with 528 additions and 6 deletions

View File

@@ -51,7 +51,7 @@
services.power-profiles-daemon.enable = true; services.power-profiles-daemon.enable = true;
# Suspend first then hibernate when closing the lid # Suspend first then hibernate when closing the lid
services.logind.settings.Login.LidSwitch = "suspend-then-hibernate"; services.logind.settings.Login.LidSwitch = "ignore";
# Hibernate on power button pressed # Hibernate on power button pressed
services.logind.settings.Login.PowerKey = "hibernate"; services.logind.settings.Login.PowerKey = "hibernate";
services.logind.settings.Login.PowerKeyLongPress = "poweroff"; services.logind.settings.Login.PowerKeyLongPress = "poweroff";
@@ -74,7 +74,7 @@
security.pam.howdy.control = "sufficient"; security.pam.howdy.control = "sufficient";
services.howdy.settings = { services.howdy.settings = {
core = { core = {
workaround = "native"; workaround = "off";
}; };
video = { video = {
timeout = "20"; timeout = "20";

View File

@@ -13,7 +13,7 @@
imports = [ imports = [
../../home/default.nix ../../home/default.nix
../../modules/kde/home.nix ../../modules/sway/home.nix
# ../../modules/kde/home.nix # ../../modules/kde/home.nix
]; ];

View File

@@ -2,6 +2,7 @@
config, config,
pkgs, pkgs,
lib, lib,
inputs,
... ...
}: }:
{ {
@@ -28,6 +29,10 @@
pkgs.kdePackages.kate pkgs.kdePackages.kate
pkgs.kdePackages.filelight pkgs.kdePackages.filelight
inputs.glide.packages.${pkgs.stdenv.hostPlatform.system}.default inputs.glide.packages.${pkgs.stdenv.hostPlatform.system}.default
pkgs.swaybg
pkgs.pulseaudioFull
pkgs.waybar
pkgs.twitter-color-emoji
]; ];
}; };
@@ -35,8 +40,8 @@
enable = true; enable = true;
settings = { settings = {
default_session = { default_session = {
command = "${pkgs.tuigreet}/bin/tuigreet --time --cmd sway"; command = "${pkgs.tuigreet}/bin/tuigreet --remember --time --cmd sway";
user = "laythe"; user = "greeter";
}; };
}; };
}; };

View File

@@ -16,6 +16,85 @@
"XF86AudioRaiseVolume" = "exec pactl set-sink-volume @DEFAULT_SINK@ +1%"; "XF86AudioRaiseVolume" = "exec pactl set-sink-volume @DEFAULT_SINK@ +1%";
"XF86AudioLowerVolume" = "exec pactl set-sink-volume @DEFAULT_SINK@ -1%"; "XF86AudioLowerVolume" = "exec pactl set-sink-volume @DEFAULT_SINK@ -1%";
"XF86AudioMute" = "exec pactl set-sink-mute @DEFAULT_SINK@ toggle"; "XF86AudioMute" = "exec pactl set-sink-mute @DEFAULT_SINK@ toggle";
"Mod4+q" = "kill";
"Mod4+Return" = "exec foot";
"Mod4+Shift+q" = "kill";
"Mod4+d" = "exec wmenu-run";
"Mod4+Left" = "focus left";
"Mod4+Down" = "focus down";
"Mod4+Up" = "focus up";
"Mod4+Right" = "focus right";
"Mod4+Shift+Left" = "move left";
"Mod4+Shift+Down" = "move down";
"Mod4+Shift+Up" = "move up";
"Mod4+Shift+Right" = "move right";
"Mod4+b" = "splith";
"Mod4+v" = "splitv";
"Mod4+f" = "fullscreen toggle";
"Mod4+a" = "focus parent";
"Mod4+s" = "layout stacking";
"Mod4+w" = "layout tabbed";
"Mod4+e" = "layout toggle split";
"Mod4+Shift+space" = "floating toggle";
"Mod4+space" = "focus mode_toggle";
"Mod4+1" = "workspace number 1";
"Mod4+2" = "workspace number 2";
"Mod4+3" = "workspace number 3";
"Mod4+4" = "workspace number 4";
"Mod4+5" = "workspace number 5";
"Mod4+6" = "workspace number 6";
"Mod4+7" = "workspace number 7";
"Mod4+8" = "workspace number 8";
"Mod4+9" = "workspace number 9";
"Mod4+0" = "workspace number 10";
"Mod4+Shift+1" = "move container to workspace number 1";
"Mod4+Shift+2" = "move container to workspace number 2";
"Mod4+Shift+3" = "move container to workspace number 3";
"Mod4+Shift+4" = "move container to workspace number 4";
"Mod4+Shift+5" = "move container to workspace number 5";
"Mod4+Shift+6" = "move container to workspace number 6";
"Mod4+Shift+7" = "move container to workspace number 7";
"Mod4+Shift+8" = "move container to workspace number 8";
"Mod4+Shift+9" = "move container to workspace number 9";
"Mod4+Shift+0" = "move container to workspace number 10";
"Mod4+Shift+minus" = "move scratchpad";
"Mod4+minus" = "scratchpad show";
"Mod4+p" = "[app_id=\"trilium\"] scratchpad show, resize set 90 ppt 90 ppt, move position center";
"Mod4+g" = "exec glide-browser";
"Mod4+Shift+i" = "exec makoctl invoke && makoctl dismiss";
"Mod4+i" = "exec makoctl dismiss";
"Mod4+Shift+c" = "reload";
"Mod4+Shift+e" =
"exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -b 'Yes, exit sway' 'swaymsg exit'";
"Mod4+r" = "mode resize";
"Mod4+c" = "[app_id=\"discord\"] scratchpad show, resize set 90 ppt 90 ppt, move position center";
"Mod4+j" = "[class=\"Jami\"] scratchpad show, resize set 90 ppt 90 ppt, move position center";
};
bars = [
{
command = "${pkgs.waybar}/bin/waybar";
}
];
output = {
eDP-1 = {
scale = "1.25";
};
}; };
input = { input = {
"type:touchpad" = { "type:touchpad" = {
@@ -24,9 +103,117 @@
# Enables or disables natural (inverted) scrolling for the specified input device. # Enables or disables natural (inverted) scrolling for the specified input device.
natural_scroll = "enabled"; natural_scroll = "enabled";
# Enables or disables disable-while-typing for the specified input device. # Enables or disables disable-while-typing for the specified input device.
dwt = "enabled"; dwt = "disabled";
};
};
bindswitches = {
"lid:on" = {
reload = true;
locked = true;
action = "exec systemctl suspend-then-hibernate";
};
};
startup = [
{ command = "swaybg -i ~/.background-image -m fill"; }
{ command = "discord --enable-features=UseOzonePlatform --ozone-platform=wayland"; }
{ command = "trilium"; }
{ command = "jami"; }
];
window.commands = [
{
criteria = {
app_id = "discord";
};
command = "move scratchpad";
}
{
criteria = {
app_id = "trilium";
};
command = "move scratchpad";
}
{
criteria = {
class = "Jami";
};
command = "move scratchpad";
}
];
};
};
programs.waybar = {
enable = true;
style = ./waybar.css;
settings = {
mainBar = {
layer = "top";
position = "bottom"; # Puts the bar at the bottom
height = 30;
# Define what goes where on the bar
modules-left = [
"sway/workspaces"
"sway/mode"
];
modules-center = [ "sway/window" ];
modules-right = [
"backlight"
"pulseaudio"
"battery"
"clock"
"tray"
];
backlight = {
format = "{icon} {percent}%";
format-icons = [
"🌑"
"🌘"
"🌗"
"🌖"
"🌕"
];
};
pulseaudio = {
format = "{icon} {volume}%";
format-muted = "🔇 Muted";
format-icons = {
default = [
"🔈"
"🔉"
"🔊"
];
};
scroll-step = 1;
on-click = "pactl set-sink-mute @DEFAULT_SINK@ toggle";
};
clock = {
format = "{:%Y-%m-%d %H:%M}";
tooltip-format = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>";
};
battery = {
states = {
warning = 30;
critical = 15;
};
format = "{icon} {capacity}% ({time})";
format-charging = " {capacity}% ({time})";
format-plugged = "🔌 {capacity}% ({time})";
format-icons = [
"🪫"
"🔋"
"🔋"
"🔋"
"🔋"
];
}; };
}; };
}; };
}; };
services.swayidle.events = {
"before-sleep" = "${pkgs.swaylock}/bin/swaylock -fF";
};
services.swayidle.enable = true;
} }

330
modules/sway/waybar.css Normal file
View File

@@ -0,0 +1,330 @@
* {
/* Prioritize Twemoji for icons, fallback to sans-serif for text */
font-family: "Twitter Color Emoji", sans-serif;
font-size: 14px;
}
window#waybar {
background-color: rgba(43, 48, 59, 0.5);
border-bottom: 3px solid rgba(100, 114, 125, 0.5);
color: #ffffff;
transition-property: background-color;
transition-duration: .5s;
}
window#waybar.hidden {
opacity: 0.2;
}
/*
window#waybar.empty {
background-color: transparent;
}
window#waybar.solo {
background-color: #FFFFFF;
}
*/
window#waybar.termite {
background-color: #3F3F3F;
}
window#waybar.chromium {
background-color: #000000;
border: none;
}
button {
/* Use box-shadow instead of border so the text isn't offset */
box-shadow: inset 0 -3px transparent;
/* Avoid rounded borders under each button name */
border: none;
border-radius: 0;
}
/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
button:hover {
background: inherit;
box-shadow: inset 0 -3px #ffffff;
}
/* you can set a style on hover for any module like this */
#pulseaudio:hover {
background-color: #a37800;
}
#workspaces button {
padding: 0 5px;
background-color: transparent;
color: #ffffff;
}
#workspaces button:hover {
background: rgba(0, 0, 0, 0.2);
}
#workspaces button.focused,
#workspaces button.active {
background-color: #64727D;
box-shadow: inset 0 -3px #ffffff;
}
#workspaces button.urgent {
background-color: #eb4d4b;
}
#mode {
background-color: #64727D;
box-shadow: inset 0 -3px #ffffff;
}
#clock,
#battery,
#cpu,
#memory,
#disk,
#temperature,
#backlight,
#network,
#pulseaudio,
#wireplumber,
#custom-media,
#tray,
#mode,
#idle_inhibitor,
#scratchpad,
#power-profiles-daemon,
#mpd {
padding: 0 10px;
color: #ffffff;
}
#window,
#workspaces {
margin: 0 4px;
}
/* If workspaces is the leftmost module, omit left margin */
.modules-left>widget:first-child>#workspaces {
margin-left: 0;
}
/* If workspaces is the rightmost module, omit right margin */
.modules-right>widget:last-child>#workspaces {
margin-right: 0;
}
#clock {
background-color: #64727D;
}
#battery {
background-color: #ffffff;
color: #000000;
}
#battery.charging,
#battery.plugged {
color: #ffffff;
background-color: #26A65B;
}
@keyframes blink {
to {
background-color: #ffffff;
color: #000000;
}
}
/* Using steps() instead of linear as a timing function to limit cpu usage */
#battery.critical:not(.charging) {
background-color: #f53c3c;
color: #ffffff;
animation-name: blink;
animation-duration: 0.5s;
animation-timing-function: steps(12);
animation-iteration-count: infinite;
animation-direction: alternate;
}
#power-profiles-daemon {
padding-right: 15px;
}
#power-profiles-daemon.performance {
background-color: #f53c3c;
color: #ffffff;
}
#power-profiles-daemon.balanced {
background-color: #2980b9;
color: #ffffff;
}
#power-profiles-daemon.power-saver {
background-color: #2ecc71;
color: #000000;
}
label:focus {
background-color: #000000;
}
#cpu {
background-color: #2ecc71;
color: #000000;
}
#memory {
background-color: #9b59b6;
}
#disk {
background-color: #964B00;
}
#backlight {
background-color: #90b1b1;
}
#network {
background-color: #2980b9;
}
#network.disconnected {
background-color: #f53c3c;
}
#pulseaudio {
background-color: #f1c40f;
color: #000000;
}
#pulseaudio.muted {
background-color: #90b1b1;
color: #2a5c45;
}
#wireplumber {
background-color: #fff0f5;
color: #000000;
}
#wireplumber.muted {
background-color: #f53c3c;
}
#custom-media {
background-color: #66cc99;
color: #2a5c45;
min-width: 100px;
}
#custom-media.custom-spotify {
background-color: #66cc99;
}
#custom-media.custom-vlc {
background-color: #ffa000;
}
#temperature {
background-color: #f0932b;
}
#temperature.critical {
background-color: #eb4d4b;
}
#tray {
background-color: #2980b9;
}
#tray>.passive {
-gtk-icon-effect: dim;
}
#tray>.needs-attention {
-gtk-icon-effect: highlight;
background-color: #eb4d4b;
}
#idle_inhibitor {
background-color: #2d3436;
}
#idle_inhibitor.activated {
background-color: #ecf0f1;
color: #2d3436;
}
#mpd {
background-color: #66cc99;
color: #2a5c45;
}
#mpd.disconnected {
background-color: #f53c3c;
}
#mpd.stopped {
background-color: #90b1b1;
}
#mpd.paused {
background-color: #51a37a;
}
#language {
background: #00b093;
color: #740864;
padding: 0 5px;
margin: 0 5px;
min-width: 16px;
}
#keyboard-state {
background: #97e1ad;
color: #000000;
padding: 0 0px;
margin: 0 5px;
min-width: 16px;
}
#keyboard-state>label {
padding: 0 5px;
}
#keyboard-state>label.locked {
background: rgba(0, 0, 0, 0.2);
}
#scratchpad {
background: rgba(0, 0, 0, 0.2);
}
#scratchpad.empty {
background-color: transparent;
}
#privacy {
padding: 0;
}
#privacy-item {
padding: 0 5px;
color: white;
}
#privacy-item.screenshare {
background-color: #cf5700;
}
#privacy-item.audio-in {
background-color: #1ca000;
}
#privacy-item.audio-out {
background-color: #0069d4;
}