Fixes Hardcoded tray icons in Linux
The script will automatically detect your default theme, the correct icon size, the hard-coded applications, the correct icons for each indicator and fix them. All that with the possibility to revert to the original icons.
Here's a list of themes that supports Hardcode-Tray:
python3
python3-gi
- Pick up your favorite conversion tool:
python3-cairosvg
librsvg
inkscape
imagemagick
svgexport
If the icons looks blury, you should try installing this package
libappindicator3-1
. See
#567 for
more information.
ninja
meson (>= 0.46)
You can see all available packages here.
Make sure the base-devel
group is installed:
sudo pacman -S base-devel
Stable version:
yay -S hardcode-tray
Development version:
yay -S hardcode-tray-git
sudo add-apt-repository -yu ppa:papirus/hardcode-tray
sudo apt install hardcode-tray
echo 'deb http://download.opensuse.org/repositories/home:/SmartFinn:/hardcode-tray/Debian_$(lsb_release -rs)/ /' | sudo tee /etc/apt/sources.list.d/hardcode-tray.list
wget -qO- https://download.opensuse.org/repositories/home:SmartFinn:hardcode-tray/Debian_$(lsb_release -rs)/Release.key | sudo apt-key add -
sudo apt update && sudo apt install hardcode-tray
sudo dnf config-manager --add-repo https://download.opensuse.org/repositories/home:SmartFinn:hardcode-tray/Fedora_$(rpm -E %fedora)/home:SmartFinn:hardcode-tray.repo
sudo dnf install hardcode-tray
- Install dependencies
On Ubuntu:
sudo apt install git build-essential meson libgirepository1.0-dev libgtk-3-dev python3 python3-gi gir1.2-rsvg-2.0 librsvg2-bin gir1.2-gtk-3.0
- Compile
git clone https://github.com/bil-elmoussaoui/Hardcode-Tray meson builddir --prefix=/usr sudo ninja -C builddir install
- Open Hardcode-Tray using this command
sudo -E hardcode-tray
- Enjoy!
-
--apply
and--revert
Hardcode-Tray shows a welcome message by default and asks the user to choose between applying the fix or reverting it. You can hide that usingsudo -E hardcode-tray --apply
or
sudo -E hardcode-tray --revert
-
--change-color
Your favorite theme does not provide icons for all those hardcoded icons? Just use a different theme and change the colors using Hardcode-Tray.sudo -E hardcode-tray --change-color "#FIRSTCOLOR #REPLACE_FIRST_COLOR" "#SECONDCOLOR #REPLACE_SECOND_COLOR"...
-
--clear-cache
Lets you clear the backup cache foldersudo -E hardcode-tray --clear-cache
-
--conversion-tool
Hardcode-Tray by default detects if the user has either Inkscape, CairoSVG, RSVGConvert, ImageMagick or SVGExport installed and use one of them to convert SVG icons to PNG. In order to choose the tool to use if one of them is broken in your installation issudo -E hardcode-tray --conversion-tool {Inkscape, CairoSVG, RSVGConvert, ImageMagick, SVGExport}
For now, we support : CairoSVG (python3-cairosvg), Inkscape, rsvgconvert (librsvg), Imagemagick and svgexport(npm library)
Cairo has some issues with converting SVG files that use CSS (see #245).
-
--light-theme
and--dark-theme
Some applications provide dark and light tray icons with the possibility to modify them using their UI. In order to use a dark theme for dark icons and a light one for light icons, you can use those two arguments. It only works if you use both of them at the same time.sudo -E hardcode-tray --dark-theme Numix-light --light-theme Numix
-
--only
You can use the--only
argument to fix/revert only one application; don't use the argument if you want to fix all applications your icon theme supports.sudo -E hardcode-tray --only android-messages-desktop.electron, skypeforlinux
In order to get the names needed to fix only specific programs, you can look at the
app_name
key in the JSON files for the program. There you can find the corresponding name for the program you want to fix. -
--path
If you installed your app in a non-standard location, you can override the path where the icons are stored using the--path
argument. Only works in combination with the--only
argument for a single application.sudo -E hardcode-tray --only dropbox --path /opt/dropbox-bin
-
--size
You can also use--size {24,22,16}
to force the script to use a different icon size or if the script does not detect your desktop environment.sudo -E hardcode-tray --size 24 --only dropbox
-
--theme
You can fix your hardcoded icons using a different theme than the default one.sudo -E hardcode-tray --theme Numix --only dropbox
-
--version
You can print the version of Hardcode-Tray usingsudo -E hardcode-tray --version
Hardcode-Tray also supports a JSON config file that can be placed under
~/.config
. The file must be named hardcode-tray.json
. An example of the
config file can be found
here.
The file supports the following options for now.
blacklist
: a list of applications that you don't want to be fixed.conversion_tool
: the default tool to be used every time you use the script.icons
: An object, that containstheme
andsize
for the Gtk icon theme and the icon size to be used.backup_ignore
: A boolean, to configure either you want default icons to be saved on the backup folder or not.scaling_factor
: Widgets scaling factor. Auto detected on GNOME, KDE and Cinnamon.
Passing --theme
--conversion-tool
--size
will overwrite those settings.
In order to fix those ugly tray icons on NWJS applications, you will need to download the SDK from here. Extract the zip file in your home directory (or place it wherever you want) and add a new key to the config file that points to the NwJS SDK directory.
- Modified version of
data_pack.py
, by The Chromium Authors released under a BSD-style license - Qt applications icons name by elementaryPlus team
This project is dual licensed. The main body of the script is licensed under the GNU General Public License, either version 3.0 or (at your option) any later version. By submitting a pull request you agree to have your work also licensed accordingly.
The data_pack.py
file is released under the BSD-3-Clause License, in accordance with
the wishes of its authors, the Chromium developers.