This repository contains my curated personal configuration files (dotfiles) for various operating systems and environments. It aims to provide a robust, reliable, and highly customized foundation for modern Linux desktop usage.
For the latest updates, check the Changelog. You can also download the current version directly from here.
This script performs a full setup, applying all configurations and managing necessary installations.
git clone https://gitlab.com/pad92/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
./install- To set up the editor configuration without installing the full suite:
curl -sSL https://gitlab.com/pad92/dotfiles/-/raw/main/vim.sh | sh- Quick Install: You can download the pre-packaged configuration from the Artifacts.
To customize and adapt this dotfiles collection to your own system and identity, you should adjust the following key configuration files:
~/.gitconfig.local(Not tracked, created locally): Define your personal Git credentials here. It is automatically imported by the main.gitconfig:[user] name = Your Name email = your.email@example.com signingkey = your_ssh_or_gpg_key
.zshrc: Adjust primary shell configurations (e.g., local languageLANG, default editorEDITOR, and the active Oh My Zshpluginslist).zsh/init/aliases.zsh: Add, edit, or remove terminal aliases to fit your daily workflow.
.config/uwsm/env: Manage global environment variables for the Wayland session (e.g., default browserBROWSER, default terminalTERMINAL, and default cursor themeXCURSOR_THEME) and set hostname-specific GPU/driver optimizations (such asAQ_DRM_DEVICESor Vulkan driver settings)..config/hypr/: Adjust window manager bindings, window rules, workspaces, and look-and-feel preferences (now migrated to Lua).~/.local/share/backgrounds/: Add your custom wallpaper image files here to integrate with desktop slideshow/randomizer scripts.
.config/alacritty/: Customize the Alacritty terminal's font, window spacing, opacity, and color palette..tmux.conf: Customize keys and options for your Tmux workspace..config/nvim/: Curated, modern, and modular Neovim configuration written from scratch in Lua..vimrc: Adjust keybindings and plugin preferences for your core legacy Vim editor.
Configured for maximum efficiency with advanced features:
- Plugins: Powered by
oh-my-zshwithdocker,ansible,git,vscode,thefuck, and syntax highlighting/autosuggestions. - Customization: Extensive history management, custom prompt themes, and path exports for custom binaries (
$HOME/.bin).
Configured in zsh/init/key-bindings.zsh for maximum command line productivity:
| Shortcut | Action | Description |
|---|---|---|
Ctrl + R |
History Search | Search backward incrementally in history |
Ctrl + X, Ctrl + E |
Edit Command | Edit current command line in $EDITOR (Vim) |
Ctrl + Left |
Back Word | Move cursor backward one word |
Ctrl + Right |
Forward Word | Move cursor forward one word |
Alt + L (Esc + L) |
Quick ls |
Run the ls command immediately |
Alt + W (Esc + W) |
Kill Region | Cut/delete text from the cursor to the mark |
Alt + M |
Copy Shell Word | Copy the previous word on the command line |
Up Arrow (after typing) |
Fuzzy Search | Search history forward matching the typed prefix |
Down Arrow (after typing) |
Fuzzy Search | Search history backward matching the typed prefix |
PageUp / PageDown |
History Navigate | Move up/down through history lines |
Home / End |
Line Navigation | Go to the beginning/end of the line |
Shift + Tab |
Reverse Complete | Navigate backwards in the autocompletion menu |
Space |
Magic Space | Perform history expansion when pressing space |
A set of highly optimized aliases and shell functions defined in zsh/init/aliases.zsh and autoloaded from zsh/functions/:
| Alias | Target / Command | Purpose |
|---|---|---|
terraform |
tofu |
Uses OpenTofu as transparent replacement if available |
mediasync |
~/.../tools/mediasync.py |
Sync home media server repository |
backup |
~/.dotfiles/bin/backup.sh |
Trigger complete system backup script |
steam-opt |
steam-optimize |
Launch Steam with performance/GPU optimizations |
ggc |
git-gen-commit |
Automatically generate semantic git commit messages |
volmute / volinc / voldec |
ManageSound.sh |
Convenient system audio/volume control aliases |
mirrord / mirrors / mirrora |
mirror [delay/score/age] |
Quick sorting alternatives for Arch mirrorlist optimization |
Organized by functional modules for clean management:
arch_update: Comprehensive system upgrade. Triggersyay -Syu --devel, firmware update checking (fwupdmgr), Flatpak updates, and automated orphans/caches cleanup.clean_arch: Cleans up packages orphans (pacman -Rns), purges pacman/yay cache (yay -Scc), removes old packages version caches (paccache), and detects outstanding.pacnew/.pacsavefiles.mirror [delay|score|age]: Fetches, filters, and rates the fastest Arch Linux package mirrors located in France utilizingreflector.
extract <file>: Extract-all wrapper that intelligently decompresses any archive format (.tar.bz2,.tgz,.zip,.rar,.7z, etc.).md5/sha1/sha256/sha512<string>: Instant, pipeline-friendly string hashing usingopenssl.
ip_a/ip_l/ip_p: Show network info (All, Local, or Public IP address).meteo: Instant graphical terminal-based weather forecast usingwttr.in.transfer <file>: Fast upload of any file totransfer.shand returns a direct shareable URL.curl_time <url>: Detailed HTTP connection profiling (DNS lookup, connect, start-transfer, and total times).youtubeEncode <file>: Re-encodes source video with optimized parameters (libx264,aac) for reliable YouTube uploads.radio: Easy interactive CLI radio terminal frontend.calc "<expr>": Command-line evaluator powered bybc.src: Sourced reloader helper for shell config.
A state-of-the-art configuration written completely in Lua from scratch, designed to turn Neovim into a blazing-fast, IDE-like developer workspace.
- Key Features:
- Plugin Manager: Managed by
lazy.nvimfor fast startup and lazy loading. - Fuzzy Finder: Built with
telescope.nvimfor rapid interactive file/buffer/symbol searching. - Syntax & AST: Powered by
nvim-treesitterfor beautiful, precise, and fast syntax highlighting. - Native LSP: Utilizes the modern native LSP framework (
vim.lsp.config/vim.lsp.enablein Neovim 0.11+) integrated withmason.nvimandnvim-cmpfor rich IDE autocompletions and go-to-definitions. - Git Integration: Realtime changes displayed in the margin by
gitsigns.nvim. - Aesthetics: Sleek
gruvboxcolorscheme coupled withlualine.nvimstatusline and vertical indentation guides.
- Plugin Manager: Managed by
My original editor configuration built with vundle.
- Key Features: Advanced statusline customization, robust filetype detection, and classic plugin support (e.g.,
vim-gitgutter,vim-fugitive).
- Terminal Emulators: Optimized configuration for Alacritty.
- Multiplexer:
tmuxconfigured with plugins for session management and layout persistence.
| Shortcut | Action |
|---|---|
SUPER + Return |
Terminal |
SUPER + Shift + Q |
Close window |
SUPER + [1-9] |
Focus workspace |
SUPER + Shift + [1-9] |
Move window to workspace |
SUPER + [Arrows/Vim keys] |
Focus window |
SUPER + Shift + [Arrows/Vim keys] |
Move window |
SUPER + F |
Fullscreen toggle |
XF86Audio... |
Audio Controls |
XF86Mon... |
Brightness Controls |
SUPER + E |
File manager |
SUPER + C |
Code editor |
SUPER + W |
Browser |
SUPER + M |
Music Player |
SUPER + Shift + Return |
Password Manager |
SUPER + L |
Lock |
SUPER + Delete |
Logout menu |
SUPER + ALT + Space |
Float/Tile |
SUPER + SHIFT + F |
Toggle Float |
SUPER + ALT + Right |
Change wallpaper |
Print / SUPER + P |
Screenshot |
My current primary Window Manager configuration.
Warning
Breaking Change: The Hyprland configuration has migrated to Lua. These files are compatible with Hyprland v0.55 and above.
- Configuration: Located in
.config/hypr - Wallpapers: Place images into
~/.local/share/backgrounds - Batch upload tip:
exiftool -q -if '$Keywords =~ /paysage/' -r ${SRC_DIR} -o "${XDG_DATA_HOME}/backgrounds/"
When launching Hyprland from a TTY, PAM and session management must be configured to support services like GNOME Keyring auto-unlock and UWSM session wrapping.
For a detailed, step-by-step setup covering:
- GNOME Keyring PAM configuration (
/etc/pam.d/login) - UWSM (Universal Wayland Session Manager) installation and setup
- TTY shell profile/rc integration (
~/.zshrcor~/.zprofile) - Systemd graphical session target and application autostart
See the Arch Linux Installation Guide - UWSM & PAM Setup.
Refer to the Hyprland Wiki - Systemd startup for official upstream details.
A collection of shell scripts and utilities located in the bin/ directory:
backup.sh: System backup utility.razer_dpi.py: Razer peripheral DPI management.- Zsh Functions & Aliases: See the comprehensive Custom Aliases & Functions section for a detailed list of system maintenance, utility, and archive handling scripts.
- Arch Linux (Primary):
- Detailed installation guide: Arch Linux / CachyOS Installation Guide.
- Includes
arch_updatefor full system updates andmirrorfunctions for mirrorlist management.
- Ubuntu: Compatible configurations provided.
A comprehensive list of configured tools across the stack:
| Category | Tools |
|---|---|
| Shell | Zsh |
| Editor | Vim, VSCode |
| Terminal | Alacritty |
| Multiplexer | Tmux |
| UI/UX | Waybar, Wofi, Mako |
| System | Fastfetch, Htop |
Maintained by pad🐐 with ❤️ since 2015 (11+ years)