Skip to content

Pragmatic dotfiles for Arch Linux

License

Notifications You must be signed in to change notification settings

filiparag/dotfiles

Repository files navigation

Dotfiles for Arch Linux

This repository comprises an extensive assortment of modular scripts and configuration files built upon ArchLinux and bspwm. Its objective is to deliver a stable, clutter-free, and ergonomic desktop environment tailored for advanced users.

All updates and enhancements aim to avoid unnecessary breaking changes, aligning closely with the rolling-release nature of the underlying system, while requiring minimal maintenance.

screenshots

Installation

Prerequisites

  • base Arch Linux installed
  • at least 8 GiB of free space on system partition
  • user account with sudo privileges

Steps

# Clone dotfiles repository
git clone https://github.com/filiparag/dotfiles.git && cd dotfiles

# Install dependencies
make dependencies

# Choose and install optional dependencies
make optional-dependencies

# Install dotfiles for your user (pick one)
make symlink    # place symlinks to files (recommended)
make copy       # place copies of files

# Reboot your system to apply all modifications (optional)
reboot

Note: Running make targets for installing dotfiles will replace existing configuration files in the filesystem. Be sure to back them up beforehand.

Updating dotfiles

After every repository update, install dependencies and reload dotfiles:

dotfiles deps
dotfiles reload

Usage and customization

Shortcuts

Keyboard shortcuts manual can be opened with dotfiles docs after installing dotfiles.

Keyboard shortcuts configuration:~/.config/sxhkd/sxhkdrc

Touchpad gestures configuration: ~/.config/libinput-gestures.conf

Configuring the environment

Window manager configuration (wmrc): ~/.config/wmrc/rc.conf

Startup applications and daemons are listed in APPS variable in ~/.config/wmrc/modules/services/apps

User-specific environment variables: ~/.config/fish/conf.d/user.fish

Wallpaper and lockscreen images are located in ~/Pictures directory.

To set default monitor setup, create desired layout using arandr and save it as ~/.screenlayout/Default.sh

Security and remote access

By default, all incoming network traffic is blocked except for:

  • SSH: port 22/tcp with public key authentication only
  • Syncthing: ports 22000/tcp and 21027/udp
  • KDE Connect: port range 1714:1764/tcp+udp

To enable VNC server, run:

# Set VNC password
vncpasswd

# Allow incoming VNC connections
sudo ufw allow in 5900/tcp

# Start VNC module
wmrc start services/vnc

Hardware-specific modifications

Battery life optimization

Provided auto-cpufreq configuration file is optimized for CPUs with Energy-Performance Preference support. It is recommended to enable it on battery-powered devices.

To enable it, run:

# Install
paru -S auto-cpufreq

# Enable and start service
sudo systemctl enable --now auto-cpufreq

X11 video drivers

By default, dotfiles come bundled with configuration and open-source drivers for Intel and AMD graphics cards. If your hardware isn't supported by those: