13 个版本

0.2.2 2024年4月13日
0.2.1 2024年3月22日
0.1.10 2024年3月3日
0.1.9 2023年12月26日
0.1.6 2023年9月28日

#72 in 音频

MIT 许可证

67KB
1.5K SLoC

Mixxc

Crates.io License: MIT

Mixxc 是一个简约且可定制的音量混合器,旨在无缝补充桌面小部件。 目前,它仅支持通过利用 libpulseaudio 接收音频事件的方式来支持 pulseaudiopipewire

Preview - Vertical Preview

使用方法

Usage: mixxc [-w <width>] [-h <height>] [-s <spacing>] [-a <anchor...>] [-m <margin...>] [-b <bar>] [-u <userstyle>] [-k] [-i] [-x <max-volume>] [-v]

Minimalistic volume mixer.

Options:
  -w, --width       window height
  -h, --height      window width
  -s, --spacing     spacing between clients
  -a, --anchor      screen anchor point: (t)op, (b)ottom, (l)eft, (r)ight
  -m, --margin      margin distance for each anchor point
  -M, --master      enable master volume slider
  -b, --bar         volume slider orientation: (h)orizontal, (v)ertical
  -u, --userstyle   path to the userstyle
  -k, --keep        keep window open
  -i, --icon        enable client icons
  -x, --max-volume  max volume level in percent (default: 100; 1-255)
  -v, --version     print version
  --help            display usage information

锚定

通常希望能够将小部件相对于屏幕边缘定位。
以下两个标志将有助于此:-a --anchor-m --margin
提供的每个边距值将分别匹配每个锚点。

mixxc --anchor left --anchor bottom --margin 20 --margin 30

自定义

Mixxc 使用 GTK4 构建,并使用 CSS 定义其外观。
您将在首次启动后在配置目录中找到样式表。

${XDG_CONFIG_HOME:-$HOME/.config}/mixxc/style.css

如果您已启用 Sass 功能,它也会查找 *.scss 和 *.sass 文件。

${XDG_CONFIG_HOME:-$HOME/.config}/mixxc/style.sass
${XDG_CONFIG_HOME:-$HOME/.config}/mixxc/style.scss

环境

Mixxc 在以下环境中开发和测试:

  • Wayland
  • Hyprland
  • PipeWire

如果您的设置不同且遇到问题,请随时提交错误报告。

提示

启动时间

如果启动似乎有点慢,请尝试以下操作

GSK_RENDERER=cairo GTK_USE_PORTAL=0 mixxc

手动关闭

默认情况下,窗口将在失去焦点后关闭。
这是针对不向 Wayland 下的层壳发送 close 请求的窗口管理器的解决方案。
如果此行为不理想,您可以禁用它

mixxc --keep

切换窗口

如果您希望通过点击按钮切换窗口,Unix 方式是最好的方式

pkill mixxc | mixxc

依赖项

特性

一些特性可以在编译时启用。

  • Sass - 允许您使用 SCSS 而不是 CSS。
  • Wayland - 使用 wlr-layer-shell 来模仿窗口定位。
  • X11 - 设置窗口管理器提示和属性,并重新定位窗口。

安装

可以通过 crates.io 使用 cargo 安装。

cargo install mixxc --locked --features Sass,Wayland...

构建

要构建这个小玩意,你需要一些 Rust

git clone --depth 1 https://github.com/Elvyria/mixxc
cd mixxc
cargo build --locked --release --features Sass,Wayland...

依赖项

~21–35MB
~632K SLoC