答案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:-)"