Compare commits

...

16 Commits

13 changed files with 209 additions and 12 deletions

52
_machines/hades.yml Normal file
View File

@@ -0,0 +1,52 @@
font_size: 11
cpu: intel
users:
- name: hannes
vt: 1
firefox_profiles:
default:
extensions:
- ublock-origin
- passff
- privacy-badger17
- tree-style-tab
- i-dont-care-about-cookies
- floccus
manage_css: true
mail: hannes@hkoerber.de
ssh_agent: false
gpg_agent: true
gpg_agent_for_ssh: true
gpg_key:
email: hannes@hkoerber.de
id: "0xB5C002530C6A2053"
fingerprint: "973AE48D71B76735C4712B5BB5C002530C6A2053"
environment:
MACHINE_HAS_NEXTCLOUD: "true"
screen:
1: DisplayPort-0
2: DisplayPort-0
3: DisplayPort-0
4: DisplayPort-0
5: DisplayPort-0
6: DisplayPort-0
7: DisplayPort-0
8: DisplayPort-0
9: DisplayPort-0
0: DisplayPort-0
workspace:
1: ""
9: ""
10: ""
environment:
MACHINE_TYPE: "laptop"
MACHINE_HAS_KEEPASSXC: "false"
MACHINE_HAS_NEXTCLOUD: "true"
MACHINE_HAS_STEAM: "false"
MACHINE_RESOLUTION_X: "1024"
MACHINE_RESOLUTION_Y: "600"

137
install_scripts/hades.sh Executable file
View File

@@ -0,0 +1,137 @@
#!/usr/bin/env bash
set -o xtrace
set -o nounset
set -o errexit
DEVICE="/dev/nvme0n1"
if [[ ! -b "${DEVICE}" ]] ; then
printf '%s does not look like a device\n' "${DEVICE}"
exit 1
fi
if [[ ! -d /sys/firmware/efi/efivars ]] ; then
printf 'efivars does not exist, looks like the system is not booted in EFI mode\n'
exit 1
fi
loadkeys de-latin1
timedatectl set-ntp true
sed -e 's/\s*\([^#]*\).*/\1/' << EOF | sfdisk ${DEVICE}
label: gpt
device: ${DEVICE}
${DEVICE}p1 : name=uefi , size=512M , type=uefi
${DEVICE}p2 : name=boot , size=512M , type=linux
${DEVICE}p3 : name=cryptpart , type=linux
EOF
# might take a bit for the new partion table to be updated in-kernel
sleep 1
while : ; do
cryptsetup --batch-mode luksFormat --iter-time 1000 ${DEVICE}p3
cryptsetup --batch-mode open --tries 1 ${DEVICE}p3 cryptpart && break
done
pvcreate /dev/mapper/cryptpart
vgcreate vgbase /dev/mapper/cryptpart
lvcreate -L 32G vgbase -n swap
lvcreate -l 100%FREE vgbase -n root
yes | mkfs.fat -F32 ${DEVICE}p1
yes | mkfs.ext4 ${DEVICE}p2
yes | mkfs.ext4 /dev/vgbase/swap
yes | mkfs.ext4 /dev/vgbase/root
mount /dev/vgbase/root /mnt
mkdir /mnt/efi
mount ${DEVICE}p1 /mnt/efi
mkdir /mnt/boot
mount ${DEVICE}p2 /mnt/boot
mkswap /dev/vgbase/swap
swapon /dev/vgbase/swap
pacstrap /mnt base linux-zen linux-firmware networkmanager intel-ucode lvm2 grub efibootmgr
genfstab -U /mnt >> /mnt/etc/fstab
cat << CHROOTSCRIPT > /mnt/chroot-script.sh
set -o xtrace
set -o errexit
set -o nounset
ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime
hwclock --systohc
sed -i 's/^#de_DE.UTF-8 UTF-8/de_DE.UTF-8 UTF-8/' /etc/locale.gen
sed -i 's/^#en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen
locale-gen
printf 'LANG=en_US.UTF-8\n' > /etc/locale.conf
printf 'KEYMAP=de-latin1\nFONT=lat2-16\n' > /etc/vconsole.conf
printf 'neptune\n' > /etc/hostname
cat <<EOF > /etc/hosts
127.0.0.1 localhost
::1 localhost
127.0.1.1 neptune
EOF
sed -i 's/^HOOKS=.*$/HOOKS=(base udev autodetect keyboard keymap consolefont modconf block encrypt lvm2 filesystems resume fsck)/' /etc/mkinitcpio.conf
mkinitcpio -P
grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=GRUB
sed -i "s/^GRUB_CMDLINE_LINUX=.*$/GRUB_CMDLINE_LINUX=\"cryptdevice=UUID=\$(blkid -s UUID -o value ${DEVICE}p3):cryptpart root=UUID=\$(blkid -s UUID -o value /dev/vgbase/root)\"/" /etc/default/grub
sed -i "s/^GRUB_CMDLINE_LINUX_DEFAULT=.*$/GRUB_CMDLINE_LINUX_DEFAULT=\"resume=UUID=\$(blkid -s UUID -o value /dev/vgbase/swap)\"/" /etc/default/grub
sed -i 's/^GRUB_DISABLE_RECOVERY=.*$/GRUB_DISABLE_RECOVERY=/' /etc/default/grub
grub-mkconfig -o /boot/grub/grub.cfg
systemctl enable NetworkManager
passwd
# enable root autologin on first boot
mkdir /etc/systemd/system/getty@tty1.service.d/
cat << EOF > /etc/systemd/system/getty@tty1.service.d/autologin.conf
[Service]
ExecStart=
ExecStart=-/sbin/agetty -o '-p -f -- \\u' --noclear --autologin root %I $TERM
EOF
# ExecStartPost=/bin/rm /etc/systemd/system/getty@tty1.service.d/autologin.conf
# ExecStartPost=/bin/rmdir /etc/systemd/system/getty@tty1.service.d/
# Run
cat << 'EOF' > /root/.bash_profile
if [[ "\$(tty)" == "/dev/tty1" ]] ; then
while ! ping -w 3 -c 3 8.8.8.8 ; do
nmtui
sleep 5
done
rm -rf /etc/systemd/system/getty@tty1.service.d/
if /var/lib/dotfiles/install.sh ; then
rm -f /root/.bash_profile
reboot
fi
fi
EOF
CHROOTSCRIPT
chmod +x /mnt/chroot-script.sh
arch-chroot /mnt /chroot-script.sh
rm -f /mnt/chroot-script.sh

