A powerful color picker and formatter, built with GTK and Rust

Overview

maintenance-status CI

Eyedropper

Eyedropper

A powerful color picker and formatter.

Dark UI

More screenshots

Light UI

Customize the shown formats (Dark UI)

Customize the shown formats (Light UI)

Generate Color Palettes

Preferences

Features

  • Pick a Color
  • Enter a color in Hex-Format
  • Parse RGBA/ARGB Hex-Colors
  • View colors in Hex, RGB, HSV, HSL, CMYK, XYZ and CIE-Lab format
  • Customize which formats appear as well as their order
  • Generate a palette of different shades

Future Features & Roadmap

  • Generate a palette of similar colors
  • Add more color formats

When should I use this? And when not?

This application is geared towards advanced users (developers, designers, etc…), who not only need to pick a color but also modify or view it in different formats. For simply picking a color on Gnome, the color-picker extension is far better suited.

Installation

Official

Download on Flathub

Unofficial

⚠️ These installation methods are not recommended: Installing them may result in bugs or unexpected behavior.

Nightly Flatpak

Download the latest artifact from the CI.

AUR

yay -S eyedropper

Contributing

Any contributions you make are greatly appreciated. For major changes, please open an issue first to discuss what you would like to change.

To contribute:

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Translation

Translations are a great way to contribute. This project uses the GNU gettext for translations. If you want to learn more, visit the translator section.

The easiest way to add a translation, is by importing the Eyedropper.pot file into a program like Poedit or Gtranslator.

After finishing the translations, add the translated language code into the LINGUAS file. Then follow the above steps to create a pull request. Please also state in the description if you are willing to maintain the translation.

Building

See this general guide for building the project using GNOME Builder.

Alternatively use this VS Code Extension for working inside VS Code.

Building manually

Alternatively, it is possible to build the project manually using flatpak-builder. First install the required sdks:

flatpak install org.gnome.Sdk//43 org.freedesktop.Sdk.Extension.rust-stable//22.08 org.gnome.Platform//43

Then build it using:

flatpak-builder --user flatpak_app build-aux/com.github.finefindus.eyedropper.Devel.json

To run it:

flatpak-builder --run flatpak_app build-aux/com.github.finefindus.eyedropper.Devel.json eyedropper

Build without flatpak

meson --prefix=/usr build
ninja -C build
sudo ninja -C build install

Credits

A huge thanks to these projects who served either as an inspiration or as code examples on how to use gtk-rs.

