- CSS 50.3%
- Shell 49.7%
| assets | ||
| home | ||
| root/etc | ||
| scripts | ||
| .gitignore | ||
| .stow-local-ignore | ||
| apply | ||
| LICENSE | ||
| README.md | ||
dotfiles
My dotfiles and other stuff about my systems' configurations.
Systems I use these setups on
Desktop:
- AMD Ryzen 7 9800x3D
- 64GB DDR5-6000 (2x32GB)
- NVIDIA GeForce RTX 4080 SUPER
- 4TB SAMSUNG 990 PRO
Laptop: Lenovo ThinkPad X1 Yoga Gen 8 with Intel Core i5-1345U, 32GB RAM, 512GB NVMe and a 1920x1200 screen
Monitors:
- Samsung G5 Ultrawide (3440x1440, 165hz, 34")
- Samsung G51 (2560x1440, 165hz, 27")
Notes
⚠️ IMPORTANT
The Waybar theme relies on the Catppuccin GTK theme mentioned below to be installed. If you don't want to do so, you must change the padding of the workspace buttons from2pxto2px 8px.
I use Arch Linux with a unified kernel image signed with a custom Secure Boot key created by and managed with sbctl.
Due to some weirdness with symlinks, the GTK themes need to be installed manually. Download the "Borderless + macOS buttons" Frappé pack from here: https://www.opendesktop.org/p/1715554 and follow the instructions.
To enable hibernate and resume, a swapfile must be created, enabled and resume must be added to /etc/mkinitcpio.conf, followed by rebuilding the initramfs with sudo mkinitcpio -P. I don't use ZRAM so I disabled that by ading systemd.zram=0 to /etc/kernel/cmdline.
A number of helper scripts can be found in the scripts directory.
Requirements
- GNU Stow
Usage
Run ./apply.
Manual install
Installing dotfiles to $HOME: stow --adopt --no-folding -t "${HOME}" home
Installing dotfiles to root (for example libvirt configuration files): sudo stow --adopt --no-folding -t / root
Helper scripts
This repository contains some helper scripts which will be detailed in this section:
set_up_gitsets the git config to be my preferred configurationset_up_mobile_broadbandsets up a connection for my cellular modemcreate_swap <swapfile size>sets up swap
Applying Themes and Wallpapers
For GTK themes use GNOME Tweaks to set the theme. For Qt use qt6ct-kde (Qt6 Settings). For wallpapers use awww -o <output name> <path to file>. My own wallpapers can be found in home/Pictures/Wallpapers.
Installed Packages
This is a list of all packages I have installed, which systems I have installed them on and why I have them installed. Drivers, firmware and the likes aren't included unless deviating from a standard Arch installation.
Links are to the source repository or other applicable first-party website. The package names are the names used in the Arch Linux package list or the Arch User Repository.
For networking, during the install I opt to set up NetworkManager backed by iwd for wireless connectivity.
System Tools
These are system tools I don't often directly invoke but use for other tasks like system tweaks, filesystem compatibility and the likes.
| Package | Description | Link | Systems |
|---|---|---|---|
sbctl |
Secure Boot key manager | https://github.com/foxboron/sbctl | Desktop, Laptop |
cpupower |
Userspace utilities for managing CPU frequency scaling | Part of Kernel | Desktop |
dosfstools |
Suite of tools to work with DOS filesystems such as the FAT family | https://github.com/dosfstools/dosfstools | Desktop |
dnsmasq |
Suite of network services, needed for libvirt to work properly with NetworkManager | https://dnsmasq.org/doc.html | Desktop |
exfat-utils |
Utilities for working with exFAT filesystems | https://github.com/relan/exfat | Desktop |
gamemode |
Command prefix to ensure games run better | https://github.com/feralinteractive/gamemode | Desktop, Laptop |
lact |
GPU configuration and monitoring tool | https://github.com/ilya-zlobintsev/LACT | Desktop |
libinput-tools |
Helper tool to work with libinput |
https://wayland.freedesktop.org/libinput/doc/latest/tools.html | Desktop |
btop |
A better alternative to the top command |
https://github.com/aristocratos/btop | Desktop, Laptop |
bind |
DNS implementation, provides the dig command |
https://www.isc.org/software/bind/ | Desktop, Laptop |
paru |
AUR helper | https://github.com/morganamilo/paru | Desktop, Laptop |
rsync |
Fast, incremental file transfer | https://rsync.samba.org/ | Desktop |
traceroute |
Tool for tracing route to target host | https://traceroute.sourceforge.net/ | Desktop |
ventoy-bin |
CLI tool to manage Ventoy | https://www.ventoy.net/en/index.html | Desktop |
wget |
Tool to retrieve remote files | https://www.gnu.org/software/wget/wget.html | Desktop, Laptop |
unzip |
CLI tool to extract ZIP archives | http://www.info-zip.org/Zip.html | Desktop, Laptop |
android-udev |
Allows user to connect Android devices | https://github.com/M0Rf30/android-udev-rules | Desktop |
gnupg |
Free implementation of PGP | https://www.gnupg.org/ | Desktop |
pacman-contrib |
Scripts and tools for pacman | https://gitlab.archlinux.org/pacman/pacman-contrib | Desktop, Laptop |
less |
It's less, not much to say | https://www.greenwoodsoftware.com/less/ | Desktop, Laptop |
wl-clipboard |
Tool to copy text from a terminal into the clipboard on Wayland | https://github.com/bugaevc/wl-clipboard | Desktop |
man-db |
Manual pages | https://gitlab.com/man-db/man-db | Desktop, Laptop |
brightnessctl |
Allows controlling monitor brightness | https://github.com/Hummer12007/brightnessctl | Laptop |
tlp |
Tool/service to optimise battery life on laptops | https://linrunner.de/tlp/index.html | Laptop |
modemmanager |
Manages cellular modems | https://www.freedesktop.org/wiki/Software/ModemManager | Laptop |
openresolv |
Provider of resolvconf for NetworkManager | https://roy.marples.name/projects/openresolv | Laptop |
displaylink |
Support for DisplayLink devices | https://www.synaptics.com/products/displaylink-graphics | Laptop |
cups |
Printing support | https://openprinting.github.io/cups/ | Desktop |
hplip |
HP printer drivers | https://hplipopensource.com/ | Desktop |
system-config-printer |
GUI tool to configure printers | https://github.com/OpenPrinting/system-config-printer | Desktop |
sane |
Scanning support | https://gitlab.com/sane-project/backends | Desktop |
naps2-bin |
Scanning frontend | https://www.naps2.com/ | Desktop |
Environment
These are the packages that make my environment. This includes all the "meta" basics for a working environment on which you can build up on. Some configurations, like Niri may also depend on packages from other categories (my Niri configuration depends on kitty).
| Package | Description | Link | Systems |
|---|---|---|---|
swaybg |
Simply wallpaper tool for wayland | https://github.com/swaywm/swaybg | Desktop, Laptop |
catppuccin-cursors-frappe |
Custom theme cursors | http://github.com/catppuccin/cursors | Desktop, Laptop |
fuzzel |
App launcher and fuzzy finder for Wayland | https://codeberg.org/dnkl/fuzzel | Desktop, Laptop |
nwg-look |
Software I primarily use to manage GTK theming | https://github.com/nwg-piotr/nwg-look | Desktop, Laptop |
nemo |
File explorer | https://github.com/linuxmint/nemo | Desktop, Laptop |
niri |
Niri, a Wayland window compositor | https://github.com/niri-wm/niri | Desktop, Laptop |
noto-fonts |
Basic Noto fonts for unicode characters | https://fonts.google.com/noto | Desktop, Laptop |
noto-fonts-cjk |
Chinese, Japanese and Korean fonts | https://github.com/notofonts/noto-cjk | Desktop, Laptop |
noto-fonts-emoji |
Emoji support | http://fonts.google.com/noto/specimen/Noto+Emoji | Desktop, Laptop |
gnome-keyring |
Secret portal | https://gitlab.gnome.org/GNOME/gnome-keyring | Desktop, Laptop |
polkit-kde-agent |
Policykit agent for applications to graphically ask for root permissions | https://github.com/KDE/polkit-kde-agent-1 | Desktop, Laptop |
qt6ct-kde |
Graphical tool to change Qt theme | https://www.opencode.net/trialuser/qt6ct | Desktop, Laptop |
swaylock-effects |
Lockscreen for Wayland (with extra features not present in normal swaylock) | https://github.com/jirutka/swaylock-effects | Desktop, Laptop |
ttf-firacode-nerd |
My preferred monospace font | https://www.nerdfonts.com/font-downloads | Desktop, Laptop |
waybar |
Wayland bar | https://github.com/Alexays/Waybar | Desktop, Laptop |
network-manager-applet |
Provides a tray applet for NetworkManager and the GUI connection editor used in my waybar config | https://gitlab.gnome.org/GNOME/network-manager-applet | Desktop, Laptop |
ly |
TTY-based greeter | https://codeberg.org/fairyglade/ly | Desktop, Laptop |
dunst |
Notification daemon | https://github.com/dunst-project/dunst | Desktop, Laptop |
xdg-desktop-portal-wlr |
Required portal for screencasting | https://github.com/emersion/xdg-desktop-portal-wlr | Desktop, Laptop |
xdg-desktop-portal-gtk |
Required portal for most basic functionality | https://github.com/flatpak/xdg-desktop-portal-gtk | Desktop, Laptop |
xwayland-satellite |
Rootless Xwayland integration for Wayland compositors | https://github.com/Supreeeme/xwayland-satellite | Desktop, Laptop |
iio-niri |
Automatically rotates the screen with Niri | https://github.com/Zhaith-Izaliel/iio-niri | Laptop |
wireguard-tools |
Tools to interact with WireGuard | https://www.wireguard.com/ | Laptop |
overskride-bin |
Bluetooth client | https://github.com/kaii-lb/overskride | Laptop |
Development
This includes tools I use for development.
| Package | Description | Link | Systems |
|---|---|---|---|
kitty |
Terminal emulator | https://github.com/kovidgoyal/kitty | Desktop, Laptop |
neovim |
Modern Vim-based text editor | https://neovim.io/ | Desktop, Laptop |
git |
Repository management tool | https://git-scm.com/ | Desktop, Laptop |
base-devel |
Basic development tools, meta-package | https://archlinux.org/packages/core/any/base-devel/ | Desktop, Laptop |
rustup |
Rust toolchain installer | https://rustup.rs/ | Desktop, Laptop |
shellcheck |
Shell script linter | https://www.shellcheck.net/ | Desktop, Laptop |
docker |
Containerisation system | https://www.docker.com/ | Desktop |
jetbrains-toolbox |
Launcher to install and manage JetBrains IDEs | https://www.jetbrains.com/toolbox-app/ | Desktop, Laptop |
virt-manager |
GUI for libvirt | https://github.com/virt-manager/virt-manager | Desktop |
qemu-full |
Backend for creating virtual machines | https://www.qemu.org/ | Desktop |
opentofu |
FOSS Terraform alternative | https://opentofu.org/ | Desktop |
docker-compose |
Enables docker compose support | https://www.docker.com/ | Desktop |
pyenv |
Tool for managing Python versions | https://github.com/pyenv/pyenv | Desktop, Laptop |
go |
Golang | https://go.dev/ | Laptop |
ansible |
Ansible | https://ansible.com | Desktop |
Messaging
This includes software I use for messaging.
| Package | Description | Link | Systems |
|---|---|---|---|
vesktop |
Customisable and privacy friendly Discord client | https://vesktop.dev/ | Desktop, Laptop |
element-desktop |
Desktop Matrix client | https://element.io/en | Desktop |
Media
This includes tools I use to consume media.
| Package | Description | Link | Systems |
|---|---|---|---|
vlc |
Multimedia player | https://www.videolan.org/ | Desktop, Laptop |
vlc-plugin-ffmpeg |
FFMPEG plugins for VLC | https://archlinux.org/packages/extra/x86_64/vlc-plugin-ffmpeg/ | Desktop, Laptop |
coreimage |
Small and lightweight image viewer | https://cubocore.gitlab.io/ | Desktop, Laptop |
spotify |
Spotify desktop application | https://spotify.com | Laptop |
Creativity
This includes tools for creative work as well as note-taking.
| Package | Description | Link | Systems |
|---|---|---|---|
xournalpp |
Notetaking app with support for pages and handwriting/drawing | https://xournalpp.github.io | Desktop, Laptop |
obs-studio |
Screen recording suite | https://github.com/obsproject/obs-studio | Desktop |
Other
This includes the odd ones out which didn't have a better place elsewhere.
| Package | Description | Link | Systems |
|---|---|---|---|
ausweisapp |
German ID verification app | https://www.ausweisapp.bund.de/en/open-source-software | Desktop |
azahar |
Nintendo 3DS emulator | https://azahar-emu.org/ | Desktop |
chromium |
Browser; Will be switched for something better in due time | https://www.chromium.org/chromium-projects/ | Desktop, Laptop |
filezille |
File explorer and remote filesystem client | https://filezilla-project.org/ | Desktop |
hyfetch |
Fetch with pride flags | https://github.com/hykilpikonna/hyfetch | Desktop, Laptop |
prismlauncher |
Minecraft Java Edition version manager and launcher | https://prismlauncher.org/ | Desktop |
steam |
Game launcher | https://store.steampowered.com/ | Desktop |
stow |
Symlink manager | https://www.gnu.org/software/stow/ | Desktop |
thunderbird |
E-Mail client | https://www.thunderbird.net/ | Desktop, Laptop |
ente-auth-bin |
TOTP Generator | https://ente.com/auth/ | Desktop, Laptop |
qalculate-qt |
Calculator | https://qalculate.github.io | Desktop, Laptop |
wvkbd-git |
On-screen keyboard | https://github.com/jjsullivan5196/wvkbd | Desktop, Laptop |
nextcloud-client |
Desktop client for NextCloud | https://nextcloud.com/ | Desktop |
pdfpc |
PDF presentation software | https://github.com/pdfpc | Laptop |
protonup-qt-bin |
GUI Proton version manager | https://github.com/DavidoTek/ProtonUp-Qt | Desktop, Laptop |
Package notes
| Package | Note |
|---|---|
rustup |
Run rustup toolchain install stable for initial stable install; rustup update to update |
displaylink |
Requires dkms, linux-headers and evdi-dkms to be installed; Start service after install |
pyenv |
Requires tk to be installed for Python compilation and installation to work properly |
gamemode |
Also install lib32-gamemode |
Further Reading
This is a collection of links I found helpful while setting up my systems.
| Description | Link |
|---|---|
| Description of CPU frequency scaling and tools to make use of it | https://wiki.archlinux.org/title/CPU_frequency_scaling |
| General information about the ThinkPad X1 Yoga Gen 8 on Arch Linux | https://wiki.archlinux.org/title/Lenovo_ThinkPad_X1_Yoga_(Gen_8) |
| Power management for laptops on Arch Linux | https://wiki.archlinux.org/title/TLP |
| General documentation for niri | https://github.com/niri-wm/niri/wiki |
| Setting up secure boot | https://github.com/foxboron/sbctl |
| DisplayLink | https://wiki.archlinux.org/title/DisplayLink |
Attributions
Catppuccin is licensed under the MIT license. It doesn't require me to reship their license or mention it but I do want you to be aware of this awesome theme.
