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/Thunar"
|
||||||
- "{{ user_home }}/.config/rofi"
|
- "{{ 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
|
- name: Enable gnome-keyring PAM auth hook
|
||||||
ansible.builtin.lineinfile:
|
ansible.builtin.lineinfile:
|
||||||
path: /etc/pam.d/login
|
path: /etc/pam.d/login
|
||||||
@@ -49,6 +96,14 @@
|
|||||||
loop_control:
|
loop_control:
|
||||||
label: "{{ item.dest }}"
|
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
|
- name: Copy host-specific dotfiles
|
||||||
tags: [dotfiles, dotfiles:desktop, dotfiles:host]
|
tags: [dotfiles, dotfiles:desktop, dotfiles:host]
|
||||||
ansible.builtin.copy:
|
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