From ed9df2da836c42c424083ae33ef00068d038512e Mon Sep 17 00:00:00 2001 From: Vinzenz Schroeter Date: Mon, 17 Mar 2025 18:09:24 +0100 Subject: [PATCH] misc niri/waybar tweaks --- home/vinzenz/niri.nix | 17 +++++ home/vinzenz/waybar.nix | 164 +++++++++++++++++++++++++++++++++++++--- 2 files changed, 170 insertions(+), 11 deletions(-) diff --git a/home/vinzenz/niri.nix b/home/vinzenz/niri.nix index 378e310..b801c6b 100644 --- a/home/vinzenz/niri.nix +++ b/home/vinzenz/niri.nix @@ -10,6 +10,23 @@ swaylock ]; + qt.style = { + package = pkgs.adwaita-qt; + name = "adwaita-dark"; + }; + + services = { + kdeconnect = { + enable = true; + indicator = true; + }; + mako = { + enable = true; + }; + }; + + # services.swayidle.enable = true; + programs.niri.settings = { input.keyboard.xkb.layout = "de"; diff --git a/home/vinzenz/waybar.nix b/home/vinzenz/waybar.nix index 413036d..145e15a 100644 --- a/home/vinzenz/waybar.nix +++ b/home/vinzenz/waybar.nix @@ -1,6 +1,13 @@ { pkgs, device, ... }: { - config.programs.waybar = { + home.packages = with pkgs; [ + waybar + playerctl + ]; + + programs.cava.enable = true; + + programs.waybar = { enable = true; settings = { mainBar = { @@ -14,25 +21,31 @@ spacing = "8"; modules-left = [ "niri/workspaces" + "tray" "niri/window" ]; modules-center = [ + "privacy" "clock" ]; modules-right = [ - "tray" - "mpd" + "mpris" + "image" + "cava" + "gamemode" "temperature" "cpu" - - "disk" - "backlight" - "pulseaudio" - "bluetooth" "memory" + "disk" + "wireplumber" + "bluetooth" + "backlight" "network" + "power-profiles-daemon" "battery" + "idle_inhibitor" + #"group/group-power" ]; "niri/workspaces" = { format = "{icon}"; @@ -95,15 +108,15 @@ format = "{percent}% "; }; cpu = { - "interval" = 1; - "format" = + interval = 1; + format = "{usage:3}%@{avg_frequency:4} " + (builtins.getAttr device { "vinzenz-lpt2" = "{icon0}{icon1}{icon2}{icon3}{icon4}{icon5}{icon6}{icon7}{icon8}{icon9}{icon10}{icon11}{icon12}{icon13}{icon14}{icon15}{icon16}{icon17}{icon18}{icon19}"; }) + " "; - "format-icons" = [ + format-icons = [ "" "" "" @@ -114,6 +127,135 @@ "" ]; }; + cava = { + framerate = 15; + autosens = 1; + method = "pipewire"; + sleep_timer = 3; + source = "auto"; + bar_delimiter = 0; + bars = 12; + input_delay = 2; + hide_on_silence = true; + format-icons = [ + "" + "" + "" + "" + "" + "" + "" + "" + ]; + actions = { + "on-click-right" = "mode"; + }; + }; + disk = { + format = "{free}/{total}"; + }; + "group/group-power" = { + "orientation" = "inherit"; + "drawer" = { + "transition-duration" = 500; + "children-class" = "not-power"; + "transition-left-to-right" = false; + }; + "modules" = [ + "custom/power" # First element is the "group leader" and won't ever be hidden + "custom/quit" + "custom/lock" + "custom/reboot" + ]; + }; + "custom/quit" = { + "format" = "󰗼"; + "tooltip" = false; + "on-click" = "hyprctl dispatch exit"; + min-width = 20; + }; + "custom/lock" = { + "format" = "󰍁"; + "tooltip" = false; + "on-click" = "swaylock"; + }; + "custom/reboot" = { + "format" = "󰜉"; + "tooltip" = false; + "on-click" = "reboot"; + }; + "custom/power" = { + "format" = ""; + "tooltip" = false; + "on-click" = "shutdown now"; + }; + idle_inhibitor = { + format = "{icon}"; + format-icons = { + activated = ""; + deactivated = ""; + }; + }; + image = + let + albumArtScript = pkgs.writeShellScriptBin "album-art.sh" '' + #!${pkgs.bash}/bin/bash + album_art=$(playerctl metadata mpris:artUrl) + if [[ -z $album_art ]] + then + exit + fi + curl -s "''${album_art}" --output "/tmp/cover.jpeg" + echo "/tmp/cover.jpeg" + ''; + in + { + exec = "${albumArtScript}/bin/album-art.sh"; + interval = 15; + on-click = "playerctl play-pause"; + }; + mpris = { + format = "{title} "; + tooltip-format = "{player} ({status}) {dynamic}"; + }; + memory = { + format = "{}% "; + }; + power-profiles-daemon = { + format = "{icon}"; + tooltip-format = "Power profile: {profile}\nDriver: {driver}"; + tooltip = true; + format-icons = { + default = ""; + performance = ""; + balanced = ""; + power-saver = ""; + }; + }; + wireplumber = { + format = "{volume}% {icon}"; + format-muted = ""; + format-icons = [ + "" + "" + "" + ]; + }; + temperature = { + format = "{temperatureC}°C "; + }; + tray = { + spacing = 4; + }; + bluetooth = { + format = "  {status} "; + format-connected = "  {device_alias} "; + format-connected-battery = "  {device_alias} {device_battery_percentage}% "; + 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}%"; + }; }; }; };