316 lines
10 KiB
YAML
316 lines
10 KiB
YAML
---
|
|
- name: "Konfigurer Stargate: Atlantis Hyprland Desktop"
|
|
hosts: localhost
|
|
connection: local
|
|
become: true # De fleste opgaver kræver root
|
|
|
|
# Definer variabler for at gøre playbook'en genbrugelig
|
|
vars:
|
|
vault_username: !vault |
|
|
$ANSIBLE_VAULT;1.1;AES256
|
|
61396435643466353531373139343364613266303130323533306461316333313631363130373465
|
|
6632663034376535663566353661366132656539326566320a323734313061303131623962303339
|
|
66333664613636653362316133666561353039623961393930346661613064306234326161343030
|
|
3335353266393066320a336233366636633566363566613866613263303362656464353166346237
|
|
3236
|
|
|
|
username: "{{ vault_username }}" # ERSTAT med det brugernavn du oprettede i Arch-installationen.
|
|
# Hvis du ikke har brug for at kryptere dit brugernavn kan du skrive det direkte i her.
|
|
aur_helper: "yay" # Vi bruger yay til AUR pakker
|
|
|
|
tasks:
|
|
- name: "SYSTEM :: Opdater systemet"
|
|
community.general.pacman:
|
|
update_cache: true
|
|
upgrade: true
|
|
|
|
- name: "SYSTEM :: Installer AUR helper ({{ aur_helper }})"
|
|
block:
|
|
- name: "Installer base-devel og git"
|
|
community.general.pacman:
|
|
name:
|
|
- base-devel
|
|
- git
|
|
state: present
|
|
|
|
- name: "Klon, byg og installer {{ aur_helper }}"
|
|
become: true
|
|
become_user: "{{ username }}"
|
|
ansible.builtin.shell: |
|
|
cd /tmp
|
|
git clone https://aur.archlinux.org/{{ aur_helper }}.git
|
|
cd {{ aur_helper }}
|
|
makepkg -si --noconfirm
|
|
args:
|
|
creates: "/usr/bin/{{ aur_helper }}"
|
|
|
|
- name: "PAKKER :: Installer alle nødvendige pakker fra Pacman og AUR"
|
|
become: true
|
|
become_user: "{{ username }}"
|
|
kewlfft.aur.aur:
|
|
use: "{{ aur_helper }}"
|
|
name:
|
|
# Hyprland og Wayland
|
|
- hyprland
|
|
- xdg-desktop-portal-hyprland
|
|
- kitty # Terminal
|
|
- waybar # Statuslinje
|
|
- wofi # App starter
|
|
- mako # Notifikationer
|
|
- swaybg # Baggrund
|
|
- polkit-kde-agent
|
|
- qt5-wayland
|
|
- qt6-wayland
|
|
# Skrifttyper & Tema
|
|
- ttf-font-awesome
|
|
- ttf-jetbrains-mono-nerd
|
|
- noto-fonts
|
|
# Værktøjer
|
|
- grim # Screenshot værktøj
|
|
- slurp # Område-vælger til screenshots
|
|
- network-manager-applet # Til Waybar tray
|
|
- hyprpaper
|
|
- sddm # Login Manager
|
|
- firefox # Browser
|
|
- flatpak
|
|
- vscodium # Udviklings editor
|
|
- papyrus-icon-theme # Ikon tema til wofi drun
|
|
- thunar
|
|
- thunar-volman
|
|
- tumbler
|
|
- gvfs
|
|
- ranger
|
|
- less
|
|
- sof-firmware
|
|
- pavucontrol
|
|
- pipewire
|
|
- pipewire-pulse
|
|
- pipewire-audio
|
|
- pipewire-alsa
|
|
- wireplumber
|
|
- alsa-utils
|
|
- neofetch
|
|
- swayidle
|
|
- swaylock-effects
|
|
- iptables-nft
|
|
- sddm-sugar-candy-git
|
|
- ufw # Firewall
|
|
state: present
|
|
|
|
- name: "KEYBINDING SCRIPT :: Opret .local/bin mappe til brugerdefinerede scripts"
|
|
become: true
|
|
become_user: "{{ username }}"
|
|
ansible.builtin.file:
|
|
path: "/home/{{ username }}/.local/bin"
|
|
state: directory
|
|
mode: '0755'
|
|
|
|
- name: "BRUGER :: Opret konfigurationsmapper"
|
|
become: true
|
|
become_user: "{{ username }}"
|
|
ansible.builtin.file:
|
|
path: "/home/{{ username }}/.config/{{ item }}"
|
|
state: directory
|
|
mode: '0755'
|
|
loop:
|
|
- hypr
|
|
- kitty
|
|
- waybar
|
|
- mako
|
|
- wofi
|
|
|
|
- name: "DOTFILES :: Kopier skabeloner til brugerens .config"
|
|
become: true
|
|
become_user: "{{ username }}"
|
|
ansible.builtin.template:
|
|
src: "templates/{{ item.src }}"
|
|
dest: "/home/{{ username }}/.config/{{ item.dest }}"
|
|
mode: '0644'
|
|
loop:
|
|
- { src: 'hyprland.conf.j2', dest: 'hypr/hyprland.conf' }
|
|
- { src: 'kitty.conf.j2', dest: 'kitty/kitty.conf' }
|
|
- { src: 'waybar-config.j2', dest: 'waybar/config' }
|
|
- { src: 'waybar-style.css.j2', dest: 'waybar/style.css' }
|
|
- { src: 'wofi-config.j2', dest: 'wofi/config' }
|
|
- { src: 'wofi-style.css.j2', dest: 'wofi/style.css' }
|
|
- { src: 'wofi-config-network.j2', dest: 'wofi/config-network'}
|
|
|
|
- name: "SCRIPTS :: Kopier og gør brugerdefinerede scripts eksekverbare"
|
|
become: true
|
|
become_user: "{{ username }}"
|
|
ansible.builtin.template:
|
|
src: "templates/{{ item.src }}"
|
|
dest: "/home/{{ username }}/.local/bin/{{ item.dest }}"
|
|
mode: '0755' # Bemærk: '755' gør dem eksekverbare
|
|
loop:
|
|
- { src: 'hypr-keys.sh.j2', dest: 'hypr-keys.sh' }
|
|
- { src: 'launch-wofi.sh.j2', dest: 'launch_wofi.sh' }
|
|
- { src: 'launch-wifi-menu.sh.j2', dest: 'launch-wifi-menu.sh' }
|
|
- { src: 'lock-screen.sh.j2', dest: 'lock-screen.sh' }
|
|
|
|
- name: "TEMA :: Installer Atlantis skrifttype"
|
|
ansible.builtin.copy:
|
|
src: "files/fonts/"
|
|
dest: "/home/{{ username }}/.local/share/fonts/"
|
|
mode: '0644'
|
|
notify: Opdater font cache
|
|
|
|
- name: "BRUGER :: Opret Pictures-mappen"
|
|
become: true
|
|
become_user: "{{ username }}"
|
|
ansible.builtin.file:
|
|
path: "/home/{{ username }}/Pictures"
|
|
state: directory
|
|
mode: '0755'
|
|
|
|
- name: "TEMA :: Kopier Atlantis baggrundsbillede"
|
|
become: true
|
|
become_user: "{{ username }}"
|
|
ansible.builtin.copy:
|
|
src: "files/wallpapers/atlantis_wallpaper.jpg"
|
|
dest: "/home/{{ username }}/Pictures/atlantis-wallpaper.jpg"
|
|
mode: '0644'
|
|
|
|
- name: "TEMA :: Kopier Atlantis baggrundsbillede"
|
|
become: true
|
|
become_user: "{{ username }}"
|
|
ansible.builtin.copy:
|
|
src: "files/wallpapers/atlantis_spaceship.jpg"
|
|
dest: "/home/{{ username }}/Pictures/atlantis-spaceship.jpg"
|
|
mode: '0644'
|
|
|
|
- name: "TEMA :: Kopier hyprpaper konfiguration"
|
|
become: true
|
|
become_user: "{{ username }}"
|
|
ansible.builtin.template:
|
|
src: "templates/hyprpaper.conf.j2"
|
|
dest: "/home/{{ username }}/.config/hypr/hyprpaper.conf"
|
|
mode: '0644'
|
|
|
|
- name: "STYLING :: Opret mappe til SDDM-konfiguration"
|
|
become: true
|
|
ansible.builtin.file:
|
|
path: /etc/sddm.conf.d
|
|
state: directory
|
|
mode: '0755'
|
|
|
|
- name: "STYLING :: Konfigurer SDDM til at bruge Sugar Candy temaet"
|
|
become: true
|
|
ansible.builtin.copy:
|
|
dest: /etc/sddm.conf.d/theme.conf
|
|
content: |
|
|
[Theme]
|
|
Current=sugar-candy
|
|
mode: '0644'
|
|
|
|
- name: "FIREWALL :: Konfigurer UFW's standardpolitikker"
|
|
tags: firewall
|
|
block:
|
|
- name: "Sæt standard for indgående trafik til 'deny'"
|
|
community.general.ufw:
|
|
policy: deny
|
|
direction: incoming
|
|
|
|
- name: "Sæt standard for udgående trafik til 'allow'"
|
|
community.general.ufw:
|
|
policy: allow
|
|
direction: outgoing
|
|
|
|
# Hvis du har brug for ssh så tilføj følgende regel og tilføj OpenSSH til installations listen
|
|
# - name: "FIREWALL :: Tillad SSH-forbindelser (vigtigt for fjernadgang)"
|
|
# community.general.ufw:
|
|
# rule: allow
|
|
# name: OpenSSH # Bruger UFW's applikationsprofil for SSH
|
|
# tags: firewall
|
|
|
|
- name: "FLATPAK :: Installer LibreOffice"
|
|
become: true
|
|
become_user: "{{ username }}"
|
|
community.general.flatpak:
|
|
name: org.libreoffice.LibreOffice
|
|
state: present
|
|
|
|
- name: "SHELL :: Tilføj neofetch til .bashrc for automatisk kørsel"
|
|
become: true
|
|
become_user: "{{ username }}"
|
|
ansible.builtin.blockinfile:
|
|
path: "/home/{{ username }}/.bashrc"
|
|
create: true # Opretter .bashrc filen, hvis den ikke findes
|
|
owner: "{{ username }}"
|
|
group: "{{ username }}"
|
|
mode: '0644'
|
|
marker: "# {mark} ANSIBLE MANAGED BLOCK - NEOFETCH"
|
|
block: |
|
|
# Kør neofetch når en ny interaktiv terminal åbnes
|
|
# Tjekker om 'neofetch' kommandoen eksisterer først
|
|
if command -v neofetch &> /dev/null
|
|
then
|
|
neofetch
|
|
fi
|
|
|
|
- name: "FIREWALL :: Aktiver og start UFW service"
|
|
community.general.ufw:
|
|
state: enabled # Dette aktiverer firewallen, så den starter ved boot
|
|
tags: firewall
|
|
|
|
- name: "SERVICES :: Aktiver NetworkManager"
|
|
ansible.builtin.systemd:
|
|
name: NetworkManager
|
|
enabled: true
|
|
state: started
|
|
|
|
- name: "SERVICES :: Aktiver Display Manager (SDDM)"
|
|
ansible.builtin.systemd:
|
|
name: sddm.service
|
|
enabled: true
|
|
|
|
- name: "STYLING :: Opret GTK3 konfigurationsmappe"
|
|
become: true
|
|
become_user: "{{ username }}"
|
|
ansible.builtin.file:
|
|
path: "/home/{{ username }}/.config/gtk-3.0"
|
|
state: directory
|
|
mode: '0755'
|
|
|
|
- name: "STYLING :: Sæt GTK-tema og Papirus som standard ikon-tema"
|
|
become: true
|
|
become_user: "{{ username }}"
|
|
ansible.builtin.copy:
|
|
dest: "/home/{{ username }}/.config/gtk-3.0/settings.ini"
|
|
content: |
|
|
[Settings]
|
|
gtk-theme-name=Adwaita
|
|
gtk-icon-theme-name=Papirus
|
|
gtk-font-name=JetBrains Mono 11
|
|
gtk-cursor-theme-name=Adwaita
|
|
mode: '0644'
|
|
|
|
- name: "HARDWARE :: Detekter om systemet har Intel GPU"
|
|
become: true
|
|
ansible.builtin.shell: "lspci | grep -i 'VGA' | grep -i 'Intel'"
|
|
register: intel_gpu_check
|
|
changed_when: false
|
|
failed_when: false
|
|
|
|
- name: "KERNEL :: Deaktiver Panel Self Refresh (kun for Intel GPU)"
|
|
become: true
|
|
ansible.builtin.lineinfile:
|
|
path: /etc/default/grub
|
|
regexp: '^(GRUB_CMDLINE_LINUX_DEFAULT="((?!i915\.enable_psr=0).)*?)"$'
|
|
line: '\1 i915.enable_psr=0"'
|
|
backrefs: yes
|
|
notify: Regenerate GRUB config
|
|
when: intel_gpu_check.rc == 0
|
|
|
|
# Handlers køres kun hvis en opgave 'notifierer' dem
|
|
handlers:
|
|
- name: Regenerate GRUB config
|
|
become: true
|
|
ansible.builtin.command: grub-mkconfig -o /boot/grub/grub.cfg
|
|
|
|
- name: Opdater font cache
|
|
ansible.builtin.command: fc-cache -fv
|
|
become: true
|
|
become_user: "{{ username }}"
|
|
changed_when: false
|