Dotfiles setup with static and dynamic themes and plenty of useful scripts.
Quick info:
- bin - all scripts live here, it is added to path in uwsm config
- install - main installation script
- pkgs.txt - packages to be installed
- setup-applications - hides some annoying applications from launcher
- setup-by-hardware - sets up monitors, keybindings, hypr enviroments
- setup-config - copies full config into ~/.config
- setup-lazyvim - lazyvim setup
- setup-nvidia - nvidia specific setup
- setup-system - ufw, pacman.conf, triggers nvidia-setup if on nvidia gpu, git, ly login manager (if exists), enables gcr agent for ssh, disables systemd-networkd-wait-online.service that causes extremly long boot time
- setup-theme - theming setup and symlinks
- setup-zsh - full zsh config with oh-my-zsh, plugins, nice features
- Dynamic Theming System - Switch between static themes or use dynamic theming with Matugen and Pywal
- Utility Scripts - Interactive package management; theming; setup of Postgres & database backup and restoration, Docker, Node.js; video download (with yt-dlp), video and image transcoding (using handbrakecli and imagemagick), interactive backups with fzf
- Modular ZSH Config - Zsh setup with some nice custom functions like
cp2c(copy file content to clipboard - c2pc <file_path>) andc2f(clipboard content to file c2f <file_path>) - Application Configs - Configs for Ghostty, Waybar, Walker, Elephant, lazyvim and more
curl -fsSL https://raw.githubusercontent.com/Maciejonos/dotfiles/master/setup.sh | bash- This is specifically for Arch Linux with Hyprland
- I've tested the installer on both fresh installs and configured desktops, but ideally you should know what you're doing, make sure to backup manually just in case
- Everything that will be changed is backed up first
What the installer does:
Backup
- Backs up everything that will be changed (backup script)
- Files in
~/.config pacman.conf- Ly display manager configuration (if installed)
- ZSH and LazyVim configs
- Everything else that gets modified
- Files in
- Creates a backup folder in your Home directory with:
- A text file listing all changed files
- Commands to quickly revert everything
- A rollback script for easy restoration
Package Installation
- Installs packages from official repos and AUR
Hardware Detection
The installer detects your hardware:
- Laptop/Desktop - Uses brightnessctl or ddcutil respectively, applies proper Hyprland keybinding profiles
- Monitor Configuration - Checks your monitor's highest resolution and refresh rate with
hyprctl monitorsand creates appropriatemonitors.conf - Nvidia GPUs - Detects Nvidia cards and applies Nvidia-specific setup with proper Hyprland env configs
Configuration & Theming
- Replaces configuration files in
~/.configwith the config directory contents - Sets up static and dynamic themes via theme setup
- Configures symlinks for theme management
- Some files live in the default directory - these are git synced and will get overwritten with updates
Scripts
A big collection of scripts, mainly used with Walker & Elephant. If installing manually make sure to add the scripts folder to path:
- Theme Management - Switch themes, cycle backgrounds, apply dynamic theming
- Development - PostgreSQL setup/backup/restore, Docker setup, Node.js setup
- Package Management - Install/remove packages interactively
- Media Tools - Video downloads (yt-dlp), transcoding (ffmpeg, handbrake-cli)
- System Utils - Backup/restore files, keybinds, screenshots menu and video recording
- Most scripts are accessible interactively through Walker or Elephant
System Configuration
- System setup configures:
- Git configuration
- Ly display manager (if installed)
- Pacman configuration
- UFW firewall
- Full ZSH setup with modular configuration
You can manually use the dotfiles without the installer:
- Clone the repository
- Copy desired configs from
config/to~/.config/(some configs live in default directory. Also everything relies on the scripts folder being in path) - Copy scripts from
bin/to your preferred location - You can use some install scripts for partial setup if you want
Omarchy waybar
Eli dotfiles waybar
Modern waybar config
menu-walkthrough.mp4
theme-change.mp4
Just press SUPER + ALT + Space -> keybindings - all bindings nicely sorted here
Most important ones:
- SUPER + Q = Open Terminal
- SUPER + W = Close window
- SUPER + R = Open Walker
- SUPER + E = File manager
- SUPER + V = Clipboard
- SUPER + ALT + Space = Menu
- SUPER + CTRL + W = Open Waypaper (to trigger dynamic color update - theme must be set to Matugen or Pywal)
Walker bindings - ctrl + x to go back from submenu
The setup includes both static and dynamic theming:
- Open walker and select a theme you like, you can pick between static ones or Matugen/Pywal
- Also, you can pick 3 different waybar themes and 2 fastfetch presets
- You can modify everything in config easily, it is not git synced and will not get overwritten
- Configs in default are git synced and will get overwritten with updates
By no means am I claiming I created all of this myself - I've taken the whole static theming system & some scripts from Omarchy - of course a lot are my own or heavily changed. I wanted something more of my own, that I can customize more easily without installing a full distro. Omarchy is an awesome project, and if you haven't heard of it, you should definitely check it out!
Other projects that I really like: