Nix-ify waybar config
This commit is contained in:
parent
bcb9f6a5bb
commit
2ea60f205c
17
flake.nix
17
flake.nix
|
@ -163,6 +163,9 @@
|
|||
hyprland.homeManagerModules.default
|
||||
./home/work.nix
|
||||
./home/desktop/hyprland.nix
|
||||
./home/desktop/waybar/main.nix
|
||||
./home/desktop/waybar/laptop.nix
|
||||
./home/desktop/waybar/vertical.nix
|
||||
./home/gui
|
||||
];
|
||||
home = {
|
||||
|
@ -172,17 +175,9 @@
|
|||
};
|
||||
programs.neovim.package = pkgs.neovim-nightly;
|
||||
programs.waybar.settings = {
|
||||
main."output" = "eDP-1";
|
||||
ext = {
|
||||
"include" = [
|
||||
"~/.config/waybar/modules.json"
|
||||
"~/.config/waybar/layout.json"
|
||||
];
|
||||
"output" = "!eDP-1";
|
||||
"modules-left" = ["clock" "cpu" "memory" "temperature"];
|
||||
"modules-center" = ["wlr/workspaces"];
|
||||
"modules-right" = ["pulseaudio" "bluetooth" "network#compact" "battery" "tray"];
|
||||
};
|
||||
main."output" = "desc:Iiyama North America PLB2403WS 0574281251316";
|
||||
laptop."output" = "eDP-1";
|
||||
vertical."output" = "desc:Dell Inc. DELL U2417H 5K9YD872FY1L";
|
||||
};
|
||||
xdg.configFile."hypr/hyprpaper.conf".text = ''
|
||||
preload = ${wallpapers.outputs.default}
|
||||
|
|
|
@ -24,8 +24,8 @@
|
|||
};
|
||||
in {
|
||||
imports = [
|
||||
./waybar
|
||||
./swaylock.nix
|
||||
./waybar.nix
|
||||
./gtk.nix
|
||||
./dunst.nix
|
||||
./rofi.nix
|
||||
|
|
|
@ -1,41 +0,0 @@
|
|||
{
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
home.packages = with pkgs; [
|
||||
(nerdfonts.override {fonts = ["FiraCode"];})
|
||||
networkmanagerapplet
|
||||
bluez
|
||||
];
|
||||
xdg.configFile."waybar" = {
|
||||
source = ./config/waybar;
|
||||
recursive = true;
|
||||
};
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
settings.main = {
|
||||
"include" = [
|
||||
"~/.config/waybar/modules.json"
|
||||
"~/.config/waybar/layout.json"
|
||||
];
|
||||
"modules-left" = lib.mkDefault [
|
||||
"clock"
|
||||
"cpu"
|
||||
"memory"
|
||||
"temperature"
|
||||
];
|
||||
"modules-center" = lib.mkDefault [
|
||||
"wlr/workspaces"
|
||||
];
|
||||
"modules-right" = lib.mkDefault [
|
||||
"pulseaudio"
|
||||
"bluetooth"
|
||||
"network#compact"
|
||||
"backlight"
|
||||
"battery"
|
||||
"tray"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
11
home/desktop/waybar/default.nix
Normal file
11
home/desktop/waybar/default.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{pkgs, ...}: {
|
||||
home.packages = with pkgs; [
|
||||
(nerdfonts.override {fonts = ["FiraCode"];})
|
||||
networkmanagerapplet
|
||||
bluez
|
||||
];
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
style = ./style.css;
|
||||
};
|
||||
}
|
42
home/desktop/waybar/laptop.nix
Normal file
42
home/desktop/waybar/laptop.nix
Normal file
|
@ -0,0 +1,42 @@
|
|||
{...}: let
|
||||
modules = import ./modules.nix;
|
||||
in {
|
||||
imports = [./default.nix];
|
||||
programs.waybar.settings.laptop = {
|
||||
layer = "top";
|
||||
position = "top";
|
||||
spacing = 10;
|
||||
margin-top = 10;
|
||||
margin-left = 20;
|
||||
margin-right = 20;
|
||||
margin-bottom = 5;
|
||||
"modules-left" = [
|
||||
"clock#compact"
|
||||
"cpu"
|
||||
"memory"
|
||||
"temperature"
|
||||
];
|
||||
"modules-center" = [
|
||||
"wlr/workspaces"
|
||||
];
|
||||
"modules-right" = [
|
||||
"pulseaudio"
|
||||
"bluetooth"
|
||||
"network#compact"
|
||||
"backlight"
|
||||
"battery"
|
||||
"tray"
|
||||
];
|
||||
"clock#compact" = modules."clock#compact";
|
||||
cpu = modules.cpu;
|
||||
memory = modules.memory;
|
||||
temperature = modules.temperature;
|
||||
"wlr/workspaces" = modules."wlr/workspaces";
|
||||
pulseaudio = modules.pulseaudio;
|
||||
bluetooth = modules.bluetooth;
|
||||
"network#compact" = modules."network#compact";
|
||||
backlight = modules.backlight;
|
||||
battery = modules.battery;
|
||||
tray = modules.tray;
|
||||
};
|
||||
}
|
41
home/desktop/waybar/main.nix
Normal file
41
home/desktop/waybar/main.nix
Normal file
|
@ -0,0 +1,41 @@
|
|||
{...}: let
|
||||
modules = import ./modules.nix;
|
||||
in {
|
||||
imports = [./default.nix];
|
||||
programs.waybar.settings.main = {
|
||||
layer = "top";
|
||||
position = "top";
|
||||
spacing = 10;
|
||||
margin-top = 10;
|
||||
margin-left = 20;
|
||||
margin-right = 20;
|
||||
margin-bottom = 5;
|
||||
"modules-left" = [
|
||||
"clock"
|
||||
"cpu"
|
||||
"memory"
|
||||
"temperature"
|
||||
];
|
||||
"modules-center" = [
|
||||
"wlr/workspaces"
|
||||
];
|
||||
"modules-right" = [
|
||||
"pulseaudio"
|
||||
"bluetooth"
|
||||
"network"
|
||||
"battery"
|
||||
"tray"
|
||||
];
|
||||
clock = modules.clock;
|
||||
cpu = modules.cpu;
|
||||
memory = modules.memory;
|
||||
temperature = modules.temperature;
|
||||
"wlr/workspaces" = modules."wlr/workspaces";
|
||||
pulseaudio = modules.pulseaudio;
|
||||
bluetooth = modules.bluetooth;
|
||||
network = modules.network;
|
||||
backlight = modules.backlight;
|
||||
battery = modules.battery;
|
||||
tray = modules.tray;
|
||||
};
|
||||
}
|
188
home/desktop/waybar/modules.nix
Normal file
188
home/desktop/waybar/modules.nix
Normal file
|
@ -0,0 +1,188 @@
|
|||
{
|
||||
keyboard-state = {
|
||||
numlock = true;
|
||||
capslock = true;
|
||||
format = "{name} {icon}";
|
||||
format-icons = {
|
||||
locked = "";
|
||||
unlocked = "";
|
||||
};
|
||||
};
|
||||
tray.spacing = 10;
|
||||
clock = {
|
||||
format = "{:%A %Y-%m-%d | %R }";
|
||||
tooltip-format = "<tt>{calendar}</tt>";
|
||||
calendar = {
|
||||
mode = "year";
|
||||
mode-mon-col = 3;
|
||||
weeks-pos = "right";
|
||||
on-scroll = 1;
|
||||
on-click-right = "mode";
|
||||
format = {
|
||||
months = "<span color='#ffead3'><b>{}</b></span>";
|
||||
days = "<span color='#ecc6d9'><b>{}</b></span>";
|
||||
weeks = "<span color='#99ffdd'><b>W{}</b></span>";
|
||||
weekdays = "<span color='#ffcc66'><b>{}</b></span>";
|
||||
today = "<span color='#ff6699'><b><u>{}</u></b></span>";
|
||||
};
|
||||
};
|
||||
actions = {
|
||||
on-click-right = "mode";
|
||||
on-click-forward = "tz_up";
|
||||
on-click-backward = "tz_down";
|
||||
on-scroll-up = "shift_up";
|
||||
on-scroll-down = "shift_down";
|
||||
};
|
||||
};
|
||||
"clock#compact" = {
|
||||
format = "{:%R }";
|
||||
tooltip-format = "{:%A %Y-%m-%d }";
|
||||
};
|
||||
cpu = {
|
||||
format = "{usage}% ";
|
||||
tooltip = false;
|
||||
};
|
||||
memory.format = "{}% ";
|
||||
temperature = {
|
||||
critical-threshold = 80;
|
||||
format = "{temperatureC}°C {icon}";
|
||||
format-icons = [
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
};
|
||||
backlight = {
|
||||
format = "{percent}% {icon}";
|
||||
format-icons = [
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
};
|
||||
battery = {
|
||||
states = {
|
||||
warning = 30;
|
||||
critical = 15;
|
||||
};
|
||||
format = "{capacity}% {icon}";
|
||||
format-charging = "{capacity}% ";
|
||||
format-plugged = "{capacity}% ";
|
||||
format-alt = "{time} {icon}";
|
||||
format-icons = [
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
};
|
||||
network = {
|
||||
format-wifi = "{essid} ({signalStrength}%) ";
|
||||
format-ethernet = "Connected ";
|
||||
tooltip-format = "{ifname}";
|
||||
format-linked = "{ifname} (No IP) ";
|
||||
format-disconnected = "Disconnected ";
|
||||
format-alt = "{ifname}: {ipaddr}/{cidr}";
|
||||
on-click = "nm-connection-editor";
|
||||
};
|
||||
"network#compact" = {
|
||||
format-wifi = "({signalStrength}%) ";
|
||||
format-ethernet = "";
|
||||
tooltip-format = "{essid}";
|
||||
format-linked = "(No IP) ";
|
||||
format-disconnected = "";
|
||||
on-click = "nm-connection-editor";
|
||||
};
|
||||
bluetooth = {
|
||||
format = " {status}";
|
||||
format-disabled = " {status}";
|
||||
format-off = " {status}";
|
||||
format-on = " {status}";
|
||||
format-connected = " {device_alias}";
|
||||
on-click = "blueman-manager";
|
||||
};
|
||||
pulseaudio = {
|
||||
scroll-step = 5;
|
||||
format = "{volume}% {icon} {format_source}";
|
||||
format-bluetooth = "{volume}% {icon} {format_source}";
|
||||
format-bluetooth-muted = " {icon} {format_source}";
|
||||
format-muted = " {format_source}";
|
||||
format-source = "{volume}% ";
|
||||
format-source-muted = "";
|
||||
format-icons = {
|
||||
headphone = "";
|
||||
hands-free = "";
|
||||
headset = "";
|
||||
phone = "";
|
||||
portable = "";
|
||||
car = "";
|
||||
default = [
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
};
|
||||
on-click = "pavucontrol";
|
||||
};
|
||||
"pulseaudio#compact" = {
|
||||
scroll-step = 5;
|
||||
format = "{icon} {format_source}";
|
||||
format-bluetooth = "{icon} {format_source}";
|
||||
format-bluetooth-muted = " {icon} {format_source}";
|
||||
format-muted = " {format_source}";
|
||||
format-source = "";
|
||||
format-source-muted = "";
|
||||
format-icons = {
|
||||
headphone = "";
|
||||
hands-free = "";
|
||||
headset = "";
|
||||
phone = "";
|
||||
portable = "";
|
||||
car = "";
|
||||
default = [
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
};
|
||||
on-click = "pavucontrol";
|
||||
};
|
||||
"custom/power" = {
|
||||
format = "";
|
||||
on-click = "powermenu";
|
||||
};
|
||||
"wlr/workspaces" = {
|
||||
on-click = "activate";
|
||||
disable-scroll = true;
|
||||
all-outputs = true;
|
||||
format = "{icon}";
|
||||
format-icons = {
|
||||
"1" = "";
|
||||
"2" = "";
|
||||
"3" = "";
|
||||
"4" = "";
|
||||
"5" = "";
|
||||
"6" = "";
|
||||
"7" = "";
|
||||
"8" = "";
|
||||
urgent = "";
|
||||
default = "";
|
||||
};
|
||||
sort-by-name = true;
|
||||
sort-by-coordinates = false;
|
||||
sort-by-number = false;
|
||||
};
|
||||
}
|
151
home/desktop/waybar/style.css
Normal file
151
home/desktop/waybar/style.css
Normal file
|
@ -0,0 +1,151 @@
|
|||
@define-color base #24273a;
|
||||
@define-color mantle #1e2030;
|
||||
@define-color crust #181926;
|
||||
|
||||
@define-color text #cad3f5;
|
||||
@define-color subtext0 #a5adcb;
|
||||
@define-color subtext1 #b8c0e0;
|
||||
|
||||
@define-color surface0 #363a4f;
|
||||
@define-color surface1 #494d64;
|
||||
@define-color surface2 #5b6078;
|
||||
|
||||
@define-color overlay0 #6e738d;
|
||||
@define-color overlay1 #8087a2;
|
||||
@define-color overlay2 #939ab7;
|
||||
|
||||
@define-color blue #8aadf4;
|
||||
@define-color lavender #b7bdf8;
|
||||
@define-color sapphire #7dc4e4;
|
||||
@define-color sky #91d7e3;
|
||||
@define-color teal #8bd5ca;
|
||||
@define-color green #a6da95;
|
||||
@define-color yellow #eed49f;
|
||||
@define-color peach #f5a97f;
|
||||
@define-color maroon #ee99a0;
|
||||
@define-color red #ed8796;
|
||||
@define-color mauve #c6a0f6;
|
||||
@define-color pink #f5bde6;
|
||||
@define-color flamingo #f0c6c6;
|
||||
@define-color rosewater #f4dbd6;
|
||||
|
||||
* {
|
||||
border: none;
|
||||
border-radius: 10px;
|
||||
font-family: "FiraCode Nerd Font";
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background: transparent;
|
||||
}
|
||||
window#waybar.hidden {
|
||||
opacity: 0.2;
|
||||
}
|
||||
#window {
|
||||
margin-top: 6px;
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
border-radius: 10px;
|
||||
transition: none;
|
||||
color: transparent;
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
transition: none;
|
||||
color: @overlay0;
|
||||
box-shadow: inset 0 -3px transparent;
|
||||
border-radius: 2px;
|
||||
}
|
||||
#workspaces button.active,
|
||||
#workspaces button.focused {
|
||||
color: @base;
|
||||
}
|
||||
#workspaces button:hover {
|
||||
transition: none;
|
||||
box-shadow: inherit;
|
||||
text-shadow: inherit;
|
||||
color: @base;
|
||||
border-color: #e8a2af;
|
||||
color: @base;
|
||||
}
|
||||
#workspaces button.focused:hover {
|
||||
color: @base;
|
||||
}
|
||||
|
||||
/* left section */
|
||||
#clock,
|
||||
#cpu,
|
||||
#memory,
|
||||
#temperature,
|
||||
/* centre section */
|
||||
#workspaces,
|
||||
/* right section */
|
||||
#pulseaudio,
|
||||
#bluetooth,
|
||||
#network,
|
||||
#backlight,
|
||||
#battery,
|
||||
#tray {
|
||||
margin-top: 0px;
|
||||
margin-bottom: 0px;
|
||||
margin-left: 0px;
|
||||
margin-right: 0px;
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
transition: none;
|
||||
color: @crust;
|
||||
background: @lavender;
|
||||
}
|
||||
|
||||
#clock {
|
||||
background: @lavender;
|
||||
}
|
||||
#cpu {
|
||||
background: @pink;
|
||||
}
|
||||
#memory {
|
||||
background: @mauve;
|
||||
}
|
||||
#temperature {
|
||||
background: @red;
|
||||
}
|
||||
#workspaces {
|
||||
background: @yellow;
|
||||
}
|
||||
#pulseaudio {
|
||||
background: @green;
|
||||
}
|
||||
#bluetooth {
|
||||
background: @teal;
|
||||
}
|
||||
#network {
|
||||
background: @sky;
|
||||
}
|
||||
#backlight {
|
||||
background: @sapphire;
|
||||
}
|
||||
#battery {
|
||||
background: @blue;
|
||||
}
|
||||
#battery.charging,
|
||||
#battery.plugged {
|
||||
background-color: @blue;
|
||||
}
|
||||
#battery.critical:not(.charging) {
|
||||
background-color: @blue;
|
||||
animation-name: blink;
|
||||
animation-duration: 0.5s;
|
||||
animation-timing-function: linear;
|
||||
animation-iteration-count: infinite;
|
||||
animation-direction: alternate;
|
||||
}
|
||||
@keyframes blink {
|
||||
to {
|
||||
color: @red;
|
||||
}
|
||||
}
|
||||
#tray {
|
||||
color: @base;
|
||||
}
|
20
home/desktop/waybar/vertical.nix
Normal file
20
home/desktop/waybar/vertical.nix
Normal file
|
@ -0,0 +1,20 @@
|
|||
{...}: let
|
||||
modules = import ./modules.nix;
|
||||
in {
|
||||
imports = [./default.nix];
|
||||
programs.waybar.settings = {
|
||||
vertical = {
|
||||
layer = "top";
|
||||
position = "top";
|
||||
spacing = 10;
|
||||
margin-top = 10;
|
||||
margin-left = 20;
|
||||
margin-right = 20;
|
||||
margin-bottom = 5;
|
||||
"modules-left" = [];
|
||||
"modules-center" = ["wlr/workspaces"];
|
||||
"modules-right" = [];
|
||||
"wlr/workspaces" = modules."wlr/workspaces";
|
||||
};
|
||||
};
|
||||
}
|
Loading…
Reference in a new issue