hyprwm / Hyprland

Hyprland is an independent, highly customizable, dynamic tiling Wayland compositor that doesn't sacrifice on its looks.
https://hyprland.org
BSD 3-Clause "New" or "Revised" License
21.52k stars 900 forks source link

qt6 apps not using kvantum theme. #7730

Closed joelmathewthomas closed 2 months ago

joelmathewthomas commented 2 months ago

Already reported ? *

Regression?

Yes

System Info and Version

System/Version info ```sh Hyprland, built from branch main at commit c67b257e51133a2aaeec050fc4d283e2eaea6375 (build: Set cmake_minimum_required to version 3.30 (7709)). Date: Tue Sep 10 15:36:37 2024 Tag: v0.43.0-11-gc67b257e, commits: 5207 flags: (if any) System Information: System name: Linux Node name: void Release: 6.10.9-arch1-1 Version: #1 SMP PREEMPT_DYNAMIC Mon, 09 Sep 2024 02:38:45 +0000 GPU information: 01:00.0 VGA compatible controller [0300]: NVIDIA Corporation AD107M [GeForce RTX 4050 Max-Q / Mobile] [10de:28e1] (rev a1) (prog-if 00 [VGA controller]) 35:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Rembrandt [Radeon 680M] [1002:1681] (rev 0a) (prog-if 00 [VGA controller]) os-release: NAME="Arch Linux" PRETTY_NAME="Arch Linux" ID=arch BUILD_ID=rolling ANSI_COLOR="38;2;23;147;209" HOME_URL="https://archlinux.org/" DOCUMENTATION_URL="https://wiki.archlinux.org/" SUPPORT_URL="https://bbs.archlinux.org/" BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues" PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/" LOGO=archlinux-logo plugins: ======Config-Start====== Config File: /home/joel/.config/hypr/hyprland.conf: Read Succeeded # _ _ _ _ # | | | |_ _ _ __ _ __| | __ _ _ __ __| | # | |_| | | | | '_ \| '__| |/ _` | '_ \ / _` | # | _ | |_| | |_) | | | | (_| | | | | (_| | # |_| |_|\__, | .__/|_| |_|\__,_|_| |_|\__,_| # |___/|_| # # ----------------------------------------------------- # ----------------------------------------------------- # Monitor # ----------------------------------------------------- source = ~/.config/hypr/conf/monitor.conf # ----------------------------------------------------- # Autostart # ----------------------------------------------------- source = ~/.config/hypr/conf/autostart.conf # ----------------------------------------------------- # Backlight # ----------------------------------------------------- source = ~/.config/hypr/conf/backlight.conf # Set programs that you use $terminal = kitty # If using dolphin #$fileManager = dolphin --platformtheme qt6ct $fileManager = thunar $menu = rofi --show drun # Some default env vars. env = XCURSOR_THEME,Bibata-Modern-Classic env = XCURSOR_SIZE,20 env = QT_QPA_PLATFORMTHEME,qt6ct # change to qt6ct if you have that env = QT_QPA_PLATFORM,wayland env = GDK_BACKEND,wayland,x11,* env = QT_QPA_PLATFORM,wayland;xcb env = SDL_VIDEODRIVER,wayland env = CLUTTER_BACKEND,wayland env = XDG_CURRENT_DESKTOP,Hyprland env = XDG_SESSION_TYPE,wayland env = XDG_SESSION_DESKTOP,Hyprland env = QT_AUTO_SCREEN_SCALE_FACTOR,1 env = HYPRCURSOR_THEME,Bibata-Modern-Classic env = HYPRCURSOR_SIZE,20 # For all categories, see https://wiki.hyprland.org/Configuring/Variables/ input { kb_layout = us kb_variant = kb_model = kb_options = kb_rules = follow_mouse = 1 touchpad { natural_scroll = yes disable_while_typing = true middle_button_emulation = true } sensitivity = 0.25 # -1.0 to 1.0, 0 means no modification. numlock_by_default = true accel_profile = adaptive } general { # See https://wiki.hyprland.org/Configuring/Variables/ for more gaps_in = 2 gaps_out = 5 border_size = 1 col.active_border = rgba(33ccffee) col.inactive_border = rgba(595959aa) layout = dwindle # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on allow_tearing = true } decoration { # See https://wiki.hyprland.org/Configuring/Variables/ for more rounding = 7 blur { enabled = true size = 5 passes = 2 xray = 1 new_optimizations = true noise = 0 popups = true ignore_opacity = true } drop_shadow = yes shadow_range = 4 shadow_render_power = 3 col.shadow = rgba(1a1a1aee) } animations { enabled = yes # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more bezier = myBezier, 0.05, 0.9, 0.1, 1.05 bezier = overshot,0.05,0.9,0,1.05 bezier = easeinoutcirc,0.85, 0, 0.15, 1 bezier = easeinoutquad,0.11, 0, 0.5, 0 animation = windows, 1, 7, overshot animation = windowsOut, 1, 7, default, popin 0% animation = border, 1, 10, default animation = borderangle, 1, 8, default animation = fade, 1, 7, default animation = workspaces, 1, 4, default, slide } dwindle { # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below preserve_split = yes # you probably want this } master { # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more new_status = master } gestures { # See https://wiki.hyprland.org/Configuring/Variables/ for more workspace_swipe = on workspace_swipe_fingers = 3 workspace_swipe_distance = 300 } misc { # See https://wiki.hyprland.org/Configuring/Variables/ for more force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers disable_hyprland_logo = true allow_session_lock_restore = true } # Example per-device config # See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more device { name = epic-mouse-v1 sensitivity = -0.5 } opengl { force_introspection = true } # Example windowrule v1 # windowrule = float, ^(kitty)$ # Example windowrule v2 # windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more windowrulev2 = suppressevent maximize, class:.* # You'll probably like this. windowrulev2 = opacity 0.85,class:^(nemo) windowrulev2 = opacity 0.90,class:^(Code) windowrule = opacity 0.90, ^(Spotify)$ windowrule = opacity 0.85, ^(dev.alextren.Spot)$ windowrule = opacity 0.85, ^(thunar)$ windowrule = opacity 0.90, ^(org.qbittorrent.qBittorrent)$ layerrule = blur, rofi layerrule = blur, waybar layerrule = xray[0], rofi # See https://wiki.hyprland.org/Configuring/Keywords/ for more $mainMod = SUPER # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more bind = $mainMod, Q, exec, $terminal bind = $mainMod, C, killactive, bind = $mainMod, M, exit, bind = $mainMod, E, exec, $fileManager bind = $mainMod, V, togglefloating, bind = $mainMod, R, exec, $menu bind = $mainMod, P, pseudo, # dwindle bind = $mainMod, J, togglesplit, # dwindle bind = $mainMod, B, exec, firefox bind = $mainMod SHIFT, B, exec, firefox --private-window bind = ALT, F, exec, protonvpn-cli c -f bind = ALT, R, exec, protonvpn-cli c -r bind = ALT, D, exec, protonvpn-cli d bind = , Print, exec, grim -g "$(slurp -d)" "$HOME/Pictures/grim/$(date +'%Y_%m_%d_%H_%M_%S').png" bind = ALT , Print, exec, grim -t jpeg -q 100 -g "$(slurp -d)" "$HOME/Pictures/grim/$(date +'%Y_%m_%d_%H_%M_%S').jpeg" bind = $mainMod , Print ,exec, grim -g "$(slurp -d)" -| wl-copy # Move focus with mainMod + arrow keys bind = $mainMod, left, movefocus, l bind = $mainMod, right, movefocus, r bind = ALT, Tab, cyclenext, bind = ALT, Tab, bringactivetotop, bind = $mainMod, up, movefocus, u bind = $mainMod, down, movefocus, d bind = $mainMod, F, fullscreen, 1 bind = $mainMod SHIFT, F, fullscreen, 0 bind = $mainMod CTRL, F, fullscreenstate, 0 2 bind = $mainMod, L, exec, hyprlock bind = CTRL ALT, S , exec, systemctl suspend # Switch workspaces with mainMod + [0-9] bind = $mainMod, A, workspace, 1 bind = $mainMod, S, workspace, 2 bind = $mainMod, Z, workspace, 3 bind = $mainMod, X, workspace, 4 bind = $mainMod, 5, workspace, 5 bind = $mainMod, 6, workspace, 6 bind = $mainMod, 7, workspace, 7 bind = $mainMod, 8, workspace, 8 bind = $mainMod, 9, workspace, 9 bind = $mainMod, 0, workspace, 10 # Move active window to a workspace with mainMod + SHIFT + [0-9] bind = $mainMod SHIFT, A, movetoworkspace, 1 bind = $mainMod SHIFT, S, movetoworkspace, 2 bind = $mainMod SHIFT, Z, movetoworkspace, 3 bind = $mainMod SHIFT, X, movetoworkspace, 4 bind = $mainMod SHIFT, 5, movetoworkspace, 5 bind = $mainMod SHIFT, 6, movetoworkspace, 6 bind = $mainMod SHIFT, 7, movetoworkspace, 7 bind = $mainMod SHIFT, 8, movetoworkspace, 8 bind = $mainMod SHIFT, 9, movetoworkspace, 9 bind = $mainMod SHIFT, 0, movetoworkspace, 10 # Example special workspace (scratchpad) bind = $mainMod, T, togglespecialworkspace, magic bind = $mainMod SHIFT, T, movetoworkspace, special:magic # Scroll through existing workspaces with mainMod + scroll bind = $mainMod, mouse_down, workspace, e+1 bind = $mainMod, mouse_up, workspace, e-1 # Move/resize windows with mainMod + LMB/RMB and dragging bindm = $mainMod, mouse:272, movewindow bindm = $mainMod, mouse:273, resizewindow # Media Key binds # Example volume button that allows press and hold, volume limited to 150% bindel=, XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+ # Example volume button that will activate even while an input inhibitor is active bindel=, XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- # Play/Pause/Seek bind = ,XF86AudioPlay, exec, playerctl play-pause bindl=, XF86AudioNext, exec, playerctl next bindl=, XF86AudioPrev, exec, playerctl previous # Mute bindl=, XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle # rofi # Start rofi opens rofi on first press, closes it on second bindr=SUPER, SUPER_L, exec, pkill rofi || rofi -show drun bind = SUPER, U, exec, rofi -show filebrowser # Fan control bind = CTRL ALT, L, exec, nbfc set -f 0 1 -s 30 bind = CTRL ALT, M, exec, nbfc set -f 0 1 -s 100 bind = CTRL ALT, P, exec, nbfc set -f 0 1 -a # Lid Switch bindl=,switch:Lid Switch, exec, systemctl suspend # Gamemode bind = WIN, F1, exec, ~/.config/hypr/gamemode.sh # Debug #debug{ # overlay = true #} # Game Rules # steam windowrulev2 = fullscreen,class:^steam_app\d+$ windowrulev2 = monitor 1,class:^steam_app_\d+$ windowrulev2 = workspace 10,class:^steam_app_\d+$ # cyberpunk windowrulev2 = fullscreen,class:(cyberpunk2077.exe) windowrulev2 = monitor 1,class:(cyberpunk2077.exe) windowrulev2 = workspace 10,class:(cyberpunk2077.exe) # hollowknight windowrulev2 = fullscreen,class:(hollow_knight.exe) windowrulev2 = monitor 1,class:(hollow_knight.exe) windowrulev2 = workspace 10,class:(hollow_knight.exe) workspace = 10, border:false, rounding:false,gapsin:0,gapsout:0,shadow:false,rounding:false,decorare:false,on-created-empty:bash ~/.config/hypr/gamemode.sh Config File: /home/joel/.config/hypr/conf/monitor.conf: Read Succeeded source = ~/.config/hypr/conf/monitors/default.conf Config File: /home/joel/.config/hypr/conf/monitors/default.conf: Read Succeeded # ----------------------------------------------------- # Monitor Setup # name: "Default" # ----------------------------------------------------- monitor=,preferred,auto,1 Config File: /home/joel/.config/hypr/conf/autostart.conf: Read Succeeded # ----------------------------------------------------- # Autostart # ----------------------------------------------------- # Start Polkit exec-once=/usr/lib/polkit-kde-authentication-agent-1 # Load Swaync Notification Manager exec-once = swaync # Using hypridle to start hyprlock exec-once = hypridle # Load hyprpaper exec-once = hyprpaper # Load waybar exec-once = waybar # Load network manager applet # START NM APPLET exec-once = nm-applet --indicator # Start gnome-keyring exec-once = gnome-keyring # Load cliphist history exec-once = wl-paste --type text --watch cliphist store #Stores only text data exec-once = wl-paste --type image --watch cliphist store #Stores only image data exec-once = wl-clip-persist --clipboard both --write-timeout 1000 # Set XCURSOR exec-once = gsettings set org.gnome.desktop.interface cursor-theme 'Bibata-Modern-Classic' #set Hyprcursor exec-once = hyprctl setcursor Bibata-Modern-Classic 20 # Start bleuman-applet exec-once = blueman-applet Config File: /home/joel/.config/hypr/conf/backlight.conf: Read Succeeded source = ~/.config/hypr/conf/backlight/amd.conf Config File: /home/joel/.config/hypr/conf/backlight/amd.conf: Read Succeeded # Backlight for amd bindel = , XF86MonBrightnessUp, exec, brightnessctl -d amdgpu_bl1 set +5% bindel = , XF86MonBrightnessDown, exec, brightnessctl -d amdgpu_bl1 set 5%- ======Config-End======== ```

