meta: Replace avizo with dunst scripts

Avizo had some issues that ultimately made me return to the old and
reliable dunst. For example, the home-manager service would fail to
restart after the computer was idle for a set amount of time.

The way avizo manages its window also resulted in compositors like
Hyprland and picom showing a blur artifact when avizo tried to fade
itself. Ultimately using dunst simplifies things and avoids having
to look in two different places for notifications.
This commit is contained in:
Donovan Glover 2024-09-05 12:28:09 -04:00
parent 2193d86585
commit b7b19601fe
No known key found for this signature in database
GPG Key ID: EA7408A77AE1BE65
5 changed files with 117 additions and 62 deletions

View File

@ -1,37 +0,0 @@
{ config, lib, ... }:
let
inherit (config.lib.stylix.colors)
base01-rgb-r
base01-rgb-g
base01-rgb-b
base02-rgb-r
base02-rgb-g
base02-rgb-b
base05-rgb-r
base05-rgb-g
base05-rgb-b
;
in
{
services.avizo = {
enable = true;
settings.default = {
time = 1;
image-opacity = lib.mkForce 1;
height = 190;
padding = 10;
y-offset = 0.5;
border-width = 0;
block-height = 10;
block-spacing = 0;
fade-in = 0.2;
fade-out = 0.2;
background = lib.mkForce "rgba(${base01-rgb-r}, ${base01-rgb-g}, ${base01-rgb-b}, 1)";
border-color = lib.mkForce "rgba(${base01-rgb-r}, ${base01-rgb-g}, ${base01-rgb-b}, 1)";
bar-fg-color = lib.mkForce "rgba(${base05-rgb-r}, ${base05-rgb-g}, ${base05-rgb-b}, 1)";
bar-bg-color = lib.mkForce "rgba(${base02-rgb-r}, ${base02-rgb-g}, ${base02-rgb-b}, 1)";
};
};
}

View File

