Skip to content

Instantly share code, notes, and snippets.

@felipefontoura
Last active February 11, 2025 11:35
Show Gist options
  • Save felipefontoura/b86b6d269426d306c359e19022de4330 to your computer and use it in GitHub Desktop.
Save felipefontoura/b86b6d269426d306c359e19022de4330 to your computer and use it in GitHub Desktop.

Arch Linux install guide

Apps

Yay

sudo pacman -Sy --needed git base-devel
git clone https://aur.archlinux.org/yay-bin.git
cd yay-bin
makepkg -si
cd ..
rm -rf yay-bin

ZSH

yay -Sy --noconfirm zsh bat exa fd ripgrep procs grex zsh-theme-powerlevel10k ttf-ibmplex-mono-nerd ttf-terminus-nerd
git clone https://github.com/zsh-users/zsh-autosuggestions ~/.zsh/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ~/.zsh/zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-history-substring-search ~/.zsh/zsh-history-substring-search
chsh -s /usr/bin/zsh

.zshrc

# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zsh
rc.
# Initialization code that may require console input (password prompts, [y/n]
# confirmations, etc.) must go above this block; everything else may go below
.
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
 ]]; then
  source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi

# Initialize autocompletion
zstyle ':completion:*' completer _expand _complete _ignored _correct _approxi
mate
zstyle ':completion:*' menu select=long
zstyle ':completion:*' select-prompt '%SScrolling active: current selection a
t %p%s'
zstyle :compinstall filename '/home/felipefontoura/.zshrc'
autoload -Uz compinit
compinit

# History setup
setopt APPEND_HISTORY
setopt SHARE_HISTORY
HISTFILE=$HOME/.zhistory
SAVEHIST=1000
HISTSIZE=999
setopt HIST_EXPIRE_DUPS_FIRST
setopt EXTENDED_HISTORY

bindkey -v

# Autocompletion using arrow keys (based on history)
bindkey '\e[A' history-search-backward
bindkey '\e[B' history-search-forward

# Home, End, Insert and Delete keys
bindkey  "^[[H"  beginning-of-line
bindkey  "^[[F"  end-of-line
bindkey  "^[[3~" delete-char
bindkey  "^H"    backward-delete-word

# No beep
setopt NO_BEEP

source ~/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh
source ~/.zsh/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
source ~/.zsh/zsh-history-substring-search/zsh-history-substring-search.zsh

source /opt/asdf-vm/asdf.sh

source /usr/share/zsh-theme-powerlevel10k/powerlevel10k.zsh-theme

# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh

# Export ENV
export EDITOR=nvim
export GTK_THEME=catppuccin-mocha-blue-standard+default:dark
export ANTHROPIC_API_KEY=sk-xxx

# Aliases

# Git
alias g="git"
alias gst="git status"
alias gad="git add"
alias gcm="git commit"
alias gps="git push"
alias gpl="git pull"
alias grb="git rebase"

# Rails
alias rce="bin/rails credentials:edit"
alias rcs="bin/rails credentials:show"

alias rgmi="bin/rails generate migration"
alias rdmi="bin/rails destroy migration"
alias rgmd="bin/rails generate model"
alias rdmd="bin/rails destroy model"
alias rgct="bin/rails generate controller"
alias rdct="bin/rails destroy controller"
alias rgat="bin/rails generate authentication"
alias rdat="bin/rails destroy authentication"

alias rc="bin/rails console"

alias rt="bin/rails test"

alias rdbcr="bin/rails db:create"
alias rdbmi="bin/rails db:migrate"
alias rdbrb="bin/rails db:rollback"
alias rdbsd="bin/rails db:seed"

alias befsd="bundle exec foreman start -f Procfile.dev"
alias befsp="bundle exec foreman start -f Procfile"

# Bundle
alias bi="bundle install"
alias be="bundle exec"

# Neovim
alias nv="nvim"

# Shell
alias ls="exa --icons"
alias cat="bat"
#alias find='fd'
#alias grep='rg'
#alias ps='procs'

ASDF

yay -Sy --noconfirm asdf-vm
mkdir -p "${ASDF_DATA_DIR:-$HOME/.asdf}/completions"
asdf completion zsh > "${ASDF_DATA_DIR:-$HOME/.asdf}/completions/_asdf"

asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git
asdf plugin add ruby https://github.com/asdf-vm/asdf-ruby.git
asdf plugin add python

Ruby on Rails

yay -Sy libvips

Neovim

yay -Sy neovim neovim-notify xclip lazygit lazydocker tree-sitter-cli fzf

Install lazyvim:

# required
mv ~/.config/nvim{,.bak}

# optional but recommended
mv ~/.local/share/nvim{,.bak}
mv ~/.local/state/nvim{,.bak}
mv ~/.cache/nvim{,.bak}

git clone https://github.com/LazyVim/starter ~/.config/nvim && rm -rf ~/.config/nvim/.git

Neovim for node.js

npm install -g yarn neovim

Neovim for ruby

gem install neovim
gem environment

Gnome

Default applications

# streamdeck-ui obs-color-monitor obs-composite-blur obs-linuxbrowser-bin rclone-browser kopia-ui-bin kopia-bin

