An open API service indexing awesome lists of open source software.

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

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

![overview](./scripts/stilux/assets/docs/overview.png)
![preview1](./scripts/stilux/assets/docs/preview1.png)

## 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)