mirror of
https://github.com/tomasriveral/nixos.git
synced 2026-08-11 18:18:37 +02:00
745 lines
20 KiB
Nix
745 lines
20 KiB
Nix
_: {
|
|
flake.homeModules.waybar-minimal = _: {
|
|
programs.waybar = {
|
|
enable = true;
|
|
settings = [
|
|
{
|
|
layer = "top";
|
|
modules-left = [];
|
|
modules-center = [];
|
|
modules-right = [
|
|
"battery"
|
|
"clock"
|
|
];
|
|
|
|
battery = {
|
|
format = "{capacity}% {icon}";
|
|
states = {
|
|
warning = 30;
|
|
critical = 15;
|
|
};
|
|
};
|
|
|
|
clock = {
|
|
format = "{:%H:%M}";
|
|
};
|
|
}
|
|
];
|
|
};
|
|
};
|
|
flake.homeModules.waybar = _: {
|
|
# replaced by caelestia
|
|
programs.waybar = {
|
|
enable = true;
|
|
settings = [
|
|
{
|
|
layer = "top";
|
|
position = "left";
|
|
margin = "5 2 5 0";
|
|
reload_style_on_change = true;
|
|
modules-left = [
|
|
"hyprland/workspaces"
|
|
"group/info"
|
|
"group/power"
|
|
];
|
|
modules-center = [
|
|
];
|
|
modules-right = [
|
|
"hyprland/window"
|
|
"group/brightness"
|
|
"group/sound"
|
|
"group/connection"
|
|
"group/together"
|
|
"tray"
|
|
"battery"
|
|
];
|
|
# groups settings are organized by alphabetical order
|
|
"group/audio" = {
|
|
orientation = "inherit";
|
|
drawer = {
|
|
transition-duration = 500;
|
|
transition-left-to-right = false;
|
|
};
|
|
modules = [
|
|
"pulseaudio"
|
|
"pulseaudio#mic"
|
|
"pulseaudio/slider"
|
|
];
|
|
};
|
|
"group/bluetooth" = {
|
|
orientation = "inherit";
|
|
drawer = {
|
|
transition-duration = 500;
|
|
transition-left-to-right = true;
|
|
};
|
|
modules = [
|
|
"bluetooth"
|
|
"bluetooth#status"
|
|
];
|
|
};
|
|
"group/brightness" = {
|
|
orientation = "inherit";
|
|
drawer = {
|
|
transition-duration = 500;
|
|
transition-left-to-right = false;
|
|
};
|
|
modules = [
|
|
"backlight"
|
|
"backlight/slider"
|
|
];
|
|
};
|
|
"group/connection" = {
|
|
orientation = "inherit";
|
|
modules = ["group/network"];
|
|
};
|
|
"group/gcpu" = {
|
|
orientation = "inherit";
|
|
modules = [
|
|
"custom/cpu-icon"
|
|
"temperature"
|
|
"cpu"
|
|
];
|
|
};
|
|
"group/info" = {
|
|
orientation = "inherit";
|
|
modules = [
|
|
"group/gcpu"
|
|
"memory"
|
|
"disk"
|
|
];
|
|
};
|
|
"group/network" = {
|
|
orientation = "inherit";
|
|
drawer = {
|
|
transition-duration = 500;
|
|
transition-left-to-right = true;
|
|
};
|
|
modules = [
|
|
"network"
|
|
"network#speed"
|
|
];
|
|
};
|
|
"group/power" = {
|
|
orientation = "inherit";
|
|
modules = [
|
|
"battery#w"
|
|
"battery#powerdraw"
|
|
];
|
|
};
|
|
"group/sound" = {
|
|
orientation = "inherit";
|
|
modules = [
|
|
"group/audio"
|
|
"custom/notification"
|
|
];
|
|
};
|
|
"group/together" = {
|
|
orientation = "inherit";
|
|
modules = [
|
|
"group/utils"
|
|
"clock"
|
|
];
|
|
};
|
|
"group/utils" = {
|
|
orientation = "inherit";
|
|
drawer = {
|
|
transition-duration = 500;
|
|
transition-left-to-right = true;
|
|
};
|
|
modules = [
|
|
"custom/weather"
|
|
"custom/colorpicker"
|
|
];
|
|
};
|
|
# modules settings are organized by alphabetical order
|
|
backlight = {
|
|
device = "intel_backlight"; # my laptop is amd and it works
|
|
format = "{icon}";
|
|
format-icons = [
|
|
""
|
|
""
|
|
""
|
|
""
|
|
""
|
|
""
|
|
""
|
|
""
|
|
""
|
|
""
|
|
""
|
|
""
|
|
""
|
|
""
|
|
""
|
|
];
|
|
on-scroll-down = "brightnessctl s 5%-";
|
|
on-scroll-up = "brightness s +5%";
|
|
tooltip = true;
|
|
tooltip-format = "Brightness: {percent}%";
|
|
smooth-scrolling-threshold = 1;
|
|
};
|
|
"backlight/slider" = {
|
|
min = 5;
|
|
max = 100;
|
|
orientation = "vertical";
|
|
device = "intel_backlight";
|
|
};
|
|
battery = {
|
|
#rotate = 90;
|
|
interval = 30;
|
|
states = {
|
|
good = 95;
|
|
warning = 20;
|
|
critical = 15;
|
|
};
|
|
format = "{icon} {capacity}";
|
|
format-charging = "<b>{icon} {capacity}% </b>";
|
|
format-full = "<span color='#82A55F'><b>{icon}</b></span>";
|
|
format-icons = [
|
|
""
|
|
""
|
|
""
|
|
""
|
|
""
|
|
""
|
|
];
|
|
tooltip-format = "{timeTo} {capacity} %";
|
|
};
|
|
"battery#powerdraw" = {
|
|
rotate = 90;
|
|
interval = 10;
|
|
format = "{power:.0001f}";
|
|
};
|
|
"battery#w" = {
|
|
rotate = 90;
|
|
interval = 100000;
|
|
format = "W";
|
|
};
|
|
bluetooth = {
|
|
format-on = "";
|
|
format-off = "";
|
|
format-disabled = "";
|
|
format-connected = "<b></b>";
|
|
tooltip-format = "{controller_alias}\t{controller_address}\n\n{num_connections} connected";
|
|
tooltip-format-connected = "{controller_alias}\t{controller_address}\n\n{num_connections} connected\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}%";
|
|
};
|
|
"bluetooth#status" = {
|
|
format-on = "";
|
|
format-off = "";
|
|
format-disabled = "";
|
|
format-connected = "<b>{num_connections}</b>";
|
|
format-connected-battery = "<small><b>{device_battery_percentage}%</b></small>";
|
|
tooltip-format = "{controller_alias}\t{controller_address}\n\n{num_connections} connected";
|
|
tooltip-format-connected = "{controller_alias}\t{controller_address}\n\n{num_connections} connected\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}%";
|
|
};
|
|
clock = {
|
|
format = "{:%H\n%M}";
|
|
tooltip-format = "<tt><small>{calendar}</small></tt>";
|
|
calendar = {
|
|
mode = "month";
|
|
mode-mon-col = 3;
|
|
weeks-pos = "right";
|
|
on-scroll = 1;
|
|
on-click-right = "mode";
|
|
format = {
|
|
today = "<span color='#d65d0e'><b><u>{}</u></b></span>";
|
|
};
|
|
};
|
|
};
|
|
cpu = {
|
|
format = "<b>{usage}%</b>";
|
|
};
|
|
"custom/colorpicker" = {
|
|
format = "";
|
|
on-click = "hyprpicker | tee >(wl-copy) | cliphist store";
|
|
};
|
|
"custom/cpu-icon" = {
|
|
format = "";
|
|
tooltip = false;
|
|
};
|
|
"custom/mark" = {
|
|
format = "";
|
|
tooltip = false;
|
|
};
|
|
"custom/weather" = {
|
|
format = "{}";
|
|
interval = 3600;
|
|
exec = "custom-weatherwaybar";
|
|
return-type = "json";
|
|
};
|
|
disk = {
|
|
interval = 600;
|
|
format = "<b> \n{percentage_used}</b>";
|
|
path = "/"; #maybe we should subtract ~/kdrive if it is counted
|
|
};
|
|
"hyprland/window" = {
|
|
format = "{class}";
|
|
rotate = 90;
|
|
};
|
|
"hyprland/workspaces" = {
|
|
format = "{icon}";
|
|
format-icons = {
|
|
"1" = "";
|
|
"2" = "";
|
|
"3" = "";
|
|
"4" = "";
|
|
"5" = "";
|
|
"6" = "";
|
|
"7" = "";
|
|
"8" = "";
|
|
"9" = "";
|
|
"10" = "";
|
|
"active" = "";
|
|
"default" = "";
|
|
};
|
|
persistent-workspaces = {
|
|
"*" = [1 2 3 4 5 6 7 8 9 10];
|
|
};
|
|
};
|
|
idle_inhibitor = {
|
|
format = "{icon}";
|
|
tooltip-format-activated = "Idle Inhibitor is active";
|
|
tooltip-format-deactivated = "Idle Inhibitor is not active";
|
|
format-icons = {
|
|
activated = "";
|
|
deactivated = "";
|
|
};
|
|
};
|
|
memory = {
|
|
format = "<b> \n{:2}</b>";
|
|
};
|
|
network = {
|
|
format = "{icon}";
|
|
format-icons = {
|
|
wifi = [""];
|
|
ethernet = [""];
|
|
disconnected = [""];
|
|
};
|
|
format-wifi = "";
|
|
format-ethernet = "";
|
|
format-disconnected = "";
|
|
format-linked = "";
|
|
tooltip = false;
|
|
};
|
|
"network#speed" = {
|
|
format = " {bandwidthDownBits} ";
|
|
rotate = 90;
|
|
interval = 5;
|
|
tooltip-format = "{ipaddr}";
|
|
tooltip-format-wifi = "{essid} ({signalStrength}%) \n{ipaddr} | {frequency} MHz{icon} ";
|
|
tooltip-format-ethernet = "{ifname} \n{ipaddr} | {frequency} MHz{icon} ";
|
|
tooltip-format-disconnected = "Not Connected to any type of Network";
|
|
tooltip = true;
|
|
};
|
|
power-profiles-daemon = {
|
|
format = "{icon}";
|
|
tooltip-format = "Power profile: {profile}\nDriver: {driver}";
|
|
tooltip = true;
|
|
format-icons = {
|
|
default = "";
|
|
performance = "<span color='#B37F34'><small></small></span>";
|
|
balanced = "<span><small> </small></span>";
|
|
power-saver = "<span color='#a6e3a1'><small></small></span>";
|
|
};
|
|
};
|
|
pulseaudio = {
|
|
format = "{icon}";
|
|
format-bluetooth = "{icon}";
|
|
tooltip-format = "{volume}% {icon} | {desc}";
|
|
format-muted = "";
|
|
format-icons = {
|
|
headphones = "";
|
|
handsfree = "";
|
|
headset = "";
|
|
phone = "";
|
|
portable = "";
|
|
car = " ";
|
|
default = [
|
|
""
|
|
""
|
|
""
|
|
];
|
|
};
|
|
on-click = "volume mute";
|
|
on-click-middle = "pavucontrol";
|
|
on-scroll-up = "pactl set-sink-volume @DEFAULT_SINK@ +5%";
|
|
on-scroll-down = "pactl set-sink-volume @DEFAULT_SINK@ -5%";
|
|
smooth-scrolling-threshold = 1;
|
|
};
|
|
"pulseaudio#mic" = {
|
|
format = "{format_source}";
|
|
format-source = "";
|
|
format-source-muted = "";
|
|
tooltip-format = "{volume}% {format_source}";
|
|
on-click = "pactl set-source-mute 0 toggle";
|
|
on-scroll-down = "pactl set-source-volume 0 -1%";
|
|
on-scroll-up = "pactl set-source-volume 0 +1%";
|
|
};
|
|
"pulseaudio/slider" = {
|
|
min = 0;
|
|
max = 140;
|
|
orientation = "vertical";
|
|
};
|
|
temperature = {
|
|
format = "{temperatureC}°C";
|
|
format-critical = "{temperatureC}°C";
|
|
interval = 10;
|
|
};
|
|
tray = {
|
|
icon-size = 18;
|
|
spacing = 10;
|
|
};
|
|
}
|
|
]; # home-manager wants the whole config as a list of bars
|
|
style = ''
|
|
@define-color foreground #c5c5c5;
|
|
@define-color background #191919;
|
|
@define-color cursor #c5c5c5;
|
|
|
|
@define-color color0 #191919;
|
|
@define-color color1 #3a3632;
|
|
@define-color color2 #582c1e;
|
|
@define-color color3 #423f39;
|
|
@define-color color4 #50473c;
|
|
@define-color color5 #634723;
|
|
@define-color color6 #BAA470;
|
|
@define-color color7 #8c8c8c;
|
|
@define-color color8 #525252;
|
|
@define-color color9 #4e4843;
|
|
@define-color color10 #763b28;
|
|
@define-color color11 #59554c;
|
|
@define-color color12 #6b5f51;
|
|
@define-color color13 #855f2f;
|
|
@define-color color14 #796d62;
|
|
@define-color color15 #c5c5c5;
|
|
|
|
@define-color active @color6;
|
|
|
|
* {
|
|
font-size: 23px;
|
|
font-family: "0xProto Nerd Font";
|
|
min-width: 8px;
|
|
min-height: 0px;
|
|
border: none;
|
|
border-radius: 0;
|
|
box-shadow: none;
|
|
text-shadow: none;
|
|
padding: 0px;
|
|
margin: 0px;
|
|
|
|
}
|
|
|
|
window#waybar {
|
|
transition-property: background-color;
|
|
transition-duration: 0.5s;
|
|
border-radius: 8px;
|
|
border: 2px solid @active;
|
|
background: @background;
|
|
background: alpha(@background, 0.7);
|
|
color: lighter(@active);
|
|
}
|
|
|
|
menu,
|
|
tooltip {
|
|
border-radius: 8px;
|
|
padding: 2px;
|
|
border: 1px solid lighter(@active);
|
|
background: alpha(@background, 0.6);
|
|
|
|
color: lighter(@active);
|
|
}
|
|
|
|
menu label,
|
|
tooltip label {
|
|
font-size: 20px;
|
|
color: lighter(@active);
|
|
}
|
|
|
|
#submap,
|
|
#tray>.needs-attention {
|
|
animation-name: blink-active;
|
|
animation-duration: 1s;
|
|
animation-timing-function: linear;
|
|
animation-iteration-count: infinite;
|
|
animation-direction: alternate;
|
|
}
|
|
|
|
.modules-right {
|
|
margin: 0px 6px 6px 6px;
|
|
border-radius: 4px;
|
|
background: alpha(@background, 0.4);
|
|
color: lighter(@active);
|
|
}
|
|
|
|
.modules-left {
|
|
transition-property: background-color;
|
|
transition-duration: 0.5s;
|
|
margin: 6px 6px 6px 6px;
|
|
border-radius: 4px;
|
|
background: alpha(@background, 0.4);
|
|
color: lighter(@active);
|
|
}
|
|
|
|
#gcpu,
|
|
#custom-github,
|
|
#memory,
|
|
#disk,
|
|
#together,
|
|
#submap,
|
|
#custom-weather {
|
|
font-size: 17px;
|
|
}
|
|
|
|
#custom-recorder,
|
|
#connection,
|
|
#cnoti,
|
|
#brightness,
|
|
#power,
|
|
#custom-updates,
|
|
#tray,
|
|
#audio,
|
|
#privacy,
|
|
#sound {
|
|
border-radius: 4px;
|
|
margin: 2px 2px 4px 2px;
|
|
background: alpha(darker(@active), 0.3);
|
|
}
|
|
|
|
#custom-notifications {
|
|
padding-left: 4px;
|
|
}
|
|
|
|
#custom-hotspot,
|
|
#custom-github,
|
|
#custom-notifications {
|
|
font-size: 20px;
|
|
}
|
|
|
|
#custom-hotspot {
|
|
padding-right: 2px;
|
|
}
|
|
|
|
#custom-vpn,
|
|
#custom-hotspot {
|
|
background: alpha(darker(@active), 0.3);
|
|
}
|
|
|
|
#privacy-item {
|
|
padding: 6px 0px 6px 6px;
|
|
}
|
|
|
|
#gcpu {
|
|
padding: 8px 0px 8px 0px;
|
|
}
|
|
|
|
#custom-cpu-icon {
|
|
font-size: 36px;
|
|
}
|
|
|
|
#custom-cputemp,
|
|
#temperature {
|
|
font-size: 17px;
|
|
}
|
|
#disk,
|
|
#memory,
|
|
#cpu {
|
|
font-size: 20px;
|
|
font-weight: bold;
|
|
}
|
|
|
|
#custom-github {
|
|
padding-top: 2px;
|
|
padding-right: 4px;
|
|
}
|
|
|
|
#custom-dmark {
|
|
color: alpha(@foreground, 0.3);
|
|
}
|
|
|
|
#submap {
|
|
margin-bottom: 0px;
|
|
}
|
|
|
|
#hyprland.window {
|
|
margin-left: 20px;
|
|
}
|
|
|
|
#workspaces {
|
|
margin: 0px 2px;
|
|
padding: 4px 0px 0px 0px;
|
|
border-radius: 8px;
|
|
}
|
|
|
|
#workspaces button {
|
|
transition-property: background-color;
|
|
transition-duration: 0.5s;
|
|
color: @foreground;
|
|
background: transparent;
|
|
border-radius: 4px;
|
|
color: alpha(@foreground, 0.3);
|
|
}
|
|
|
|
#workspaces button.urgent {
|
|
font-weight: bold;
|
|
color: @foreground;
|
|
}
|
|
|
|
#workspaces button.active {
|
|
padding: 4px 2px;
|
|
background: alpha(@active, 0.4);
|
|
color: lighter(@active);
|
|
border-radius: 4px;
|
|
}
|
|
|
|
#network.wifi {
|
|
padding-right: 4px;
|
|
}
|
|
|
|
#submap {
|
|
min-width: 0px;
|
|
margin: 4px 6px 4px 6px;
|
|
}
|
|
|
|
#tray {
|
|
padding: 0px 0px 0px 0px;
|
|
}
|
|
|
|
#bluetooth {
|
|
padding-top: 2px;
|
|
}
|
|
|
|
#window {
|
|
border-radius: 8px;
|
|
padding: 4px 14px;
|
|
margin: 4px 2px 4px 2px;
|
|
}
|
|
|
|
#battery {
|
|
font-size: 17px;
|
|
border-radius: 8px;
|
|
padding: 4px 0px;
|
|
margin: 4px 2px 4px 2px;
|
|
}
|
|
|
|
#battery.discharging.warning {
|
|
animation-name: blink-yellow;
|
|
animation-duration: 1s;
|
|
animation-timing-function: linear;
|
|
animation-iteration-count: infinite;
|
|
animation-direction: alternate;
|
|
}
|
|
|
|
#battery.discharging.critical {
|
|
animation-name: blink-red;
|
|
animation-duration: 1s;
|
|
animation-timing-function: linear;
|
|
animation-iteration-count: infinite;
|
|
animation-direction: alternate;
|
|
}
|
|
|
|
#battery.powerdraw {
|
|
font-size: 17px;
|
|
padding: 0;
|
|
margin-right: -20px;
|
|
margin-left: -20px;
|
|
}
|
|
#battery.w {
|
|
font-size: 17px;
|
|
padding: 0;
|
|
margin-left: -20px;
|
|
margin-right: -20px;
|
|
}
|
|
|
|
#clock {
|
|
font-weight: bold;
|
|
padding: 4px 2px 2px 2px;
|
|
}
|
|
|
|
#pulseaudio.mic {
|
|
border-radius: 4px;
|
|
color: @background;
|
|
background: alpha(darker(@foreground), 0.6);
|
|
padding-left: 4px;
|
|
}
|
|
|
|
#backlight-slider slider,
|
|
#pulseaudio-slider slider {
|
|
background-color: transparent;
|
|
box-shadow: none;
|
|
}
|
|
|
|
#backlight-slider trough,
|
|
#pulseaudio-slider trough {
|
|
margin-top: 4px;
|
|
min-width: 6px;
|
|
min-height: 60px;
|
|
border-radius: 8px;
|
|
background-color: alpha(@background, 0.6);
|
|
}
|
|
|
|
#backlight-slider highlight,
|
|
#pulseaudio-slider highlight {
|
|
border-radius: 8px;
|
|
background-color: lighter(@active);
|
|
}
|
|
|
|
#bluetooth.discoverable,
|
|
#bluetooth.discovering,
|
|
#bluetooth.pairable {
|
|
border-radius: 8px;
|
|
animation-name: blink-active;
|
|
animation-duration: 1s;
|
|
animation-timing-function: linear;
|
|
animation-iteration-count: infinite;
|
|
animation-direction: alternate;
|
|
}
|
|
|
|
@keyframes blink-active {
|
|
to {
|
|
background-color: @active;
|
|
color: @foreground;
|
|
}
|
|
}
|
|
|
|
@keyframes blink-red {
|
|
to {
|
|
background-color: #c64d4f;
|
|
color: @foreground;
|
|
}
|
|
}
|
|
|
|
@keyframes blink-yellow {
|
|
to {
|
|
background-color: #cf9022;
|
|
color: @foreground;
|
|
}
|
|
}
|
|
'';
|
|
};
|
|
};
|
|
perSystem = {pkgs, ...}: {
|
|
packages.custom-weatherwaybar = pkgs.writeShellApplication {
|
|
name = "custom-weatherwaybar";
|
|
runtimeInputs = with pkgs; [
|
|
curl
|
|
];
|
|
text = ''
|
|
PATTERN="C"
|
|
PATTERN2=" "
|
|
TEXT1="''$(curl -s "https://wttr.in/?format=%c")"
|
|
TEXT1=''${TEXT1/$PATTERN2/}
|
|
TEXT2="''$(curl -s "https://wttr.in/?format=%t")"
|
|
TEXT2=''${TEXT2/$PATTERN/}
|
|
TEXT3="''$(curl -s "https://wttr.in/?format=%f")"
|
|
TEXT3=''${TEXT3/$PATTERN/}
|
|
printf '{"text":" %s\\n %s\\n %s", "tooltip": false, "class": "weather"}\\n' \
|
|
"$TEXT1" "$TEXT2" "$TEXT3"
|
|
'';
|
|
};
|
|
};
|
|
}
|