Environment - uiriansan/dotfiles GitHub Wiki

Set up environment

Warning

I created this guide exclusively for future reference and thus optimized it for my PC config. Make sure to install the correct drivers for yours.

Here my specs:

Motherboard Gigabyte H270M-D3H-CF
CPU Intel Core i5-7400
GPU Nvidia GeForce GTX 1050 Ti
RAM HyperX DDR4 16 GB 2400MHz
Storage Corsair SSD M.2 NVMe 1TB MP600 PRO
Displays
[0] 1600x900 60Hz

[1] 1920x1080 60Hz

Every command bellow is meant to be run on a fresh Arch Linux installation. Proceed with caution.

Setup script

Warning

This script might break your system! Read the manual installation section bellow to see what it does before running.

$ git clone --recursive https://github.com/uiriansan/hyprdots && cd hyprdots && ./setup.sh | bash

Manual installation

  1. Create user directories
$ mkdir -p ~/.config ~/Pictures ~/Documents ~/Code ~/Sources
  1. Upgrade the system
$ sudo pacman -Syu
  1. Clone this repo and copy its contents into ~/.config
$ git clone https://github.com/uiriansan/hyprdots
$ cd hyprdots
$ cp -r . ~/.config
  1. Install essential packages
$ sudo pacman -S --needed grub ntfs-3g bottom chafa jq clang cmake cronie eza fasm fastfetch feh fish fzf gdb git glfw htop libsixel lua luarocks man-db man-pages nasm qemu-desktop npm openssh python-pip python-pipx ripgrep wofi rust-analyzer rustup starship neovim tmux tree unzip xclip yazi nvidia-dkms nvidia-utils egl-wayland hyprland xdg-desktop-portal-hyprland hyprpaper kitty ghostty firefox spotify-launcher sddm qt5-declarative uwsm pipewire dunst qt5-wayland qt6-wayland hyprpolkitagent lxappearance nwg-look pulseaudio playerctl qt5-graphicaleffects wl-clipboard libva-nvidia-driver ttf-jetbrains-mono-nerd adobe-source-han-sans-cn-fonts adobe-source-han-sans-jp-fonts adobe-source-han-sans-kr-fonts adobe-source-han-sans-otc-fonts adobe-source-han-sans-tw-fonts adobe-source-han-serif-cn-fonts adobe-source-han-serif-jp-fonts adobe-source-han-serif-kr-fonts adobe-source-han-serif-otc-fonts adobe-source-han-serif-tw-fonts linux-headers
# ASCII art generator
$ pipx ensurepath && pipx install img2art

# yay
$ git clone https://aur.archlinux.org/yay.git && cd yay && makepkg -si

# spicetify
$ curl -fsSL https://raw.githubusercontent.com/spicetify/cli/main/install.sh | sh

# Zen browser
$ yay -S zen-browser-bin
  1. Configure mkinitcpio

    Edit /etc/mkinitcpio.conf and add the following module names in the MODULE array: MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)
$ EDITOR=nvim sudoedit /etc/mkinitcpio.conf

# Configure modprobe
$ echo "options nvidia_drm modeset=1 fbdev=1" | sudo tee -a /etc/modprobe.d/nvidia.conf

# Run mkinitcpio
$ sudo mkinitcpio -P
  1. Force Spotify to use Wayland

    Edit /etc/spotify-launcher.conf and uncomment this line: extra_arguments = ["--enable-features=UseOzonePlatform", "--ozone-platform=wayland"]
$ EDITOR=nvim sudoedit /etc/spotify-launcher.conf
  1. Configure SDDM
# Enable SDDM
$ sudo systemctl enable sddm.service

# Install theme
$ sudo cp -r ~/.config/sddm/themes/deepin/ /usr/share/sddm/themes/
$ sudo sed -i "s/^Current=.*/Current=deepin/g" /usr/lib/sddm/sddm.conf.d/default.conf
  1. Set up weather cron job
# Enable cronie
$ sudo systemctl enable cronie.service
$ sudo systemctl start cronie.service

# Create cron job
$ CRONJOB="*/30 * * * * ${HOME}/.config/scripts/consume_weather.sh >> ${HOME}/.config/scripts/weather_cron.log"
$ (crontab -l; echo "$CRONJOB") | crontab -

# Run script
$ chmod +x ~/.config/scripts/consume_weather.sh
$ source $HOME/.config/scripts/consume_weather.sh
  1. Backup installed packages to file

    If you want to install the packages listed in pkglist.txt, run:
$ pacman -S --needed $(comm -12 <(pacman -Slq | sort) <(sort ~/.config/pkglist.txt))

To automatically backup them every time you run pacman:

$ sudo cp ~/.config/savepkgs.hook /usr/share/libalpm/hooks/

Alternatively, to manually backup them:

$ chmod +x ~/.config/savepkgs.sh
$ ./savepkgs.sh

Prev: Arch Linux installation guide
Next: Extras

⚠️ **GitHub.com Fallback** ⚠️