Comments
  • Failed to pick a color on Ubuntu 22.04

    Failed to pick a color on Ubuntu 22.04

    Describe the bug I've installed eyedropper through flatpak on Ubuntu 22.04, run it, clicked on "picker" icon and got:

    Failed to pick a color at bottom of app's window.

    To Reproduce Steps to reproduce the behavior:

    1. Be on Ubuntu 22.04 with flatpak installed from default apt repos
    2. Execute flatpak install --user flathub com.github.finefindus.eyedropper
    3. Execute flatpak run com.github.finefindus.eyedropper
    4. Try to pick a color
    5. See error

    Expected behavior A color is picked from the screen.

    Screenshots image

    Information

    • OS: Ubuntu 22.04
    • Desktop Environment: GNOME 42 (X11)
    • GTK-Theme/Adwaita-Style: Yaru-dark
    • Version: 0.1.0

    Additional context Add any other context about the problem here.

    Mon 19 Sep 11:12:35 ➜ ~ flatpak run com.github.finefindus.eyedropper ERROR eyedropper::window > Portal request failed: org.freedesktop.zbus.Error: No such interface “org.freedesktop.portal.Screenshot” on object at path /org/freedesktop/portal/desktop

    bug 
    opened by dawidd6 12
  • Update Spanish and Basque translations

    Update Spanish and Basque translations

    This pull request adds the following changes:

    • Translation files updated to the new version available.
    • Bug fixes in some previously translated strings.
    • README.md images have been optimized and compressed thanks to the @ImgBotApp bot. This will help reduce network consumption for users visiting the repository and help reduce CO² emissions.
    opened by IngrownMink4 5
  • Updated French translation

    Updated French translation

    I updated the fr.po file

    PS : running Eyedropper in GNOME Builder to check the new translations to add, I noticed that icons were missing in the preferences panel (see screenshot below).. Is this bug due to GNOME Builder ?

    Capture d’écran du 2022-12-16 23-06-08-min

    opened by rene-coty 4
  • UI: CIE illuminants dropdown does not fit it's content

    UI: CIE illuminants dropdown does not fit it's content

    Hi, the new CIE illuminants list does not fit it's content properly. It's not showing longer strings.

    To Reproduce Steps to reproduce the behavior:

    1. Open Eyedropper.
    2. Go to Preferences
    3. Try to select something from "CIE standard observer"

    Screenshots eaeae (Icons not important)

    Information

    • OS: Ubuntu 22.04.1
    • Desktop Environment: Gnome 42
    • Icon Theme: Breeze theme from KDE desktop
    • GTK-Theme/Adwaita-Style: Adwaita
    • Eyedropper Version: From master branch (commit: ec993e149c5f1acc4312962f6ba736b75504b2f4)

    The line of strings: https://github.com/FineFindus/eyedropper/blob/master/data/resources/ui/preferences.ui#L50-L69

    opened by sabriunal 4
  • "Failed to pick a color"

    When clicking on the eyedropper or pressing ctrl + p: "Failed to pick a color" appears at the bottom of the window.

    In the terminal: ERROR eyedropper::window > Portal request didn't succeed: Other

    This happens with flatpak and if built with gnome builder.

    Only happens on window managers. Works fine on gnome.

    • Fedora 36
    • DWM, Hyprland
    bug 
    opened by CSpencerND 4
  • Color picker opening is too abrupt

    Color picker opening is too abrupt

    Describe the bug When going through various windows of the app, it's smooth most of the time, in the sense that opening windows animate, they don't just appear out of nowhere. This is not the case with the color picker window (the one that appears after clicking "+"). You can see that in the Screenshots section (although it is a WEBM).

    To Reproduce See the WEBM

    Expected behavior I'd expect the window picker opening to be animated just like all the other windows.

    Screenshots

    Kooha-2022-09-24-09-21-18.webm

    You can see the difference between the first window popping up and the second one. The first one is animated, the second one is not.

    Information

    • OS: [Fedora 36
    • Desktop Environment: Gnome 42
    • GTK-Theme/Adwaita-Style: default
    • Version: 0.3.1 (flathub)
    wontfix 
    opened by marcinjahn 4
  • Missing icons in GNOME Builder

    Missing icons in GNOME Builder

    Compiling the latest code in GNOME Builder (on Fedora 37 / GNOME 43) I noticed that some icons were missing in the Preferences Window (see screenshot below). Capture d’écran du 2022-12-17 14-12-39-min (Previously all the icons of the 'General' tab were missing, but it seems to be ok now)

    bug 
    opened by rene-coty 3
  • Add labels to history buttons

    Add labels to history buttons

    If you are taking a many colours that are similar but different, it might be hard to (re)find the correct colour within the history.

    Adding labels (#hex representation) would help "power" users to refind a colour from history with fewer clicks.

    Bildschirmfoto vom 2022-12-26 20-25-46

    Because this feature would only help power users and increase the size of the history (in the GUI) quite a lot, it would be best to make this optional. Or enable it automatically, if the app detects that colours are too close to each other.

    opened by lightonflux 2
  • Don't launch with an arbitrary `#2E3440` color, always show the current color in the sidebar to the right when there's more than two colors, and let me delete colors

    Don't launch with an arbitrary `#2E3440` color, always show the current color in the sidebar to the right when there's more than two colors, and let me delete colors

    I'm running the flatpak version from Flathub, on Fedora. By default, the app launches like this, with color #2E3440:

    Screenshot from 2022-10-21 21-08-13

    This is a problem when I want to sample colors that actually are close to this, such as #002E41. I then basically can't tell stuff apart from your default color, and I can't clear/remove the default color. Additionally, when you click a color on the right it "swaps places" with the color details on the left, which then goes into the right, and it means the colors keep shifting around all the time, so if you have a couple of similar-looking colors it's absolutely impossible to keep track of because the list keeps being reordered.

    Please have the app start with a blank slate with just a "Pick a color" button, then don't swap things around when I click them in the sidebar (they should rather act like tabs, functionally speaking) and if I made a mistake and picked the wrong color, let me right-click and delete it (or have a delete button in the color's details).

    enhancement 
    opened by nekohayo 2
  • [Feature Request] Use AdwAboutWindow

    [Feature Request] Use AdwAboutWindow

    Is your feature request related to a problem? Please describe. Nope.

    Describe the solution you'd like Since this application uses libadwaita, imo it can use adwaboutwindow for more consistency.

    Describe alternatives you've considered Of course, not change it.

    Additional context Nope.

    Information Isn't related.

    enhancement 
    opened by FeyXieXzf 2
  • Created French translation

    Created French translation

    I created fr.po + updated the LINGUAS file

    I also noticed some typos in the source strings :

    • "cmky" instead of "cmyk"
    • "alpahvalue" instead of "alphavalue"

    (I corrected them in the fr.po file so they won't appear in the french version)

    I also noticed that the strings in the toast notification "failed to pick a color" doesn't appear in the .pot file

    opened by rene-coty 2
  • Removed duplicates from history

    Removed duplicates from history

    Imagine you select a sequence of colours. And by accident or without knowledge you pick a colour twice or thrice, which easily happens when colours are very similar.

    To illustrate the problem with duplicates in the history:

    Bildschirmfoto vom 2022-12-26 20-22-47

    The green and red in the history are listed twice, but are the exact same values.

    I think that only keeping the most recent occurrence of the colour in the history would be a good idea. But I am not 100% sure. Some people might use the order of the history to remember the context where they took the colour.

    Maybe some other users of the software could chime in.

    opened by lightonflux 2
  • Feature: Launch hidden with global shortcut

    Feature: Launch hidden with global shortcut

    I'm a designer and developer and as far as I know, there is really no eyedropper on the market that does this:

    Launch hidden on startup > Ability to pick a color with a shortcut (only picker, no app GUI) > automatically copy to clipboard (with the pre-defined format I would set).

    Think of it... This is the fastest, cleanest, and smoothest workflow anyone user can imagine. Actually, I didn't bother to tell developers this before but when I saw this tool, I thought it was almost the complete one I've ever seen. And hope you agree and make it possible.

    Big thanks for your great work!

    enhancement 
    opened by sals9 1
  • Distribute as AppImage

    Distribute as AppImage

    Is your feature request related to a problem? Please describe.

    Currently I am using the AUR package and upgrading takes forever due to the compilation step. It also requires rust and ninja to be installed locally, which I otherwise not need and they take up a lot of space.

    Describe the solution you'd like It would be great if eyedropper would be offered as AppImage install, since that is much more consumer friendly.

    Describe alternatives you've considered Stick to AUR

    Information

    • OS: Manjaro Linux
    • Desktop Environment: Gnome 42
    • GTK-Theme/Adwaita-Style: Adwaita
    • Version: [e.g. 0.1.0] 0.1.0
    enhancement help wanted 
    opened by mcmxcdev 4
Releases(v0.5.0)
Owner
Jonathan
Jonathan
A powerful desktop widget app for windows, built with Vue and Tauri.

DashboardX Widgets A powerful desktop widget app for windows, built with Vue and Tauri. Still in development Currently only runs on windows (uses nati

DashboardX Widgets 3 Oct 25, 2023
Rust bindings and wrappers for GLib, GDK 3, GTK+ 3 and Cairo.

THIS REPOSITORY IS DEPRECATED SEE: https://github.com/rust-gnome rgtk Rust bindings and wrappers for GLib, GDK 3, GTK+ 3 and Cairo. Building rgtk expe

Jeremy Letang 124 Jul 10, 2022
Highly customizable finder with high performance. Written in Rust and uses GTK

Findex Highly customizable finder with high performance. Written in Rust and uses GTK Installation Automatic Binary Clone from https://aur.archlinux.o

MD Gaziur Rahman Noor 442 Jan 1, 2023
A GUI for NordVPN on Linux that maintains feature parity with the official clients, written with Rust and GTK.

Viking for NordVPN This project aims to provide a fully usable and feature-complete graphical interface for NordVPN on Linux. While it attempts to clo

Jacob Birkett 2 Oct 23, 2022
A Rust library to parse Blueprint files and convert them into GTK UI files

?? gtk-ui-builder A Rust library to parse Blueprint files and convert them into GTK UI files Inspired by the Blueprint project Example 1 - blueprints

Observer KRypt0n_ 5 Oct 22, 2022
Idiomatic, GTK+-based, GUI library, inspired by Elm, written in Rust

Relm Asynchronous, GTK+-based, GUI library, inspired by Elm, written in Rust. This library is in beta stage: it has not been thoroughly tested and its

null 2.2k Dec 31, 2022
Provides Rust bindings for GTK libraries

The gtk-rs organization aims to provide safe Rust binding over GObject-based libraries

null 431 Dec 30, 2022
Provides Rust bindings for GTK libraries

gtk3-rs The gtk-rs organization aims to provide safe Rust binding over GObject-based libraries. You can find more about it on https://gtk-rs.org. This

null 431 Dec 30, 2022
Graphical font editor (GTK + Rust)

gerb *gerb ʰ-: reconstructed Proto-Indo-European root, meaning to carve gerb: a WIP font editor in gtk3 and rust Introduction gerb is an experimental,

Manos Pitsidianakis 40 Jan 1, 2023
GTK 4 front-end to ChatGPT completions written in Rust

ChatGPT GUI Building git clone [email protected]:teunissenstefan/chatgpt-gui.git cd chatgpt-gui cargo build --release Todo Connect insert_text to only al

Stefan Teunissen 6 Mar 12, 2023
Reactive components in rust, designed to make GTK more manageable

gflux gflux is a tiny experimental reactive component system for rust, designed to make GTK more manageable. gflux: is about 300 lines of code contain

Brian Vincent 3 Aug 20, 2023
An example of searching iBeacon using gtk-rs and btleplug.

Beacon Searcher Screenshot Compile & Run Install GTK 3 dev packages: macOS: $ brew install gtk+3 $ brew install gnome-icon-theme Debian / Ubuntu: $ s

Ling, Wei-Cheng 0 Dec 21, 2021
Test bed for gtk-rs-core experiments

Rust GObject Experiments class macro #[gobject::class(final)] mod obj { #[derive(Default)] pub struct MyObj { #[property(get, set)]

Jason Francis 2 May 28, 2022
Szyszka is a simple but powerful and fast bulk file renamer.

Szyszka is a simple but powerful and fast bulk file renamer. Features Written in Rust Available for Linux, Mac and Windows Simple GUI created

Rafał Mikrut 649 Dec 28, 2022
Deno is a simple, modern and secure runtime for JavaScript and TypeScript that uses V8 and is built in Rust.

Deno Deno is a simple, modern and secure runtime for JavaScript and TypeScript that uses V8 and is built in Rust. Features Secure by default. No file,

Derek Jones 2 Aug 13, 2022
A collection of components and widgets that are built for bevy_ui and the ECS pattern

Widgets for Bevy UI A collection of components and widgets that are built for bevy_ui and the ECS pattern. Current State This was started recently and

Gabriel Bourgeois 3 Sep 2, 2022
A simple UI framework for Rust built on top of IUP (http://webserver2.tecgraf.puc-rio.br/iup/)

KISS-UI A UI framework for Rust based on the KISS (Keep It Simple, Stupid!) philosophy. Powered by the IUP GUI library for C by Tecgraf, via the bindi

null 342 Jul 11, 2022
A simple news reading GUI app built in Rust

Headlines [WIP] A native GUI app built with Rust using egui. Uses newsapi.org as the source to fetch news articles. This is a WIP and the current stat

creativcoder 89 Dec 29, 2022
A UI-framework, built for speed and ease-of-use

A UI-framework, built for speed and ease-of-use. Focused on one thing, the best user-experience for the client and developer.

Vacaro 46 Dec 6, 2022