Skip to content

Hyprland uses nvidia card even when told not to #83

Open
@zeptic99

Description

Already reported ? *

  • I have searched the existing open and closed issues.

Regression?

No

System Info and Version

System/Version info
Hyprland, built from branch  at commit 0f594732b063a90d44df8c5d402d658f27471dfe  (props: bump version to 0.43.0).
Date: Sun Sep 8 16:48:21 2024
Tag: v0.43.0, commits: 5196

flags: (if any)


System Information:
System name: Linux
Node name: ZeTieX
Release: 6.10.9-273linux-tkg-custom-zeptic
Version: hyprwm/Hyprland#1 SMP PREEMPT_DYNAMIC TKG Wed, 11 Sep 2024 12:07:09 +0000


GPU information: 
07:00.0 VGA compatible controller [0300]: Intel Corporation DG2 [Arc A380] [8086:56a5] (rev 05) (prog-if 00 [VGA controller])
0d:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA102 [GeForce RTX 3080] [10de:2206] (rev a1) (prog-if 00 [VGA controller])
NVRM version: NVIDIA UNIX x86_64 Kernel Module  560.35.03  Fri Aug 16 21:39:15 UTC 2024


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:
  csgo-vulkan-fix by Vaxry ver 1.2

======Config-Start======


Config File: /home/zeptic/.config/hypr/hyprland.conf: Read Succeeded
env = AQ_DRM_DEVICES,$HOME/.config/hypr/card

monitor=DP-2,1920x1080@240,auto,auto
monitor=DP-6,1920x1080@240,auto,auto
monitor=DP-3,3840x2160@60,auto,auto
monitor=HDMI-A-2,disable

workspace = 1, monitor:DP-2
workspace = 2, monitor:DP-2
workspace = 3, monitor:DP-2
workspace = 4, monitor:DP-2
workspace = 11, monitor:DP-3
workspace = 12, monitor:DP-3
workspace = 13, monitor:DP-3

# unscale XWayland
xwayland {
  force_zero_scaling = true
}

# toolkit-specific scale
env = GDK_SCALE,1
env = XCURSOR_SIZE,32

###################
### MY PROGRAMS ###
###################

$terminal = alacritty
$fileManager = dolphin
$menu = rofi -modi drun -show drun -show-icons -width 22 -no-click-to-exit 

#################
### AUTOSTART ###
#################

exec-once = waybar & sunshine
exec-once = hyprpm reload -n
exec-once = [workspace 2 silent] alacritty -e nvim
exec-once = [workspace 1 silent] alacritty -e bash -c "fastfetch && zsh"
exec-once = [workspace 3 silent] firefox 
exec-once = sleep 0.1 && hyprctl dispatch workspace 3 && hyprctl dispatch workspace 11 && hyprctl dispatch workspace 2
exec-once = hyprpaper 

#############################
### ENVIRONMENT VARIABLES ###
#############################

env = XCURSOR_SIZE,24
env = HYPRCURSOR_SIZE,24

#####################
### LOOK AND FEEL ###
#####################

general { 
    gaps_in = 0
    gaps_out = 0

    border_size = 1

    # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
    col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
    col.inactive_border = rgba(595959aa)

    # Set to true enable resizing windows by clicking and dragging on borders and gaps
    resize_on_border = false 

    # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
    allow_tearing = true

    layout = dwindle
}

# https://wiki.hyprland.org/Configuring/Variables/#decoration
decoration {
    rounding = 0

    # Change transparency of focused and unfocused windows
    active_opacity = 1.0
    inactive_opacity = 1.0

    drop_shadow = true
    shadow_range = 4
    shadow_render_power = 3
    col.shadow = rgba(1a1a1aee)

    # https://wiki.hyprland.org/Configuring/Variables/#blur
    blur {
        enabled = true
        size = 3
        passes = 1
        
        vibrancy = 0.1696
    }
}

# https://wiki.hyprland.org/Configuring/Variables/#animations
animations {
    enabled = false

    # Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more

    bezier = myBezier, 0.05, 0.9, 0.1, 1.05

    animation = windows, 1, 7, myBezier
    animation = windowsOut, 1, 7, default, popin 80%
    animation = border, 1, 10, default
    animation = borderangle, 1, 8, default
    animation = fade, 1, 7, default
    animation = workspaces, 1, 6, default
}

# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
dwindle {
    pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
    preserve_split = true # You probably want this
}

# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
#master {
#    new_is_master = true
#}

# https://wiki.hyprland.org/Configuring/Variables/#misc
misc { 
    force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers
    disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :(
}


#############
### INPUT ###
#############

# https://wiki.hyprland.org/Configuring/Variables/#input
input {
    kb_layout = us
    kb_variant =
    kb_model =
    kb_options =
    kb_rules =

    follow_mouse = 1

    sensitivity = 0 # -1.0 - 1.0, 0 means no modification.

    force_no_accel = true

    touchpad {
        natural_scroll = false
    }
}

# https://wiki.hyprland.org/Configuring/Variables/#gestures
gestures {
    workspace_swipe = false
}

# 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
    
}


####################
### KEYBINDINGSS ###
####################

# See https://wiki.hyprland.org/Configuring/Keywords/
$mainMod = SUPER # Sets "Windows" key as main modifier