Description

Qt6 apps like dolphin, okular, etc., are not following kvantum themes. It used to work properly before. But even after trying out a previous commit, which used to work , I'm still having the same issue.

As you can see, the environment variable is set correctly

echo $QT_QPA_PLATFORMTHEME
qt6ct

image Even kvantum manager and qt6ct settings can display the theme properly.

But not apps like , dolphin , gwenview, okular..

image

How to reproduce

Try to use kvantum themes.

Crash reports, logs, images, videos

No response

joelmathewthomas commented 2 months ago

Please tell me if I have to add more logs, I don't know what else to add.

11xx commented 2 months ago

This seems like a Qt environment issue. I'd recommend installing plasma-workspace and using QT_QPA_PLATFORMTHEME=kde instead. That way you can apply Kv* themes using the plasma-apply-colorscheme tool.

joelmathewthomas commented 2 months ago

This seems like a Qt environment issue. I'd recommend installing plasma-workspace and using QT_QPA_PLATFORMTHEME=kde instead. That way you can apply Kv* themes using the plasma-apply-colorscheme tool.

Sure, that fixes the color scheme. But the window still has no transparency or blur.

image

Also, I can't change other settings now.

This used to work properly with just qt6ct

11xx commented 2 months ago

oops sorry only kvantum has that. Then make sure you're using QT_STYLE_OVERRIDE=kvantum with QT_QPA_PLATFORMTHEME=qt5ct (or qt6ct)? I tried and it's working, though I couldn't get blur on dolphin either but i don't really understand the settings :p (using the fluent round theme)

