Skip to content

muesli/dotfiles

Repository files navigation

muesli's dotfiles

Platform Support

On both ArchLinux and macOS run setup.sh to bootstrap an install:

./setup.sh

Bootstrap an ArchLinux Install

Install Drivers

For Intel i5/i7 based machines simply run:

./packages/arch/drivers/intel.sh

If you want to control Razer RGB devices, run:

./packages/arch/drivers/razer.sh

First Steps

Add users to required groups: https://wiki.archlinux.org/index.php/users_and_groups#Group_list

Enable microcode updates: https://wiki.archlinux.org/index.php/microcode

Install systemd-boot pacman hook: https://wiki.archlinux.org/index.php/systemd-boot#Automatically

Enable SDDM: systemctl enable sddm

Configuration

Setup GPG SmartCard

echo "enable-ssh-support" >> ~/.gnupg/gpg-agent.conf
echo "pcsc-driver /usr/lib/libpcsclite.so" > ~/.gnupg/scdaemon.conf
echo "card-timeout 5" >> ~/.gnupg/scdaemon.conf
echo "disable-ccid" >> ~/.gnupg/scdaemon.conf
systemctl enable pcscd
systemctl start pcscd

Fetch your public key from the SmartCard:

gpg --card-edit
gpg/card> fetch

More info in the Arch wiki: https://wiki.archlinux.org/index.php/GnuPG#SSH_agent

Adjust System Limits

Edit /etc/systemd/system.conf.d/limits.conf

[Manager]
DefaultLimitNOFILE=32768
DefaultTasksMax=32768

Suspend issues

Should you suffer from suspend issues (like the system resuming from sleep immediately), this is most likely caused by the USB chipset acting up. To prevent that, create a new systemd unit /etc/systemd/system/disable-usb-wakeup.service:

[Unit]
Description=Disable USB wakeup triggers in /proc/acpi/wakeup

[Service]
Type=oneshot
ExecStart=/bin/sh -c "echo XHC > /proc/acpi/wakeup"
ExecStop=/bin/sh -c "echo XHC > /proc/acpi/wakeup"
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

Enable & start the new unit now:

systemctl enable disable-usb-wakeup
systemctl start disable-usb-wakeup

System Tweaks

Enable smartd: https://wiki.archlinux.org/index.php/S.M.A.R.T.

Limit journal size: https://wiki.archlinux.org/index.php/Systemd#Journal_size_limit

Configure Avahi/mDNS: https://wiki.archlinux.org/index.php/avahi

Install TLP: https://wiki.archlinux.org/index.php/TLP

Enable zram: https://wiki.archlinux.org/index.php/Improving_performance#Zram_or_zswap

Configuration for Unix Platforms

GPG

Preferred Key

Edit ~/.gnupg/gpg.conf

default-key CA1EBB7E

Caching & Timeouts

Edit ~/.gnupg/gpg-agent.conf

echo "default-cache-ttl 1800" >> ~/.gnupg/gpg-agent.conf
echo "max-cache-ttl 999999" >> ~/.gnupg/gpg-agent.conf

Setup poldi

Install poldi-git. Add your key to /etc/poldi/localdb/keys and add your user to /etc/poldi/localdb/users.

Edit /etc/pam.d/sudo and prepend:

auth sufficient pam_poldi.so

Setup multi-factor authentication

Edit /etc/pam.d/system-auth-yubico

echo "auth required pam_yubico.so id=xxxxx" > /etc/pam.d/system-auth-yubico

Put the public part of your OTP (the first 12 characters) in ~/.yubico/authorized_yubikeys:

muesli:cc..........

Edit /etc/pam.d/sudo and prepend:

auth sufficient pam_yubico.so id=xxxxx

sudo Timeout

Edit /etc/sudoers

echo "Defaults:muesli timestamp_timeout=30" >> /etc/sudoers

libinput Gestures

Install libinput-gestures and edit ~/.config/libinput-gestures.conf.

libinput-gestures-setup autostart

Releases

No releases published

Packages

No packages published

Languages