waybar feature
This commit is contained in:
@@ -42,6 +42,7 @@
|
||||
kitty = self'.packages.kitty;
|
||||
gotify-desktop = self'.packages.gotify-desktop;
|
||||
otter-launcher = self'.packages.otter-launcher;
|
||||
waybar = self'.packages.waybar;
|
||||
};
|
||||
};
|
||||
wpaperd = let
|
||||
|
||||
42
modules/features/waybar/default.nix
Normal file
42
modules/features/waybar/default.nix
Normal file
@@ -0,0 +1,42 @@
|
||||
{
|
||||
moduleWithSystem,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
flake.nixosModules.waybar = moduleWithSystem ({self', ...}: {
|
||||
environment.systemPackages = with self'.packages; [
|
||||
waybar
|
||||
];
|
||||
});
|
||||
perSystem = {pkgs, ...}: {
|
||||
packages.waybar = inputs.wrappers.wrappers.waybar.wrap {
|
||||
inherit pkgs;
|
||||
"style.css".path = ./style.css;
|
||||
configFile.content = ''
|
||||
{
|
||||
"include": [
|
||||
"${./modules.jsonc}"
|
||||
],
|
||||
"height": 20,
|
||||
"margin": "3 6",
|
||||
"reload_style_on_change": true,
|
||||
"position": "top",
|
||||
"modules-left": [
|
||||
"custom/logo",
|
||||
"hyprland/workspaces"
|
||||
],
|
||||
"modules-center": [
|
||||
"mpris"
|
||||
],
|
||||
"modules-right": [
|
||||
"network",
|
||||
"bluetooth",
|
||||
"custom/notifs",
|
||||
"battery",
|
||||
"clock"
|
||||
]
|
||||
}
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
78
modules/features/waybar/modules.jsonc
Normal file
78
modules/features/waybar/modules.jsonc
Normal file
@@ -0,0 +1,78 @@
|
||||
{
|
||||
"custom/logo": {
|
||||
"format": ""
|
||||
},
|
||||
"mpris": {
|
||||
"format": "{status_icon} {title} - {artist}",
|
||||
"title-len": 50,
|
||||
"artist-len": 20,
|
||||
"status-icons": {
|
||||
"playing": "",
|
||||
"paused": ""
|
||||
}
|
||||
},
|
||||
"network": {
|
||||
"format": "",
|
||||
"format-ethernet": "",
|
||||
"format-wifi": "{icon}",
|
||||
"format-icons": [
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
""
|
||||
],
|
||||
"format-alt": "{ipaddr} / {gwaddr}",
|
||||
"tooltip-format": "{ifname} - {essid}"
|
||||
},
|
||||
"bluetooth": {
|
||||
"format": "",
|
||||
"format-connected": "",
|
||||
"tooltip-format": "{status} - {device_alias}",
|
||||
"on-click": "kitty --class otter --title otter-launcher -e sh -c 'sleep 0.05 && otter-launcher bl'"
|
||||
},
|
||||
"battery": {
|
||||
"format": "{icon} {capacity}%",
|
||||
"format-plugged": " {capacity}%",
|
||||
"format-charging": " {capacity}%",
|
||||
"states": {
|
||||
"warning": 30,
|
||||
"critical": 15
|
||||
},
|
||||
"format-icons": [
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
""
|
||||
]
|
||||
},
|
||||
"custom/notifs": {
|
||||
"format": "",
|
||||
"on-click": "kitty --class otter --title otter-launcher -e sh -c 'sleep 0.05 && otter-launcher dunst'"
|
||||
},
|
||||
"memory": {
|
||||
"format": " {percentage}%",
|
||||
"tooltip-format": "{used:0.1f}GiB, {swapUsed:0.1f}GiB Swap"
|
||||
},
|
||||
"cpu": {
|
||||
"format": " {usage}%"
|
||||
},
|
||||
"clock": {
|
||||
"interval": 1,
|
||||
"format": "{:%T}",
|
||||
"tooltip-format": "<tt><small>{calendar}</small></tt>",
|
||||
"calendar": {
|
||||
"mode" : "year",
|
||||
"mode-mon-col" : 3,
|
||||
"weeks-pos" : "right",
|
||||
"on-scroll" : 1,
|
||||
"format": {
|
||||
"months": "<span color='#89b4fa'><b>{}</b></span>",
|
||||
"days": "<span color='#eba0ac'><b>{}</b></span>",
|
||||
"weeks": "<span color='#a6e3a1'><b>W{}</b></span>",
|
||||
"weekdays": "<span color='#fab387'><b>{}</b></span>",
|
||||
"today": "<span color='#cba6f7'><b><u>{}</u></b></span>"
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
158
modules/features/waybar/style.css
Normal file
158
modules/features/waybar/style.css
Normal file
@@ -0,0 +1,158 @@
|
||||
* {
|
||||
font-family: "Fira Mono Nerd Font Propo";
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
min-height: 16px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.module {
|
||||
background-color: rgba(30, 30, 46, 0.8);
|
||||
margin: 0 3px;
|
||||
padding: 0 9px;
|
||||
border-radius: 7px;
|
||||
}
|
||||
|
||||
#custom-logo {
|
||||
background-color: #cba6f7;
|
||||
color: #1e1e2e;
|
||||
font-size: 21px;
|
||||
}
|
||||
|
||||
#workspaces {
|
||||
padding: 3px 4px;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
background-color: #585b70;
|
||||
margin: 0 2px;
|
||||
padding: 0 2px;
|
||||
border-radius: 2px;
|
||||
}
|
||||
|
||||
#workspaces button:first-child {
|
||||
border-radius: 5px 2px 2px 5px;
|
||||
margin: 0;
|
||||
margin-right: 2px;
|
||||
}
|
||||
|
||||
#workspaces button:last-child {
|
||||
border-radius: 2px 5px 5px 4px;
|
||||
margin: 0;
|
||||
margin-left: 2px;
|
||||
}
|
||||
|
||||
#workspaces button:only-child {
|
||||
border-radius: 5px;
|
||||
padding: 0 12px;
|
||||
margin: 0 1px;
|
||||
}
|
||||
|
||||
#workspaces button.active {
|
||||
background-color: #b4befe;
|
||||
color: #313244;
|
||||
}
|
||||
|
||||
#mpris {
|
||||
font-size: 14px;
|
||||
transition:
|
||||
color 0.5s,
|
||||
background-color 0.5s;
|
||||
}
|
||||
|
||||
#mpris.paused {
|
||||
color: #f2cdcd;
|
||||
}
|
||||
|
||||
#mpris.playing {
|
||||
color: rgba(30, 30, 46, 0.8);
|
||||
background-color: #ca9ee6;
|
||||
}
|
||||
|
||||
#network {
|
||||
background-color: #f38ba8;
|
||||
color: #1e1e2e;
|
||||
}
|
||||
|
||||
#bluetooth {
|
||||
background-color: #fab387;
|
||||
color: #1e1e2e;
|
||||
}
|
||||
|
||||
#custom-notifs {
|
||||
background-color: #f9e2af;
|
||||
color: #1e1e2e;
|
||||
}
|
||||
|
||||
#battery {
|
||||
background-color: #a6e3a1;
|
||||
color: #1e1e2e;
|
||||
transition:
|
||||
color 0.5s,
|
||||
background-color 0.5s,
|
||||
linear-gradient 0.4s;
|
||||
}
|
||||
|
||||
#battery.warning {
|
||||
color: #1e1e2e;
|
||||
background: #f38ba8;
|
||||
background: linear-gradient(
|
||||
135deg,
|
||||
rgba(243, 139, 168, 1) 0%,
|
||||
rgba(166, 218, 149, 1) 65%,
|
||||
rgba(166, 218, 149, 1) 100%
|
||||
);
|
||||
}
|
||||
|
||||
#battery.charging {
|
||||
background-color: #40a02b;
|
||||
background: #cba6f7;
|
||||
background: linear-gradient(
|
||||
135deg,
|
||||
rgba(203, 166, 247, 1) 0%,
|
||||
rgba(166, 218, 149, 1) 65%,
|
||||
rgba(166, 218, 149, 1) 100%
|
||||
);
|
||||
}
|
||||
|
||||
#battery.plugged {
|
||||
background-color: #40a02b;
|
||||
background: #cba6f7;
|
||||
background: linear-gradient(
|
||||
135deg,
|
||||
rgba(203, 166, 247, 1) 0%,
|
||||
rgba(166, 218, 149, 1) 65%,
|
||||
rgba(166, 218, 149, 1) 100%
|
||||
);
|
||||
}
|
||||
|
||||
#battery.critical {
|
||||
color: #f38ba8;
|
||||
}
|
||||
|
||||
#memory {
|
||||
padding-right: 3px;
|
||||
border-radius: 7px 0 0 7px;
|
||||
margin-right: 0;
|
||||
background-color: #89dceb;
|
||||
color: #1e1e2e;
|
||||
}
|
||||
|
||||
#cpu {
|
||||
padding-left: 3px;
|
||||
border-radius: 0 7px 7px 0;
|
||||
margin-left: 0;
|
||||
background-color: #89dceb;
|
||||
color: #1e1e2e;
|
||||
}
|
||||
|
||||
#clock {
|
||||
background-color: #89b4fa;
|
||||
color: #1e1e2e;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user