TROMjaro Forum

TROMjaro 2022.09.23

This is a really important release because it makes everything so much easier for all TROMjaro users and for us.

To explain this very briefly, we try to do 2 things with our distro that require scripts, files and folders:

  1. add new features (like out theme and layout switchers)
  2. fix things with the desktop (like theme synchronization across libraries)

So in time we ended up with a bunch of scripts, files and folders, scattered across the system. This is ok, but what if we update these (and we always are)? Then in the release notes I had to provide detailed explanations for the current users about how they can follow suit and do the changes themselves: go to that folder, open that file, paste this code; download these icons, copy in that folder; and so on. Endlessly. And I bet very few did them.

NO MORE!

Before we begin please open Add/Remove Software and check for updates. Do them all. Also click the menu and then “refresh databases”.

If after you update your system you are asked to reboot your system, do it.

Packages Finally!

Thanks to Roma and Roko, we now have packages for all of these scripts, files and folders. Which means that we can push the changes and updates directly to all of the TROMjaro users. This is light years better than what we did before, and it was on our to-do list since we moved from Gnome to XFCE.

This is me (right) and Roma (left) - we cool, we fancy:

And we worked on this when Roma visited me. Actually it was Roma that helped us create these packages in the first place. He worked for days, almost non-stop. He is also an amazing human and part of our TROM team. I love the guy. Roko helped us improve the scripts, like he always does. Another awesome human! I love this one too :slight_smile:

These packages approach is so good that I don’t even need notes for this release. My only notes are to explain what we did, and you (the current TROMjaro user) will only have to switch to this new method once, then you will get your system up to date to the newest set of scripts and fixes that we pushed for TROMjaro, regardless if you followed our release notes before, and did the changes or not before. Meaning, all TROMjaro users will get up to date with our latest TROMjaro fixes and releases.

Let’s begin: clean your system with 1 script

We need to ask you one more time to create a script, but this time is for cleaning everything from the old practice. We worked a lot to make it so easy for you to do it in one go. Ready? Ok, go to the .local/bin folder and create an empty file. Let’s call it tromjaro-clean. Inside of it put this:

#!/bin/bash
# These files and folders needs to be removed if they exist
home_files=(
    "$HOME/.local/bin/theme-switcher"
    "$HOME/.local/share/applications/theme-switcher.desktop"
    "$HOME/.local/share/Theme-Switcher/"
    "$HOME/.local/bin/layout-switch"
    "$HOME/.local/share/applications/layout-switch.desktop"
    "$HOME/.local/bin/layout-switcher"
    "$HOME/.local/share/applications/layout-switcher.desktop"
    "$HOME/.local/share/tromjaro-layouts/"
    "$HOME/.local/bin/app-finder"
    "$HOME/.local/bin/fix-theming"
    "$HOME/.local/bin/fix-flatpaks-theming"
    "$HOME/.local/bin/rofipass"
    "$HOME/.local/bin/fix-tweaked-desktop-files"
    "$HOME/.local/share/applications/tweaked-desktop-files"
    "$HOME/.local/share/applications/bakkedup-desktop-files"
    "$HOME/.local/bin/chaotic-keyring-refresh"
    "$HOME/.local/bin/fix-chaotic-keyring"
    "$HOME/.local/bin/reinstall-for-qt"
    "$HOME/.config/qt5ct/qt5ct.conf"
    "$HOME/.config/qt6ct/qt6ct.conf"
    "$HOME/.local/share/icons/zafiro-dark/"
    "$HOME/.local/share/icons/zafiro/"
)

# It will require sudo password to remove these ones
root_files=(
    '/usr/bin/theme-switcher'
    '/usr/bin/layout-switcher'
    '/usr/bin/fix-flatpaks-theming'
    '/usr/bin/fix-theming'
    '/usr/bin/fix-tweaked-desktop-files'
    '/usr/bin/app-finder'
    '/usr/bin/chaotic-keyring-refresh'
    '/usr/bin/fix-chaotic-keyring'
    '/usr/bin/reinstall-for-qt'
    '/usr/share/libalpm/hooks/chaotic-keyring-refresh.hook'
    '/usr/share/libalpm/hooks/reinstall-for-qt.hook'
    '/etc/pacman.d/hooks/00-timeshift-autosnap.hook'
    '/var/lib/flatpak/overrides/global'
)

# Stop processes that are running in the background
killall fix-tweaked-desktop-files fix-theming fix-flatpaks-theming >/dev/null 2>&1

for file in "${root_files[@]}"; do
    [ -e "$file" ] || continue
    echo "Removing $file"
    if [ -d "$file" ]; then
        sudo rm -rf "$file"
    else
        sudo rm -f "$file"
    fi
done

for file in "${home_files[@]}"; do
    [ -e "$file" ] || continue
    echo "Removing $file"
    if [ -d "$file" ]; then
        rm -rf "$file"
    else
        rm -f "$file"
    fi
done

