initial
This commit is contained in:
418
hosts/sarien/users/user/desktop/river/waybar.nix
Normal file
418
hosts/sarien/users/user/desktop/river/waybar.nix
Normal file
@ -0,0 +1,418 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
options = {
|
||||
waybar.enable =
|
||||
lib.mkEnableOption "enable waybar";
|
||||
};
|
||||
config = lib.mkIf config.waybar.enable {
|
||||
stylix.targets.waybar.enable = false;
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
#package = pkgs.waybar-0.11.0";
|
||||
systemd = {
|
||||
enable = true;
|
||||
target = "graphical-session.target";
|
||||
};
|
||||
settings = {
|
||||
bar-0 = {
|
||||
layer = "top";
|
||||
position = "top";
|
||||
height = 40;
|
||||
spacing = 4;
|
||||
margin-left = 48;
|
||||
margin-right = 48;
|
||||
margin-top = 4;
|
||||
reload_style_on_change = true;
|
||||
modules-left = [
|
||||
#"custom/notification"
|
||||
"group/niri"
|
||||
"wlr/taskbar"
|
||||
];
|
||||
modules-center = ["clock" "privacy"];
|
||||
modules-right = [
|
||||
"tray"
|
||||
"wireplumber"
|
||||
"group/laptop"
|
||||
"idle_inhibitor"
|
||||
];
|
||||
"niri/workspaces" = {
|
||||
format = "{icon}";
|
||||
format-icons = {
|
||||
focused = "";
|
||||
active = "";
|
||||
default = "";
|
||||
};
|
||||
};
|
||||
"niri/language" = {
|
||||
format = "{}";
|
||||
format-en = "🇺🇸";
|
||||
format-uk = "🇺🇦";
|
||||
};
|
||||
"custom/separator" = {
|
||||
format = "|";
|
||||
interval = "once";
|
||||
tooltip = false;
|
||||
};
|
||||
"custom/text" = {
|
||||
format = "here will be workspaces";
|
||||
interval = "once";
|
||||
tooltip = false;
|
||||
};
|
||||
"group/niri" = {
|
||||
orientation = "inherit";
|
||||
modules = [
|
||||
"niri/language"
|
||||
"niri/workspaces"
|
||||
];
|
||||
};
|
||||
"group/laptop" = {
|
||||
orientation = "inherit";
|
||||
drawer = {
|
||||
transition-duration = 500;
|
||||
children-class = "laptop";
|
||||
transition-left-to-right = false;
|
||||
};
|
||||
modules = [
|
||||
"battery"
|
||||
"custom/kbd-backlight"
|
||||
"custom/separator"
|
||||
"backlight"
|
||||
"custom/separator"
|
||||
];
|
||||
};
|
||||
"idle_inhibitor" = {
|
||||
format = "{icon}";
|
||||
format-icons = {
|
||||
activated = "";
|
||||
deactivated = "";
|
||||
};
|
||||
};
|
||||
"tray" = {
|
||||
icon-size = 24;
|
||||
spacing = 3;
|
||||
};
|
||||
"clock" = {
|
||||
interval = 1;
|
||||
format = "{:%H:%M:%S}";
|
||||
tooltip-format = "{:%d.%m.%Y}";
|
||||
};
|
||||
"backlight" = {
|
||||
device = "intel_backlight";
|
||||
format = "{percent}% {icon}";
|
||||
format-icons = ["" "" "" ""];
|
||||
on-scroll-up = "light -A 2%";
|
||||
on-scroll-down = "light -U 2%";
|
||||
};
|
||||
"custom/kbd-backlight" = {
|
||||
exec = "cat /sys/class/leds/platform::kbd_backlight/brightness";
|
||||
interval = 1;
|
||||
format = "{}% {icon}";
|
||||
format-icons = [""];
|
||||
on-scroll-up = "light -s sysfs/leds/platform::kbd_backlight -A 5%";
|
||||
on-scroll-down = "light -s sysfs/leds/platform::kbd_backlight -U 5%";
|
||||
};
|
||||
battery = {
|
||||
states = {
|
||||
good = 95;
|
||||
warning = 30;
|
||||
critical = 15;
|
||||
};
|
||||
format = "{capacity}% {icon}";
|
||||
format-full = "{capacity}% ";
|
||||
format-charging = "{capacity}% ";
|
||||
format-plugged = "{capacity}% ";
|
||||
format-alt = "{icon} {time}";
|
||||
format-icons = ["" "" "" "" "" "" "" "" "" ""];
|
||||
};
|
||||
"upower" = {
|
||||
icon-size = 16;
|
||||
format = "{percentage}";
|
||||
hide-if-empty = true;
|
||||
tooltip = true;
|
||||
tooltip-spacing = 20;
|
||||
};
|
||||
"power-profiles-daemon" = {
|
||||
format = "{icon}";
|
||||
tooltip-format = "Power profile: {profile}\nDriver: {driver}";
|
||||
tooltip = true;
|
||||
format-icons = {
|
||||
default = "";
|
||||
performance = "";
|
||||
balanced = "";
|
||||
power-saver = "";
|
||||
};
|
||||
};
|
||||
"wireplumber" = {
|
||||
scroll-step = 3;
|
||||
format = "{volume}% {icon}";
|
||||
format-muted = "";
|
||||
format-icons = ["" "" ""];
|
||||
on-click = "pwvucontrol";
|
||||
on-click-right = "wpctl set-mute @DEFAULT_SINK@ toggle";
|
||||
};
|
||||
"custom/notification" = {
|
||||
tooltip = false;
|
||||
format = "{icon}";
|
||||
format-icons = {
|
||||
notification = "";
|
||||
none = "";
|
||||
dnd-notification = "";
|
||||
dnd-none = "";
|
||||
};
|
||||
return-type = "json";
|
||||
exec-if = "which swaync-client";
|
||||
exec = "swaync-client -swb";
|
||||
on-click = "swaync-client -t -sw";
|
||||
on-click-right = "swaync-client -d -sw";
|
||||
escape = true;
|
||||
};
|
||||
"privacy" = {
|
||||
# icon-spacing = 4;
|
||||
icon-size = 16;
|
||||
transition-duration = 250;
|
||||
screenshare = {
|
||||
type = "screenshare";
|
||||
tooltip = true;
|
||||
tooltip-icon-size = 24;
|
||||
};
|
||||
audio-in = {
|
||||
type = "audio-in";
|
||||
tooltip = true;
|
||||
tooltip-icon-size = 24;
|
||||
};
|
||||
};
|
||||
"wlr/taskbar" = {
|
||||
format = "{icon}";
|
||||
icon-size = 24;
|
||||
icon-theme = "${config.dconf.settings."org/gnome/desktop/interface".icon-theme}";
|
||||
tooltip-format = "{title}";
|
||||
on-click = "activate";
|
||||
};
|
||||
};
|
||||
};
|
||||
style = ''
|
||||
@define-color base00 #${config.lib.stylix.colors.base00};
|
||||
@define-color base01 #${config.lib.stylix.colors.base01};
|
||||
@define-color base02 #${config.lib.stylix.colors.base02};
|
||||
@define-color base03 #${config.lib.stylix.colors.base03};
|
||||
@define-color base04 #${config.lib.stylix.colors.base04};
|
||||
@define-color base05 #${config.lib.stylix.colors.base05};
|
||||
@define-color base06 #${config.lib.stylix.colors.base06};
|
||||
@define-color base07 #${config.lib.stylix.colors.base07};
|
||||
@define-color base08 #${config.lib.stylix.colors.base08};
|
||||
@define-color base09 #${config.lib.stylix.colors.base09};
|
||||
@define-color base0A #${config.lib.stylix.colors.base0A};
|
||||
@define-color base0B #${config.lib.stylix.colors.base0B};
|
||||
@define-color base0C #${config.lib.stylix.colors.base0C};
|
||||
@define-color base0D #${config.lib.stylix.colors.base0D};
|
||||
@define-color base0E #${config.lib.stylix.colors.base0E};
|
||||
@define-color base0F #${config.lib.stylix.colors.base0F};
|
||||
* {
|
||||
font-family: Iosevka Nerd Font Propo, FontAwesome;
|
||||
font-size: 100%;
|
||||
/* margin: 0px 2px 2px 2px; */
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background-color: transparent;
|
||||
/* border-top: 3px solid @overlay0; */
|
||||
color: @base05;
|
||||
/* padding: 0px 2px 0px 0px; */
|
||||
transition-property: background-color;
|
||||
transition-duration: 0.5s;
|
||||
}
|
||||
|
||||
.modules-left {
|
||||
border-radius: 12px;
|
||||
margin-right: 4px;
|
||||
}
|
||||
.modules-center {
|
||||
border-radius: 12px;
|
||||
}
|
||||
.modules-right {
|
||||
border-radius: 12px;
|
||||
margin-left: 4px;
|
||||
}
|
||||
|
||||
tooltip {
|
||||
background: @base01;
|
||||
border: 1px solid @base0E;
|
||||
}
|
||||
tooltip label {
|
||||
color: @base05;
|
||||
}
|
||||
/* .modules-center {
|
||||
margin: 4px;
|
||||
margin-top: 6px;
|
||||
}*/
|
||||
button {
|
||||
box-shadow: inset 0 -3px transparent;
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
|
||||
button:hover {
|
||||
background: inherit;
|
||||
box-shadow: inset 0 -3px transparent;
|
||||
}
|
||||
|
||||
#mode {
|
||||
background-color: rgba(0, 0, 0, 0.2);
|
||||
box-shadow: inset 0 -3px @base05;
|
||||
}
|
||||
|
||||
#clock,
|
||||
#battery,
|
||||
#cpu,
|
||||
#memory,
|
||||
#disk,
|
||||
#temperature,
|
||||
#backlight,
|
||||
#custom-kbd-backlight,
|
||||
#workspaces,
|
||||
#network,
|
||||
#pulseaudio,
|
||||
#wireplumber,
|
||||
#custom-media,
|
||||
#laptop,
|
||||
#tray,
|
||||
#mode,
|
||||
#privacy
|
||||
#privacy-item,
|
||||
#idle_inhibitor,
|
||||
#backlight-slider,
|
||||
#custom-notification,
|
||||
#scratchpad,
|
||||
#power-profiles-daemon,
|
||||
#taskbar,
|
||||
#language,
|
||||
#upower,
|
||||
#mpris,
|
||||
#mpd {
|
||||
padding: 0 0.8em;
|
||||
border-radius: 12px;
|
||||
color: @base05;
|
||||
background-color: @base00;
|
||||
}
|
||||
|
||||
/* #upower, */
|
||||
#battery,
|
||||
#backlight,
|
||||
#custom-kbd-backlight,
|
||||
#backlight-slider,
|
||||
#cpu,
|
||||
#memory,
|
||||
#disk,
|
||||
#network,
|
||||
#wireplumber,
|
||||
#power-profiles-daemon {
|
||||
padding-right: 0.8em;
|
||||
}
|
||||
|
||||
#language {
|
||||
padding-right: 0;
|
||||
border-top-right-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
}
|
||||
#workspaces {
|
||||
border-top-left-radius: 0;
|
||||
border-bottom-left-radius: 0;
|
||||
}
|
||||
#taskbar,
|
||||
#workspaces {
|
||||
padding: 0 0.5em;
|
||||
}
|
||||
#taskbar button,
|
||||
#workspaces button {
|
||||
padding: 0 0.3em;
|
||||
}
|
||||
#taskbar button:hover {
|
||||
box-shadow: transparent;
|
||||
}
|
||||
#taskbar.empty,
|
||||
window#empty {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
#battery.critical:not(.charging) {
|
||||
background-color: #ed8796;
|
||||
color: #181926;
|
||||
animation-name: blink;
|
||||
animation-duration: 0.5s;
|
||||
animation-timing-function: steps(12);
|
||||
animation-iteration-count: infinite;
|
||||
animation-direction: alternate;
|
||||
}
|
||||
|
||||
#power-profiles-daemon.performance {
|
||||
background-color: #ed8796;
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
#power-profiles-daemon.balanced {
|
||||
background-color: #b7bdf8;
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
#power-profiles-daemon.power-saver {
|
||||
background-color: #8aadf4;
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
label:focus {
|
||||
background-color: #000000;
|
||||
}
|
||||
|
||||
#tray > .passive {
|
||||
-gtk-icon-effect: dim;
|
||||
}
|
||||
|
||||
#tray > .needs-attention {
|
||||
-gtk-icon-effect: highlight;
|
||||
background-color: #eb4d4b;
|
||||
}
|
||||
|
||||
#idle_inhibitor {
|
||||
padding: 0 0.9em;
|
||||
}
|
||||
|
||||
|
||||
#idle_inhibitor:hover {
|
||||
box-shadow: inset 0 -3px @base05;
|
||||
}
|
||||
|
||||
#idle_inhibitor.activated {
|
||||
background-color: @base05;
|
||||
color: @base00;
|
||||
}
|
||||
|
||||
#idle_inhibitor.activated:hover {
|
||||
box-shadow: inset 0 -3px @base00;
|
||||
}
|
||||
|
||||
#laptop,
|
||||
#privacy {
|
||||
padding: 0em;
|
||||
}
|
||||
|
||||
#privacy-item.screenshare {
|
||||
background-color: @base00;
|
||||
color: @base0C;
|
||||
}
|
||||
|
||||
#privacy-item.audio-in {
|
||||
background-color: @base00;
|
||||
color: @base0E;
|
||||
}
|
||||
|
||||
#privacy-item.audio-out {
|
||||
background-color: @base;
|
||||
}
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
Reference in New Issue
Block a user