@ -37,7 +37,6 @@ in
static const char *const autostart[] = {
"mpDris2", NULL,
"dunst", NULL,
"avizo-service", NULL,
NULL
};
@ -69,13 +68,13 @@ in
static const char *dmenucmd[] = { "rofi", "-show", "drun", NULL };
static const char *quitcmd[] = { "kill", "xinit", NULL };
static const char *termcmd[] = { "kitty", NULL };
static const char *brighter[] = { "lightctl", "-d", "up", NULL };
static const char *dimmer[] = { "lightctl", "-d", "down", NULL };
static const char *brighter[] = { "mb-up", NULL };
static const char *dimmer[] = { "mb-down", NULL };
static const char *print[] = { "scrot", NULL };
static const char *up_vol[] = { "volumectl", "-d", "up", NULL };
static const char *down_vol[] = { "volumectl", "-d", "down", NULL };
static const char *mute_vol[] = { "volumectl", "-d", "toggle-mute", NULL };
static const char *mute_mic[] = { "volumectl", "-d", "-m", "toggle-mute", NULL };
static const char *up_vol[] = { "mv-up", NULL };
static const char *down_vol[] = { "mv-down", NULL };
static const char *mute_vol[] = { "mv-mute", NULL };
static const char *mute_mic[] = { "mv-mic", NULL };
static const Key keys[] = {
{ 0, XF86XK_AudioMute, spawn, {.v = mute_vol } },

View File

@ -229,12 +229,12 @@ in
];
bindl = [
", XF86AudioMute, exec, volumectl -d toggle-mute"
", XF86AudioRaiseVolume, exec, volumectl -d up"
", XF86AudioLowerVolume, exec, volumectl -d down"
", XF86AudioMicMute, exec, volumectl -d -m toggle-mute"
", XF86MonBrightnessDown, exec, lightctl -d down"
", XF86MonBrightnessUp, exec, lightctl -d up"
", XF86AudioMute, exec, mv-mute"
", XF86AudioRaiseVolume, exec, mv-up"
", XF86AudioLowerVolume, exec, mv-down"
", XF86AudioMicMute, exec, mv-mic"
", XF86MonBrightnessDown, exec, mb-down"
", XF86MonBrightnessUp, exec, mb-up"
", XF86Display, exec, ~/.config/${monitorScript}"
", XF86Messenger, togglespecialworkspace"
", XF86Favorites, exec, killall rofi || rofi -show drun"

View File

@ -1,12 +0,0 @@
final: prev: {
avizo = prev.avizo.overrideAttrs (oldAttrs: {
version = "1.3-unstable-2024-09-04";
src = prev.fetchFromGitHub {
owner = "heyjuvi";
repo = "avizo";
rev = "bc2fb780da58a312191edbf007fc3c8ef1e4eb15";
hash = "sha256-aYA/ls6MLHuE/6noVff4LUEJzyh0EEs+u2dallnevcI=";
};
});
}

105
packages/dunst-scripts.nix Normal file
View File

@ -0,0 +1,105 @@
{
lib,
stdenvNoCC,
writeTextFile,
makeWrapper,
fish,
pipewire,
brightnessctl,
libnotify,
}:
let
volume = writeTextFile {
name = "volume";
text = # fish
''
#!/usr/bin/env fish
wpctl set-volume --limit 1 @DEFAULT_AUDIO_SINK@ 5%+
set VOL "$(wpctl get-volume '@DEFAULT_AUDIO_SINK@')"
notify-send \
--icon "multimedia-volume-control" \
--hint "string:x-dunst-stack-tag:volume" \
--hint "int:value:$(math "$(echo "$VOL" | awk '{print $2}') * 100")" \
"" \
"$(echo "$VOL" | awk '{print $3}' | sed -e 's/\[MUTED\]//' | tr --delete '\n')"
'';
};
brightness = writeTextFile {
name = "brightness";
text = # fish
''
#!/usr/bin/env fish
notify-send \
--icon "brightness" \
--hint "string:x-dunst-stack-tag:brightness" \
--hint "int:value:$(brightnessctl set 5%+ -m | awk --field-separator , '{print $4}')" \
""
'';
};
in
stdenvNoCC.mkDerivation {
pname = "dunst-scripts";
version = "0.1.0";
dontUnpack = true;
nativeBuildInputs = [ makeWrapper ];
installPhase = ''
runHook preInstall
install -Dm755 ${brightness} $out/bin/mb-up
install -Dm755 ${brightness} $out/bin/mb-down
install -Dm755 ${volume} $out/bin/mv-up
install -Dm755 ${volume} $out/bin/mv-down
install -Dm755 ${volume} $out/bin/mv-mute
substituteInPlace $out/bin/mb-down \
--replace-fail "5%+" "5%-"
substituteInPlace $out/bin/mv-down \
--replace-fail "5%+" "5%-"
substituteInPlace $out/bin/mv-mute \
--replace-fail "set-volume --limit 1" "set-mute" \
--replace-fail "5%+" "toggle"
install -Dm755 $out/bin/mv-mute $out/bin/mv-mic
substituteInPlace $out/bin/mv-mic \
--replace-fail "DEFAULT_AUDIO_SINK" "DEFAULT_AUDIO_SOURCE" \
--replace-fail "multimedia-volume-control" "audio-input-microphone" \
--replace-fail "x-dunst-stack-tag:volume" "x-dunst-stack-tag:microphone" \
--replace-fail "" ""
runHook postInstall
'';
postInstall = ''
for bin in $out/bin/*; do
wrapProgram "$bin" \
--prefix PATH ":" "${
lib.makeBinPath [
fish
pipewire
brightnessctl
libnotify
]
}"
done
'';
meta = {
homepage = "https://github.com/donovanglover/nix-config";
description = "Dunst scripts for brightness and volume";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ donovanglover ];
platforms = lib.platforms.linux;
};
}