32 Commits

Author SHA1 Message Date
43221f6357 Update PKGBUILD 2023-10-04 23:22:02 +02:00
03e57e6eaf added qt5-styleplugins back 2023-10-04 23:21:55 +02:00
ab29eb9af5 replaced some dependencies
qt5style plugin with qt5gtk2 and qt6gtk2 with qt6gtk2-git
2023-10-04 14:53:20 +02:00
357e464269 removed the quick controls gtk2 force because it was breaking the qt6 apps 2023-10-04 14:50:10 +02:00
d4c07e8919 Update PKGBUILD 2023-08-10 18:38:34 +02:00
8b63ce497f Update bin/periodic/fix-theming 2023-08-10 18:38:06 +02:00
08a72d4659 better QT fix 2023-08-10 17:10:16 +02:00
05f4dae9e3 added QT scaling support 2023-08-10 17:03:39 +02:00
7d12c48835 Update PKGBUILD 2023-08-10 01:26:32 +02:00
db8328bd8b remove the QT support for now because it is broken 2023-08-10 01:26:19 +02:00
358094c4bf Update PKGBUILD 2023-08-09 15:57:46 +02:00
cfa7771ec0 Update PKGBUILD 2023-08-08 17:43:14 +02:00
ac76a669a9 Update bin/periodic/fix-theming 2023-08-08 17:06:38 +02:00
c6037978e6 Update PKGBUILD 2023-08-08 17:03:00 +02:00
7b07f05111 revert 82cd64a07d
revert removed the icons patch
2023-08-08 16:59:31 +02:00
b800bf0bcc Scales up the mouse pointer too plus other fixes 2023-08-08 15:58:10 +02:00
d389039f0d Update PKGBUILD 2023-08-08 03:53:24 +02:00
82cd64a07d removed the icons patch 2023-08-08 00:44:37 +02:00
56e049367d Update PKGBUILD 2023-08-08 00:42:23 +02:00
b7c64c8305 Update PKGBUILD 2023-08-06 23:44:19 +02:00
0cdccf7d72 Roko's improvments 2023-08-06 15:08:58 +02:00
eSh
3e259fb09e Bump package version 2023-08-06 02:29:58 +02:00
66c21a8192 Merge pull request 'Cleanup' () from theme-folder-sync into main
Reviewed-on: 
2023-08-06 02:25:07 +02:00
eSh
0fffd21076 Delete systemd/services/fix-flatpaks-theming.service 2023-08-06 02:23:51 +02:00
dabc52d7c2 Merge pull request 'Move themes and icons folder syncing to the theming script' () from theme-folder-sync into main
Reviewed-on: 
2023-08-06 02:19:18 +02:00
eSh
72dc4f5c0d Delete bin/periodic/fix-flatpaks-theming 2023-08-06 02:15:26 +02:00
eSh
c2fc6dd83b add themes and icons folder sync 2023-08-06 02:14:02 +02:00
d3cddde72f better flatpak handling 2023-08-05 20:25:03 +02:00
d63a3ccf33 flatpak fixes 2023-08-04 19:18:45 +02:00
4811e675d8 many improvements 2023-08-04 19:15:59 +02:00
b6f7ffccba Update PKGBUILD 2023-08-03 23:11:35 +02:00
3c16633482 improvements from roko 2023-08-03 23:09:23 +02:00
6 changed files with 141 additions and 75 deletions

@ -1,7 +1,7 @@
# Maintainer: TROM <contact@tromsite.com>
pkgname=tromjaro-fixes
pkgver=1.6
pkgrel=0
pkgver=1.8
pkgrel=6
pkgdesc="Various fixes for TROMjaro OS"
arch=(any)
url=""
@ -11,7 +11,7 @@ depends=('xfce4-appfinder'
'rsync'
'inotify-tools'
'qt5-styleplugins'
'qt6gtk2'
'qt6gtk2-git'
'qqc2-desktop-style')
provides=('tromjaro-fixes')
backup=()

@ -1,37 +0,0 @@
#!/bin/bash
# Set the directories
shared_themes_dir=/usr/share/themes/
local_themes_dir="$HOME/.themes/"
# Function to synchronize themes from shared to local directory
sync_themes() {
rsync -av --delete --progress "$shared_themes_dir" "$local_themes_dir"
echo "Directory $local_themes_dir is synchronized with $shared_themes_dir"
}
# Initial synchronization
sync_themes
# Function to monitor shared themes directory
monitor_shared_themes() {
inotifywait -m -r -e 'modify,attrib,move,move_self,create,delete,delete_self,unmount' "$shared_themes_dir" > /dev/null 2>&1 &
}
# Function to monitor local themes directory
monitor_local_themes() {
inotifywait -m -r -e 'modify,attrib,move,move_self,create,delete,delete_self,unmount' "$local_themes_dir" > /dev/null 2>&1 &
}
# Start monitoring in the background
monitor_shared_themes
monitor_local_themes
# Monitor changes and sync periodically
while true; do
# Wait for a short period (e.g., 5 seconds) before syncing again
sleep 5
# Synchronize if there were changes in either directory
sync_themes
done

@ -1,22 +1,142 @@
#!/bin/bash
# Exit out if the same script is already running in the background
pidof -sq -o %PPID -x "$(basename "$0")" && exit
# Set the directory/file paths
flatpak_themes_dir="$HOME/.themes"
flatpak_icons_dir="$HOME/.icons"
profile="$HOME/.profile"
# Create flatpak icons & themes directories if they don't exist
mkdir -p "$flatpak_themes_dir" "$flatpak_icons_dir" ||
{ echo "failed to make directories $flatpak_themes_dir & $flatpak_icons_dir"; exit 1; }
# Enable option for syncing the current theme with XFWM theme if not already enabled
[ "$(xfconf-query -c xsettings -p /Xfce/SyncThemes)" != 'true' ] && xfconf-query -c xsettings -p /Xfce/SyncThemes -n -t bool -s true
xdg_directory_lookup() {
# Go through each item in $XDG_DATA_DIRS and find the subdirectory $1
while read -r dir; do
subdir="${dir%/}/$1"
if [ -d "$subdir" ]; then
echo "$subdir"
break
fi
done < <(printf '%s:%s\n' "$HOME/.local/share" "$XDG_DATA_DIRS" | tr ':' '\n')
}
# Function for setting variables in ~/.profile
profile_set_variable() {
# Return if the variable is already set to the correct value
grep -xq "\s*export\s\+$1=$2\s*" "$profile" && return
# If the variable is set to a different value then remove that line
grep -q "^\s*export\s\+$1=" "$profile" && sed -i "/^\s*export\s\+$1=/d" "$profile"
# Set the variable to the correct value under a comment mentioning this script
if grep -xq '\s*#\s*Values set by the fix-theming script\s*' "$profile"; then
sed -i "/^\s*#\s*Values set by the fix-theming script\s*$/a export $1=$2" "$profile"
elif grep -q '\s' "$profile"; then
tail -n1 "$profile" | grep -qx '\s*' && begin='' || begin='\n'
printf '%b# Values set by the fix-theming script\nexport %s=%s\n' "$begin" "$1" "$2" >> "$profile"
else
printf '# Values set by the fix-theming script\nexport %s=%s\n' "$1" "$2" > "$profile"
fi
# Set variable logout_required to true
logout_required='true'
}
hdpi_theme_fix() {
# Get the current window scaling factor (highDPI setting)
current_scaling=$(xfconf-query -c xsettings -p /Gdk/WindowScalingFactor)
# Get the current XFWM theme
current_xfwm_theme=$(xfconf-query -c xfwm4 -p /general/theme)
# Get the current mouse cursor size
cursor_size=$(xfconf-query -c xsettings -p /Gtk/CursorThemeSize)
unset logout_required
if [ "$current_scaling" -eq '2' ]; then
# Increase mouse cursor size if it's equal to 25
if [ "$cursor_size" -eq 25 ]; then
xfconf-query -c xsettings -p /Gtk/CursorThemeSize -s '45'
notify-send 'Mouse cursor size increased to 45' "Changed to a larger mouse cursor because you've enabled highDPI on your system"
fi
# Increase scaling for QT apps
for var in QT_SCALE_FACTOR QT_AUTO_SCREEN_SCALE_FACTOR QT_ENABLE_HIGHDPI_SCALING; do
profile_set_variable "$var" 2
done
for variant in xhdpi hdpi; do
# If this variant of the theme is already enabled then break out of the loop
[ "${current_xfwm_theme##*-}" = "$variant" ] && break
# Store the name for this variant of the theme in highDPI_theme variable
highDPI_theme=$current_xfwm_theme-$variant
# Find the directory where highDPI_theme is stored
highDPI_theme_dir=$(xdg_directory_lookup "themes/$highDPI_theme")
# If this directory exists then change to that theme for XFWM
if [ -d "$highDPI_theme_dir" ]; then
xfconf-query -c xfwm4 -p /general/theme -n -t string -s "$highDPI_theme"
[ "$1" != 'no_hdpi_notification' ] && notify-send "XFWM theme changed to $highDPI_theme" "Changed to the highDPI variant of your chosen theme because you've enabled highDPI on your system"
break
fi
done
else
# Decrease mouse cursor size if it's equal to 45
if [ "$cursor_size" -eq 45 ]; then
xfconf-query -c xsettings -p /Gtk/CursorThemeSize -s '25'
notify-send 'Mouse cursor size decreased to 25' "Changed to a smaller mouse cursor because you've disabled highDPI on your system"
fi
# Decrease scaling for QT apps
unset logout_required
for var in QT_SCALE_FACTOR QT_AUTO_SCREEN_SCALE_FACTOR QT_ENABLE_HIGHDPI_SCALING; do
profile_set_variable "$var" 1
done
for variant in xhdpi hdpi; do
# Continue looping if this (highDPI) variant of the theme is not enabled
[ "${current_xfwm_theme##*-}" != "$variant" ] && continue
# Store the name for the normal variant of this theme in normal_theme variable
normal_theme=${current_xfwm_theme%-"$variant"}
# Find the directory where normal_theme is stored
normal_theme_dir=$(xdg_directory_lookup "themes/$normal_theme")
# If this directory exists then change to that theme for XFWM
if [ -d "$normal_theme_dir" ]; then
xfconf-query -c xfwm4 -p /general/theme -n -t string -s "$normal_theme"
notify-send "XFWM theme changed to $normal_theme" "Changed to the normal variant of your chosen theme because you've disabled highDPI on your system"
break
fi
done
fi
# Show popup menu about logout if it's required
[ "$logout_required" = 'true' ] &&
[ "$1" != 'no_hdpi_notification' ] &&
yad --image "dialog-question" --title "Alert" --buttons-layout=center --text-align=center --button=yad-yes:0 --button=yad-no:1 --text 'Logout is required in order to apply the DPI preferences to the QT apps.\nWould you like to logout now?' &&
xfce4-session-logout --logout
}
sync_theme() {
# Get the current system theme
theme=$(xfconf-query -c xsettings -p /Net/ThemeName)
# Enable syncing the current theme with xfwm4 if not already enabled
[ "$(xfconf-query -c xsettings -p /Xfce/SyncThemes)" != 'true' ] && xfconf-query -c xsettings -p /Xfce/SyncThemes -n -t bool -s true
current_theme=$(xfconf-query -c xsettings -p /Net/ThemeName)
# Apply the current theme with gsettings
gsettings set org.gnome.desktop.interface gtk-theme "$theme"
# Apply the current theme for GTK apps in flatpak
# Define the path to the flatpak override directory
flatpak_override_dir="$HOME/.local/share/flatpak/overrides"
# Create the directory if it doesn't exist
[ -d "$flatpak_override_dir" ] || mkdir -p "$flatpak_override_dir" || { echo 'failed creating directory!'; return 1; }
# Write the theme configuration to the global override file
echo "[Environment]
GTK_THEME=$theme" > "$flatpak_override_dir/global"
gsettings set org.gnome.desktop.interface gtk-theme "$current_theme"
# Apply the current theme for GTK and Libadwaita apps on flatpak
flatpak override --user --env=GTK_THEME="$current_theme"
# Apply the current theme for XFWM
xfconf-query -c xfwm4 -p /general/theme -n -t string -s "$current_theme"
# Change XFWM theme and mouse cursor size according to the user's highDPI setting
hdpi_theme_fix 'no_hdpi_notification'
# Cleanup flatpak_themes_dir
rm -rf "${flatpak_themes_dir:?}"/*
# Find the directory where the current theme is stored
current_theme_dir=$(xdg_directory_lookup "themes/$current_theme")
# Copy/sync current_theme_dir to flatpak_themes_dir
[ -d "$current_theme_dir" ] &&
rsync -av --delete --progress "$current_theme_dir" "$flatpak_themes_dir"
}
sync_font() {
@ -26,13 +146,15 @@ sync_font() {
xfconf-query -c xfwm4 -p /general/title_font -n -t string -s "$font"
}
# Initial synchronization
sync_theme
sync_font
# Monitor when the user changes their system theme or font in XFCE and sync them as needed
# Monitor when the user changes their system theme or icons or font in XFCE and sync them as needed
while read -r line; do
case "$line" in
'set: /Net/ThemeName') sync_theme ;;
'set: /Gdk/WindowScalingFactor') hdpi_theme_fix ;;
'set: /Gtk/FontName') sync_font ;;
esac
done < <(xfconf-query -c xsettings -m)

@ -1,5 +1,2 @@
[Context]
filesystems=~/.config/gtk-4.0;~/.themes;~/.icons;xdg-config/gtk-4.0;xdg-config/Kvantum:ro;
[Environment]
QT_STYLE_OVERRIDE=kvantum
filesystems=~/.config/gtk-4.0;~/.themes;~/.icons;xdg-config/gtk-4.0;

@ -1,15 +0,0 @@
# This service unit is for fix-flatpaks-theming script
#
[Unit]
Description=Fix flatpak theming script
StartLimitIntervalSec=0
[Service]
Type=simple
Restart=always
RestartSec=1
ExecStart=/usr/bin/fix-flatpaks-theming
[Install]
WantedBy=default.target

@ -1,6 +1,5 @@
# Sync the QT with GTK
export QT_QPA_PLATFORMTHEME="gtk2"
export QT_QUICK_CONTROLS_STYLE="gtk2"
export QT_AUTO_SCREEN_SCALE_FACTOR=1
# Show color output in less