#壁纸 #sway #背景 #wayland #桌面 #图像缩放

app multibg-sway

为每个 Sway 工作区的背景设置不同的壁纸

8 个版本

0.1.7 2024年5月10日
0.1.6 2024年3月25日
0.1.5 2024年1月2日
0.1.4 2023年8月31日
0.1.2 2023年4月27日

#176 in 图像

MIT/Apache

43KB
1K SLoC

multibg-sway

为每个 Sway 工作区的背景设置不同的壁纸

用法

$ multibg-sway <WALLPAPER_DIR>

壁纸应按以下目录结构排列

wallpaper_dir/output/workspace_name.{jpg|png|...}

例如:

~/my_wallpapers/HDMI-A-1/1.jpg

更详细地说:

  • wallpaper_dir:一个目录,这将作为 multibg-sway 命令的参数

  • output:与 sway 输出同名的目录,例如 eDP-1、HDMI-A-1

    • 如果有多个具有相同分辨率的输出,这可以是一个指向其他输出目录的符号链接。

    • 要获取 sway 的当前输出名称,可以运行

      $ swaymsg -t get_outputs
      
  • workspace_name:sway 工作区的名称,默认情况下:1、2、3、...、10

    • 可以是手动定义的工作区名称(例如在 sway 配置中),但在 multibg-sway 运行时重命名工作区目前不受支持
    • 可以定义一个具有特殊名称 _default 的备用壁纸
    • 可以是符号链接,用于为多个工作区使用壁纸图像

壁纸图像现在在启动时自动调整大小以 填充 输出。尽管如此,最好使用与输出相同分辨率的壁纸图像,这样可以自动避免调整大小操作并减少启动时间。

示例

对于一台具有内置显示器 eDP-1 和外部显示器 HDMI-A-1 的笔记本电脑,壁纸可以排列如下:

~/my_wallpapers
    ├─ eDP-1
    │    ├─ _default.jpg
    │    ├─ 1.jpg
    │    ├─ 2.png
    │    └─ browser.jpg
    └─ HDMI-A-1
         ├─ 1.jpg
         └─ 3.png

然后启动 multibg_sway

$ multibg-sway ~/my_wallpapers

建议使用专门的图像编辑器编辑壁纸图像。尽管如此,这里可以调整对比度和亮度

$ multibg-sway --contrast=-25 --brightness=-60 ~/my_wallpapers

如果出现错误,multibg-sway 将记录到 stderr 并尝试继续。如果 multibg-sway 作为守护进程运行,可能希望重定向 stderr。

资源使用情况

加载的壁纸以未压缩格式存储,以实现几乎零 CPU 使用量的快速壁纸切换。例如,对于 10 个全高清壁纸,这意味着 10*1920*1080*4 = 83 MB 图形内存使用。

由于 multibg-sway 没有自己的 GPU 上下文,并且通过 sway 管理图形内存,因此所有这些使用情况可能会报告为 sway 进程使用的额外内存。

安装

备选方案

依赖项

~10–20MB
~306K SLoC