Gibt es einen Farbwähler, der mit Wayland oder XWayland funktioniert?

Gibt es einen Farbwähler, der mit Wayland oder XWayland funktioniert?

Ich habe gpick, gcolor2, gcolor3 ausprobiert,wählen,pychromund keines davon scheint mit Wayland zu funktionieren. Ich verwende Arch Linux 64-Bit mit GNOME 3.22.1 über XWayland (Standard seit 3.22.x). Ich möchte nicht in eine X-Sitzung wechseln, nur um eine Farbe auszuwählen.

Hatte jemand damit Erfolg?

Antwort1

grimmigist ein Screenshot-Tool für Wayland, das genau das kann:

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

Nachdem Sie mit der Maus einen Punkt auf dem Bildschirm ausgewählt haben, wird eine Ausgabe wie diese erzeugt:

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

Antwort2

Für Gnome/Wayalnd können Sie die Dbus-API verwenden:

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

Antwort3

Erweiterung auf@sigmasd's Antwort, ich habe dieses BASH-Skript namens colorpicker, das einen GUI-Picker hat und für Wayland / Ubuntu 22.04 funktioniert:

#!/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]}"

Anwendungsbeispiel:

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

Antwort4

Es gibt einen Azote-Wallpaper-Manager für Wayland und dieser verfügt über einen integrierten Farbwähler https://github.com/nwg-piotr/azote

Sie können auch Folgendes verwenden:

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

oder wenn Sie Sway WM verwenden:

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

verwandte Informationen