是否有適用於 Wayland 或 XWayland 的顏色選擇器?

是否有適用於 Wayland 或 XWayland 的顏色選擇器?

我試過 gpick、gcolor2、gcolor3、挑選,熱鉻酸他們似乎都沒有與 Wayland 合作。我正在透過 XWayland 運行帶有 GNOME 3.22.1 的 Arch Linux 64 位元(從 3.22.x 開始預設)。我不想只是為了選擇一種顏色而換成 X 會話。

有人在這方面有成功嗎?

答案1

嚴峻Wayland 的截圖工具可以做到這一點:

grim -g "$(slurp -p)" -t ppm - | convert - -format '%[pixel:p{0,0}]' txt:-

用滑鼠在螢幕上選擇一個點後,它會產生以下輸出:

# ImageMagick pixel enumeration: 1,1,65535,srgb
0,0: (40,85,119)  #285577  srgb(40,85,119)

答案2

對於 gnome/wayalnd,您可以使用 dbus api:

gdbus call --session --dest org.gnome.Shell.Screenshot --object-path /org/gnome/Shell/Screenshot --method org.gnome.Shell.Screenshot.PickColor

答案3

擴展於@sigmasd的答案,我有一個名為的 BASH 腳本colorpicker,它有一個 GUI 選擇器,它適用於 Wayland / Ubuntu 22.04:

#!/bin/bash

# Get the gdbus output
output=$(gdbus call --session --dest org.gnome.Shell.Screenshot --object-path /org/gnome/Shell/Screenshot --method org.gnome.Shell.Screenshot.PickColor)
colors=($(echo $output | command grep -o "[0-9\.]*"))

# Convert to 255-based RGB format
for ((i = 0; i < ${#colors[@]}; i++)); do
    colors[$i]=$(printf '%.0f' $(echo "${colors[$i]} * 255" | bc))
done

echo   "RGB: ${colors[0]} ${colors[1]} ${colors[2]}"
printf "HEX: #%02x%02x%02x\n" "${colors[0]}" "${colors[1]}" "${colors[2]}"

用法範例:

./colorpicker
RGB: 255 255 255
HEX: #ffffff

答案4

Wayland 有 azote 桌布管理器,它有一個內建的顏色選擇器 https://github.com/nwg-piotr/azote

您也可以使用:

grim -g“$(slurp -p)”-t ppm - |轉換 - -format '%[pixel:p{0,0}]' txt:-

或如果您使用 sway wm:

swaynag -t 警告 -m "$(grim -g "$(slurp -p)" -t ppm - | 轉換 - -format '%[pixel:p{0,0}]' txt:-)"

相關內容