edit: well blur is working on pcmanfm-qt but its qt5 right

screen

joelmathewthomas commented 2 months ago

oops sorry only kvantum has that. Then make sure you're using QT_STYLE_OVERRIDE=kvantum with QT_QPA_PLATFORMTHEME=qt5ct (or qt6ct)? I tried and it's working, though I couldn't get blur on dolphin either but i don't really understand the settings :p (using the fluent round theme)

edit: well blur is working on pcmanfm-qt but its qt5 right

screen

This also worked, without having to use your previous suggestion. Still no blur or transparency. Point is , it used to work fine before.

Gigas002 commented 2 months ago

I have the similar problem, most part of kde apps, like dolphin, are themed properly, but some, e.g. System Monitor, are not, though all these look correct on kde session. I'm also having some minor icons issues (e.g. dolphin icon in path is not themed, while all the other icons are themed, and that not happen on a kde session once again), but not sure it has any link to a current issue

joelmathewthomas commented 2 months ago

I have the similar problem, most part of kde apps, like dolphin, are themed properly, but some, e.g. System Monitor, are not, though all these look correct on kde session. I'm also having some minor icons issues (e.g. dolphin icon in path is not themed, while all the other icons are themed, and that not happen on a kde session once again), but not sure it has any link to a current issue

Could you try updating everything to see if you have this problem