# 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, A, exec, $menu
#bind = $mainMod, P, pseudo, # dwindle
#bind = $mainMod, J, togglesplit, # dwindle
bind = $mainMod, Y, exec, python /home/zeptic/rofi-lutris/rofi-lutris
bind = CTRL ALT, S, exec, sh /home/zeptic/zeptittyconf/vimAnywhere-hyprland/copyToClipboardHook.sh
bind = CTRL ALT, V, exec, sh /home/zeptic/zeptittyconf/vimAnywhere-hyprland/run.sh

# Move focus with mainMod + arrow keys
bind = $mainMod, left, movefocus, l
bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d

# Switch workspaces with mainMod + [0-9]
bind = $mainMod, S, workspace, 1
bind = $mainMod, D, workspace, 2
bind = $mainMod, F, workspace, 3
bind = $mainMod, G, workspace, 4
bind = $mainMod, W, workspace, 11
bind = $mainMod, E, workspace, 12
bind = $mainMod, R, workspace, 13

bind = $mainMod, T, exec, grim -g "$(slurp -d)" - | wl-copy

bind = $mainMod, X, fullscreen 
bind = $mainMod, Z, fullscreenstate, 2 0 
bind = $mainMod, B, fullscreenstate, 0 2 

bind = $mainMod, M, exec, [workspace 4] alacritty -e sh /home/zeptic/zeptittyconf/.dotfiles/.desktopScripts/startGamescope.sh
bind = $mainMod, N, exec, [workspace 11] alacritty -e sh steam

bind = $mainMod SHIFT, A, pin
 
# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, S, movetoworkspace, 1
bind = $mainMod SHIFT, D, movetoworkspace, 2
bind = $mainMod SHIFT, F, movetoworkspace, 3
bind = $mainMod SHIFT, G, movetoworkspace, 4
bind = $mainMod SHIFT, W, movetoworkspace, 11
bind = $mainMod SHIFT, E, movetoworkspace, 12
bind = $mainMod SHIFT, R, movetoworkspace, 13

# Example special workspace (scratchpad)
#bind = $mainMod, S, togglespecialworkspace, magic
#bind = $mainMod SHIFT, S, 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


##############################
### WINDOWS AND WORKSPACES ###
##############################

  windowrulev2 = float, title:^(Save File)$  #save file context menu (float)
	windowrulev2 = size 800 480, title:^(Save File)$  #save file context menu (size)
	windowrulev2 = opaque, title:^(Save File)$  #save file context menu (opaque)
	#windowrulev2 = float, pin, title:^(Picture-in-Picture)$  #PIP for firefox/forks (float)
	windowrulev2 = pin, title:^(Picture-in-Picture)$  #PIP for firefox/forks (float)

  
	windowrulev2 = float,class:(clipse)  #clipse (float)
	windowrulev2 = size 622 652,class:(clipse)  #clipse (size)

  windowrulev2 = float,class:^(org.gnome.Calculator)$
  windowrulev2 = size 500 650,class:^(org.gnome.Calculator)$
	windowrulev2 = size 1280 720, class:^(rquickshare)$   
  windowrulev2 = float, class:^(rquickshare)$ 
  windowrulev2 = float, title:^(Picture in picture)$  #PIP (float)
  windowrulev2 = float, class:^(xfce-polkit)$  #authentication popups (float)
  windowrulev2 = float, class:^(xdg-desktop-portal-gtk)$
  windowrulev2 = float,class:^(qt5ct)$
  windowrulev2 = float,class:^(org.pulseaudio.pavucontrol)$
  windowrulev2 = float,class:^(blueman-manager)$
 
  windowrulev2 = opacity 0.9,class:^(org.pwmt.zathura)$

# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules

# Example windowrule v1
# windowrule = float, ^(kitty)$

# Example windowrule v2
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$

#windowrulev2 = suppressevent maximize, class:.* # You'll probably like this.


plugin {
    csgo-vulkan-fix {
        res_w = 1080
        res_h = 1080

        # NOT a regex! This is a string and has to exactly match initial_class
        class = SDL Application
    }
}

======Config-End========

Description

Even when I have, in my config

env = AQ_DRM_DEVICES,$HOME/.config/hypr/card

Which is a link to my Intel GPU (a380), Hyprland binds to the nvidia kernel module when started from tty (or display server). Using nvtop, without the line in my config says that process "Hyprland" is using my nvidia GPU, which is to be expected.
With the line in my config, it does not say any process is using the nvidia driver, however the output of the command sudo lsof /dev/nvidia* nets:

COMMAND   PID   USER  FD   TYPE  DEVICE SIZE/OFF NODE NAME
Hyprland 1062 zeptic 237u   CHR 195,255      0t0 1122 /dev/nvidiactl
Hyprland 1062 zeptic 238u   CHR   195,0      0t0 1124 /dev/nvidia0
Hyprland 1062 zeptic 239u   CHR   195,0      0t0 1124 /dev/nvidia0
  • Indicating that Hyprland is somehow still using the nvidia kernel modules.

When I start a virtual machine with the nvidia GPU passed through to it BEFORE starting Hyprland, Hyprland does not bind to nvidia as it would be impossible. I am however able to unbind the GPU from the VM and able to use the GPU on linux afterwards, and Hyprland does not bind to it.

How to reproduce

Start Hyprland with nvidia kernel modules binded to the GPU.

Crash reports, logs, images, videos

No response

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions