Replace pavucontrol with mixxc

This commit is contained in:
Jakob Lechner 2025-10-24 20:57:34 +02:00
parent c9a956bc63
commit be924e6c87
5 changed files with 237 additions and 1 deletions

View file

@ -21,6 +21,7 @@
./jameica.nix
./kicad.nix
./lsd
./mixxc
./mpv.nix
./mute-indicator.nix
./mycli

View file

@ -0,0 +1,10 @@
{ nixosConfig, lib, pkgs, ... }:
lib.mkIf nixosConfig.jalr.gui.enable {
home.packages = with pkgs; [
mixxc
];
xdg.configFile = {
"mixxc/style.css".source = ./style.css;
};
}

View file

@ -0,0 +1,224 @@
.side {
$hide: false;
.output {
transition: background 750ms;
padding: 5px;
&.master {
transition: background 0ms;
}
&.master:hover {
}
.icon {
-gtk-icon-style: symbolic;
-gtk-icon-size: 16px;
}
}
@if $hide {
min-height: 0;
min-width: 0;
.output {
padding: 0;
.icon {
-gtk-icon-style: symbolic;
-gtk-icon-size: 0;
}
}
}
}
.main {
margin: 20px;
}
.client {
$hide-name: false;
$hide-description: false;
font-family: 'Iosevka Nerd Font';
font-size: 1.2em;
.icon {
-gtk-icon-style: symbolic;
}
@if $hide-name {
.name {
font-size: 0;
}
}
@if $hide-description {
.description {
font-size: 0;
}
}
scale {
trough {
/* Slider Bar */
border-radius: 10px;
slider {
/* Slider Knob */
padding: 0;
border: none;
border-radius: 2px;
transition-duration: 400ms;
}
highlight {
/* Slider Bar Filled */
border: none;
border-radius: 10px;
margin: 2px;
transition: background-image 300ms;
}
fill {
/* Slider Peak */
background: none;
border-radius: 10px;
margin: 0px;
}
}
}
scale:active {
trough slider {
/* Slider Knob */
transform: scale(1.1);
}
}
}
.client.horizontal {
&.new {
animation: client-add-horizontal 300ms ease;
}
&.removed {
animation: client-remove-horizontal 300ms ease;
}
.icon {
padding-right: 13px;
-gtk-icon-size: 16px;
}
.volume {
/* Numeric Volume Level */
padding-left: 22px;
padding-bottom: 3px;
}
scale {
trough {
/* Slider Bar */
min-height: 6px;
slider {
/* Slider Knob */
min-height: 21px;
min-width: 9px;
margin-top: -7px;
margin-bottom: -7px;
}
}
}
}
@keyframes client-add-horizontal {
from {
transform: translateX(-200px);
opacity: 0;
}
to {
opacity: 1;
}
}
@keyframes client-remove-horizontal {
from {
opacity: 1;
}
to {
transform: translateX(-200px);
opacity: 0;
}
}
.client.vertical {
&.new {
animation: client-add-vertical 300ms ease;
}
&.removed {
animation: client-remove-vertical 300ms ease;
}
.icon {
padding-bottom: 5px;
-gtk-icon-size: 20px;
}
.volume {
/* Numeric Volume Level */
padding-top: 10px;
}
scale {
trough {
/* Slider Bar */
min-width: 4px;
margin-top: 10px;
slider {
/* Slider Knob */
margin-left: -7px;
margin-right: -7px;
min-height: 6px;
min-width: 14px;
}
}
}
}
@keyframes client-add-vertical {
from {
transform: translateY(200px);
opacity: 0;
}
to {
opacity: 1;
}
}
@keyframes client-remove-vertical {
from {
opacity: 1;
}
to {
transform: translateY(200px);
opacity: 0;
}
}

View file

@ -234,6 +234,7 @@ in
"XF86AudioMute" = "exec pactl set-source-mute alsa_input.usb-BEHRINGER_UMC202HD_192k-00.HiFi__umc202hd_mono_in_U192k_0_1__source toggle";
"${cfg.modifier}+l" = "exec ${lockScreen}";
"${cfg.modifier}+v" = "exec GSK_RENDERER=cairo GTK_USE_PORTAL=0 ${pkgs.mixxc}/bin/mixxc -A";
};
bars = [ ]; # managed as systemd user unit

View file

@ -171,7 +171,7 @@ in
phone = "󰏲";
portable = "󰏲";
};
on-click-right = "${pkgs.pavucontrol}/bin/pavucontrol";
on-click-right = "GSK_RENDERER=cairo GTK_USE_PORTAL=0 ${pkgs.mixxc}/bin/mixxc -A -a t -a r";
};
network = {
format-wifi = "{essid} ({signalStrength}%) 󰖩 ";