Files
Workstation_Arch_Hyprland/local.yml

254 lines
8.2 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"
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
- pavucontrol
- pipewire
- pipewire-pulse
- pipewire-audio
- pipewire-alsa
- wireplumber
- ufw # Firewall
state: present
- 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' }
- 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: "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: "KEYBINDING SCRIPT :: Opret keybinding cheat sheet script fra template"
become: true
become_user: "{{ username }}"
ansible.builtin.template:
src: "templates/hypr-keys.sh.j2"
dest: "/home/{{ username }}/.local/bin/hypr-keys.sh"
mode: '0755'
- name: "LAUNCHER SCRIPT :: Opret wofi launcher script"
become: true
become_user: "{{ username }}"
ansible.builtin.template:
src: "templates/launch-wofi.sh.j2"
dest: "/home/{{ username }}/.local/bin/launch_wofi.sh"
mode: '0755'
- 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: "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'
# Handlers køres kun hvis en opgave 'notifierer' dem
handlers:
- name: Opdater font cache
ansible.builtin.command: fc-cache -fv
become: true
become_user: "{{ username }}"
changed_when: false