mirror of
https://github.com/fscotto/infra.git
synced 2026-05-30 15:39:58 +00:00
Add NVIDIA hybrid graphics configuration for nymph (PRIME offload, GRUB params, power management, prime-run wrapper)
This commit is contained in:
@@ -16,6 +16,53 @@
|
||||
- "{{ user_home }}/.config/Thunar"
|
||||
- "{{ user_home }}/.config/rofi"
|
||||
|
||||
- name: Configure GRUB kernel parameters for NVIDIA hybrid graphics
|
||||
tags: [packages, nvidia]
|
||||
ansible.builtin.lineinfile:
|
||||
path: /etc/default/grub
|
||||
regexp: '^GRUB_CMDLINE_LINUX='
|
||||
line: 'GRUB_CMDLINE_LINUX="rd.luks.uuid=1e15d159-5d05-4a1f-9639-ac200dff9f9c rootflags=subvol=@ apparmor=1 security=apparmor nouveau.modeset=0 nvidia-drm.modeset=1"'
|
||||
state: present
|
||||
when: ansible_facts['hostname'] == 'nymph'
|
||||
|
||||
- name: Regenerate GRUB configuration
|
||||
tags: [packages, nvidia]
|
||||
ansible.builtin.command: grub-mkconfig -o /boot/grub/grub.cfg
|
||||
changed_when: true
|
||||
when: ansible_facts['hostname'] == 'nymph'
|
||||
|
||||
- name: Configure NVIDIA power management for hybrid graphics
|
||||
tags: [packages, nvidia]
|
||||
ansible.builtin.copy:
|
||||
dest: /etc/modprobe.d/nvidia-power-management.conf
|
||||
content: |
|
||||
options nvidia "NVreg_DynamicPowerManagement=0x02"
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0644"
|
||||
when: ansible_facts['hostname'] == 'nymph'
|
||||
|
||||
- name: Ensure user local bin directory exists
|
||||
tags: [nvidia, dotfiles, dotfiles:host]
|
||||
ansible.builtin.file:
|
||||
path: "{{ user_home }}/.local/bin"
|
||||
state: directory
|
||||
owner: "{{ username }}"
|
||||
group: "{{ user_group }}"
|
||||
mode: "0755"
|
||||
when: ansible_facts['hostname'] == 'nymph'
|
||||
|
||||
- name: Install prime-run wrapper script for NVIDIA PRIME offload
|
||||
tags: [nvidia, dotfiles, dotfiles:host]
|
||||
ansible.builtin.copy:
|
||||
src: "{{ playbook_dir }}/../dotfiles/nymph/.local/bin/prime-run"
|
||||
dest: "{{ user_home }}/.local/bin/prime-run"
|
||||
owner: "{{ username }}"
|
||||
group: "{{ user_group }}"
|
||||
mode: "0755"
|
||||
force: false
|
||||
when: ansible_facts['hostname'] == 'nymph'
|
||||
|
||||
- name: Enable gnome-keyring PAM auth hook
|
||||
ansible.builtin.lineinfile:
|
||||
path: /etc/pam.d/login
|
||||
@@ -49,6 +96,14 @@
|
||||
loop_control:
|
||||
label: "{{ item.dest }}"
|
||||
|
||||
- name: Wrap alacritty with prime-run for NVIDIA PRIME offload
|
||||
tags: [nvidia, dotfiles, dotfiles:desktop, dotfiles:host]
|
||||
ansible.builtin.lineinfile:
|
||||
path: "{{ user_home }}/.config/i3/config"
|
||||
regexp: '^bindsym \$mod\+Return exec --no-startup-id /usr/bin/alacritty'
|
||||
line: 'bindsym $mod+Return exec --no-startup-id ~/.local/bin/prime-run /usr/bin/alacritty'
|
||||
when: ansible_facts['hostname'] == 'nymph'
|
||||
|
||||
- name: Copy host-specific dotfiles
|
||||
tags: [dotfiles, dotfiles:desktop, dotfiles:host]
|
||||
ansible.builtin.copy:
|
||||
|
||||
5
dotfiles/nymph/.local/bin/prime-run
Normal file
5
dotfiles/nymph/.local/bin/prime-run
Normal file
@@ -0,0 +1,5 @@
|
||||
#!/bin/sh
|
||||
# Wrapper to launch applications with NVIDIA PRIME offload
|
||||
export __NV_PRIME_RENDER_OFFLOAD=1
|
||||
export __GLX_VENDOR_LIBRARY_NAME=nvidia
|
||||
exec "$@"
|
||||
Reference in New Issue
Block a user