88 lines
2.3 KiB
Nix
88 lines
2.3 KiB
Nix
{ config, lib, ... }:
|
|
let
|
|
cfg = config.sane.programs.sysvol;
|
|
in
|
|
{
|
|
sane.programs.sysvol = {
|
|
configOption = with lib; mkOption {
|
|
default = {};
|
|
type = types.submodule {
|
|
options.autostart = mkOption {
|
|
type = types.bool;
|
|
default = true;
|
|
};
|
|
};
|
|
};
|
|
|
|
sandbox.method = "bwrap";
|
|
sandbox.whitelistAudio = true;
|
|
sandbox.whitelistWayland = true;
|
|
|
|
fs.".config/sys64/volume.css".symlink.text = ''
|
|
window {
|
|
background: #000000B4;
|
|
border-radius: 19px;
|
|
}
|
|
label {
|
|
color: #FFFFFF;
|
|
}
|
|
image {
|
|
margin-left: 9px;
|
|
color: #FFFFFFD0;
|
|
}
|
|
|
|
/* optionally, replace with `scale.horizontal` and `scale.vertical` for specialization */
|
|
scale {
|
|
margin: 0px;
|
|
padding: 0px;
|
|
margin-right: 7px;
|
|
}
|
|
scale trough {
|
|
border-radius: 12px;
|
|
background: #00000000;
|
|
border: none;
|
|
margin-left: 12px;
|
|
margin-right: 12px;
|
|
}
|
|
scale highlight {
|
|
margin-bottom: 3px;
|
|
margin-top: 3px;
|
|
border-radius: 12px;
|
|
background: #e1f0efdc;
|
|
}
|
|
scale slider {
|
|
margin: 0px;
|
|
margin-left: -12px;
|
|
margin-right: -12px;
|
|
padding: 0px;
|
|
/* background: #e1f0efFF; */
|
|
background: #f9fffc;
|
|
box-shadow: none;
|
|
min-height: 25px;
|
|
min-width: 25px;
|
|
}
|
|
'';
|
|
|
|
services."sysvol" = {
|
|
description = "sysvol: volume monitor/notifier";
|
|
after = [ "graphical-session.target" "pipewire-pulse.service" ];
|
|
wantedBy = lib.mkIf cfg.config.autostart [ "graphical-session.target" ];
|
|
|
|
serviceConfig = {
|
|
# options:
|
|
# -p {0,1,2,3} to attach to top/right/bottom/left screen edge
|
|
# -t N for the notifier to be dismissed after N seconds (integer only)
|
|
# -m N to set the indicator this many pixels in from the edge.
|
|
# it considers sway bars, but not window titles
|
|
# -{H,W} N to set the height/width of the notifier, in px.
|
|
# -i N to set the size of the volume icon
|
|
# -P to hide percentage text
|
|
ExecStart = "${cfg.package}/bin/sysvol -p 0 -t 1 -m 22 -H 39 -W 256 -i 32 -P";
|
|
Type = "simple";
|
|
Restart = "always";
|
|
RestartSec = "10s";
|
|
};
|
|
};
|
|
};
|
|
}
|