Arch dotfiles. i3 dotfiles.
These dotfiles are built for a simple and efficient Arch Linux environment using i3 (X11) as the window manager.
This repository mirrors the directory structure of the operating system, so to apply the configurations, simply copy the files into your system. It also includes many optional packages and tools that I personally use - you don't need to install all of them. For more details, refer to the detailed information. Also if you're looking for older versions, check out the other branches.
Install base system.
sudo pacman -S --needed archlinux-keyring base base-devel linux linux-firmware git pulseaudio xorg xorg-xinit Install yay.
git clone https://aur.archlinux.org/yay-bin.git "$HOME"/.srcs/yay && cd "$HOME"/.srcs/yay/ && makepkg -siInstall dependencies.
yay -S --needed btop code dunst fastfetch feh i3-wm i3lock-color kitty mate-polkit mpd ncmpcpp papirus-icon-theme picom polybar rofi xss-lock zsh zed ttf-roboto-mono ttf-opensans ttf-iosevka-nerd ffcast inotify-tools jq libnotify rofi-vscode-mode scrot slop upower xclipClone this repository and copy files.
git clone -b v4 --depth 1 https://www.github.com/keyitdev/dotfiles.git "$HOME"/dotfiles
cp -ri "$HOME"/dotfiles/home/. "$HOME"/
sudo cp -ri "$HOME"/dotfiles/usr/. /usr/Set zsh as default shell.
chsh -s /bin/zshNote
And that’s it! You’ve successfully installed the base system and riced programs. However, your system may still be missing some important programs such as a media player or even a web browser. Steps below are optional, but I highly recommend checking them out.
Set up networking.
yay -S dhcpcd iwd
sudo systemctl enable --now dhcpcd.service iwd.serviceInstall optional dependencies.
yay -S --needed bc dmenu downgrade fzf mpc nano vim net-tools ntp tree vi wgetyay -S --needed 7zip czkawka-gui firefox firefox-beta-bin firefox-developer-edition gimp inkscape gparted libreoffice-fresh mpv vlc nemo nemo-fileroller obs-studio obsidian qalculate-gtk rsync vnstat yt-dlpyay -S --needed cpupower-gui ntfs-3g nvidia cuda nvtop vulkan-radeonyay -S --needed cloc cronie docker gcc clang make npm python pypy python-numpy python-pandas python-scipy python-matplotlib python-requests tmuxyay -S --needed noto-fonts noto-fonts-cjk noto-fonts-emoji noto-fonts-extraEnable optional services.
sudo systemctl enable ntpd.service
sudo systemctl enable vnstat.serviceYou can support me simply by dropping a star on github.
If you enjoyed it and would like to show your appreciation, you can tip me using kofi.
Feel free to create an issue or pull request.
- However, check the issues tab first to avoid creating duplicates.
- When opening an issue, please provide detailed information about the problem. I can't help if you just write something like "this thing is not working" - include as much relevant information as possible.
- Before starting to work on a pull request for a new feature, please open an issue first so we can discuss about it.
- Avoid overusing AI. We don't need 500 emojis. More lines of code doesn't mean better code - focus on simplicity and quality.
If you need any help, you can ask questions here on discussions or contact me on discord / reddit.
Thanks to all contributors! :D
tree WIParchlinux-keyring base base-devel linux linux-firmware- basedhcpcd- DHCP client (optional)git- version control systemiwd- wireless network daemon (optional)pulseaudio- sound server for handling audioxorg- display serverxorg-xinit- script to manually start the X server without a display manager (optional)
btop- resource monitorcode- code editordunst- notification deamonfastfetch- system information fetcherfeh- wallpaper setteri3-wm- dynamic tiling window managerkitty- terminal emulatori3lock-color- lock screen (AUR)mate-polkit- controlling system-wide privilegesmpd- music playback servicencmpcpp- MPD clientpapirus-icon-theme- modern icon packpicom- compositor for X11polybar- status barrofi- application launcherxss-lock- hooks into XScreenSaver events to lock the screen when idlezsh- shellzed- code editor
ttf-roboto-mono ttf-opensans ttf-iosevka-nerd
ffcast- script for recording your screen (AUR)inotify-tools- command-line utilities for monitoring filesystem eventsjq- JSON processorlibnotify- library for sending desktop notificationsrofi-vscode-mode- lauch recently used vsc workspacescrot- screenshot utilityslop- select a region on screenupower- power management daemonxclip- clipboard manager for X
All of these packages are optional, but without them, some things may not work correctly. I recommend atleast installing basic utilities. To install all packages, you need approximately 8.4 GiB of free disk space (5 GiB takes cuda package).
yay -S bc dmenu downgrade fzf mpc nano vim net-tools ntp tree vi wget
bc- command-line calculatordmenu- app launcherdowngrade- pkg downgraderfzf- fuzzy findermpc- comand-line MPD clientnano vim- text editorsnet-tools- network toolsntp- time synctree- directory tree viewervi- basic text editorwget- command-line downloader
yay -S 7zip czkawka-gui firefox firefox-beta-bin firefox-developer-edition gimp inkscape gparted libreoffice-fresh mpv vlc nemo nemo-fileroller obs-studio obsidian qalculate-gtk rsync vnstat yt-dlp
7zip- archiverczkawka-gui- duplicate finderfirefox firefox-beta-bin firefox-developer-edition- web browsersgimp inkscape- image editorsgparted- partition toollibreoffice-fresh- office suitempv vlc- media playersnemo nemo-fileroller- file managerobs-studio- screen recorderobsidian- notes appqalculate-gtk- calculator with advanced functionsrsync- file sync and backupvnstat- network monitoryt-dlp- video downloader
yay -S cpupower-gui ntfs-3g nvidia cuda nvtop vulkan-radeon
cpupower-gui- CPU settingsntfs-3g- NTFS filesystem supportnvidia cuda nvtop- NVIDIA driversvulkan-radeon- AMD Vulkan
yay -S cloc cronie docker gcc clang make npm python pypy python-numpy python-pandas python-scipy python-matplotlib python-requests tmux
cloc- counts lines of codecronie- task schedulerdocker- container platformgcc clang make- compilers and build toolsnpm- Node.js package managerpython pypy python-numpy python-pandas python-scipy python-matplotlib python-requests- Python interpreters and librariestmux- terminal multiplexer
yay -S noto-fonts noto-fonts-cjk noto-fonts-emoji noto-fonts-extra
noto-fonts noto-fonts-cjk noto-fonts-emoji noto-fonts-extra
| Keybinding | Action | Keybinding | Action |
|---|---|---|---|
Mod + Return |
Launch terminal | Mod + H |
Split in horizontal orientation |
Mod + D |
Open menu | Mod + V |
Split in vertical orientation |
Mod + Shift + Q |
Close focused window | Mod + Space |
Toggle focus mode (tiling / floating) |
Mod + F |
Toggle fullscreen | Mod + Shift + Space |
Toggle tiling / floating mode |
Mod + Q |
Launch Firefox Developer Edition | Mod + J/K/L/; |
Change focus direction |
Mod + W |
Open recent VSC workspace | Mod + Shift + J/K/L/; |
Move focused window |
Mod + E |
Open file manager (Nemo) | Mod + 1 to 0 |
Switch to workspaces 1 to 10 |
Mod + A |
Open menu (drun version) | Mod + Shift + 1 to 0 |
Move focused window to workspaces 1 to 10 |
Mod + S |
Open screenshots dir in Nemo | Mod + Shift + E |
Exit i3 |
Mod + Z |
Launch ncmpcpp | Mod + Shift + R |
Restart i3 |
Mod + X |
Open powermenu | Mod + Shift + C |
Reload i3 config file |
Mod + C |
Launch screenshot script | Mod + B |
Move workspace to the other monitor |
Mod + I |
Lock screen | Mod + N |
Set dual monitor mode |
Mod + G |
Enter gap mode | Mod + M |
Set single-monitor mode |
| Bg | Bg 2 | Bg 3 | Border | Fg | White | Gray | Black |
|---|---|---|---|---|---|---|---|
#1b1b25 |
#282A36 |
#16161e |
#343746 |
#dedede |
#eeffff |
#727480 |
#15121c |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
| Red | Green | Yellow | Blue | Purple | Cyan | Pink | Orange |
|---|---|---|---|---|---|---|---|
#cb5760 |
#999f63 |
#d4a067 |
#6c90a8 |
#776690 |
#528a9b |
#ffa8c5 |
#c87c3e |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Distributed under the GPLv3+ License.
Copyright (C) 2022-2025 Keyitdev.
















