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

Git SSH config

Basic Git config:

$ git config --global user.name "username"
$ git config --global user.email [email protected]
$ git config --global init.defaultBranch main

Setup SSH key:

$ ssh-keygen -t ed25519 -C "[email protected]"
$ cat ~/.ssh/<ssh_key.pub>

Copy and paste in Github > Settings > SSH and GPG keys > New SSH key.

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 ---recursive [email protected]:uiriansan/dotfiles.git
$ cd dotfiles
$ cp -r . ~/.config
  1. Install essential packages
$ sudo pacman -S --needed grub ntfs-3g chafa jq clang cmake cronie fasm fastfetch feh fish fzf gdb git glfw btop lua luarocks nasm qemu-desktop npm openssh python-pip python-pipx ripgrep rustup starship vim neovim lsd tree zoxide unzip xclip yazi kitty spotify-launcher steam discord sddm qt6-declarative qt6-svg qt6-virtualkeyboard pipewire lxappearance nwg-look playerctl 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 nitrogen picom redshift flameshot zed blender krita linux-headers --asdeps lib32-nvidia-utils
# 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
$ yay -S redhat-fonts
  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

# Create Nvidia Xorg config file:
$ nvidia-xconfig

# Check if DRM is enabled (should return Y, and not N):
$ cat /sys/module/nvidia_drm/parameters/modeset

# Run mkinitcpio
$ sudo mkinitcpio -P
  1. Configure SDDM
# Enable SDDM
$ sudo systemctl enable sddm.service
  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

setxkbmap -layout us -variant altgr-intl
⚠️ **GitHub.com Fallback** ⚠️