11xx commented 2 months ago

Update to latest -git, and I also had to change the plasma application style in plasma-open-settings > Colors & Themes > Application Style then select either kvantum-dark or qt6ct

(QT_QPA_PLATFORMTHEME wasn't even necessary anymore) seems fine now:

screen

joelmathewthomas commented 2 months ago

Can you share your kvantum theme. I'll check and let you know

11xx commented 2 months ago

Can you share your kvantum theme. I'll check and let you know

https://store.kde.org/p/1499836

joelmathewthomas commented 2 months ago

Can you share your kvantum theme. I'll check and let you know

https://store.kde.org/p/1499836

I tried , it still does not work.

Trying to open plasma settings, just gives, me another error.

image

Thing is even qt6ct settings , follows the kvantum theme, properly, also with blur .

Surprisingly enough, I can run plasma-apply-colorscheme Kvantum and it's set's the color theme , yet like before , no transparency. image

vaxerski commented 2 months ago

this is not a hyprland issue, hyprland doesnt manage your themes

joelmathewthomas commented 2 months ago

this is not a hyprland issue, hyprland doesnt manage your themes

Sorry mb. Do you have any suggestions on how I can fix it?

vaxerski commented 1 month ago

nope, it works for me just fine

joelmathewthomas commented 1 month ago

nope, it works for me just fine

In that case can you tell me how you set kvantum themes.

What I've been doing so far , is setting QT_QPA_PLATFORMTHEME to qt6ct and in qt6ct settings set style to kvantum.

vaxerski commented 1 month ago

that should be sufficient

joelmathewthomas commented 1 month ago

that should be sufficient

On a fresh arch install, manually built and installed Hyprland. The qt6ct configuration doesn't work properly likenit used to. The only other way to get it themed properly is to set QT_QPA_PLATFORMTHEME to kde and use plasma systemsettings to set application style to kvantum. Feels like a qt6ct problem.

11xx commented 1 month ago

Feels like a qt6ct problem.

After testing with qt6ct, lxqt-config and kvantum alone, unfortunatelly that seems to be the case. tldr Qt is KDE's land lol 😿

plasma-workspace pulls quite a lot of dependencies for just theming but that's the state of specially the latest Qt6.

The only independent-from-Plasma "Qt configuration utility", as kvantum refers to it is qt[5,6]ct, and the latest Qt apps are going towards integration with the kde/plasma ecosystem, or in the case of dolphin it is meant for plasma anyway.

See https://github.com/tsujan/Kvantum/issues/111#issuecomment-273452015 https://github.com/tsujan/Kvantum/discussions/975#discussioncomment-9158552

Also even Fedora dropped their "platformtheme" projects QGnomePlatform and adwaita-qt.

joelmathewthomas commented 1 month ago

Feels like a qt6ct problem.

After testing with qt6ct, lxqt-config and kvantum alone, unfortunatelly that seems to be the case. tldr Qt is KDE's land lol 😿

plasma-workspace pulls quite a lot of dependencies for just theming but that's the state of specially the latest Qt6.

The only independent-from-Plasma "Qt configuration utility", as kvantum refers to it is qt[5,6]ct, and the latest Qt apps are going towards integration with the kde/plasma ecosystem, or in the case of dolphin it is meant for plasma anyway.

See https://github.com/tsujan/Kvantum/issues/111#issuecomment-273452015 https://github.com/tsujan/Kvantum/discussions/975#discussioncomment-9158552

Also even Fedora dropped their "platformtheme" projects QGnomePlatform and adwaita-qt.

So you're saying , you're also able to reproduce the issue?

And if that's the case, where could I possibly raise an issue?