前言
正確標題:Arch Linux + Hyprland with ML4W Dotfiles 安裝過程
不知道為什麼我用archinstall script都會報錯,所以改成自己手動裝,裝了好幾次才成功把要的東東弄好,所以記錄一下方便下一次重裝
第1次:用archinstall script安裝,無視報錯,結果切換user的頁面會卡死
…
第n次:沒裝iwd,查了很多資料還是連不到wifi
第n+1次:不小心改到權限,2ㄏ2ㄏ
下載iso & 製作開機碟
iso下載: https://archlinux.org/download/
利用Rufus製作開機碟: https://rufus.ie/zh_TW/
安裝Arch Linux
設定網路
iwctl
# 進入 [iwd] 之後
device list
station [device_name] scan
station [device_name] connect [Network_name]
exit # 連完退出[iwd]
分割硬碟
lsblk #顯示目前硬碟的分割狀態
cfdisk /dev/nvme0n1 #用圖形化介面分割硬碟
我的分區
/dev/nvme0n1p1
:EFI system/dev/nvme0n1p2
:swap/dev/nvme0n1p3
:root/dev/nvme0n1p4
:home
官方推薦分區 我會再多分一個/home
官方文件解釋
格式化分區
# UFI system
mkfs.fat /dev/[partition_name]
mkfs.fat /dev/nvme0n1p1
# swap
mkswap /dev/[partition_name]
mkswap /dev/nvme0n1p2
# root和home
mkfs.ext4 /dev/[partition_name]
mkfs.ext4 /dev/nvme0n1p3
mkfs.ext4 /dev/nvme0n1p4
掛載分區
# root
mount /dev/nvme0n1p3 /mnt
# EFI
mkdir /mnt/efi
mount /dev/nvme0n1p1 /mnt/efi
# home
mkdir /mnt/home
mount /dev/nvme0n1p4 /mnt/home
# swap
swapon /dev/nvme0n1p2
安裝系統
vim /etc/pacman.conf
新增鏡像 隨便選一個Address
[core]
Server = http://mirror.archlinux.tw/ArchLinux/$repo/os/$arch
安裝套件
pacstrap /mnt base base-devel linux linux-firmware
然後可以更新一下
pacman -Syu
配置系統
Fstab
genfstab -U /mnt >> /mnt/etc/fstab
chroot到新系統
arch-chroot /mnt
設定時區
ln -sf /usr/share/zoneinfo/Asia/Taipei /etc/localtime
hwclock --systohc
設定語言
echo "en_US.UTF-8 UTF-8" > /etc/locale.gen;
echo "zh_TW.UTF-8 UTF-8" >> /etc/locale.gen;
echo "LANG=en_US.UTF-8" > /etc/locale.conf;
>
和 >>
的差別 (對,我不知道)
接著執行 locale-gen 以生成 locale 資訊:
locale-gen
設定電腦名稱
echo "your-pc-name" > /etc/hostname
安裝vim
pacman -Sy vim
vim /etc/hosts
然後寫入
127.0.0.1 localhost.localdomain localhost
::1 localhost.localdomain localhost
127.0.1.1 myhostname.localdomain myhostname
Initramfs
mkinitcpio -p linux
設定 Root 密碼
passwd
設定 Bootloader
pacman -Sy grub os-prober efibootmgr
os-prober
# for BIOS
grub-install /dev/sda
# for UEFI
grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=grub
grub-mkconfig -o /boot/grub/grub.cfg
安裝網路工具
pacman -S net-tools dhclient dhcp
wpa_supplicant wireless_tools
dhcpcd
pacman -S iwd # 連無線網路好用
常用 package
vim # text editor
pkgfile # 檢查官方軟件倉庫中軟體包文件的工具
bash-completion # 按tab會幫你打字的東東
sudo # substitute user do 你懂的
git # 讓你可以git別人的東東
pacman 筆記
# 安裝
pacman -S [package_name]
pacman -S [package_name1] [package_name2] [package_name3]
# 同步
pacman -Sy
# 更新
pacman -Su
# 同步 + 更新全部 package
pacman -Syu
# 移除沒安裝的 cached package
pacman -Sc
# 移除所有在cache資料夾的檔案
pacman -Scc
# 移除 package
pacman -R [package_name]
# 把 dependencies 一起移除
pacman -Rs [package_name]
如果只做 pacman -Sy
,可能會造成dependency issue
重新啟動
systemctl enable dhcpcd.service
exit
umount -R /mnt
reboot
好耶開機
設定網路
# 啟動 iwd 服務
sudo systemctl start iwd
iwctl
# 後面就跟安裝的時候一樣步驟設定網路
設定新 user
# 新增使用者
sudo useradd -m -G wheel -s /bin/bash username
# 設定使用者密碼
sudo passwd username
新增權限
usermod -aG wheel username
visudo
進去檔案編輯之後 把這行的註解刪掉
# %wheel ALL=(ALL) ALL
變成這樣
%wheel ALL=(ALL) ALL
檢查權限
sudo -lU ostechnix
WARNING如果碰到錯誤
visudo: no editor found (editor path = /usr/bin/vi)
可以利用下面指令將預設editor從vi
改成vim
(如果你有vim的話)ln -s /usr/bin/vim /usr/bin/vi
或是安裝
vi
pacman -S vi
安裝 Hyprland
記得不要用root裝
安裝 git
sudo pacman -S git
安裝帕魯paru
有兩種方法安裝
用AUR裝
sudo git clone https://aur.archlinux.org/paru.git
cd paru
makepkg -si
WARNING如果makepkg時碰到
==> Missing dependcies: ->cargo ==> ERROR: Could not resolve all dependcies.
安裝rustup
sudo pacman -S rustup
然後你可能又會碰到
error: rustup could not choose a version of rustc to run, because one wasn't specified explicitly, and no default is configured. help: run 'rustup default stable' to download the latest stable release of Rust and set it as your default toolchain.
就按照他說的跑
rustup default stable
用yay裝
我不是用這方法,但大概邏輯是這樣
sudo git clone https://aur.archlinux.org/yay-git.git
cd yay-git/
sudo chown -R username:username ~/yay-git
makepkg -si
# 裝好之後
yay -S paru
安裝 ml4w
paru -S ml4w-hyprland
讓他慢慢跑
ml4w-hyprland-setup
基本上介面淺顯易懂 選擇你要的設定就好了
好了
一些我碰到的問題
WARNING: Possibly missing firmware for module: ‘XXXXX’
自己對照一下去下載對應的檔案 https://wiki.archlinux.org/title/Mkinitcpio#Possibly_missing_firmware_for_module_XXXX
Discord 不能打中文
如果你已經裝了fcitx5注音但還是不能打中文 可以試試看這個方法
找到啟動設定檔
find /usr/share/applications ~/.local/share/applications -name "*discord*.desktop"
編輯
vim /usr/share/applications/discord.desktop
在 Exec=/usr/bin/discord
後面加上 --enable-features=UseOzonePlatform --ozone-platform=wayland --enable-wayland-ime
Exec=/usr/bin/discord --enable-features=UseOzonePlatform --ozone-platform=wayland --enable-wayland-ime
如果你用的是 X11 ,不是Wayland
在 Exec=/usr/bin/discord
後面加上 --enable-features=UseOzonePlatform --ozone-platform=x11
Exec=/usr/bin/discord --enable-features=UseOzonePlatform --ozone-platform=x11
設定連結開啟預設瀏覽器
xdg-settings set default-web-browser microsoft-edge.desktop
強制用 Xwayland 開啟程式
如果有些程式無法複製貼上的話可以試試看
Electron apps 很可能會遇到
我遇到過 Discord 和 VS code 無法貼上 Edge 複製過去的東西
Reference
大部分內容節錄自: