diff options
| author | Nippy <nippy@Beller-Mac-mini.lan> | 2026-09-07 19:37:34 +0200 |
|---|---|---|
| committer | Nippy <nippy@Beller-Mac-mini.lan> | 2026-09-07 19:39:31 +0200 |
| commit | a26fdf3ea630e82fdfc93fffcaef098e7c3fc0e9 (patch) | |
| tree | dea615142a03bc111c97b0b3a5385c93f1b8fc73 /raveos-gnome-theme | |
| parent | 2b1073b57b09b61099f0e9f67dc13292f5672e35 (diff) | |
| download | RaveOS-PKGBUILD-a26fdf3ea630e82fdfc93fffcaef098e7c3fc0e9.tar.gz RaveOS-PKGBUILD-a26fdf3ea630e82fdfc93fffcaef098e7c3fc0e9.zip | |
rework theme
Diffstat (limited to 'raveos-gnome-theme')
| -rw-r--r-- | raveos-gnome-theme/.SRCINFO | 14 | ||||
| -rw-r--r-- | raveos-gnome-theme/00-raveos | 171 | ||||
| -rw-r--r-- | raveos-gnome-theme/99_raveos-gnome.gschema.override | 57 | ||||
| -rw-r--r-- | raveos-gnome-theme/PKGBUILD | 77 | ||||
| -rw-r--r-- | raveos-gnome-theme/dconf-user-profile | 2 | ||||
| -rwxr-xr-x | raveos-gnome-theme/raveos-gnome-apply.sh | 234 | ||||
| -rw-r--r-- | raveos-gnome-theme/raveos-gnome-theme-apply.service | 4 | ||||
| -rw-r--r-- | raveos-gnome-theme/raveos-gnome-theme.install | 21 |
8 files changed, 396 insertions, 184 deletions
diff --git a/raveos-gnome-theme/.SRCINFO b/raveos-gnome-theme/.SRCINFO index 1d53e3c..a7cea12 100644 --- a/raveos-gnome-theme/.SRCINFO +++ b/raveos-gnome-theme/.SRCINFO @@ -1,11 +1,17 @@ pkgbase = raveos-gnome-theme - pkgdesc = RaveOS GNOME theme payload and installer - pkgver = 0.0.0 - pkgrel = 18 + pkgdesc = RaveOS GNOME theme payload and modern cascading installer + pkgver = 1.0.0 + pkgrel = 1 url = https://raveos.local install = raveos-gnome-theme.install arch = any license = custom - depends = fastfetch + conflicts = raveos-plasma-theme + conflicts = raveos-hyprland-theme + conflicts = raveos-cosmic-theme + depends = raveos-sddm-theme + depends = dconf + optdepends = fastfetch: terminál üdvözlő (profile.d script indítja) + options = !debug pkgname = raveos-gnome-theme diff --git a/raveos-gnome-theme/00-raveos b/raveos-gnome-theme/00-raveos new file mode 100644 index 0000000..f874f33 --- /dev/null +++ b/raveos-gnome-theme/00-raveos @@ -0,0 +1,171 @@ +# RaveOS GNOME 2 - Rendszerszintű dconf alapértelmezések +# Ez a fájl biztosítja az alapértelmezett RaveOS megjelenést, +# de a felhasználó egyéni beállításai (pl. háttérkép csere) felülbírálják, +# így frissítéskor sem vesznek el a saját módosítások. + +[org/gnome/desktop/interface] +accent-color='green' +color-scheme='prefer-dark' +cursor-size=24 +cursor-theme='Adwaita' +document-font-name='Adwaita Sans 12' +font-name='Adwaita Sans 11' +gtk-theme='Yaru-olive-dark' +icon-theme='Adwaitaru-olive' +monospace-font-name='Adwaita Mono 11' + +[org/gnome/desktop/background] +color-shading-type='solid' +picture-options='zoom' +picture-uri='file:///usr/share/backgrounds/raveos/raveos-main-bg.jpeg' +picture-uri-dark='file:///usr/share/backgrounds/raveos/raveos-main-bg.jpeg' +primary-color='#241f31' +secondary-color='#000000' + +[org/gnome/desktop/screensaver] +color-shading-type='solid' +picture-options='zoom' +picture-uri='file:///usr/share/backgrounds/raveos/raveos-main-bg.jpeg' +primary-color='#241f31' +secondary-color='#000000' + +[org/gnome/desktop/wm/preferences] +button-layout='appmenu:minimize,maximize,close' +num-workspaces=1 + +[org/gnome/mutter] +dynamic-workspaces=true + +[org/gnome/desktop/peripherals/keyboard] +numlock-state=true + +[org/gnome/desktop/peripherals/mouse] +accel-profile='flat' +speed=0.0 + +[org/gnome/desktop/peripherals/touchpad] +two-finger-scrolling-enabled=true + +[org/gnome/desktop/session] +idle-delay=uint32 900 + +[org/gnome/settings-daemon/plugins/power] +power-button-action='interactive' + +[org/gnome/settings-daemon/plugins/media-keys] +custom-keybindings=['/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/'] + +[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0] +binding='<Control><Alt>t' +command='kgx' +name='Terminal' + +[org/gnome/shell] +always-show-log-out=true +disable-user-extensions=false +disabled-extensions=['apps-menu@gnome-shell-extensions.gcampax.github.com', 'auto-move-windows@gnome-shell-extensions.gcampax.github.com', 'launch-new-instance@gnome-shell-extensions.gcampax.github.com', 'light-style@gnome-shell-extensions.gcampax.github.com', 'native-window-placement@gnome-shell-extensions.gcampax.github.com', 'places-menu@gnome-shell-extensions.gcampax.github.com', 'system-monitor@gnome-shell-extensions.gcampax.github.com', 'unity-like-appswitcher@gonza.com', 'window-list@gnome-shell-extensions.gcampax.github.com', 'windowsNavigator@gnome-shell-extensions.gcampax.github.com', 'workspace-indicator@gnome-shell-extensions.gcampax.github.com', 'rounded-window-corners@fxgn'] +enabled-extensions=['drive-menu@gnome-shell-extensions.gcampax.github.com', 'burn-my-windows@schneegans.github.com', 'user-theme@gnome-shell-extensions.gcampax.github.com', 'appindicatorsupport@rgcjonas.gmail.com', 'customreboot@nova1545', 'hide-universal-access@akiirui.github.io', 'no-overview@fthx', 'notification-timeout@chlumskyvaclav.gmail.com', 'rebootintowindows@nimz.cool', 'reboottouefi@ubaygd.com', 'ShutdownTimer@deminder', 'Vitals@CoreCoding.com', 'dash-to-dock@micxgx.gmail.com', 'blur-my-shell@aunetx', 'status-icons@gnome-shell-extensions.gcampax.github.com', 'unity-like-appswitcher-reforged@gabeszm'] +favorite-apps=['org.gnome.Nautilus.desktop'] +welcome-dialog-last-shown-version='999.0' + +[org/gnome/shell/extensions/user-theme] +name='Yaru-olive-dark' + +[org/gnome/shell/extensions/dash-to-dock] +always-center-icons=false +autohide-in-fullscreen=false +background-color='rgb(0,0,0)' +background-opacity=0.33 +click-action='minimize-or-overview' +custom-background-color=true +custom-theme-shrink=true +dance-urgent-applications=true +dash-max-icon-size=44 +disable-overview-on-startup=false +dock-fixed=false +dock-position='LEFT' +extend-height=true +force-straight-corner=true +height-fraction=0.33 +hot-keys=true +icon-size-fixed=true +intellihide-mode='ALL_WINDOWS' +isolate-locations=true +isolate-workspaces=false +multi-monitor=true +preview-size-scale=0.0 +running-indicator-dominant-color=true +running-indicator-style='DOTS' +show-apps-always-in-the-edge=true +show-apps-at-top=false +show-icons-emblems=true +show-mounts=false +show-mounts-network=false +show-mounts-only-mounted=true +show-trash=false +transparency-mode='FIXED' +unity-backlit-items=false +workspace-agnostic-urgent-windows=true + +[org/gnome/shell/extensions/blur-my-shell] +pipelines={'pipeline_default': {'name': <'Default'>, 'effects': <[<{'type': <'native_static_gaussian_blur'>, 'id': <'effect_000000000000'>, 'params': <{'radius': <30>, 'brightness': <0.60>}>}>]>}, 'pipeline_default_rounded': {'name': <'Default rounded'>, 'effects': <[<{'type': <'native_static_gaussian_blur'>, 'id': <'effect_000000000001'>, 'params': <{'radius': <30>, 'brightness': <0.60>}>}>, <{'type': <'corner'>, 'id': <'effect_000000000002'>, 'params': <{'radius': <24>}>}>]>}} +settings-version=2 + +[org/gnome/shell/extensions/blur-my-shell/appfolder] +brightness=0.60 +sigma=30 + +[org/gnome/shell/extensions/blur-my-shell/dash-to-dock] +blur=false +brightness=0.60 +override-background=true +pipeline='pipeline_default' +sigma=30 +static-blur=true +style-dash-to-dock=0 + +[org/gnome/shell/extensions/blur-my-shell/lockscreen] +pipeline='pipeline_default' + +[org/gnome/shell/extensions/blur-my-shell/overview] +pipeline='pipeline_default' + +[org/gnome/shell/extensions/blur-my-shell/panel] +brightness=0.45 +customize=true +force-light-text=true +override-background=true +pipeline='pipeline_default' +sigma=30 +static-blur=true + +[org/gnome/shell/extensions/blur-my-shell/screenshot] +pipeline='pipeline_default' + +[org/gnome/shell/extensions/blur-my-shell/window-list] +brightness=0.60 +sigma=30 + +[org/gnome/shell/extensions/unity-window-switcher-reforged] +background-border-radius=22 +background-color='rgb(36,31,49)' +border-size=0 +container-padding=11 +icon-border-radius=16 +icon-spacing=11 + +[org/gnome/shell/extensions/vitals] +hot-sensors=['_processor_usage_', '_memory_allocated_'] +icon-style=0 +position-in-panel=0 +update-time=1 + +[org/gnome/nautilus/preferences] +default-folder-viewer='icon-view' +migrated-gtk-settings=true +show-create-link=true +show-delete-permanently=true + +[org/gnome/Console] +last-window-maximised=false +last-window-size=(1000, 650) diff --git a/raveos-gnome-theme/99_raveos-gnome.gschema.override b/raveos-gnome-theme/99_raveos-gnome.gschema.override new file mode 100644 index 0000000..876cdc0 --- /dev/null +++ b/raveos-gnome-theme/99_raveos-gnome.gschema.override @@ -0,0 +1,57 @@ +# RaveOS GNOME - Rendszerszintű GSettings sémák +# A felhasználói beállítások (user-db) mindig felülbírálják ezt a fájlt. + +[org.gnome.desktop.interface] +accent-color='green' +color-scheme='prefer-dark' +cursor-size=24 +cursor-theme='Adwaita' +document-font-name='Adwaita Sans 12' +font-name='Adwaita Sans 11' +gtk-theme='Yaru-olive-dark' +icon-theme='Adwaitaru-olive' +monospace-font-name='Adwaita Mono 11' + +[org.gnome.desktop.background] +color-shading-type='solid' +picture-options='zoom' +picture-uri='file:///usr/share/backgrounds/raveos/raveos-main-bg.jpeg' +picture-uri-dark='file:///usr/share/backgrounds/raveos/raveos-main-bg.jpeg' +primary-color='#241f31' +secondary-color='#000000' + +[org.gnome.desktop.screensaver] +color-shading-type='solid' +picture-options='zoom' +picture-uri='file:///usr/share/backgrounds/raveos/raveos-main-bg.jpeg' +primary-color='#241f31' +secondary-color='#000000' + +[org.gnome.desktop.wm.preferences] +button-layout='appmenu:minimize,maximize,close' +num-workspaces=1 + +[org.gnome.mutter] +dynamic-workspaces=true + +[org.gnome.desktop.peripherals.keyboard] +numlock-state=true + +[org.gnome.desktop.session] +idle-delay=uint32 900 + +[org.gnome.settings-daemon.plugins.power] +power-button-action='interactive' + +[org.gnome.shell] +always-show-log-out=true +disable-user-extensions=false +enabled-extensions=['drive-menu@gnome-shell-extensions.gcampax.github.com', 'burn-my-windows@schneegans.github.com', 'user-theme@gnome-shell-extensions.gcampax.github.com', 'appindicatorsupport@rgcjonas.gmail.com', 'customreboot@nova1545', 'hide-universal-access@akiirui.github.io', 'no-overview@fthx', 'notification-timeout@chlumskyvaclav.gmail.com', 'rebootintowindows@nimz.cool', 'reboottouefi@ubaygd.com', 'ShutdownTimer@deminder', 'Vitals@CoreCoding.com', 'dash-to-dock@micxgx.gmail.com', 'blur-my-shell@aunetx', 'status-icons@gnome-shell-extensions.gcampax.github.com', 'unity-like-appswitcher-reforged@gabeszm'] +favorite-apps=['org.gnome.Nautilus.desktop'] +welcome-dialog-last-shown-version='999.0' + +[org.gnome.nautilus.preferences] +default-folder-viewer='icon-view' +migrated-gtk-settings=true +show-create-link=true +show-delete-permanently=true diff --git a/raveos-gnome-theme/PKGBUILD b/raveos-gnome-theme/PKGBUILD index 21dd73a..9bf0893 100644 --- a/raveos-gnome-theme/PKGBUILD +++ b/raveos-gnome-theme/PKGBUILD @@ -2,27 +2,27 @@ # # raveos-gnome-theme # ------------------ -# GNOME DE téma csomag: kitty, fastfetch, GNOME shell extensions, -# GTK/ikon témák, dconf alapértelmezések. +# Modern, kaszkádolt GNOME téma csomag a RaveOS-hez. # -# Az install script (raveos-gnome-theme-apply.service) post_install hook-ból -# fut és bemásolja a theme-data tartalmát /etc/skel-be és minden meglévő -# user home-jába. -# -# Az SDDM login téma külön csomagban van (raveos-sddm-theme), mert korábban -# mind a négy DE-téma csomag (cosmic/gnome/hyprland/plasma) ugyanazt a -# byte-azonos SDDM temat csomagolta duplán. +# Főbb újítások a korábbi architektúrához képest: +# 1. Rendszerszintű témák és ikonok (/usr/share/themes és /usr/share/icons) +# -> Flatpak és root jogosultságú appok alatt sem esik szét a design! +# 2. Rendszerszintű dconf és GSettings alapértelmezések (00-raveos és gschema.override) +# -> Csomagfrissítéskor SOHA NEM írja felül a felhasználó egyéni beállításait! +# 3. Kíméletes skel és home kezelés: csak a hiányzó fájlokat pótolja, meglévőt nem bánt. +# 4. Biztonságos jogosultság-kezelés: nem chownolja rekurzívan az egész home könyvtárat. pkgname=raveos-gnome-theme -pkgver=0.0.0 -pkgrel=30 -pkgdesc="RaveOS GNOME theme payload and installer" +pkgver=1.0.0 +pkgrel=1 +pkgdesc="RaveOS GNOME theme payload and modern cascading installer" arch=('any') url="https://raveos.local" license=('custom') -conflicts=('raveos-hyprland-theme' 'raveos-cosmic-theme') +options=('!debug') +conflicts=('raveos-plasma-theme' 'raveos-hyprland-theme' 'raveos-cosmic-theme') -depends=('raveos-sddm-theme') +depends=('raveos-sddm-theme' 'dconf') optdepends=( 'fastfetch: terminál üdvözlő (profile.d script indítja)' @@ -32,7 +32,7 @@ install="${pkgname}.install" source=() sha256sums=() -# Build könyvtárak az src mellé, ne a makepkg alapértelmezettbe +# Build könyvtárak az src mellé BUILDDIR="${startdir}/build" PKGDEST="${startdir}/build" SRCDEST="${startdir}/build" @@ -40,18 +40,53 @@ SRCPKGDEST="${startdir}/build" LOGDEST="${startdir}/build" package() { - # theme-data payload: kitty, fastfetch, GTK, extensions, GNOME konfig stb. + # 1. Rendszerszintű témák és ikonok (Flatpak és root kompatibilitás!) + install -dm755 "${pkgdir}/usr/share/themes" + cp -r --no-preserve=ownership "${startdir}/theme-data/user-themes/Yaru-olive-dark" \ + "${pkgdir}/usr/share/themes/" + + install -dm755 "${pkgdir}/usr/share/icons" + cp -r --no-preserve=ownership "${startdir}/theme-data/user-icons/Adwaitaru-olive" \ + "${pkgdir}/usr/share/icons/" + + # 2. Rendszerlogók és ikonok + install -Dm644 "${startdir}/theme-data/system/raveos-logo.svg" \ + "${pkgdir}/usr/share/pixmaps/raveos-logo.svg" + install -Dm644 "${startdir}/theme-data/system/raveos-logo.svg" \ + "${pkgdir}/usr/share/icons/hicolor/scalable/apps/raveos-logo.svg" + + # 3. Háttérkép + install -Dm644 "${startdir}/theme-data/background" \ + "${pkgdir}/usr/share/backgrounds/raveos/raveos-main-bg.jpeg" + + # 4. Rendszerszintű GNOME Shell kiterjesztések (csak az egyediek, a gyári gnome-shell-extensions csomaggal ne ütközzön) + install -dm755 "${pkgdir}/usr/share/gnome-shell/extensions" + cp -r --no-preserve=ownership "${startdir}/theme-data/extensions/installed/." \ + "${pkgdir}/usr/share/gnome-shell/extensions/" + rm -rf "${pkgdir}/usr/share/gnome-shell/extensions/"*@gnome-shell-extensions.gcampax.github.com + + # 5. Fastfetch profil és indító + install -Dm755 "${startdir}/theme-data/profile.d/raveos-fastfetch.sh" \ + "${pkgdir}/etc/profile.d/raveos-fastfetch.sh" + + # 6. Rendszerszintű dconf profil és alapértelmezések + install -Dm644 "${startdir}/dconf-user-profile" \ + "${pkgdir}/etc/dconf/profile/user" + install -Dm644 "${startdir}/00-raveos" \ + "${pkgdir}/etc/dconf/db/local.d/00-raveos" + + # 7. GSettings schema override + install -Dm644 "${startdir}/99_raveos-gnome.gschema.override" \ + "${pkgdir}/usr/share/glib-2.0/schemas/99_raveos-gnome.gschema.override" + + # 8. Payload adatok az új felhasználók (skel) beállításához install -dm755 "${pkgdir}/usr/share/raveos/gnome-theme" cp -r --no-preserve=ownership "${startdir}/theme-data" \ "${pkgdir}/usr/share/raveos/gnome-theme/" - # SDDM téma: külön csomagban (raveos-sddm-theme), lásd depends - - # apply script: post_install hook hívja + # 9. Telepítő és systemd service install -Dm755 "${startdir}/raveos-gnome-apply.sh" \ "${pkgdir}/usr/lib/raveos-gnome-theme/auto-apply.sh" - - # systemd service (a post_install hook enable-oli) install -Dm644 "${startdir}/raveos-gnome-theme-apply.service" \ "${pkgdir}/usr/lib/systemd/system/raveos-gnome-theme-apply.service" } diff --git a/raveos-gnome-theme/dconf-user-profile b/raveos-gnome-theme/dconf-user-profile new file mode 100644 index 0000000..aca0641 --- /dev/null +++ b/raveos-gnome-theme/dconf-user-profile @@ -0,0 +1,2 @@ +user-db:user +system-db:local diff --git a/raveos-gnome-theme/raveos-gnome-apply.sh b/raveos-gnome-theme/raveos-gnome-apply.sh index 324e988..c56ea3f 100755 --- a/raveos-gnome-theme/raveos-gnome-apply.sh +++ b/raveos-gnome-theme/raveos-gnome-apply.sh @@ -1,20 +1,16 @@ #!/usr/bin/env bash # raveos-gnome-apply.sh # --------------------- -# Telepíti a GNOME téma payloadját: -# - /etc/skel alá (új usereknek) -# - minden meglévő, bejelentkező user home-jába -# -# Root jogosultság szükséges. A raveos-gnome-theme.install post_install -# hook-ja hívja közvetlenül. +# Modern RaveOS GNOME inicializáló és beállító script: +# - /etc/skel alá telepíti a sablonokat (új usereknek) +# - Meglévő usereknél CSAK a hiányzó fájlokat pótolja (sosem ír felül meglévő beállításokat!) +# - Nem futtat 'dconf load'-ot, így a felhasználó saját beállításai megmaradnak! +# - Csak az általa létrehozott mappákat chownolja (biztonságos) set -euo pipefail PAYLOAD="/usr/share/raveos/gnome-theme/theme-data" wallpaper_dst="/usr/share/backgrounds/raveos/raveos-main-bg.jpeg" -dconf_profile_dir="/etc/dconf/profile" -dconf_db_dir="/etc/dconf/db/local.d" -dconf_default_file="${dconf_db_dir}/00-raveos" if [[ ! -d "$PAYLOAD" ]]; then echo "Hiba: hiányzó payload: $PAYLOAD" >&2 @@ -42,7 +38,7 @@ ensure_bashrc_hook() { write_mimeapps_defaults() { local mimeapps_path="$1" mkdir -p "$(dirname "$mimeapps_path")" - cat > "$mimeapps_path" <<'EOF' + cat > "$mimeapps_path" <<'MIMEOF' [Default Applications] image/jpeg=org.gnome.eog.desktop image/png=org.gnome.eog.desktop @@ -53,180 +49,110 @@ image/tiff=org.gnome.eog.desktop image/avif=org.gnome.eog.desktop image/heif=org.gnome.eog.desktop image/heic=org.gnome.eog.desktop -EOF -} - -build_system_dconf_defaults() { - sed -e "s|file:///home/{HOME}/.config/background|file://${wallpaper_dst}|g" \ - "${PAYLOAD}/dconf/full-system-dump.ini" > "$dconf_default_file" -} - -build_user_dconf_dump() { - local target_home="$1" - local output_path="$2" - sed \ - -e "s|file:///home/{HOME}/.config/background|file://${target_home}/.config/background|g" \ - -e "s|{HOME}|${target_home}|g" \ - "${PAYLOAD}/dconf/full-system-dump.ini" > "$output_path" +MIMEOF } # --------------------------------------------------------------------------- -# RENDSZERSZINTŰ TELEPÍTÉS +# RENDSZERSZINTŰ BEÁLLÍTÁSOK # --------------------------------------------------------------------------- -# Háttérkép rendszerkönyvtárba -install -Dm644 "${PAYLOAD}/background" "$wallpaper_dst" - -# App grid ikon és rendszer logo -[[ -f "${PAYLOAD}/icons/view-app-grid-symbolic.svg" ]] && \ - install -Dm644 "${PAYLOAD}/icons/view-app-grid-symbolic.svg" \ - /usr/share/icons/Adwaita/symbolic/actions/view-app-grid-symbolic.svg -[[ -f "${PAYLOAD}/system/raveos-logo.svg" ]] && \ - install -Dm644 "${PAYLOAD}/system/raveos-logo.svg" /usr/share/pixmaps/raveos-logo.svg && \ - install -Dm644 "${PAYLOAD}/system/raveos-logo.svg" /usr/share/icons/hicolor/scalable/apps/raveos-logo.svg - -# Elrejtett alkalmazások (NoDisplay=true .desktop felülírással) +# Elrejtett felesleges menüelemek mkdir -p /usr/local/share/applications for desktop_id in avahi-discover.desktop bssh.desktop bvnc.desktop qv4l2.desktop qvidcap.desktop vim.desktop; do - cat > "/usr/local/share/applications/${desktop_id}" <<'EOF' + cat > "/usr/local/share/applications/${desktop_id}" <<'DESKEOF' [Desktop Entry] NoDisplay=true -EOF +DESKEOF done -# dconf rendszerprofil és alapértelmezések -mkdir -p "$dconf_profile_dir" "$dconf_db_dir" -cat > "${dconf_profile_dir}/user" <<'EOF' -user-db:user -system-db:local -EOF -build_system_dconf_defaults -command -v dconf &>/dev/null && dconf update || true - -# SDDM: a téma és konfig a PKGBUILD + .install hook által van telepítve, itt nincs teendő - -# --------------------------------------------------------------------------- -# MEGLÉVŐ USEREK FRISSÍTÉSE -# /etc/passwd alapján minden UID >= 1000 bejelentkező user home-ja -# --------------------------------------------------------------------------- - -install_user() { - local target_user="$1" - local passwd_line target_uid target_gid target_home tmpdir - - passwd_line="$(getent passwd "$target_user" || true)" - [[ -n "$passwd_line" ]] || return 0 - IFS=: read -r _ _ target_uid target_gid _ target_home _ <<<"$passwd_line" - [[ -d "$target_home" ]] || return 0 - - mkdir -p \ - "${target_home}/.config/kitty" \ - "${target_home}/.config/fastfetch" \ - "${target_home}/.config/burn-my-windows/profiles" \ - "${target_home}/.config" \ - "${target_home}/.themes" \ - "${target_home}/.icons" \ - "${target_home}/.local/share/gnome-shell/extensions" - - install -Dm644 "$wallpaper_dst" "${target_home}/.config/background" - cp -r --no-preserve=ownership "${PAYLOAD}/user-themes/." "${target_home}/.themes/" - cp -r --no-preserve=ownership "${PAYLOAD}/user-icons/." "${target_home}/.icons/" - cp -r --no-preserve=ownership "${PAYLOAD}/extensions/installed/." \ - "${target_home}/.local/share/gnome-shell/extensions/" - - [[ -f "${PAYLOAD}/kitty/kitty.conf" ]] && \ - install -Dm644 "${PAYLOAD}/kitty/kitty.conf" "${target_home}/.config/kitty/kitty.conf" - for f in config.jsonc config-kitty.jsonc raveos-logo.png raveos-logo.txt; do - [[ -f "${PAYLOAD}/fastfetch/${f}" ]] && \ - install -Dm644 "${PAYLOAD}/fastfetch/${f}" "${target_home}/.config/fastfetch/${f}" - done - [[ -f "${PAYLOAD}/burn-my-windows/burn-my-windows.conf" ]] && \ - install -Dm644 "${PAYLOAD}/burn-my-windows/burn-my-windows.conf" \ - "${target_home}/.config/burn-my-windows/profiles/burn-my-windows.conf" - write_mimeapps_defaults "${target_home}/.config/mimeapps.list" - ensure_bashrc_hook "${target_home}/.bashrc" - - if command -v glib-compile-schemas &>/dev/null; then - find "${target_home}/.local/share/gnome-shell/extensions" -type d -name schemas -print0 | \ - while IFS= read -r -d '' schema_dir; do - glib-compile-schemas "$schema_dir" - done - fi - - tmpdir="$(mktemp -d)" - chmod 755 "$tmpdir" - build_user_dconf_dump "${target_home}" "${tmpdir}/full-system-dump.ini" - chmod 644 "${tmpdir}/full-system-dump.ini" - - # A Calamares keyboard modul altal beallitott kiosztas kiolvasasa - # (a rendszerszintu konfig /etc/default/keyboard-ba kerult, de a GNOME - # Wayland a sajat org.gnome.desktop.input-sources-t hasznalja). - local kb_layout="hu" - if [[ -f /etc/default/keyboard ]]; then - local kb_tmp - kb_tmp="$(awk -F'"' '/^XKBLAYOUT=/{print $2; exit}' /etc/default/keyboard 2>/dev/null)" - [[ -n "$kb_tmp" ]] && kb_layout="${kb_tmp%%,*}" - fi - - if command -v dconf &>/dev/null && command -v dbus-run-session &>/dev/null; then - runuser -u "$target_user" -- env \ - HOME="${target_home}" USER="${target_user}" LOGNAME="${target_user}" \ - XDG_CONFIG_HOME="${target_home}/.config" XDG_DATA_HOME="${target_home}/.local/share" \ - dbus-run-session /bin/bash -lc " - dconf load / < '${tmpdir}/full-system-dump.ini' || true - gsettings set org.gnome.desktop.interface gtk-theme 'Yaru-olive-dark' || true - gsettings set org.gnome.desktop.interface icon-theme 'Adwaitaru-olive' || true - gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark' || true - gsettings set org.gnome.desktop.background picture-uri 'file://${target_home}/.config/background' || true - gsettings set org.gnome.desktop.background picture-uri-dark 'file://${target_home}/.config/background' || true - gsettings set org.gnome.shell.extensions.user-theme name 'Yaru-olive-dark' || true - gsettings set org.gnome.desktop.input-sources sources \"[('xkb', '${kb_layout}')]\" || true - " </dev/null >/dev/null 2>&1 || true - fi - - rm -rf "$tmpdir" - - chown -R "${target_uid}:${target_gid}" \ - "${target_home}/.config" "${target_home}/.local" \ - "${target_home}/.themes" "${target_home}/.icons" "${target_home}/.bashrc" -} +# Egyedi alkalmazás menü ikon Adwaita alá (nem a csomagból tesszük fel, hogy ne ütközzön az adwaita-icon-theme csomaggal) +if [[ -f "${PAYLOAD}/icons/view-app-grid-symbolic.svg" ]]; then + install -Dm644 "${PAYLOAD}/icons/view-app-grid-symbolic.svg" \ + /usr/share/icons/Adwaita/symbolic/actions/view-app-grid-symbolic.svg +fi -while IFS=: read -r user _ uid _ _ home shell; do - [[ "$uid" -ge 1000 ]] || continue - [[ -d "$home" ]] || continue - [[ "$shell" != "/usr/bin/nologin" && "$shell" != "/bin/false" ]] || continue - install_user "$user" -done < /etc/passwd +# dconf és gsettings adatbázisok frissítése +command -v dconf &>/dev/null && dconf update || true +command -v glib-compile-schemas &>/dev/null && glib-compile-schemas /usr/share/glib-2.0/schemas || true # --------------------------------------------------------------------------- -# SKEL TELEPÍTÉS -# Új usereknek (useradd által másolt /etc/skel tartalom) +# /etc/skel (ÚJ FELHASZNÁLÓK ALAPBEÁLLÍTÁSAI) # --------------------------------------------------------------------------- mkdir -p \ /etc/skel/.config/kitty \ /etc/skel/.config/fastfetch \ /etc/skel/.config/burn-my-windows/profiles \ - /etc/skel/.themes \ - /etc/skel/.icons \ - /etc/skel/.local/share/gnome-shell/extensions + /etc/skel/.config/raveos -cp -r --no-preserve=ownership "${PAYLOAD}/user-themes/." /etc/skel/.themes/ -cp -r --no-preserve=ownership "${PAYLOAD}/user-icons/." /etc/skel/.icons/ -cp -r --no-preserve=ownership "${PAYLOAD}/extensions/installed/." /etc/skel/.local/share/gnome-shell/extensions/ -install -Dm644 "$wallpaper_dst" /etc/skel/.config/background [[ -f "${PAYLOAD}/kitty/kitty.conf" ]] && \ install -Dm644 "${PAYLOAD}/kitty/kitty.conf" /etc/skel/.config/kitty/kitty.conf + for f in config.jsonc config-kitty.jsonc raveos-logo.png raveos-logo.txt; do [[ -f "${PAYLOAD}/fastfetch/${f}" ]] && \ install -Dm644 "${PAYLOAD}/fastfetch/${f}" "/etc/skel/.config/fastfetch/${f}" done -[[ -f "${PAYLOAD}/profile.d/raveos-fastfetch.sh" ]] && \ - install -Dm755 "${PAYLOAD}/profile.d/raveos-fastfetch.sh" /etc/profile.d/raveos-fastfetch.sh + [[ -f "${PAYLOAD}/burn-my-windows/burn-my-windows.conf" ]] && \ install -Dm644 "${PAYLOAD}/burn-my-windows/burn-my-windows.conf" \ /etc/skel/.config/burn-my-windows/profiles/burn-my-windows.conf + write_mimeapps_defaults /etc/skel/.config/mimeapps.list ensure_bashrc_hook /etc/skel/.bashrc +echo "1" > /etc/skel/.config/raveos/gnome-migrated + +# --------------------------------------------------------------------------- +# MEGLÉVŐ USEREK FRISSÍTÉSE (KÍMÉLETES / NEM FELÜLÍRÓ MÓDBAN) +# --------------------------------------------------------------------------- + +while IFS=: read -r user _ uid gid _ home shell; do + [[ "$uid" -ge 1000 ]] || continue + [[ -d "$home" ]] || continue + [[ "$shell" != "/usr/bin/nologin" && "$shell" != "/bin/false" ]] || continue + + # Csak akkor másolunk, ha még nincs saját beállítása + mkdir -p \ + "${home}/.config/kitty" \ + "${home}/.config/fastfetch" \ + "${home}/.config/burn-my-windows/profiles" \ + "${home}/.config/raveos" + + # Kitty: csak ha nem létezik + if [[ ! -f "${home}/.config/kitty/kitty.conf" && -f "${PAYLOAD}/kitty/kitty.conf" ]]; then + install -Dm644 "${PAYLOAD}/kitty/kitty.conf" "${home}/.config/kitty/kitty.conf" + fi + + # Fastfetch: csak ha nem létezik + for f in config.jsonc config-kitty.jsonc raveos-logo.png raveos-logo.txt; do + if [[ ! -f "${home}/.config/fastfetch/${f}" && -f "${PAYLOAD}/fastfetch/${f}" ]]; then + install -Dm644 "${PAYLOAD}/fastfetch/${f}" "${home}/.config/fastfetch/${f}" + fi + done + + # Burn-my-windows: csak ha nem létezik + if [[ ! -f "${home}/.config/burn-my-windows/profiles/burn-my-windows.conf" && -f "${PAYLOAD}/burn-my-windows/burn-my-windows.conf" ]]; then + install -Dm644 "${PAYLOAD}/burn-my-windows/burn-my-windows.conf" \ + "${home}/.config/burn-my-windows/profiles/burn-my-windows.conf" + fi + + # Mimeapps: csak ha nem létezik + if [[ ! -f "${home}/.config/mimeapps.list" ]]; then + write_mimeapps_defaults "${home}/.config/mimeapps.list" + fi + + ensure_bashrc_hook "${home}/.bashrc" + echo "1" > "${home}/.config/raveos/gnome-migrated" + + # BIZTONSÁGOS JOGBEÁLLÍTÁS: Csak az érintett konfigurációkat chownoljuk, + # SOHA NE a teljes $home mappát! + chown "${uid}:${gid}" "${home}/.config" "${home}/.config/mimeapps.list" 2>/dev/null || true + chown -R "${uid}:${gid}" \ + "${home}/.config/kitty" \ + "${home}/.config/fastfetch" \ + "${home}/.config/burn-my-windows" \ + "${home}/.config/raveos" \ + "${home}/.bashrc" 2>/dev/null || true + +done < /etc/passwd -echo "Telepítés kész." +echo "RaveOS GNOME beállítás sikeresen alkalmazva." diff --git a/raveos-gnome-theme/raveos-gnome-theme-apply.service b/raveos-gnome-theme/raveos-gnome-theme-apply.service index 28d38d5..cbaba1d 100644 --- a/raveos-gnome-theme/raveos-gnome-theme-apply.service +++ b/raveos-gnome-theme/raveos-gnome-theme-apply.service @@ -1,6 +1,5 @@ [Unit] -Description=Apply RaveOS GNOME theme payload -After=local-fs.target +Description=RaveOS GNOME Theme One-Time Initializer Before=display-manager.service ConditionPathExists=!/var/lib/raveos-gnome-theme/.applied @@ -8,6 +7,7 @@ ConditionPathExists=!/var/lib/raveos-gnome-theme/.applied Type=oneshot ExecStart=/usr/lib/raveos-gnome-theme/auto-apply.sh ExecStartPost=/usr/bin/install -Dm644 /dev/null /var/lib/raveos-gnome-theme/.applied +RemainAfterExit=yes [Install] WantedBy=multi-user.target diff --git a/raveos-gnome-theme/raveos-gnome-theme.install b/raveos-gnome-theme/raveos-gnome-theme.install index 58db3fe..a495ea5 100644 --- a/raveos-gnome-theme/raveos-gnome-theme.install +++ b/raveos-gnome-theme/raveos-gnome-theme.install @@ -1,3 +1,12 @@ +_update_system_configs() { + if command -v dconf >/dev/null 2>&1; then + dconf update >/dev/null 2>&1 || true + fi + if command -v glib-compile-schemas >/dev/null 2>&1; then + glib-compile-schemas /usr/share/glib-2.0/schemas >/dev/null 2>&1 || true + fi +} + _enable_apply_service() { if command -v systemctl >/dev/null 2>&1; then systemctl enable raveos-gnome-theme-apply.service >/dev/null 2>&1 || true @@ -5,12 +14,18 @@ _enable_apply_service() { } post_install() { + _update_system_configs _enable_apply_service } post_upgrade() { - # Never rewrite a live GNOME session from inside a pacman transaction. - # The boot service applies the new payload before the display manager starts. - rm -f /var/lib/raveos-gnome-theme/.applied + # Figyelem: post_upgrade esetén NEM töröljük a .applied fájlt, + # mert a rendszerszintű beállítások (00-raveos, gschema) automatikusan frissülnek, + # és nem akarjuk felülírni a meglévő felhasználók egyéni beállításait! + _update_system_configs _enable_apply_service } + +post_remove() { + _update_system_configs +} |