gpg --auto-key-locate nodefault,wkd --locate-keys [email protected]
yay -Sy --noconfirm ufw curl usbutils pwgen wmctrl dosfstools exfatprogs ntfs-3g f2fs-tools gparted brave-bin tor-browser-bin chromium zoom inkscape gimp blender audacity obs-studio v4l2loopback-dkms obs-source-clone obs-move-transition handbrake vlc transmission-gtk anki-bin rnote thunderbird thunderbird-i18n-pt-br hunspell-en_us hunspell-pt-br keepassxc menulibre logseq-desktop-bin visual-studio-code-bin gnome-boxes docker docker-buildx lazydocker-bin openlens-bin kubectl stern-bin helm argocd restfox-bin bootstrap-studio jdk-openjdk p7zip rar zip rsync rclone yt-dlp metadata-cleaner bitcoin-qt sparrow-wallet electrum bisq-bin papirus-icon-theme-git minecraft-launcher

Default fonts

yay -Sy --noconfirm ttf-opensans ttf-ubuntu-font-family ttf-bitstream-vera ttf-liberation noto-fonts ttf-ms-fonts ttf-caladea ttf-carlito ttf-dejavu ttf-gentium-basic ttf-linux-libertine-g adobe-source-code-pro-fonts adobe-source-sans-fonts adobe-source-serif-fonts

Extensions

yay -Sy --noconfirm gnome-shell-extension-appindicator gromit-mpx gnome-shell-extension-arch-update

Remove ununsed apps

sudo pacman -Rs totem gnome-music gnome-weather gnome-maps gnome-tour gnome-software gnome-contacts snapshot gnome-clocks yelp epiphany gnome-calendar gnome-logs gnome-user-docs

Docker

Enable Buildx

docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
docker buildx rm builder
docker buildx create --name builder --driver docker-container --use
docker buildx inspect --bootstrap

Build command

docker buildx build --platform linux/amd64,linux/arm64 -t username/myapp:latest --push .

Openlens

Extensions

@alebcay/openlens-node-pod-menu
@andrea-falco/lens-multi-pod-logs
lens-extension-network-policy-viewer
@nevalla/kube-resource-map
@ottimis/lens-version-update

Foliate epub reader

yay -Sy foliate

Localsend

yay -Sy localsend-bin

Put this in /etc/ufw/applications.d/localsend and activate it with ufw app update LocalSend and ufw allow localsend:

[LocalSend]
title=LocalSend
description=An open-source cross-platform alternative to AirDrop
ports=53317

Only office

yay -Sy --noconfirm onlyoffice-bin

Libre office

yay -Sy --noconfirm libreoffice-fresh-pt-br hunspell-pt-br hyphen-pt-br mythes-pt-br

Arduino e NodeMCU

sudo pacman -Sy arduino

Aditional Boards Manager URL: https://dl.espressif.com/dl/package_esp32_index.json,http://arduino.esp8266.com/stable/package_esp8266com_index.json

Kicad

yay -Syu kicad kicad-library kicad-library-3d kicad-library-digikey-git

Freecad

sudo pacman -Syu freecad

Davinci Resolve

yay -Sy davinci-resolve

If not run, delete these files:

/opt/resolve/libs/libglib-*
/opt/resolve/libs/libgio-*
/opt/resolve/libs/libgmodule-*

Davinci Resolve studio

yay -Sy davinci-resolve-studio opencl-nvidia

If not activate, execute with sudo:

sudo /opt/resolve/bin/resolve

Refs:

GPU Memory is full error, run with these params:

env __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia __VK_LAYER_NV_optimus=NVIDIA_only /opt/resolve/bin/resolve %u

System

Enable services

sudo ufw default deny
sudo systemctl start ufw.service
sudo systemctl enable ufw.service
sudo systemctl start bluetooth.service
sudo systemctl enable bluetooth.service

Install Printer

yay -Sy --noconfirm cups brother-hl1210w
sudo systemctl start cups.service
sudo systemctl enable cups.service
sudo lpadmin -p Brother-HL-1212W -E -v ipp://192.168.15.84 -m brother-HL1210W-cups-en.ppd -o media=iso_a4_210x297mm

Tricks

Pacman
pacman -Qdtq | sudo pacman -Rns -
yay -Scc --noconfirm
Adjust Nautilus to open folders
xdg-mime default org.gnome.Nautilus.desktop inode/directory
Define dark for electrum apps

~/.config/gtk-3.0/settings.ini

[Settings]
gtk-application-prefer-dark-theme=1

/etc/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf

Section "OutputClass"
    Identifier "intel"
    MatchDriver "i915"
    Driver "modesetting"
EndSection

Section "OutputClass"
    Identifier "nvidia"
    MatchDriver "nvidia-drm"
    Driver "nvidia"
    Option "AllowEmptyInitialConfiguration"
    Option "PrimaryGPU" "yes"
    ModulePath "/usr/lib/nvidia/xorg"
    ModulePath "/usr/lib/xorg/modules"
EndSection
Define GDM to open on primary display
sudo cp ~/.config/monitors.xml /var/lib/gdm/.config/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment