Basic

pacman

1
sudo pacman -Syu nvm fvm jenv pyenv android-tools net-tools tree bat fastfetch curl neovim vim ghostty fcitx5-im fcitx5-rime ttf-jetbrains-mono-nerd wl-clipboard cliphist tmux ripgrep btop zram-generator p7zip reflector jq imv mpv ffmpegthumbnailer gst-plugins-base gst-plugins-good gst-libav ddcutil --needed base-devel --noconfirm

yay

1
mkdir -p ~/develop/github/ && mkdir -p ~/develop/work/ && mkdir -p ~/deveop/agents/ && git clone https://aur.archlinux.org/yay.git ~/develop/github/yay/ && cd ~/develop/github/yay/ && makepkg -si && rm -rf ~/develop/github/yay/ 
1
yay -Syu rime-ice-git ttf-jetbrains-maple-mono-nf-xx-xx visual-studio-code-bin aliyun-adrive-bin clash-verge-rev-bin linuxqq-clipsync-git--noconfirm

memory(zram 8g | swap 10g)

1
2
3
4
5
6
7
8
9
10
11
12
13
echo -e "[zram0]\nzram-size = min(ram, 8192)\ncompression-algorithm = zstd" | sudo tee /etc/systemd/zram-generator.conf

sudo systemctl daemon-reload
sudo systemctl restart systemd-zram-setup@zram0.service
sudo dd if=/dev/zero of=/swapfile bs=1M count=10240 status=progress
sudo swapoff /swapfile
sudo rm /swapfile
sudo dd if=/dev/zero of=/swapfile bs=1M count=10240 status=progress
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap defaults 0 0' | sudo tee -a /etc/fstab
zramctl && swapon --show && free -h

Brigness

1
2
3
4
5
6
sudo modprobe i2c_dev
echo "i2c_dev" | sudo tee /etc/modules-load.d/i2c_dev.conf
sudo pacman -S ddcutil
sudo usermod -aG i2c $USER
ddcutil detect
systemctl --user restart dms.service

Niri

1
2
3
curl -L https://github.com/crowforkotlin/BreezeX_Cursor/releases/download/1.0/BreezeX-Dark.tar.xz -o /tmp/BreezeX-Dark.tar.xz && tar -xf /tmp/BreezeX-Dark.tar.xz -C /tmp && mkdir -p ~/.local/share/icons && cp -r /tmp/BreezeX-Dark ~/.local/share/icons/ && rm /tmp/BreezeX-Dark.tar.xz && rm -rf /tmp/BreezeX-Dark
```shell
nvim ~/.config/niri/config.kdl
1
include "dms/custom/index.kdl"
1
2
```shell
nvim ~/.config/niri/dms/custom/index.kdl
1
2
3
4
5
include "config.kdl"
include "cursor.kdl"
include "layout.kdl"
include "binds.kdl"
include "windowrules.kdl"
1
~/.config/niri/dms/custom/cursor.dms
1
2
3
4
5
cursor {
xcursor-theme "BreezeX-Dark"
xcursor-size 36
hide-after-inactive-ms 15000
}
1
nvim ~/.config/niri/dms/custom/binds.kdl
1
2
3
4
5
6
7
8
binds {
Mod+G repeat=false { toggle-overview; }
Mod+A { consume-or-expel-window-left; }
Mod+D { consume-or-expel-window-right; }
Mod+Shift+Q { spawn "sh" "-c" "pid=$(niri msg -j focused-window | jq '.pid'); [ -n \"$pid\" ] && pkill -P $pid 2>/dev/null; kill $pid 2>/dev/null"; }
Mod+T hotkey-overlay-title="Open Terminal" { spawn "ghostty"; }
Mod+B hotkey-overlay-title="Open Chrome" { spawn "google-chrome-stable"; }
}
1
nvim ~/.config/niri/dms/custom/layout.kdl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
layout { 
gaps 12
border {
width 2
}
focus-ring {
width 2
}
shadow {
on
softness 20
spread 2
offset x=-4 y=-4
color "rgba(0, 0, 0, 0.7)"
}
}

window-rule {
geometry-corner-radius 12
clip-to-geometry true
tiled-state true
draw-border-with-background false
}

overview {
workspace-shadow {
on
}
zoom 0.5
}
1
nvim ~/.config/niri/dms/custom/windowrules.kdl
1
// ...

Fcitx5

1
nvim ~/.config/fcitx5/conf/classicui.conf
1
2
3
4
5
6
7
8
# Set Icon -> symbol
PreferTextIcon=True
ShowLayoutNameInIcon=True
UseInputMethodLanguageToDisplayText=True
TrayFont="Sans Bold 10"
TrayOutlineColor=#000000
TrayTextColor=#ffffff