This is my personal Arch Linux BSPWM configuration.
Please ensure that the packages I use suit your needs before installation.
OS | Arch Linux |
---|---|
AUR Helper | Paru |
Shell | Zsh |
Window Manager | bspwm |
Bar | Polybar |
Compositor | Picom |
Menu | Rofi |
Terminal | Alacritty |
File Manager | Yazi/Thunar |
Browser | Chromium |
Text Editor | Neovim |
The initial installation of Paru.
$ sudo pacman -Syu --needed neovim reflector git base-devel
$ git clone https://aur.archlinux.org/paru-git.git
$ cd paru && makepkg -si
$ cd ~ && rm -rf paru
To speed up the compilation of packages, edit the makepkg.conf
file (use nproc for see amount of CPU cores):
$ sudo nvim /etc/makepkg.conf
MAKEFLAGS="-j8"
Enable parallel downloading of packages by editing the pacman.conf
file:
$ sudo nvim /etc/pacman.conf
ParallelDownloads = 8
Color
Clone the repository and update submodules:
$ git clone --depth=1 --recurse-submodules https://github.com/masajinobe-ef/archlinux-bspwm
$ cd archlinux-bspwm && git submodule update --remote --merge
Assuming your AUR Helper is Paru, run:
$ paru -S --needed --noconfirm xorg-server xorg-xinit xorg-xrandr xorg-xsetroot xorg-xset bspwm sxhkd polybar python-pywal rofi chromium alacritty zsh dunst libnotify picom feh vulkan-radeon lib32-vulkan-radeon vulkan-icd-loader lib32-vulkan-icd-loader mesa mesa-utils mesa-vdpau libva-mesa-driver lib32-mesa networkmanager nm-connection-editor sof-firmware bluez bluez-utils acpid cronie udisks2 xdg-user-dirs yazi perl-image-exiftool ueberzugpp imagemagick xreader thunar tumbler ffmpegthumbnailer polkit-gnome lxappearance-gtk3 neovim mpv mpd mpdris2 ncmpcpp mpc tmux ghq git lazygit stow yt-dlp ffmpeg fastfetch btop eza fzf fd ripgrep bat bat-extras rsync curl wget maim xdotool xclip zoxide aria2 hyperfine xsel reflector jq man-db poppler ccache go rust nodejs npm yarn p7zip unrar zip unzip ttf-jetbrains-mono-nerd noto-fonts noto-fonts-emoji noto-fonts-cjk ttf-cascadia-code-nerd papirus-icon-theme
Copy the configuration files to the appropriate directories:
$ sudo chmod +x sym
$ ./sym
Enable and start necessary services:
$ sudo systemctl enable acpid.service --now
$ sudo systemctl enable NetworkManager.service --now
$ sudo systemctl enable bluetooth.service --now
$ sudo systemctl enable sshd.service --now
$ sudo systemctl enable cronie.service --now
$ systemctl --user enable mpd.service --now
$ sudo systemctl enable reflector.timer
$ sudo systemctl enable fstrim.timer
Add languages to your system:
$ sudo nvim /etc/locale.gen
ru_RU.UTF-8 UTF-8
$ sudo locale-gen
Set the keyboard layout in X11:
$ sudo localectl --no-convert set-x11-keymap us,ru pc105+inet qwerty grp:caps_toggle
Configure the mouse settings:
$ sudo nvim /etc/X11/xorg.conf.d/30-pointer.conf
Section "InputClass"
Identifier "pointer"
Driver "libinput"
MatchIsPointer "on"
Option "NaturalScrolling" "false"
Option "AccelProfile" "flat"
Option "TransformationMatrix" "1 0 0 0 1 0 0 0 2"
EndSection
Configure reflector (pacman mirrors):
$ sudo nvim /etc/xdg/reflector/reflector.conf
--save /etc/pacman.d/mirrorlist
--protocol https
--country France,Germany,Finland,Russia,Netherlands
--latest 10
--sort rate
--age 12
Install Oh My Zsh:
$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
Consider installing the following plugins for Zsh:
Install tmux-sessionizer:
$ cargo install tmux-sessionizer
Install commitizen:
$ npm install -g commitizen cz-conventional-changelog
Install nvm:
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
This project is licensed under MIT. Please refer to the LICENSE file for detailed license information.