From e8aa6c812fee0a9844b11c5396ad7b790c055ad3084c6083a562ed06b15e0a13 Mon Sep 17 00:00:00 2001 From: Mikkel Harboe Arp Henriksen Date: Fri, 13 Jun 2025 17:57:26 +0000 Subject: [PATCH] Opdaterede README.md --- README.md | 180 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 178 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 5f7e0d3..4b777e4 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,179 @@ -# Workstation_Arch_Hyprland +Arch Linux + Hyprland :: Stargate Atlantis Edition +En Ansible playbook til fuldautomatisk opsætning af en Arch Linux desktop med Hyprland, stylet med et Stargate: Atlantis tema. -Opsætning af mine workstations med Arch linux og hyprland window manager \ No newline at end of file +Playbook'en bruger en ansible-pull tilgang, hvilket betyder, at du kan køre et enkelt script på en ny-installeret Arch-maskine for at udrulle hele skrivebordsmiljøet. + +!http://googleusercontent.com/image_generation_content/1 + +Kernekomponenter +Denne playbook installerer og konfigurerer følgende: + +Window Manager: Hyprland (en dynamisk tiling Wayland compositor) +Terminal: Kitty +Statuslinje: Waybar +Applikations-starter: Wofi +Notifikationer: Mako +Firewall: UFW (med en simpel, sikker standard) +Tema: Et Stargate: Atlantis-inspireret tema med specifikke farver, fonte og baggrundsbillede. +Automatisering: Hele processen drives af et ansible-pull script. +Trin 0: Installation af Arch Linux Basis System +Dette er en forkortet guide. For en komplet og mere detaljeret vejledning, se den officielle Arch Wiki Installation Guide. + +1. Forberedelse +Download den seneste Arch Linux ISO fra den officielle hjemmeside. +Opret et bootbart USB-drev med et værktøj som Rufus eller Etcher. +2. Start og Internetforbindelse +Start computeren fra dit USB-drev. +Forbind til Wi-Fi med iwctl: +Bash + +# Start iwctl +iwctl +# Find din enhed (f.eks. wlan0) +[iwd]# device list +# Scan efter netværk +[iwd]# station wlan0 scan +# Se netværk +[iwd]# station wlan0 get-networks +# Forbind (erstat "SSID" med dit netværksnavn) +[iwd]# station wlan0 connect "SSID" +# Afslut iwctl +[iwd]# exit +# Test forbindelsen +ping archlinux.org +3. Partitionering og Formatering +Identificer din harddisk med lsblk. +Brug fdisk /dev/sdx eller cfdisk /dev/sdx til at oprette mindst to partitioner: +En EFI System Partition (ca. 512MB, type EFI System). +En Root partition (resten af pladsen, type Linux root (x86-64)). +Formater partitionerne: +Bash + +# Erstat sdx1 med din EFI-partition +mkfs.fat -F32 /dev/sdx1 +# Erstat sdx2 med din root-partition +mkfs.ext4 /dev/sdx2 +Monter partitionerne: +Bash + +mount /dev/sdx2 /mnt +mkdir /mnt/boot +mount /dev/sdx1 /mnt/boot +4. Kerneinstallation +Installer basissystemet samt nødvendige værktøjer med pacstrap: +Bash + +pacstrap /mnt base linux linux-firmware networkmanager sudo git +5. Systemkonfiguration +Generer fstab-filen: +Bash + +genfstab -U /mnt >> /mnt/etc/fstab +Gå ind i dit nye system med arch-chroot: +Bash + +arch-chroot /mnt +Sæt tidszone (eksempel for Danmark): +Bash + +ln -sf /usr/share/zoneinfo/Europe/Copenhagen /etc/localtime +hwclock --systohc +Konfigurer sprog (locale): +Åbn /etc/locale.gen og fjern # foran en_US.UTF-8 UTF-8 og da_DK.UTF-8 UTF-8. +Kør locale-gen. +Opret locale.conf: echo "LANG=en_US.UTF-8" > /etc/locale.conf +Sæt værtsnavn: echo "dit-hostname" > /etc/hostname +Sæt root-adgangskode: passwd +6. Bootloader (GRUB) +Bash + +pacman -S grub efibootmgr +grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB +grub-mkconfig -o /boot/grub/grub.cfg +7. Opret Bruger og Sudo +Vigtigt: Denne bruger er den, din Ansible playbook vil konfigurere. + + +Bash + +# Opret brugeren og tilføj til 'wheel'-gruppen +useradd -m -G wheel din-bruger +# Sæt adgangskode for din nye bruger +passwd din-bruger +# Tillad 'wheel'-gruppen at bruge sudo +pacman -S sudo +EDITOR=nano visudo +# Find linjen `%wheel ALL=(ALL:ALL) ALL` og fjern `#` foran den. Gem og afslut. +8. Netværk +Aktiver NetworkManager, så du har internet efter genstart: +Bash + +systemctl enable NetworkManager +9. Afslut og Genstart +Bash + +exit # Forlad chroot +umount -R /mnt +reboot # Husk at fjerne USB-drevet +Dit basissystem er nu klar! + +Trin 1: Installation med Ansible +Efter genstart, log ind som den bruger du lige har oprettet. Følg disse trin for at udrulle skrivebordsmiljøet. + +Giv dig selv root-privilegier. + +Bash + +sudo su +Download installationsscriptet. + +Bash + +curl -O https://raw.githubusercontent.com/dit-brugernavn/dit-repo/main/pull.sh +(Husk at erstatte med din egen repository-URL) + +Gør scriptet kørbart. + +Bash + +chmod +x pull.sh +Opsæt Ansible Vault adgangskode. +Playbook'en bruger Ansible Vault. Du skal levere adgangskoden via en environment variabel. + +Bash + +export ANSIBLE_VAULT_PASSWORD="din-hemmelige-vault-adgangskode" +Kør scriptet med sudo -E. +-E flaget er vigtigt for at bevare den environment variabel, du lige har sat. + +Bash + +sudo -E ./pull.sh +Læn dig tilbage. +Scriptet vil nu køre og installere alt. Dette kan tage 5-15 minutter. + +Genstart. +Når scriptet er færdigt, genstart systemet. + +Bash + +reboot +Log ind som din bruger, skriv Hyprland i terminalen, og dit Stargate: Atlantis skrivebord er klar! + +Konfiguration & Tilpasning +Du kan nemt tilpasse denne opsætning til dine egne behov. + +Brugernavn +Brugernavnet er krypteret i local.yml. For at ændre det skal du bruge ansible-vault. + +Først skal du dekryptere den eksisterende variabel for at se formatet eller blot oprette en ny. +Krypter dit nye brugernavn med følgende kommando og erstat den krypterede streng i local.yml: +Bash + +ansible-vault encrypt_string 'nyt-brugernavn' --name 'vault_username' +Tema og indstillinger +Programindstillinger: Rediger filerne i templates/-mappen (kitty.conf.j2, waybar-config.j2 osv.) for at ændre udseendet. +Baggrundsbillede og fonte: Udskift filerne i files/-mappen. +Installerede pakker: Tilføj eller fjern pakker fra listen i local.yml under opgaven PAKKER :: Installer alle nødvendige pakker.... +Licens +Dette projekt er licenseret under MIT Licensen. Se LICENSE-filen for yderligere detaljer. \ No newline at end of file