# Move bakked up desktop files to the right location
printf "\nMoving all the bakked up desktop files from ~/.local/share/applications to ~/.local/share/fix-zombie-appicons/backup\n\n"
mkdir -p "$HOME"/.local/share/fix-zombie-appicons/backup || { echo 'failed to make directory!'; exit 1; }
mv "$HOME"/.local/share/applications/*.desktop.bak "$HOME"/.local/share/fix-zombie-appicons/backup >/dev/null 2>&1

printf "Removing unwanted lines from ~/.profile file...\n"
sed -Ei '/(fix-tweaked-desktop-files|fix-theming|chaotic-keyring-refresh|fix-flatpaks-theming|sudo chaotic-keyring-refresh|rofipass)/d' "$HOME/.profile"

# Remove and then install the proper Vala Panel
pacman -Qq vala-panel-appmenu-registrar-git >/dev/null 2>&1 && {
    printf "\nUninstalling vala-panel-appmenu-registrar-git\n\n"
    sudo pacman --noconfirm -Rs vala-panel-appmenu-registrar-git
}
pacman -Qq vala-panel-appmenu-registrar >/dev/null 2>&1 || {
    printf "\nInstalling vala-panel-appmenu-registrar\n\n"
    sudo pacman --noconfirm -S vala-panel-appmenu-registrar
}
sleep 2

## Self destruct the script
printf "\nScript is self destructing, it will remove itself from the system.\n"
rm -f "$(readlink -f "$0")"

Save. Right click, Properties, then Permissions, and mark “Allow this file to run as a program”. Now open the terminal and call the script. Type tromjaro-clean. Enter. It will ask you for the password. Add it. Enter. Wait until it finishes. The script auto-destructs after it has done all of the tasks.

DONE!

Now your system is clean. And ready for the new!

Install the new packages.

Open Add/Remove Software and install the following packages: tromjaro-layout-switcher, tromjaro-theme-switcher , tromjaro-fixes , tromjaro-autosnap-hook. After you install them, reboot your computer. And you are done.

You did it! Now enjoy!


Explanation for our packages.

Overall we improved our scripts and practices. Here’s how the packaging changes things:

tromjaro-layout-switcher

We at times push fixes for our layout profiles, and before you had to download them and add to the proper folder. Now we push the updates when needed. On top of that we plan to add more layouts to the mix, and when we do, you get them automatically.

tromjaro-theme-switcher

For the past months we have pushed a bunch of improvements to our Theme Switcher. And every time we had to ask you to do them manually. No more. How awesome that we can now improve it whenever we can and you simply get the fixes automatically.

tromjaro-autosnap-hook

We have our own list of triggers for when an automated backup should be created. But this package depends on another one that does these backups for Timeshift. And thus, if you were to remove that package or Timeshift, then our hook would still be there and would try to create backups but would not find Timeshift. So your updates would have been stuck. Now this package of ours depends on the other ones, and so you can’t remove the other ones unless you remove ours too. So that there will be no more stuck updates for you. Proper way to do it.

tromjaro-fixes

This is a big one! Let me explain what things we fixed.

Zafiro icons

We use the Zafiro icon pack and we make hundreds of icons for the pack. But we do not control the pack itself. At times some icons are not added, or added very late. So we would like to push the icons that we made, to all TROMjaro users. Before we had to ask you to download hundreds of icons and add to a folder in your home directory…Now we can push them to your system automatically. So every TROMjaro user gets the newest icons directly.

Fix the QT theming when QT gets updated

We created a hook that reinstalls 2 needed packages after the qt5 and qt6 get an update. Else the theming for QT apps won’t work. Usually you are asked to reinstall those manually, but we do it automatically for you.

Fix flatpaks theming

Before we made an ugly script that copied all of your themes to a .themes folder in your home directory. You have to do this to theme some flatpaks that accept theming. But to run this script every 10 minutes or so…is ugly. And we had to delete all of the contents of that folder and add them back via this script, again every 10 minutes or so. DAMN. Now we do it more smartly. We monitor that folder and the ones where the themes are normally located to, and only when a change happens to those folders, we update the .themes one with the proper folders and files, and only that!

In practice the difference is this: before this change if you installed the theme X on your system, and selected it, then opened a flatpak app, you would not see the theme applied to it. Only if you waited 10 minutes you would have seen that. Now the change is instant!

Fix theming

As you already know we are able to sync the themes across GTK, GTK+Libadwaita, QT, QT5, QT6, and flatpaks (the ones that accept theming). To do this we have to do a lot of synchronizations. Anyway, we were doing that before but we had to create a script that ran every 3 seconds and checked what theme or icon set you have selected and then pushed it to QT. Now we use a new code that detects when you change the theme, icon set, and even font, and applies it for the QT apps too. The change is instant.

Unfortunately it is a lot more difficult to sync the font, and we thought we did it, but we did not. See…if you open a QT app and then change the system’s font, the font applies to it too. But if you close that QT app and reopen it, the font is not applied anymore…I got tricked by this and didn’t realized up until I had to test it on my own system, and that was after I already compiled the new ISO…but now that we have packages we can work on it and if we crack it we will push the updates/fix to you all.

Mind you whenever you get an update to this package you have to reboot your computer for the new updates to take effect. We have not found a better way for this, for now.

Fix zombie appicons

This is our script that gets rid of the zombie apps in the app-menu. If you edit an app from the context menu (say change its name) and then later on remove the app, the icon is still in the menu. XFCE bad bad bad! We fixed this with a script that ran every 5 seconds to check for this. As you may realize by now this is really bad…so we made another script that keeps an eye on these changes and kicks into action whenever needed.

That’s all!

A lot of text for this release, but from now on our releases should be a lot less text and updates overall. Stable. Working. Not annoying.

Grab the ISO form here.