chore(home): add elephant service and improve waybar configuration

- Add elephant backend service with systemd user service
- Update walker service to depend on elephant service
- Improve waybar configuration with new modules (tray, bluetooth, battery)
- Add click handlers for network, pulseaudio, and bluetooth
- Update colors and styling for better visibility
- Include gaming-apps in laptop home configuration
This commit is contained in:
kptltd00m
2026-06-28 14:42:33 +02:00
parent beda752703
commit 1bb36771dd
3 changed files with 75 additions and 13 deletions
+20 -7
View File
@@ -6,24 +6,37 @@
elephant elephant
]; ];
systemd.user.services.elephant = {
Unit = {
Description = "Elephant backend service";
PartOf = [ "graphical-session.target" ];
After = [ "graphical-session.target" ];
};
Service = {
ExecStart = "${pkgs.elephant}/bin/elephant";
Restart = "on-failure";
RestartSec = 5;
};
};
systemd.user.services.walker = { systemd.user.services.walker = {
Unit = { Unit = {
Description = "Walker application service"; Description = "Walker application service";
After = [ "graphical-session.target" ];
PartOf = [ "graphical-session.target" ]; PartOf = [ "graphical-session.target" ];
After = [ "elephant.service" "graphical-session.target" ];
Requires = [ "elephant.service" ];
}; };
Service = { Service = {
ExecStart = "${pkgs.walker}/bin/walker --gapplication-service"; ExecStart = "${pkgs.walker}/bin/walker --gapplication-service";
Restart = "on-failure"; Restart = "on-failure";
}; RestartSec = 5;
Install = {
WantedBy = [ "graphical-session.target" ];
}; };
}; };
wayland.windowManager.hyprland.settings.exec-once = [ wayland.windowManager.hyprland.settings.exec-once = [
"sh -lc 'elephant service enable && systemctl --user start elephant.service'" "dbus-update-activation-environment --systemd --all"
"systemctl --user start elephant.service walker.service"
]; ];
} }
+54 -6
View File
@@ -1,10 +1,10 @@
{ pkgs, config, ... }: { pkgs, config, lib, ... }:
let let
colors = config.lib.stylix.colors; colors = config.lib.stylix.colors;
rgb = base: rgb = base:
"${colors."${base}-rgb-r"}, ${colors."${base}-rgb-g"}, ${colors."${base}-rgb-b"}"; "${colors."${base}-rgb-r"}, ${colors."${base}-rgb-g"}, ${colors."${base}-rgb-b"}";
terminal = cmd: "uwsm app -- ${lib.getExe pkgs.ghostty} -e ${cmd}";
radius = toString config.theme.bar-rounding; radius = toString config.theme.bar-rounding;
in in
@@ -29,6 +29,7 @@ in
"modules-left" = [ "modules-left" = [
"hyprland/workspaces" "hyprland/workspaces"
"tray"
]; ];
"modules-center" = [ "modules-center" = [
@@ -36,8 +37,9 @@ in
]; ];
"modules-right" = [ "modules-right" = [
"tray" "custom/bluetooth"
"network" "network"
"battery"
"pulseaudio" "pulseaudio"
"clock" "clock"
]; ];
@@ -73,6 +75,28 @@ in
"format-disconnected" = "󰖪"; "format-disconnected" = "󰖪";
"tooltip-format" = "{essid}\n{ipaddr}"; "tooltip-format" = "{essid}\n{ipaddr}";
"on-click" = terminal "wifitui";
};
battery = {
interval = 30;
states = {
warning = 30;
critical = 15;
};
format = "󰁹 {capacity}%";
"format-charging" = "󰂄 {capacity}%";
"format-plugged" = "󰂄 {capacity}%";
"format-full" = "󰁹 {capacity}%";
"tooltip-format" = "Battery {capacity}%\n{timeTo} remaining";
};
"custom/bluetooth" = {
exec = "echo 󰂯";
interval = 3600;
tooltip = false;
"on-click" = "uwsm app -- blueman-manager";
}; };
pulseaudio = { pulseaudio = {
@@ -82,6 +106,7 @@ in
"format-muted" = "󰖁"; "format-muted" = "󰖁";
tooltip = true; tooltip = true;
"on-click" = terminal "wiremix";
}; };
clock = { clock = {
@@ -119,10 +144,12 @@ in
#workspaces, #workspaces,
#window, #window,
#tray, #tray,
#custom-bluetooth,
#network, #network,
#battery,
#pulseaudio, #pulseaudio,
#clock { #clock {
background: rgba(${rgb "base01"}, 0.82); background: rgba(${rgb "base01"}, 0.76);
border: 1px solid rgba(${rgb "base03"}, 0.45); border: 1px solid rgba(${rgb "base03"}, 0.45);
@@ -187,6 +214,10 @@ in
padding-right: 10px; padding-right: 10px;
} }
#custom-bluetooth {
color: #${colors.base0E};
}
#network { #network {
color: #${colors.base0C}; color: #${colors.base0C};
} }
@@ -195,6 +226,23 @@ in
color: #${colors.base08}; color: #${colors.base08};
} }
#battery {
color: #${colors.base0A};
}
#battery.charging,
#battery.plugged {
color: #${colors.base0B};
}
#battery.warning {
color: #${colors.base0A};
}
#battery.critical {
color: #${colors.base08};
}
#pulseaudio { #pulseaudio {
color: #${colors.base0B}; color: #${colors.base0B};
} }
@@ -209,7 +257,7 @@ in
} }
tooltip { tooltip {
background: rgba(${rgb "base00"}, 0.95); background: rgba(${rgb "base00"}, 0.90);
border: 1px solid rgba(${rgb "base03"}, 0.70); border: 1px solid rgba(${rgb "base03"}, 0.70);
@@ -226,4 +274,4 @@ in
"waybar" "waybar"
]; ];
}; };
} }
+1
View File
@@ -26,6 +26,7 @@
../../home/programs/group/basic-apps.nix ../../home/programs/group/basic-apps.nix
../../home/programs/group/dev.nix ../../home/programs/group/dev.nix
../../home/programs/group/misc.nix ../../home/programs/group/misc.nix
../../home/programs/group/gaming-apps.nix
# ───────────────────────────────────────────────────────────── # ─────────────────────────────────────────────────────────────
# System # System