https://github.com/sontungexpt/stilux-dotfiles
Arch linux ricing
https://github.com/sontungexpt/stilux-dotfiles
arch-linux dotfiles lua neovim ricing shell
Last synced: about 2 months ago
JSON representation
Arch linux ricing
- Host: GitHub
- URL: https://github.com/sontungexpt/stilux-dotfiles
- Owner: sontungexpt
- Created: 2023-02-16T15:06:09.000Z (about 3 years ago)
- Default Branch: v6
- Last Pushed: 2024-12-27T10:29:20.000Z (over 1 year ago)
- Last Synced: 2025-05-07T05:51:17.960Z (11 months ago)
- Topics: arch-linux, dotfiles, lua, neovim, ricing, shell
- Language: Shell
- Homepage:
- Size: 661 MB
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Information
#### Basic applications
| **Features** | **Applications** |
| --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Window Manager** | [i3](https://github.com/i3/i3) |
| **Status Line** | [polybar](https://github.com/polybar/polybar) |
| **Applications Launcher** | [rofi](https://github.com/davatorium/rofi) |
| **Code Editor** | [neovim](https://github.com/neovim/neovim), [visual studio code](https://github.com/microsoft/vscode) |
| **Browser** | [firefox](https://archlinux.org/packages/?name=firefox) |
| **File Manager** | [lf](https://github.com/gokcehan/lf), [thunar](https://github.com/xfce-mirror/thunar) |
| **Notification Manager** | [dunst](https://github.com/dunst-project/dunst) |
| **Shell** | [zsh](https://archlinux.org/packages/?name=zsh) with [oh-my-zsh theme](https://github.com/ohmyzsh/ohmyzsh) |
| **Bluetooth Manager** | [blueman](https://github.com/blueman-project/blueman) |
| **Wifi Hotspot** | [linux-wifi-hotspot](https://github.com/lakinduakash/linux-wifi-hotspot) |
| **Screenshot** | [flameshot](https://github.com/flameshot-org/flameshot), [scrot](https://github.com/dreamer/scrot) |
| **Desktop Record** | [recordmydesktop](https://wiki.archlinux.org/title/RecordMyDesktop) |
| **Disk Manager** | [gparted](https://github.com/mgehre/gparted) |
| **Grub Manager** | [grub-customizer](https://github.com/mdeguzis/grub-customizer/tree/master) |
| **Theme Manager** | [lxappearance-gtk3](https://security.archlinux.org/package/lxappearance-gtk3) |
| **Image Viewer** | [feh](https://github.com/derf/feh) |
| **Video Player** | [mpv](https://github.com/mpv-player/mpv) |
| **Aur, Download Helper** | [yay](https://github.com/Jguer/yay), [git](https://git-scm.com/), [curl](https://github.com/curl/curl), [wget](https://github.com/jay/wget) |
| **Terminal** | [kitty](https://github.com/kovidgoyal/kitty) |
| **Icons Theme** | [WhiteSur-icon-theme](https://github.com/vinceliuice/WhiteSur-icon-theme) |
| **Main Theme** | [tokyo-night](https://github.com/stronk-dev/Tokyo-Night-Linux) |
| **Cursor Theme** | [catpuchin-cursor](https://github.com/catppuccin/cursors) |
| **Login Manager** | [lightdm](https://github.com/canonical/lightdm), [lightdm-webkit2-greeter](https://github.com/antergos/web-greeter), [lightdm-webkit2-theme-glorious](https://github.com/manilarome/lightdm-webkit2-theme-glorious) |
| **Lockscreen** | [betterlockscreen](https://github.com/betterlockscreen/betterlockscreen) |
| **Compositor** | [picom](https://github.com/yshui/picom) |
| **Vietnamese Input** | [ibus-bamboo](https://github.com/BambooEngine/ibus-bamboo) |
| **System Monitor** | [gotop](https://github.com/cjbassi/gotop) |
| **Volume Control** | [pavucontrol](https://github.com/pulseaudio/pavucontrol) |
| **Achrive Manager** | [rar](https://aur.archlinux.org/packages/rar), [unrar](https://archlinux.org/packages/extra/x86_64/unrar/), [zip](https://archlinux.org/packages/?name=zip), [unzip](https://archlinux.org/packages/?name=unzip), [tar](https://archlinux.org/packages/?name=tar) |
| **Trash Manager** | [trash-cli](https://github.com/andreafrancia/trash-cli) |
| **Clipboard Manager** | [xclip](https://github.com/astrand/xclip) |
| **Ntfs Support** | [ntfs-3g](https://github.com/tuxera/ntfs-3g) |
| **System Information Tool** | [neofetch](https://github.com/dylanaraps/neofetch) |
| **Multi Monitors Tool** | [arandr](https://archlinux.org/packages/?name=arandr) |
#### Sitlux applications
| **Features** | **Applications** |
| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Desired Apps** | [figma](https://github.com/Figma-Linux/figma-linux), [gimp](https://gitlab.gnome.org/GNOME/gimp), [kdenlive](https://github.com/KDE/kdenlive), [inkscape](https://gitlab.com/inkscape/inkscape) |
| **Color Pitcher** | [xcolor](https://github.com/Soft/xcolor) |
| **Social Apps** | [discord](https://archlinux.org/packages/community/x86_64/discord/), [microsoft teams](https://aur.archlinux.org/packages/teams), zalo-web-app |
| **Office Suite** | [only-office](https://github.com/ONLYOFFICE/DesktopEditors) |
| **Dev Environment** | [python](https://archlinux.org/packages/?name=python) with [pip](https://archlinux.org/packages/extra/any/python-pip/), [ruby](https://archlinux.org/packages/community/x86_64/ruby/) with [rbenv](https://aur.archlinux.org/packages/rbenv), [flutter](https://docs.flutter.dev/get-started/install/linux), [android studio](https://developer.android.com/studio), [gcc](https://archlinux.org/packages/core/x86_64/gcc/), [cmake](https://archlinux.org/packages/extra/x86_64/cmake/), [nodejs](https://archlinux.org/packages/community/x86_64/nodejs/) with [npm](https://archlinux.org/packages/community/any/npm/) |
| **Brownser** | [microsoft-edge](https://aur.archlinux.org/packages/microsoft-edge-stable-bin) |
| **Dotfiles Manager** | [git bare](https://www.youtube.com/watch?v=tBoLDpTWVOM) |
#### Scripts
| **Name** | **Features** |
| -------------------------- | ----------------------------------------------------------- |
| **screenshot** | To screenshot and copy the picture to clipboard |
| **setavatar** | To change avatar lightdm |
| **extract** | To unachrive file regardless of zip or rar |
| **zsh-history-fix** | To solve zsh history error |
| **showwifipass** | To show logged in wifi password |
| **setwallpaper** | To set wallpaper of i3 wm |
| **add-lightdm-background** | To auto add background to the storage background of lightdm |
| **cleanarch** | To clean your arch linux |
## Preview


## Install arch linux and i3 wm
#### Install arch ( you can follow the instruction below or this [video](https://www.youtube.com/watch?v=JRdYSGh-g3s) to dual boot with window)
Install arch
- **Step 1: Setup Time**
```bash
timedatectl set-ntp true
```
- **Step 2: Check UEFI**
```bash
ls /sys/firmware/efi
```
- **Step 3: Check internet connection**
```bash
ping google.com
```
- **Step 3.5: Connect to Wi-Fi (Skip if you already success in step 3)**
```bash
iwctl
device list
```
Choose one device from the list example: wlan0
```bash
station wlan0 get-networks
station wlan0 connect "Wi-fi Name"
exit
```
- **Step 4: Sort Package Download Server**
```bash
pacman -Sy reflector
```
```bash
reflector -c [Region] -c [Region-Close] -c [Region-Close] -c [Region-Close] -a 12 --sort rate --save /etc/pacman.d/mirrorlist
```
If you are Vietnamese use this
```bash
reflector -c Vietnam -c Singapore -c Japan -c India -a 12 --sort rate --save /etc/pacman.d/mirrorlist
```
NOTE: There are usually error on this step, but you can totally ignore it and be fine!
Check mirror list that reflector generate
```bash
cat /etc/pacman.d/mirrorlist
```
- **Step 5: Disk Checking**
```bash
lsblk
```
- **Step 6: Disk Partition (Read it all before do)**
```bash
cfdisk /dev/nvme0n1
```
NOTE: Sometimes it will be sda instead of nvme0n1!
A disk usually has more than 50GB to work properly (You should take a picture)
Example:
> (Always) 500M for (EFI System). (Eg: /dev/nvme0n1 or /dev/sda)
> (Example) 1GB for (Linux swap) (If less RAM add more Swap) (eg: /dev/nvme0n1p2 or /dev/sda2)
> (Should) 30GB (or more) for root (Linux Filesystem) (eg: /dev/nvme0n1p3 or /dev/sda3)
> (Always) The rest for home (Linux Filesystem) (eg: /dev/nvme0n1p4 or /dev/sda4)
Disk partition with cfdisk: (replace sda with nvme like the above)
1. Choose (gpt) if asked
2. At Free Space choose [NEW]
3. Enter disk space (eg: 500M,30GB,.....)
4. At dev/nvme0n1p1 choose [TYPE] and choose partition type like above
5. Repeat with all the other partition
6. Choose [WRITE] to save it all
Swap Rule:
1. RAM ⩽ 2GB: Double the RAM (eg: 2GB RAM then 4GB Swap)
2. 2 GB – 8 GB: Equal the RAM (eg: 3GB RAM then 3GB Swap)
3. 8 GB: Minimum 4GB for Swap (add more as you like)
- **Step 7: Disk formatting**
1. **New arch linux only do this**
```bash
mkfs.fat -F32 /dev/nvme0n1p1
mkswap /dev/nvme0n1p2
swapon /dev/nvme0n1p2
mkfs.ext4 /dev/nvme0n1p3
mkfs.ext4 /dev/nvme0n1p4
```
2. **If you dual boot with Window do this**
For swap partition do this
```bash
mkswap /dev/nvme0n1p2
swapon /dev/nvme0n1p2
```
For root partition do this (it will format partition)
```bash
mkfs.ext4 /dev/nvme0n1p3
```
For home partition do this (it will format partition)
```bash
mkfs.ext4 /dev/nvme0n1p4
```
NOTE: Replace with nvme if you have nvme instead of sda as the above
- **Step 8: Mount Partitions**
NOTE: Replace with nvme if you have nvme instead of sda as the above
1. **New arch linux only do this**
```bash
mount /dev/nvme0n1p3 /mnt
mkdir /mnt/boot
mount /dev/nvme0n1p1 /mnt/boot
mkdir /mnt/home
mount /dev/nvme0n1p4 /mnt/home
```
2. **If you dual boot with Window do this**
```bash
mount /dev/nvme0n1p3 /mnt
mkdir /mnt/home
mount /dev/nvme0n1p4 /mnt/home
```
- **Step 9: Install base packages**
```bash
pacstrap -i /mnt base base-devel linux linux-firmware linux-headers intel-ucode sudo git neofetch networkmanager network-manager-applet dhcpcd neovim
```
- **Step 10: Basic setup**
```bash
Note: If you dual boot with windows then do mount the EFI partition first:
mkdir /mnt/boot
mount /dev/nvme0n1p1 /mnt/boot
```
```bash
genfstab -U /mnt >> /mnt/etc/fstab
```
```bash
arch-chroot /mnt
```
NOTE: For this step replace [timezone] with region example Australia/Sydney
```bash
ln -sf /usr/share/zoneinfo/[timezone]/[timezone] /etc/localtime
```
If you are Vietnamese do this
```bash
ln -sf /usr/share/zoneinfo/Asia/Ho_Chi_Minh /etc/localtime
```
```bash
hwclock --systohc
```
```bash
nvim /etc/locale.gen
After that uncomment: en_US.UTF-8 UTF-8
```
For those who don't know how to use neovim:
1. Press [i] to enter vim edit mode
2. At line # en_US.UTF-8 UTF-8 remove # and the additional spaces then press [ESC]
3. Enter the following keys [:] [w] [q] then [ENTER]
```bash
locale-gen
```
```bash
echo LANG=en_US.UTF-8 > /etc/locale.conf
```
NOTE: From the following step replace stilux-pc with your pc name (note names should be short and not contain special characters use - for spaces eg: stilux-pc)
```bash
echo stilux-pc > /etc/hostname
```
```bash
nvim /etc/hosts
```
Add the following line: (do like above to edit vim) (press [TAB] at [TAB])
```bash
127.0.0.1[TAB]localhost
::1[TAB]localhost
127.0.1.1[TAB]stilux-pc.localdomain[TAB]stilux-pc
```
(Exit and save like above)
Create password for root (Admin)
```bash
passwd
```
Enter the password blindly, they will not show up
- **Step 11: Add User**
Replace stilux with your preferred username
```bash
useradd -m stilux
passwd stilux
```
Enter the password blindly, like above
```bash
usermod -aG wheel,audio,video,optical,storage,power stilux
```
```bash
EDITOR=nvim visudo
```
(use neovim like above)
```bash
Add: stilux ALL=(ALL) ALL
Uncomment: %wheel ALL=(ALL) ALL
```
(Save and exit like above)
- **Step 12: Create Grub Boot**
Check if nvme0n1p1 is mount if not mount again
```bash
lsblk
```
Install ntfs-3g if you dual boot with windows
```bash
pacman -S ntfs-3g os-prober
```
```bash
pacman -S grub efibootmgr dosfstools mtools
```
```bash
nvim /etc/default/grub
After that uncomment: GRUB_DISABLE_OS_PROBER=false
```
Save and exit like above
```bash
systemctl enable dhcpcd.service
systemctl enable NetworkManager.service
```
Note: /boot is the EFI partition that you mount in step 10
```bash
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB --recheck
```
```bash
grub-mkconfig -o /boot/grub/grub.cfg
```
- **Step 13: Exit, Reboot, Update**
```bash
exit
umount -lR /mnt
reboot
```
How to login:
1. Enter the username at first
2. Enter the password blindly then [ENTER]
Update the system:
```bash
sudo pacman -Syu
```
NOTE: Should do once everyday
Enter root password (admin)
Reconnect to Wi-Fi
```bash
nmtui
```
Restart System
```bash
reboot
```
Turn off the system
```bash
poweroff
```
#### Install i3 window manager ( you can follow the instruction below or this [video](https://www.youtube.com/watch?v=sE3LHJ8lEss) to install i3 )
Install i3
```bash
sudo pacman -S xorg xorg-xinit i3-wm dmenu kitty
sudo cp /etc/X11/xinit/xinitrc ~/.xinitrc
```
```bash
sudo nvim ~/.xinitrc
After that remove:
twm &
xclock -geometry 50x50-1+1 &
xclock -geometry 80x50+494+51 &
xclock -geometry 80x20+494-0 &
exec xterm -geometry 80x66+0+0 -name login
And add:
exec i3
```
## Setup stilux-dotfiles
- You need to install **arch linux** and **i3 window manager** before setup this config
- Open terminal and copy this command
```bash
git clone https://github.com/sontungexpt/stilux-dotfiles.git && cd stilux-dotfiles && chmod +x setup && ./setup && cd .. && rm -rf stilux-dotfiles
```
- Follow the instructions in the terminal when the scripts is running
## 5. Usage
#### i3 key binding
| **Key Binding** | **Description** |
| -------------------- | ------------------------------------------------------------- |
| **Mod + Enter** | Open terminal (kitty default) |
| **h, j, k, l** | Move focus left, down, up, right |
| **Mod + d** | Open rofi |
| **Mod + g** | Open github |
| **Mod + m** | Open bluetooth manager |
| **Mod + n** | Open wifi-hotspot |
| **Mod + b** | Open mail |
| **Mod + u** | Open UIT school web |
| **Mod + shift + u** | Open UIT course |
| **Mod + x** | Lock screen |
| **Mod + shift + s** | Print a select area and copy it to clipboard(no save picture) |
| **printscr** | Print the full-screen desktop |
| **shift + printscr** | Print a select area and save it to Pictures/Screenshots |
| **crtl + printscr** | Capture the focused window and save it to the directory |
| **Mod + shift + f** | Open flameshot gui |
| **Mod + t** | Open thunar file manager |
#### Neovim
[My neovim config](https://github.com/sontungexpt/neovim-config)
#### Polybar
- [The full instructions to setup gmail for polybar](https://github.com/crabvk/polybar-gmail)
- [The full instructions to setup calendar for polybar](https://github.com/nevarman/polybar-calendar)