init
This commit is contained in:
324
home/waybar.nix
Normal file
324
home/waybar.nix
Normal file
@@ -0,0 +1,324 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
|
||||
{
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
mainBar = {
|
||||
layer = "top";
|
||||
position = "top";
|
||||
height = 30;
|
||||
output = [ "eDP-1" "DP-5" "DP-6" ];
|
||||
|
||||
modules-left = [ "custom/logo" "hyprland/workspaces" "tray" ];
|
||||
modules-center = [ "clock" ];
|
||||
modules-right = [ "network" "idle_inhibitor" "bluetooth" "battery" "custom/notification" ];
|
||||
|
||||
"custom/logo" = {
|
||||
format = "";
|
||||
tooltip = false;
|
||||
on-click = "wlogout";
|
||||
on-click-right = "alacritty -e fish -C fastfetch";
|
||||
};
|
||||
|
||||
"hyprland/workspaces" = {
|
||||
disable-scroll = true;
|
||||
all-outputs = true;
|
||||
format = "{name}";
|
||||
};
|
||||
|
||||
"clock" = {
|
||||
format = "{:%a %d/%m %H:%M}";
|
||||
tooltip-format = "{:%Y-%m-%d}";
|
||||
};
|
||||
|
||||
"idle_inhibitor" = {
|
||||
format = "{icon}";
|
||||
format-icons = {
|
||||
activated = " ";
|
||||
deactivated = " ";
|
||||
};
|
||||
tooltip = true;
|
||||
tooltip-format-activated = "Inhibitor Aktiv";
|
||||
tooltip-format-deactivated = "Idle Aktiv";
|
||||
};
|
||||
|
||||
"custom/audio_idle_inhibitor" = {
|
||||
format = "{icon}";
|
||||
exec = "sway-audio-idle-inhibit --dry-print-both-waybar | sed -u 's/\"alt\":\"output-input\"/&,\"tooltip\":\"Audio \\& Mikrofon aktiv\"/; s/\"alt\":\"output\"/&,\"tooltip\":\"Audio spielt\"/; s/\"alt\":\"input\"/&,\"tooltip\":\"Mikrofon wird benutzt\"/; s/\"alt\":\"none\"/&,\"tooltip\":\"Keine Aktivität\"/'";
|
||||
"exec-if" = "which sway-audio-idle-inhibit";
|
||||
"return-type" = "json";
|
||||
tooltip = true;
|
||||
format-icons = {
|
||||
output = " ";
|
||||
input = "";
|
||||
"output-input" = " ";
|
||||
none = "";
|
||||
};
|
||||
};
|
||||
|
||||
"tray" = {
|
||||
icon-size = 18;
|
||||
spacing = 10;
|
||||
};
|
||||
|
||||
"network" = {
|
||||
format-wifi = " {essid}";
|
||||
format-ethernet = " {ifname}";
|
||||
format-linked = "{ipaddr}";
|
||||
format = "{essid}";
|
||||
format-disconnected = " no wifi";
|
||||
on-click = "${pkgs.alacritty}/bin/alacritty -e ${pkgs.networkmanager}/bin/nmtui";
|
||||
on-click-right = "nmcli radio wifi $(nmcli radio wifi | grep -q 'enabled' && echo off || echo on)";
|
||||
tooltip-format = " {bandwidthUpBits} {bandwidthDownBits}\n{ifname}\n{ipaddr}/{cidr}\n";
|
||||
tooltip-format-wifi = " {essid} {frequency}MHz\nStrength: {signalStrength}% ({signaldBm}dBm)\nIP: {ipaddr}/{cidr}\n {bandwidthUpBits} {bandwidthDownBits}";
|
||||
interval = 10;
|
||||
};
|
||||
|
||||
"backlight" = {
|
||||
device = "intel_backlight";
|
||||
format = "{icon}";
|
||||
format-alt = "{percent}%";
|
||||
format-alt-click = "click-right";
|
||||
format-icons = ["" "" "" "" "" "" "" "" ""];
|
||||
tooltip-format = " Helligkeit: {percent}%";
|
||||
on-scroll-down = "brightnessctl s 5%-";
|
||||
on-scroll-up = "brightnessctl s +5%";
|
||||
};
|
||||
|
||||
"bluetooth" = {
|
||||
format = "";
|
||||
format-disabled = "";
|
||||
format-connected = "{device_alias}";
|
||||
format-connected-battery = "{device_alias} {device_battery_percentage}%";
|
||||
tooltip-format = "{controller_alias}\t{controller_address}\n\n{num_connections} verbunden\n\n{device_enumerate}";
|
||||
tooltip-format-enumerate-connected = "{device_alias}\t{device_address}";
|
||||
tooltip-format-enumerate-connected-battery = "{device_alias}\t{device_address}\t{device_battery_percentage}%";
|
||||
|
||||
on-click = "alacritty -e bluetui";
|
||||
on-click-right = "rfkill toggle bluetooth";
|
||||
};
|
||||
|
||||
"pulseaudio" = {
|
||||
format = "{icon} {volume}%";
|
||||
format-bluetooth = "{icon} {volume}%";
|
||||
format-muted = "";
|
||||
format-icons = {
|
||||
headphone = "";
|
||||
hands-free = "";
|
||||
headset = "";
|
||||
phone = "";
|
||||
portable = "";
|
||||
car = "";
|
||||
default = ["" "" ""];
|
||||
};
|
||||
on-click = "pavucontrol";
|
||||
on-click-right = "pactl set-sink-mute @DEFAULT_SINK@ toggle";
|
||||
tooltip-format = "Ausgabelautstärke: {source_volume}% | {desc}";
|
||||
};
|
||||
|
||||
"pulseaudio#microphone" = {
|
||||
format = "{format_source}";
|
||||
format-source = " {volume}%";
|
||||
format-source-muted = "";
|
||||
on-click = "pavucontrol";
|
||||
on-click-right = "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 = "Eingabelautstärke: {source_volume}% | {source_desc}";
|
||||
scroll-step = 5;
|
||||
};
|
||||
|
||||
"battery" = {
|
||||
interval = 5;
|
||||
format = "{icon}";
|
||||
format-alt = "{capacity}%";
|
||||
format-alt-click = "click-right";
|
||||
format-icons = [ "" "" "" "" "" ];
|
||||
format-charging = "{icon}";
|
||||
format-plugged = "{icon}";
|
||||
tooltip-format = "Akkustand: {capacity}% - {timeTo} - {power}W ";
|
||||
on-click = "alacritty -e btop";
|
||||
states = {
|
||||
full = 100;
|
||||
great = 97;
|
||||
good = 85;
|
||||
ok = 50;
|
||||
warning = 30;
|
||||
low = 20;
|
||||
critical = 10;
|
||||
};
|
||||
};
|
||||
|
||||
"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 = "";
|
||||
};
|
||||
return-type = "json";
|
||||
exec = "swaync-client -swb";
|
||||
on-click = "swaync-client -t -sw";
|
||||
on-click-right = "swaync-client -d -sw";
|
||||
escape = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
style = lib.replaceStrings ["#workspaces button.focused"] ["#workspaces button.active"] ''
|
||||
@import "${config.home.homeDirectory}/.config/matugen/colors.css";
|
||||
|
||||
* {
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
font-size: 13px;
|
||||
font-family: "JetBrainsMono Nerd Font", "NotoSans Nerd Font Mono";
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
tooltip {
|
||||
background: @background;
|
||||
color: @foreground;
|
||||
border: 1px solid @primary;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
tooltip label {
|
||||
color: @foreground;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background: @background;
|
||||
color: @foreground;
|
||||
border-bottom: 2px solid @primary;
|
||||
}
|
||||
|
||||
#custom-logo {
|
||||
font-size: 20px;
|
||||
margin: 0 15px;
|
||||
color: @primary;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
padding: 0 0px;
|
||||
margin-right: 4px;
|
||||
color: @foreground;
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
#workspaces button:hover {
|
||||
background: @surface_container_high;
|
||||
color: @foreground;
|
||||
border-bottom: 2px solid @primary;
|
||||
}
|
||||
|
||||
#workspaces button.active {
|
||||
background: @surface_container_high;
|
||||
color: @primary;
|
||||
border-bottom: 2px solid @primary;
|
||||
}
|
||||
|
||||
#workspaces button.urgent {
|
||||
background-color: @urgent;
|
||||
color: @background;
|
||||
}
|
||||
|
||||
#mode {
|
||||
background-color: @secondary;
|
||||
color: @background;
|
||||
padding: 0 5px;
|
||||
}
|
||||
|
||||
#network {
|
||||
padding-right: 5px;
|
||||
padding-left: 5px;
|
||||
}
|
||||
|
||||
#clock, #language, #custom-notification, #backlight, #pulseaudio, #bluetooth, #tray {
|
||||
margin: 0 5px;
|
||||
color: @foreground;
|
||||
}
|
||||
|
||||
#custom-notification {
|
||||
margin-right: 15px;
|
||||
margin-left: 5px;
|
||||
color: @foreground;
|
||||
}
|
||||
|
||||
#custom-audio_idle_inhibitor {
|
||||
margin-left: 5px;
|
||||
margin-right: 5px;
|
||||
color: @foreground;
|
||||
}
|
||||
|
||||
#idle_inhibitor {
|
||||
margin-right: 5px;
|
||||
margin-left: 7px;
|
||||
color: @foreground;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
#idle_inhibitor.activated {
|
||||
animation: blink-icon 2s infinite alternate;
|
||||
color: @primary;
|
||||
}
|
||||
|
||||
@keyframes blink-icon {
|
||||
from { color: @primary; }
|
||||
to { color: transparent; }
|
||||
}
|
||||
|
||||
#battery {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
margin-left: 5px;
|
||||
margin-right: 12px;
|
||||
color: @foreground;
|
||||
}
|
||||
|
||||
#battery.charging, #battery.plugged {
|
||||
margin: 0 5px;
|
||||
color: @foreground;
|
||||
}
|
||||
|
||||
#battery.ok:not(.charging) {
|
||||
animation: blink-icon 3s infinite alternate;
|
||||
}
|
||||
|
||||
@keyframes blink-icon-yellow {
|
||||
from { color: yellow; }
|
||||
to { color: transparent; }
|
||||
}
|
||||
|
||||
#battery.warning:not(.charging) {
|
||||
animation: blink-icon-yellow 1.5s infinite alternate;
|
||||
}
|
||||
|
||||
@keyframes blink-icon-orange {
|
||||
from { color: orange; }
|
||||
to { color: transparent; }
|
||||
}
|
||||
|
||||
#battery.low:not(.charging) {
|
||||
color: orange;
|
||||
animation: blink-icon-orange 0.8s infinite alternate;
|
||||
}
|
||||
|
||||
@keyframes blink-icon-red {
|
||||
from { color: red; }
|
||||
to { color: transparent; }
|
||||
}
|
||||
|
||||
#battery.critical:not(.charging) {
|
||||
animation: blink-icon-red 0.3s infinite alternate;
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user