View File

@@ -219,7 +219,7 @@ ruby:
acpi:
archlinux: ["acpi", "acpid"]
nodejs:
archlinux: ["nodejs", "npm", "yarn"]
archlinux: ["nodejs-lts-jod", "npm", "yarn"]
xdg:
archlinux: ["xdg-utils"]
dunst:
@@ -336,7 +336,7 @@ awscli:
mariadb-client:
archlinux: ["mariadb-clients"]
php:
archlinux: ["php"]
archlinux: ["php", "composer"]
eza:
archlinux: ["eza"]
just:
@@ -562,3 +562,6 @@ hedgewars:
supertuxkart:
archlinux:
- supertuxkart
dua:
archlinux:
- dua-cli

View File

@@ -191,11 +191,11 @@
- name: install packages
package:
name: "{{ defined_packages|json_query(query) }}"
name: "{{ defined_packages|json_query(pkg_query) }}"
state: present
become: true
vars:
query: "{{ '*.%s[]'|format(distro) }}"
pkg_query: "{{ '*.%s[]'|format(distro) }}"
- name: remove unconfigured packages
script:

View File

@@ -11,6 +11,11 @@ MOUNTOPTS="uid=${uid},gid=${gid}"
SYNC_FOLDERS=(
Activity
Settings
Courses
Records
Totals
Workouts
)
RSYNCOPTS=(

View File

@@ -301,7 +301,7 @@
browser.startup.homepage: "about:blank"
privacy.trackingprotection.enabled: true
privacy.trackingprotection.socialtracking.enabled: true
general.smoothScroll: false
general.smoothScroll: true
# Restore last session on startup
# https://support.mozilla.org/de/questions/1235263