summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNippy <nippy@Beller-Mac-mini.lan>2026-09-08 20:36:52 +0200
committerNippy <nippy@Beller-Mac-mini.lan>2026-09-08 20:38:25 +0200
commitadcb52806eb4c778bd97dc7eb01ee43ae5733fd1 (patch)
treed8e54c6a9300c1b4aae91747acbb0869440003c7
parenta9d2aca55e607205bed058d268d37c1fe89095f8 (diff)
downloadRaveOS-PKGBUILD-adcb52806eb4c778bd97dc7eb01ee43ae5733fd1.tar.gz
RaveOS-PKGBUILD-adcb52806eb4c778bd97dc7eb01ee43ae5733fd1.zip
fixed theme and raveswitch abd welcomeapp.HEADmain
-rw-r--r--raveos-app-installer/PKGBUILD2
-rw-r--r--raveos-app-installer/app-list.json40
-rwxr-xr-xraveos-app-installer/data/configs/librewolf/installs.ini4
-rwxr-xr-xraveos-app-installer/data/configs/librewolf/profiles.ini12
-rw-r--r--raveos-app-installer/data/configs/mc/ini17
-rw-r--r--raveos-app-installer/data/configs/update-proton-ge50
-rw-r--r--raveos-app-installer/data/configs/vivaldi/First Run0
-rw-r--r--raveos-app-installer/data/configs/vlc/vlcrc16
-rw-r--r--raveos-cosmic-theme/PKGBUILD9
-rw-r--r--raveos-cosmic-theme/raveos-cosmic-theme.install7
-rw-r--r--raveos-hyprland-theme/PKGBUILD2
-rw-r--r--raveos-hyprland-theme/raveos-hyprland-apply.sh6
-rw-r--r--raveos-hyprland-theme/theme-data/hypr/config/keybinds.lua9
-rw-r--r--raveos-hyprland-theme/theme-data/raveswitch/config.ron2
-rw-r--r--raveos-tools/PKGBUILD2
-rw-r--r--raveos-tools/rave8
-rw-r--r--raveos-welcome/PKGBUILD2
-rw-r--r--raveos-welcome/raveos_welcome.py143
-rw-r--r--raveswitch/PKGBUILD2
19 files changed, 256 insertions, 77 deletions
diff --git a/raveos-app-installer/PKGBUILD b/raveos-app-installer/PKGBUILD
index 7926926..e2e1b5b 100644
--- a/raveos-app-installer/PKGBUILD
+++ b/raveos-app-installer/PKGBUILD
@@ -8,7 +8,7 @@
pkgname=raveos-app-installer
pkgver=3.1
-pkgrel=8
+pkgrel=9
pkgdesc="RaveOS graphical application installer"
arch=('any')
url="https://git.rp1.hu/RaveOS/raveos-app-installer"
diff --git a/raveos-app-installer/app-list.json b/raveos-app-installer/app-list.json
index 46dd5f8..201a3f0 100644
--- a/raveos-app-installer/app-list.json
+++ b/raveos-app-installer/app-list.json
@@ -388,8 +388,16 @@
},
"type": "flatpak-user",
"flatpak_id": "io.gitlab.librewolf-community",
- "config_dir": "librewolf",
- "config_dest": "{HOME}/.var/app/io.gitlab.librewolf-community/.librewolf"
+ "config_mappings": [
+ {
+ "source": "librewolf",
+ "dest": "{HOME}/.var/app/io.gitlab.librewolf-community/.librewolf"
+ },
+ {
+ "source": "librewolf",
+ "dest": "{HOME}/.librewolf"
+ }
+ ]
},
{
"id": "lutris",
@@ -433,7 +441,9 @@
"type": "pacman",
"packages": [
"mc"
- ]
+ ],
+ "config_dir": "mc",
+ "config_dest": "{HOME}/.config/mc"
},
{
"id": "mumble",
@@ -686,11 +696,19 @@
"en": "Vivaldi web browser"
},
"type": "pacman",
- "config_dir": "vivaldi",
- "config_dest": "{HOME}/.config/vivaldi",
"packages": [
"vivaldi",
"vivaldi-ffmpeg-codecs"
+ ],
+ "config_mappings": [
+ {
+ "source": "vivaldi",
+ "dest": "{HOME}/.config/vivaldi"
+ },
+ {
+ "source": "vivaldi",
+ "dest": "{HOME}/.var/app/com.vivaldi.Vivaldi/config/vivaldi"
+ }
]
},
{
@@ -702,7 +720,17 @@
"en": "VLC Media Player (Flatpak)"
},
"type": "flatpak-user",
- "flatpak_id": "org.videolan.VLC"
+ "flatpak_id": "org.videolan.VLC",
+ "config_mappings": [
+ {
+ "source": "vlc",
+ "dest": "{HOME}/.var/app/org.videolan.VLC/config/vlc"
+ },
+ {
+ "source": "vlc",
+ "dest": "{HOME}/.config/vlc"
+ }
+ ]
},
{
"id": "vulkan-radeon",
diff --git a/raveos-app-installer/data/configs/librewolf/installs.ini b/raveos-app-installer/data/configs/librewolf/installs.ini
deleted file mode 100755
index 5c27df7..0000000
--- a/raveos-app-installer/data/configs/librewolf/installs.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[AA67A15BF0F93AE3]
-Default=07bi09lg.default-default
-Locked=1
-
diff --git a/raveos-app-installer/data/configs/librewolf/profiles.ini b/raveos-app-installer/data/configs/librewolf/profiles.ini
index b24579a..5e6d773 100755
--- a/raveos-app-installer/data/configs/librewolf/profiles.ini
+++ b/raveos-app-installer/data/configs/librewolf/profiles.ini
@@ -1,19 +1,11 @@
-[InstallAA67A15BF0F93AE3]
-Default=07bi09lg.default-default
-Locked=1
-
-[Profile1]
-Name=default
-IsRelative=1
-Path=0qzvjlj8.default
-Default=1
-
[Profile0]
Name=default-default
IsRelative=1
Path=07bi09lg.default-default
+Default=1
[General]
StartWithLastProfile=1
Version=2
+
diff --git a/raveos-app-installer/data/configs/mc/ini b/raveos-app-installer/data/configs/mc/ini
new file mode 100644
index 0000000..db5e60f
--- /dev/null
+++ b/raveos-app-installer/data/configs/mc/ini
@@ -0,0 +1,17 @@
+[Midnight-Commander]
+skin=modarin256
+use_internal_view=true
+use_internal_edit=true
+auto_menu=false
+confirm_delete=true
+confirm_overwrite=true
+navigate_with_arrows=true
+
+[Layout]
+message_visible=true
+keybar_visible=true
+xterm_title=true
+command_prompt=true
+
+[Panels]
+show_mini_info=true
diff --git a/raveos-app-installer/data/configs/update-proton-ge b/raveos-app-installer/data/configs/update-proton-ge
index c117af2..7362593 100644
--- a/raveos-app-installer/data/configs/update-proton-ge
+++ b/raveos-app-installer/data/configs/update-proton-ge
@@ -1,37 +1,41 @@
-#!/bin/sh
+#!/usr/bin/env bash
# Stop on error
-set -e
+set -euo pipefail
# Constants
-REPO=https://github.com/GloriousEggroll/proton-ge-custom
-LATEST_RELEASE_URL=$REPO/releases/latest
-PROTON_DIR=~/.local/share/Steam/compatibilitytools.d
+REPO="https://github.com/GloriousEggroll/proton-ge-custom"
+LATEST_RELEASE_URL="${REPO}/releases/latest"
+PROTON_DIR="${HOME}/.local/share/Steam/compatibilitytools.d"
+mkdir -p "$PROTON_DIR"
# Find latest version tag
-release_url=$(curl -Ls -o /dev/null -w %{url_effective} $LATEST_RELEASE_URL)
-version=${release_url##*/}
-echo Found latest version: $version
+release_url=$(curl -Ls -o /dev/null -w "%{url_effective}" "$LATEST_RELEASE_URL")
+version="${release_url##*/}"
+echo "Found latest version: ${version}"
-# Determine download URL and install path
-download_url=https://github.com/GloriousEggroll/proton-ge-custom/releases/download/$version/$version.tar.gz
-install_dir=$PROTON_DIR/$version
-download_file=/tmp/$version.tar.gz
+# Determine download URL (try -x86_64.tar.gz first, fallback to .tar.gz)
+download_url="https://github.com/GloriousEggroll/proton-ge-custom/releases/download/${version}/${version}-x86_64.tar.gz"
+if ! curl -sfI "$download_url" >/dev/null 2>&1; then
+ download_url="https://github.com/GloriousEggroll/proton-ge-custom/releases/download/${version}/${version}.tar.gz"
+fi
+
+install_dir="${PROTON_DIR}/${version}"
+download_file="/tmp/${version}.tar.gz"
# Exit if already installed
-if [ -d $install_dir ]; then
- echo Already installed at: $install_dir
- exit
+if [ -d "$install_dir" ]; then
+ echo "Already installed at: ${install_dir}"
+ exit 0
fi
-echo Downloading...
-wget -q --show-progress $download_url -O $download_file
+echo "Downloading from: ${download_url}"
+wget -q --show-progress "$download_url" -O "$download_file"
-echo Extracting...
-mkdir -p $PROTON_DIR
-tar -xzf $download_file --directory $PROTON_DIR
+echo "Extracting to ${PROTON_DIR}..."
+tar -xzf "$download_file" --directory "$PROTON_DIR"
-echo Cleanup...
-rm $download_file
+echo "Cleanup..."
+rm -f "$download_file"
-echo Installation complete, at: $install_dir
+echo "Installation complete at: ${install_dir}"
diff --git a/raveos-app-installer/data/configs/vivaldi/First Run b/raveos-app-installer/data/configs/vivaldi/First Run
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/raveos-app-installer/data/configs/vivaldi/First Run
diff --git a/raveos-app-installer/data/configs/vlc/vlcrc b/raveos-app-installer/data/configs/vlc/vlcrc
new file mode 100644
index 0000000..bcc724d
--- /dev/null
+++ b/raveos-app-installer/data/configs/vlc/vlcrc
@@ -0,0 +1,16 @@
+###
+### RaveOS VLC Configuration (Dark mode default)
+###
+
+[qt]
+# Use Fusion style with dark palette
+qt-style=Fusion
+qt-dark=1
+qt-privacy-ask=0
+qt-notification=0
+qt-fs-controller=1
+
+[core]
+# Privacy: don't ask for metadata or network updates
+metadata-network-access=0
+qt-privacy-ask=0
diff --git a/raveos-cosmic-theme/PKGBUILD b/raveos-cosmic-theme/PKGBUILD
index c1a76e2..877e9a5 100644
--- a/raveos-cosmic-theme/PKGBUILD
+++ b/raveos-cosmic-theme/PKGBUILD
@@ -2,7 +2,7 @@
pkgname=raveos-cosmic-theme
pkgver=1.0.0
-pkgrel=1
+pkgrel=2
pkgdesc="RaveOS Cosmic theme payload and installer"
arch=('any')
url="https://raveos.local"
@@ -23,18 +23,11 @@ SRCPKGDEST="${startdir}/build"
LOGDEST="${startdir}/build"
package() {
- install -dm755 "${pkgdir}/usr/share/backgrounds/raveos"
- install -Dm644 "${startdir}/theme-data/background" \
- "${pkgdir}/usr/share/backgrounds/raveos/raveos-main-bg.jpeg"
-
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"
- install -Dm755 "${startdir}/theme-data/profile.d/raveos-fastfetch.sh" \
- "${pkgdir}/etc/profile.d/raveos-fastfetch.sh"
-
install -dm755 "${pkgdir}/usr/share/raveos/cosmic-theme"
cp -r --no-preserve=ownership "${startdir}/theme-data" \
"${pkgdir}/usr/share/raveos/cosmic-theme/"
diff --git a/raveos-cosmic-theme/raveos-cosmic-theme.install b/raveos-cosmic-theme/raveos-cosmic-theme.install
index c022d33..963e9b8 100644
--- a/raveos-cosmic-theme/raveos-cosmic-theme.install
+++ b/raveos-cosmic-theme/raveos-cosmic-theme.install
@@ -1,4 +1,11 @@
_enable_apply_service() {
+ local payload="/usr/share/raveos/cosmic-theme/theme-data"
+ if [ -f "${payload}/background" ]; then
+ install -Dm644 "${payload}/background" /usr/share/backgrounds/raveos/raveos-main-bg.jpeg 2>/dev/null || true
+ fi
+ if [ -f "${payload}/profile.d/raveos-fastfetch.sh" ]; then
+ install -Dm755 "${payload}/profile.d/raveos-fastfetch.sh" /etc/profile.d/raveos-fastfetch.sh 2>/dev/null || true
+ fi
if command -v systemctl >/dev/null 2>&1; then
systemctl enable raveos-cosmic-theme-apply.service >/dev/null 2>&1 || true
fi
diff --git a/raveos-hyprland-theme/PKGBUILD b/raveos-hyprland-theme/PKGBUILD
index a9310cc..0166557 100644
--- a/raveos-hyprland-theme/PKGBUILD
+++ b/raveos-hyprland-theme/PKGBUILD
@@ -2,7 +2,7 @@
pkgname=raveos-hyprland-theme
pkgver=1.0.0
-pkgrel=1
+pkgrel=2
pkgdesc="RaveOS Hyprland theme payload and installer"
arch=('any')
url="https://raveos.local"
diff --git a/raveos-hyprland-theme/raveos-hyprland-apply.sh b/raveos-hyprland-theme/raveos-hyprland-apply.sh
index 6d7ab85..abd61f7 100644
--- a/raveos-hyprland-theme/raveos-hyprland-apply.sh
+++ b/raveos-hyprland-theme/raveos-hyprland-apply.sh
@@ -242,6 +242,10 @@ while IFS=: read -r user _ uid gid _ home shell; do
cp -rf "${PAYLOAD}/hypr/." "${home}/.config/hypr/"
rm -f "${home}/.config/hypr/hyprland.conf"
set_hypr_keyboard "${home}/.config/hypr/hyprland.lua"
+ elif [[ -f "${home}/.config/hypr/config/keybinds.lua" && -f "${PAYLOAD}/hypr/config/keybinds.lua" ]]; then
+ if grep -q 'SUPER + TAB' "${home}/.config/hypr/config/keybinds.lua" 2>/dev/null; then
+ install -Dm644 "${PAYLOAD}/hypr/config/keybinds.lua" "${home}/.config/hypr/config/keybinds.lua"
+ fi
fi
# hyprpaper konfig
@@ -307,6 +311,8 @@ SEOF
# RaveSwitch
if [[ ! -f "${home}/.config/raveswitch/config.ron" && -f "${PAYLOAD}/raveswitch/config.ron" ]]; then
install -Dm644 "${PAYLOAD}/raveswitch/config.ron" "${home}/.config/raveswitch/config.ron"
+ elif [[ -f "${home}/.config/raveswitch/config.ron" ]]; then
+ sed -i 's/modifier: "Super"/modifier: "Alt"/' "${home}/.config/raveswitch/config.ron" 2>/dev/null || true
fi
# Flatpak global override
diff --git a/raveos-hyprland-theme/theme-data/hypr/config/keybinds.lua b/raveos-hyprland-theme/theme-data/hypr/config/keybinds.lua
index 62c734e..a072f88 100644
--- a/raveos-hyprland-theme/theme-data/hypr/config/keybinds.lua
+++ b/raveos-hyprland-theme/theme-data/hypr/config/keybinds.lua
@@ -12,7 +12,8 @@ for i = 1, 10 do
end
-- Shell Binds
-hl.bind("SUPER + SUPER_L", hl.dsp.exec_cmd("dms ipc call spotlight toggle"), { release = true })
+hl.bind(mainMod .. "_L", function() end, { ignore_mods = true, transparent = true })
+hl.bind(mainMod .. "_L", hl.dsp.exec_cmd("dms ipc call spotlight toggle"), { ignore_mods = true, release = true })
hl.bind(mainMod .. " + P", hl.dsp.exec_cmd("dms ipc call clipboard toggle"))
hl.bind(mainMod .. " + M", hl.dsp.exec_cmd("dms ipc call processlist toggle"))
hl.bind(mainMod .. " + SHIFT + N", hl.dsp.exec_cmd("dms ipc call notifications toggle"))
@@ -20,8 +21,9 @@ hl.bind(mainMod .. " + N", hl.dsp.exec_cmd("dms ipc call notepad toggle"
hl.bind(mainMod .. " + S", hl.dsp.exec_cmd("dms ipc call settings toggle"))
hl.bind(mainMod .. " + Y", hl.dsp.exec_cmd("dms ipc call dankdash wallpaper"))
--- RaveSwitch
-hl.bind("SUPER + TAB", hl.dsp.exec_cmd([[raveswitch socat '{"OpenSwitch":{"reverse":false}}']]))
+-- RaveSwitch (Alt + Tab)
+hl.bind("ALT + TAB", hl.dsp.exec_cmd([[raveswitch socat '{"OpenSwitch":{"reverse":false}}']]))
+hl.bind("ALT + SHIFT + Tab", hl.dsp.exec_cmd([[raveswitch socat '{"OpenSwitch":{"reverse":true}}']]))
-- Apps
hl.bind(secondMod .. " + T", hl.dsp.exec_cmd("kitty"))
@@ -37,7 +39,6 @@ hl.bind("CTRL + SUPER + End", hl.dsp.exec_cmd("poweroff"))
-- Window management
hl.bind(mainMod .. " + Q", hl.dsp.window.kill())
hl.bind(mainMod .. " + V", hl.dsp.window.float())
-hl.bind(mainMod .. " + SHIFT + Tab", hl.dsp.exec_cmd([[raveswitch socat '{"OpenSwitch":{"reverse":true}}']]))
-- Move focus with mainMod + arrow keys
hl.bind(mainMod .. " + left", hl.dsp.focus({ direction = "left" }))
diff --git a/raveos-hyprland-theme/theme-data/raveswitch/config.ron b/raveos-hyprland-theme/theme-data/raveswitch/config.ron
index 272265e..72bdd16 100644
--- a/raveos-hyprland-theme/theme-data/raveswitch/config.ron
+++ b/raveos-hyprland-theme/theme-data/raveswitch/config.ron
@@ -2,7 +2,7 @@
(
version: 4,
windows: (
- switch: Some(modifier: "Super", key: "Tab", filter_by: [current_monitor], switch_workspaces: false, exclude_workspaces: "", kill_key: 'q'),
+ switch: Some(modifier: "Alt", key: "Tab", filter_by: [current_monitor], switch_workspaces: false, exclude_workspaces: "", kill_key: 'q'),
),
behavior: (
close_on_mod_release: true,
diff --git a/raveos-tools/PKGBUILD b/raveos-tools/PKGBUILD
index 0885edf..ac01bb6 100644
--- a/raveos-tools/PKGBUILD
+++ b/raveos-tools/PKGBUILD
@@ -1,7 +1,7 @@
# Maintainer: nippy <nippy@tuta.io>
pkgname=raveos-tools
pkgver=1.0.0
-pkgrel=7
+pkgrel=8
arch=('any')
url="https://git.rp1.hu/RaveOS/RaveOS-PKGBUILD"
license=('custom')
diff --git a/raveos-tools/rave b/raveos-tools/rave
index 4d8c1ca..df25685 100644
--- a/raveos-tools/rave
+++ b/raveos-tools/rave
@@ -41,7 +41,13 @@ case ${1,,} in
sudo pacman -Sy
;;
upgrade)
- sudo pacman -Syu --noconfirm
+ if [ -f /etc/pacman.d/chaotic-mirrorlist.pacnew ]; then
+ sudo mv /etc/pacman.d/chaotic-mirrorlist.pacnew /etc/pacman.d/chaotic-mirrorlist
+ fi
+ if [ -f /etc/pacman.d/mirrorlist.pacnew ]; then
+ sudo mv /etc/pacman.d/mirrorlist.pacnew /etc/pacman.d/mirrorlist
+ fi
+ sudo pacman -Syu --noconfirm --overwrite "/etc/profile.d/*,/usr/share/backgrounds/raveos/*"
sudo pacman -Rns $(pacman -Qtdq 2>/dev/null) --noconfirm 2>/dev/null || true
sudo pacman -Sc --noconfirm
flatpak update -y
diff --git a/raveos-welcome/PKGBUILD b/raveos-welcome/PKGBUILD
index 1449d1b..bd3c6ed 100644
--- a/raveos-welcome/PKGBUILD
+++ b/raveos-welcome/PKGBUILD
@@ -1,7 +1,7 @@
# Maintainer: nippy <nippy@tuta.io>
pkgname=raveos-welcome
pkgver=2.2.2
-pkgrel=3
+pkgrel=4
pkgdesc="RaveOS Welcome Application and Safe GPU Performance Optimizer"
arch=('x86_64')
url="https://git.rp1.hu/RaveOS/RaveOS-PKGBUILD"
diff --git a/raveos-welcome/raveos_welcome.py b/raveos-welcome/raveos_welcome.py
index ec1e2a8..7d1d9e6 100644
--- a/raveos-welcome/raveos_welcome.py
+++ b/raveos-welcome/raveos_welcome.py
@@ -1436,18 +1436,133 @@ class HyprlandPage(QWidget):
# ─── GPU Detection ────────────────────────────────────────────────────────────
-def _detect_gpu() -> str:
+def _detect_gpu() -> tuple[str, str]:
+ gpu_type = "other"
+ labels = []
+ has_nvidia = False
+ has_amd = False
+ has_intel = False
+
try:
out = subprocess.check_output(
- ["lspci"], stderr=subprocess.DEVNULL
- ).decode().lower()
- if "amd" in out or "radeon" in out:
- return "amd"
- if "nvidia" in out:
- return "nvidia"
+ ["lspci", "-v"], stderr=subprocess.DEVNULL
+ ).decode()
+
+ current_block = []
+ gpu_blocks = []
+ for line in out.splitlines():
+ if line and not line.startswith(("\t", " ")):
+ if current_block:
+ first = current_block[0]
+ if any(k in first for k in ("VGA compatible controller", "3D controller", "Display controller")):
+ gpu_blocks.append(current_block)
+ current_block = [line]
+ else:
+ current_block.append(line)
+ if current_block:
+ first = current_block[0]
+ if any(k in first for k in ("VGA compatible controller", "3D controller", "Display controller")):
+ gpu_blocks.append(current_block)
+
+ import re
+ for block in gpu_blocks:
+ header = block[0]
+ subsystem = ""
+ for sub in block[1:]:
+ if "Subsystem:" in sub:
+ subsystem = sub.split("Subsystem:", 1)[1].strip()
+ break
+
+ lower_header = header.lower()
+ lower_sub = subsystem.lower()
+
+ model_info = header.split(":", 2)[-1].strip()
+ if " (rev " in model_info:
+ model_info = model_info.split(" (rev ")[0].strip()
+
+ vendor_brand = ""
+ if "evga" in lower_sub or "evga" in lower_header:
+ vendor_brand = "EVGA"
+ elif "asus" in lower_sub or "asustek" in lower_sub:
+ vendor_brand = "ASUS"
+ elif "msi" in lower_sub or "micro-star" in lower_sub:
+ vendor_brand = "MSI"
+ elif "gigabyte" in lower_sub:
+ vendor_brand = "Gigabyte"
+ elif "sapphire" in lower_sub:
+ vendor_brand = "Sapphire"
+ elif "powercolor" in lower_sub:
+ vendor_brand = "PowerColor"
+ elif "xfx" in lower_sub:
+ vendor_brand = "XFX"
+ elif "zotac" in lower_sub:
+ vendor_brand = "Zotac"
+
+ clean_name = model_info
+ for rep in ("Advanced Micro Devices, Inc. [AMD/ATI]", "Advanced Micro Devices, Inc.", "AMD/ATI"):
+ clean_name = clean_name.replace(rep, "AMD").strip()
+ for rep in ("NVIDIA Corporation", "Nvidia Corporation"):
+ clean_name = clean_name.replace(rep, "Nvidia").strip()
+ for rep in ("Intel Corporation",):
+ clean_name = clean_name.replace(rep, "Intel").strip()
+
+ bracket_match = re.search(r'\[(.*?)\]', clean_name)
+ if bracket_match:
+ extracted = bracket_match.group(1)
+ prefix = ""
+ if "nvidia" in lower_header and "geforce" not in extracted.lower():
+ prefix = "Nvidia "
+ elif "amd" in lower_header and "radeon" not in extracted.lower():
+ prefix = "AMD "
+ elif "intel" in lower_header and "intel" not in extracted.lower():
+ prefix = "Intel "
+ clean_name = f"{prefix}{extracted}"
+
+ if "intel" in lower_header:
+ has_intel = True
+ if "igpu" not in clean_name.lower() and "arc" not in clean_name.lower():
+ clean_name += " (iGPU)"
+ elif "nvidia" in lower_header:
+ has_nvidia = True
+ elif "amd" in lower_header or "radeon" in lower_header:
+ has_amd = True
+
+ if vendor_brand and vendor_brand.lower() not in clean_name.lower():
+ clean_name += f" ({vendor_brand})"
+
+ labels.append(clean_name)
+
except Exception:
pass
- return "other"
+
+ if not labels:
+ try:
+ out = subprocess.check_output(
+ ["lspci"], stderr=subprocess.DEVNULL
+ ).decode().lower()
+ if "nvidia" in out:
+ has_nvidia = True
+ labels.append("Nvidia")
+ if "amd" in out or "radeon" in out:
+ has_amd = True
+ labels.append("AMD")
+ if "intel" in out:
+ has_intel = True
+ labels.append("Intel (iGPU)")
+ except Exception:
+ pass
+
+ if has_nvidia:
+ gpu_type = "nvidia"
+ elif has_amd:
+ gpu_type = "amd"
+ elif has_intel:
+ gpu_type = "intel"
+ else:
+ gpu_type = "other"
+
+ gpu_label = " + ".join(labels) if labels else "Ismeretlen"
+ return gpu_type, gpu_label
# ─── Page 3: Optimize ──────────────────────────────────────────────────────────
@@ -1481,7 +1596,7 @@ QCheckBox:disabled {{
class OptimizePage(QWidget):
def __init__(self):
super().__init__()
- self._gpu = _detect_gpu()
+ self._gpu_type, self._gpu_label = _detect_gpu()
self._checks = {}
self._hints = {}
self._proc = None
@@ -1504,8 +1619,7 @@ class OptimizePage(QWidget):
vlay.setSpacing(4)
# --- Gaming optimization ---
- gpu_name = {"amd": "AMD", "nvidia": "Nvidia"}.get(self._gpu, "Ismeretlen")
- self.sec1 = QLabel(_t("opt_gaming", gpu=gpu_name))
+ self.sec1 = QLabel(_t("opt_gaming", gpu=self._gpu_label))
self.sec1.setObjectName("section_title")
vlay.addWidget(self.sec1)
vlay.addSpacing(4)
@@ -1524,14 +1638,14 @@ class OptimizePage(QWidget):
self._amd_checks = {}
self._nvidia_checks = {}
- if self._gpu == "nvidia":
+ if self._gpu_type == "nvidia":
cb = self._add_check(vlay,
"nvidia_perf", _t("opt_nvidia_perf"),
_t("opt_nvidia_perf_desc"),
default=True)
self._nvidia_checks["nvidia_perf"] = ("opt_nvidia_perf", "opt_nvidia_perf_desc", cb)
- if self._gpu == "amd":
+ if self._gpu_type == "amd":
amd_opts = [
("gpu_profile", "opt_gpu_profile", "opt_gpu_profile_desc"),
("amd_overdrive", "opt_amd_overdrive", "opt_amd_overdrive_desc"),
@@ -1563,8 +1677,7 @@ class OptimizePage(QWidget):
lay.addWidget(self.apply_btn, alignment=Qt.AlignmentFlag.AlignRight)
def retranslate(self):
- gpu_name = {"amd": "AMD", "nvidia": "Nvidia"}.get(self._gpu, "Ismeretlen")
- self.sec1.setText(_t("opt_gaming", gpu=gpu_name))
+ self.sec1.setText(_t("opt_gaming", gpu=self._gpu_label))
self.apply_btn.setText(_t("opt_apply"))
for key, (lk, dk, cb) in self._common_checks.items():
cb.setText(_t(lk))
diff --git a/raveswitch/PKGBUILD b/raveswitch/PKGBUILD
index 60bb631..93a5d54 100644
--- a/raveswitch/PKGBUILD
+++ b/raveswitch/PKGBUILD
@@ -1,7 +1,7 @@
# Maintainer: nippy <nippy@tuta.io>
pkgname=raveswitch
pkgver=0.4.1
-pkgrel=5
+pkgrel=6
pkgdesc="A modern GTK4-based window switcher and application launcher for Hyprland"
arch=('x86_64' 'aarch64')
conflicts=('hyprshell')