60 个版本 (26 个破坏性更新)

0.50.0 2024 年 8 月 24 日
0.48.1 2024 年 8 月 21 日
0.18.0 2024 年 7 月 31 日

#166命令行工具

Download history 839/week @ 2024-07-13 1737/week @ 2024-07-20 1594/week @ 2024-07-27 1190/week @ 2024-08-03 1689/week @ 2024-08-10 1395/week @ 2024-08-17

5,983 每月下载

BSD-3-Clause

120KB
2.5K SLoC

Rust 2K SLoC // 0.2% comments Perl 262 SLoC // 0.1% comments BASH 111 SLoC Zsh 52 SLoC Shell 4 SLoC // 0.6% comments

墙开关

多显示器随机壁纸

#-----------#-----------# ... ... #-----------#
|           |           |         |           |
| Monitor 1 | Monitor 2 |         | Monitor n |
|           |           |         |           |
#-----------#-----------# ... ... #-----------#

描述

wallswitch 随机选择多显示器壁纸。

功能

  • 随机壁纸选择: 动态地从指定的目录为每个显示器选择不同的壁纸。

  • 可配置的过滤

    • 尺寸控制: 通过设置最小和最大尺寸(高度和宽度)来细化壁纸选择,只包括特定尺寸范围内的图像。

    • 文件大小管理: 指定搜索的最小和最大文件大小,允许您排除过大或过小的图像。

  • 灵活配置: 使用以下选项自定义 wallswitch

    • 目录指定: 使用 directories 选项定义包含您壁纸图像的自定义目录。

    • 图像文件类型: 通过 extensions 选项选择特定的图像扩展名(例如,JPG,PNG,SVG)。

    • 分辨率匹配: 通过将壁纸与在 resolutions 数组中定义的显示器分辨率匹配来优化显示。

  • 壁纸循环间隔: 使用 interval 选项设置壁纸更改的时间间隔。

  • 图像排序: 可选地使用 sort 选项根据文件名对选定的图像进行排序。

用法

运行以下命令

wallswitch

默认的显示器数量设置为 m = 2

将在指定的目录("directories": [...])中递归搜索兼容扩展名("extensions": [...])的文件。

配置

配置文件位于 ~/.config/wallswitch/wallswitch.json,是自定义 wallswitch 行为的关键。

  • 显示配置
    • 直接显示
      wallswitch -c
      
    • 使用 jq 解析
      cat ~/.config/wallswitch/wallswitch.json | jq
      

默认配置文件具有以下结构

{
  "desktop": "gnome-xorg", // Desktop environment (e.g., gnome, xfce4)
  "directories": [
    "/home/user_name/Figures",
    "/home/user_name/Images",
    "/home/user_name/Pictures",
    "/home/user_name/Wallpapers",
    "/home/user_name/Imagens",
    "/usr/share/wallpapers",
    "/usr/share/backgrounds",
    "/tmp/teste"
  ],
  "extensions": [
    "avif",
    "jpg",
    "jpeg",
    "png",
    "svg",
    "tif",
    "webp"
  ],
  "interval": 1800,        // Time interval (in seconds) between wallpaper changes
  "min_dimension": 600,    // Minimum dimension (width or height)
  "max_dimension": 128000, // Maximum dimension (width or height)
  "min_size": 1024,        // Minimum file size (in bytes)
  "max_size": 1073741824,  // Maximum file size (in bytes)
  "monitors": [
    {
      "picture_orientation": "Vertical", // Indicates how the pictures or images are combined
      "pictures_per_monitor": 3,         // Set number of pictures (or images) per monitor
      "resolution": {
        "width": 3840,
        "height": 2160
      }
    },
    {
      "picture_orientation": "Horizontal", // Indicates how the pictures or images are combined
      "pictures_per_monitor": 2,           // Set number of pictures (or images) per monitor
      "resolution": {
        "width": 3840,
        "height": 2160
      }
    }
  ],
  "monitor_orientation": "Horizontal",
  "sort": false,    // Sort the images found
  "verbose": false, // Show intermediate runtime messages
  "wallpaper": "/home/user_name/wallswitch.jpg"
}

设置每个显示器上的壁纸数量(仅适用于Gnome桌面)

您可以通过使用带有所需数量(N)的--p标志来在每个显示器上显示N种不同的壁纸。

wallswitch -p N

每个显示器上构建的图像的方向可以在水平垂直之间切换。

壁纸建议

下载壁纸

git clone https://github.com/zebreus/all-gnome-backgrounds.git

帮助信息

要获取帮助信息,请运行以下命令

wallswitch -h

输出

randomly selects wallpapers for multiple monitors

Usage: wallswitch [OPTIONS]

Options:
  -b, --min_size <MIN_SIZE>
          Set a minimum file size (in bytes) for searching image files
  -B, --max_size <MAX_SIZE>
          Set a maximum file size (in bytes) for searching image files
  -c, --config
          Read the configuration file and exit the program
  -d, --min_dimension <MIN_DIMENSION>
          Set the minimum dimension that the height and width must satisfy
  -D, --max_dimension <MAX_DIMENSION>
          Set the maximum dimension that the height and width must satisfy
  -i, --interval <INTERVAL>
          Set the interval (in seconds) between each wallpaper displayed
  -m, --monitor <MONITOR>
          Set the number of monitors [default: 2]
  -o, --orientation <MONITOR_ORIENTATION>
          Inform monitor orientation: Horizontal (side-by-side) or Vertical (stacked)
  -p, --pictures_per_monitor <PICTURES_PER_MONITOR>
          Set number of pictures (or images) per monitor [default: 1]
  -s, --sort
          Sort the images found
  -v, --verbose
          Show intermediate runtime messages
  -h, --help
          Print help (see more with '--help')
  -V, --version
          Print version

min_dimension是图像文件宽度和高度得到的最小值

min_dimension= min(width,height).

max_dimension是图像文件宽度和高度得到的最大值

max_dimension= max(width,height).

桌面

修改源代码。

git clone https://github.com/claudiofsr/wallswitch.git

cd wallswitch

编辑文件:'src/desktops.rs'。

要从源代码构建和安装,请运行以下命令

cargo b -r && cargo install --path=.

gnome

创建壁纸文件并将其设置为您的桌面背景图像。

查看功能

fn set_gnome_wallpaper()

xfce

查看功能

fn set_xfce_wallpaper()

显示器1: "/backdrop/screen0/monitorDP-0/workspace0/last-image"

显示器2: "/backdrop/screen0/monitorDP-2/workspace0/last-image"

显示器N: ...

openbox

查看功能

fn set_openbox_wallpaper()

互斥功能

要使用clap(默认)

cargo b -r && cargo install --path=. --features args_v1

为了减小二进制文件大小,可替换使用我的命令行参数解析器(args_v2.rs)

cargo b -r && cargo install --path=. --features args_v2

依赖项

  • imagemagick(图像查看/处理程序)。

  • feh(快速且轻量级的图像查看器)。

依赖项

~0.8–8.5MB
~76K SLoC