Есть ли палитра цветов, работающая с Wayland или XWayland?

Есть ли палитра цветов, работающая с Wayland или XWayland?

Я пробовал gpick, gcolor2, gcolor3,выбирать,пихроми ни один из них, похоже, не работает с Wayland. Я использую Arch Linux 64-bit с GNOME 3.22.1 через XWayland (по умолчанию с 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который называется с графическим интерфейсом выбора, и он работает для 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

Также вы можете использовать:

мрачный -g "$(slurp -p)" -t ppm - | конвертировать - -формат '%[пиксель:p{0,0}]' txt:-

или если вы используете sway wm:

swaynag -t предупреждение -m "$(grim -g "$(slurp -p)" -t ppm - | преобразовать - -формат '%[pixel:p{0,0}]' txt:-)"

Связанный контент