This repository contains customized configurations for a complete development desktop environment, including Qtile, Neovim, Fish, Zsh, Zellij, and terminal emulators like WezTerm and Alacritty, along with essential utilities for linux system.
DISCLAIMER This is my config with my preferences but you can customize it.
- Dotfiles
This guide will walk you through the process of building a desktop environment starting from a clean Arch-Linux installation. It assumes you are familiar with Linux-based operating systems and command-line interfaces. Since you're reading this, it's also assumed that you've explored some "tiling window managers" the place where the rabbit hole begins. While you can use any window manager, I will focus on Qtile, as that's what I started with. This is a description of how I set up my desktop environment from scratch.
The starting point of this guide is right after completing a clean Arch-Linux installation. See the Arch Installation Guide for more details. My suggestions can be found in Installation.
-
Install Xorg:
Xorg is an implementation of the X Window System for Unix-like operating systems, such as Linux. It is a key component for providing a graphical interface on these systems.
sudo pacman -S xorg --noconfirm- Login and Window Manager
First, we need to be able to login and open programs like a browser and terminal. We will start by installing Lightdm and Qtile. Note that LightDM requires a greeter to work. We'll also need a terminal and text editor.
- Install Basic Software To make this configuration work, you need to install some basic software:
sudo pacman -S lightdm lightdm-gtk-greeter lightdm-webkit2-greeter \
qtile wezterm firefox rofi neofetch htop base-devel pulseaudio \
pavucontrol feh bat exa neovim flameshot unzip thunar picom arandr \
brightnessctl --noconfirmFor details about this software, see the Software section.
- Enable Login Manager
To enable logging in to Qtile, you need to enable LightDM:
sudo systemctl enable lightdmIn this point, you have a basic desktop environment, but you try configure you own environment searching on internet. Or copy my configuration to your environment.
- Clone Repository
git clone https://github.com/angelcruz07/dotfiles.git- Install Fonts
Before continuing, let's install the fonts used in my configuration.
I use IosevkaTerm, CascadiaCode, and Ubuntu Mono Nerd.
Download Iosevka font from its official site or from Nerd Fonts GitHub or install it directly with pacman:
sudo pacman -S ttf-ubuntu-mono-nerd ttf-cascadia-code ttf-iosevkaterm-nerd- Copy Configurations
Copy my configurations in
.config:
cp -r ~/dotfiles/AlexcodeQtile/qtile/ ~/.config/
cp -r ~/dotfiles/AlexcodeRofi/rofi/ ~/.config/NOTE Reboot your PC to check if everything is set up correctly.
You're done! You have basic environment Happy Codding!
You need to install software for development you can continue with the following steps:
In this point, you need to install HomeBrew a package manager for Linux and macOS. I use homebrew for is more comfortable to install and find software but you use pacman.
/bin/bash -c "$(curl -fsSL <https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh>)"Add Homebrew to your shell profile:
# Replace 'YourUserName' with your username
(echo; echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"') >> /home/YourUserName/.bashrc
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"Choose and install one of the following terminal emulators:
-
Alacritty: Download from GitHub Releases.
-
WezTerm: Download and Install.
-
Kitty: Download and Install.
I use Wezterm is a terminal emulator with support for ligatures, and more, It's great.
sudo pacman -S --noconfirm alacritty
# Copy my configuration
cp -r ~/dotfiles/AlexcodeAlacritty/alacritty/ ~/.config/sudo pacman -S --noconfirm wezterm
#Copy my configuration
cp -r ~/dotfiles/AlexcodeDost/.wezterm ~/.config/sudo pacman -S --noconfirm kittyI use Zsh like main shell, It't great have auto-completion and themes.
brew install zsh carapace zoxide atuin fzf starship
brew install zsh-autosuggestions zsh-syntax-highlighting zsh-autocomplete
# Copy my configuration
cp -r ~/dotfiles/AlexcodeDots/.zshrc ~/
cp -r ~/dotfiles/AlexcodeDots/starship.toml ~/.configbrew install zellij
# also
sudo pacman -S --noconfirm zellij
# Copy my configuration
cp -r ~/dotfiles/AlexcodeZellij/zellij/ ~/.config/brew install nvim node npm git gcc fzf fd ripggrep coreutils bat curl lazygit
#Copy my configuration
cp -r ~/dotfiles/AlexcodeNvim/nvim/ ~/.config/In arch linux you can install software from AUR
Install git if you don’t have it:
sudo pacman -S git
Clone the yay AUR helper repository:
sudo git clone https://aur.archlinux.org/yay-git.gitBuild and install yay:
cd yay-git
makepkg -siRemove the yay directory once installed:
rm -r yay-gitThis basic Utilities for your desktop environment.
Install PulseAudio and its control tools:
sudo pacman -S pulseaudio pavucontrolTo enable Bluetooth, start and enable the Bluetooth service:
sudo systemctl start bluetooth.service
sudo systemctl enable bluetooth.service
sudo systemctl status bluetooth.serviceTo manage screen brightness:
sudo pacman -S brightnessctlInstall feh to set your wallpaper, and configure it in your .xprofile file:
# Install feh
sudo pacman -S feh
# Set wallpaper in your .xprofile
feh --bg-scale /path/to/image.jpgTo manage multiple monitors, install arandr:
sudo pacman -S arandrCheck my configuration in xprofile.
- mod: Sets the mod key to the "super" key (usually the Windows key).
- terminal: Sets the default terminal emulator to WezTerm.
- keys: A list of key bindings for various actions in Qtile.
| Key | Action |
|---|---|
| mod + j | Move focus down |
| mod + k | Move focus up |
| mod + shift + h | Decrease master |
| mod + shift + l | Increase master |
| mod + shift + j | Move window down |
| mod + shift + k | Move window up |
| mod + shift + f | Toggle floating window |
| mod + tab | Change layout |
| mod + [1-9] | Switch to workspace N (1-9) |
| mod + shift + [1-9] | Move window to workspace N (1-9) |
| mod + period | Focus next monitor |
| mod + comma | Focus previous monitor |
| mod + w | Kill window |
| mod + ctrl + r | Restart window manager |
| mod + ctrl + q | Quit window manager |
| Key | Action |
|---|---|
| mod + m | Launch rofi |
| mod + shift + m | Window nav (rofi) |
| mod + b | Lunch Browser(Firefox) |
| mod + e | Lunch File explores(thunar) |
| mod + return | Luch Terminal (Alacritty) |
| mod + r | Redshift |
| mod + shift + r | Stop redshift |
| mod + s | Screenshot (scrot) |
| mod + c | Launch VsCode |
List of software used in the desktop environment.
| Software | Utility |
|---|---|
| arandr | Manage multiple screens |
| pacman-contrib | Pacman utilities |
| bat | View files with syntax highlighting |
| blueman | Bluetooth control |
| bluez | Bluetooth stack |
| bluez-utils | Bluetooth utilities |
| brightnessctl | Laptop screen brightness |
| cbatticon | Battery icon |
| exa | List files visually |
| feh | Wallpaper setter |
| flameshot | Screenshot |
| libnotify | Receive notifications |
| lxappearance | GUI for changing themes |
| network-manager-applet | NetworkManager systray |
| networkmanager | Self explanatory |
| notification-daemon | Notifications |
| ntfs-3g | Read mounted USB in Windows |
| picom | Compositor for Xorg |
| pip | Python package manager |
| pulseaudio | Audio control |
| pulseaudio-bluetooth | Bluetooth audio support for PulseAudio |
| qiv | Image viewer |
| ranger | Terminal based explorer |
| rofi | Menu and window switcher |
| scrot | Screenshots |
| thunar | Graphical file explorer |
| udiskie | Automounter |
| unzip | Unzip files |
| vlc | Media player |
| volumeicon | Audio icon |
| xcb-util-cursor | Change theme cursor |
| Software | Utility | Pacman |
|---|---|---|
| Alacritty | Terminal emulator | Alacritty |
| Kitty | Terminal emulator | Kitty |
| WezTerm | Terminal emulator | WezTerm |
| Software | Utility | Pacman |
|---|---|---|
| nvim | Editor | sudo pacman -S neovim |
| xsel | Clipboard | sudo pacman -S xsel |
| fzf | Finder | sudo pacman -S fzf |
| ripgrep | Finder | sudo pacman -S ripgrep |
| fd | Finder | sudo pacman -S fd |
| prettier | Formater | sudo pacman -S prettier |
| Software | Utility |
|---|---|
| UbuntuMono Nerd Fonts | Font |
| IosevkaTerm Nerd | Font |
| Cascadia Code | Font |
| Theme GTK | Icons Theme |

