From 300f947a0f58160937564a60f0e822f0ebc0b062 Mon Sep 17 00:00:00 2001 From: jgmdev Date: Sun, 3 Jan 2021 23:19:40 -0400 Subject: [PATCH] Added initial working script with Makefile for easy packaging. --- Makefile | 76 ++++++++++++++++++++++++++++++++++++++++ README.md | 27 +++++++++++++- wl-color-picker.desktop | 11 ++++++ wl-color-picker.png | Bin 0 -> 28667 bytes wl-color-picker.sh | 38 ++++++++++++++++++++ wl-color-picker.svg | 14 ++++++++ 6 files changed, 165 insertions(+), 1 deletion(-) create mode 100644 Makefile create mode 100644 wl-color-picker.desktop create mode 100644 wl-color-picker.png create mode 100755 wl-color-picker.sh create mode 100644 wl-color-picker.svg diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..663f49b --- /dev/null +++ b/Makefile @@ -0,0 +1,76 @@ +.PHONY: install uninstall + +all: + @echo "Nothing to compile. Use 'make [DESTDIR=dir] install' to install wl-color-picker." + +install: + @if [ "$$DESTDIR" = "" ]; then \ + if [ "$$(id -u)" -ne 0 ]; then \ + echo "Please execute this script as root."; \ + exit 1; \ + fi; \ + fi; + + @depends="grim slurp convert zenity wl-copy"; \ + for dependency in $$(echo "$$depends" | xargs) ; do \ + echo "Checking for: $$dependency."; \ + if ! which "$$dependency" > /dev/null 2>&1 ; then \ + echo " error: Required dependency '$$dependency' is missing."; \ + exit 1; \ + else \ + echo " '$$dependency' found!"; \ + fi; \ + done; + + @echo + + @if [ -e "$$DESTDIR/usr/bin/wl-color-picker" ]; then \ + echo "Please un-install the previous version first"; \ + exit 1; \ + fi; \ + + @if [ ! -d "$$DESTDIR/usr/bin" ]; then \ + mkdir -p "$$DESTDIR/usr/bin"; \ + fi; + + @if [ ! -d "$$DESTDIR/usr/share/applications" ]; then \ + mkdir -p "$$DESTDIR/usr/share/applications"; \ + fi; + + @if [ ! -d "$$DESTDIR/usr/share/icons" ]; then \ + mkdir -p "$$DESTDIR/usr/share/icons"; \ + fi; + + @if [ ! -d "$$DESTDIR/usr/share/icons/hicolor/scalable/apps" ]; then \ + mkdir -p "$$DESTDIR/usr/share/icons/hicolor/scalable/apps"; \ + fi; + + @echo 'Copying wl-color-picker' + @echo + + cp wl-color-picker.sh "$$DESTDIR/usr/bin/wl-color-picker" + cp wl-color-picker.png "$$DESTDIR/usr/share/icons/" + cp wl-color-picker.svg "$$DESTDIR/usr/share/icons/hicolor/scalable/apps/" + cp wl-color-picker.desktop "$$DESTDIR/usr/share/applications/" + + @echo + @echo 'Done!' + + @exit 0 + +uninstall: + @if [ "$$(id -u)" != "0" ]; then \ + echo "Please execute uninstallation as root."; \ + exit 1; \ + fi; + + @echo 'Uninstalling wl-color-picker' + @echo + + rm "/usr/bin/wl-color-picker" + rm "/usr/share/icons/wl-color-picker.png" + rm "/usr/share/icons/hicolor/scalable/apps/wl-color-picker.svg" + rm "/usr/share/applications/wl-color-picker.desktop" + + @echo + @echo 'Done!' diff --git a/README.md b/README.md index 5883852..61d4d2f 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,27 @@ # wl-color-picker -A wayland color picker that also works on wlroots + +A script that provides a working color picker for wayland and wlroots +by leveraging [grim](https://github.com/emersion/grim) and +[slurp](https://github.com/emersion/slurp). + +## Inspiration + +This script is possible by the information provided on the following +sites: + +* https://www.trst.co/simple-colour-picker-in-sway-wayland.html +* https://unix.stackexchange.com/questions/320070/is-there-a-colour-picker-that-works-with-wayland-or-xwayland/523805#523805 + +## Artwork + +The icon was taken from the gcolor3 icon shipped with the +[papirus icon theme](https://github.com/PapirusDevelopmentTeam/papirus-icon-theme), +so all credits go to the papirus icon designers. + +## Dependencies + +* __slurp__ - provides the screen location picker +* __grim__ - uses the location provided by slurp and generates a pixel +* __convert__ - uitlity from imagemagick to make the pixel a hex number +* __zenity__ - display a nice color selector dialog where the picked color can be tweaked further +* __wl-copy__ - copy the selected color to the clipboard diff --git a/wl-color-picker.desktop b/wl-color-picker.desktop new file mode 100644 index 0000000..a1be99f --- /dev/null +++ b/wl-color-picker.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Type=Application +Name=Color Picker for Wayland +GenericName=Color Picker +Comment=A simple wayland color picker that also works on wlroots. +Keywords=color;picker;wl-color-picker; +Categories=Graphics;2DGraphics; +Exec=wl-color-picker +Hidden=false +Terminal=false +Icon=wl-color-picker diff --git a/wl-color-picker.png b/wl-color-picker.png new file mode 100644 index 0000000000000000000000000000000000000000..f150d410c9dabdec01acd2b64d3f1265cbc41706 GIT binary patch literal 28667 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 + + + + + + + + + + + + +