背景
有点用腻了mbp的mac os系统的感觉,想换arch了.
因为总觉得mac系统里好乱, 好多感知不到的空间管理. 而且终究只是unix, 并不是linux.
但是嘛, 都用了一段时间之后回来想想, 最近我比较倾向于arch
的原因主要是最近工作所需一直在用linux
规范下的systemd
控制下的CentOS
, 用的比较熟悉了, 对目录结构比较清楚了, 而对于自己非常不熟悉的freeBSD
基础的mac, 有种不在自己控制内的感觉...
现在想了想, 这其实不就是舒适区的问题吗? 学习一下mac的目录结构和日志排查等, 其实也并不会有多费事, 也并不会增加我记忆unix
生态的混淆程度.
哎,但是看笔记本的品控上来说,可能还是mac os让人比较省心了. 至少售后给的新笔记本不会像xps那样经常出问题...
硬件
XPS(arch推荐比较多的是这个,但是因为品控问题不推荐的也是这个)
什么电流音之类的,决定还是不选这个了.
虽然好像XPS 7590 15寸或者13寸的直接支持hdmi 2.0接口,不过品控还是太让人担心了.
thinkpad x1c
emm, 似乎还行,但是触控板的体验还是比不上mac的应该
matebook
好像散热不行, 键盘部分会烫?
听说bios不太行?
安装踩坑
manjaro踩坑
bootloader
一直没能正常使用
参照[^3]这个带图片的安装过程终于安装成了. 发现我直接选择第三种systemd-boot
的引导,最后是看不到进入系统的东西的,可能兼容性上有问题? 最后我额外安装了Refind
这套引导,终于进入桌面了.
arch安装
todo
大小写老师被自动切换了
似乎是vmware 15.5这个版本的缺陷
Temporary solution for Ubuntu guest which worked for me was just disabling the Caps Lock key all together with this
setxkbmap -option caps:none setxkbmap -option caps:none # (disable the caps lock key)
xdotool key Caps_Lock # (toggle caps lock) Caps Lock Issues With Upgrade - VMware Technology Network VMTN
禁用这个按钮倒也是个方案, 反正我基本也不用.
不过就怕他也影响宿主机, 那就很讨厌了.
为啥我安装的虚拟机鼠标放在Linux界面再挪出去,大小写键盘总是自动切换呢?用的vmware ubuntu.如图
为啥我安装的虚拟机鼠标放在Linux界面再挪出去,大小写键盘总_虚拟机吧_百度贴吧 VMware虚拟机中大小写不停切换的问题_helen2977的博客-CSDN博客 好像无解
vmware-tools安装运行
我之前应该是直接pacman -Syy open-vmware-tools
现在发现vmware-tools
这个服务没能启动.
好像搜到说是
[SOLVED] Automating installation of vmware-tools
实际上我装的是open-vm-tools
### open-vm-tools vmtoolsd
这个服务似乎可以工作
VMware中的Manjaro启用复制粘贴_darkula的博客-CSDN博客
Installation Install open-vm-tools. If the legacy vmhgfs shared folder module is desired, the open-vm-tools-dkmsAUR package must be installed (the new vmhgfs-fuse driver is included in open-vm-tools). Start and/or enable vmtoolsd.service and vmware-vmblock-fuse.service.
Try to install gtkmm3 manually if it does not work properly. To enable copy and paste between host and guest gtkmm3 is required.
VMware/Install Arch Linux as a guest - ArchWiki
不能复制粘贴的时候, 不知道为什么,执行下这个vmware-user
就能用了.
Arch Linux / Manjaro 配置 VMware copy/paste
vim内没开全局剪切板, 无法向外复制. cat处理吧.
重点
1 | # 这里fdisk分区时, 及时将类型修改为EFI类型 |
按照这个终于过了. Arch Linux (UEFI with GPT) 安装 | 沈煜的博客
ArchLinux图形界面安装与美化:i3+polybar_盐焗咸鱼的博客-CSDN博客_archlinux安装i3桌面
休眠
systemd-swap
Can we use this to enable hibernation? A: Nope as hibernation wants a persistent fs blocks and wants access to swap data directly from disk, this will not work on: swapfs
emm, 不能用这个来做休眠用的swap.
手动创建
1 | fallocate -l 16G /swapfile |
Arch Linux 使用 Swap File 进行休眠 - xzOS ## 安装vmware
VMware (简体中文)/Installing Arch as a guest (简体中文) - ArchWiki
systemd-boot和 grub
systemd-boot和EFISTUB - 知乎 ### boot manager可以看到有我新建的grub, 但是EFI似乎没法直接从硬盘启动?
UEFI启动
/etc/locale.gen ### UEFI和 grub什么关系?
似乎我的/boot分区划分出问题了, efi无法找到s
并不是EFI分区, 导致bootctl无法识别了.
bootctl status可以帮助判定
[SOLVED] EFI partition not detected / Installation / Arch Linux Forums
grub-install --target=i386-pc /dev/sda 用legacy就尅引导了
用uefi的反而麻烦, 必须分区时gpt符合efi的
分区lvm
lvm不能直接被引导?
boot分区独立分区的意义?
创建出来之后, 从哪里复制内容过来, 好像这个文档里都没有提啊s
Partitioning (简体中文) - ArchWiki
/boot分区里的内容在哪里呢?
使用过grub-config来往里面生成内容?
mkinitcpio -P 似乎也能生成新的initramfs
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub
grub-mkconfig -o /boot/grub/grub.cfg
将已经存在的archlinux迁移到lvm - 知乎 #### initramfs选择?
LVM (简体中文) - ArchWiki archlinux安裝手记(Win10+Arch、GPT+UEFI、lvm) - 停止使用的账户 - 博客园
使用
源
1 | sudo pacman-mirrors -c China |
pacman 升级python, 似乎没删掉旧内容?
- todo
- 从
3.8
升级到3.9
, 看了下/usr/bin
下的确只有新的python3.9
了, 但是/usr/lib64/
下还存在3.8
的目录, 是不是之前pip装的东西没有被自动卸载或者移植?
- 从
这是一个疑问句 > 不要用 pip 管理 /usr 下的包,它会和 pacman 打架。要么建 venv 在里边用 pip,要么不用 pip 只用 pacman。
根据这个pacman 安装的python包无法识别 / 应用程序与桌面环境 / Arch Linux 中文论坛, 是建议通过venv
来管理python依赖的.
更新python之后, i3-sensible-terminal无法工作了
从TTY2
执行了下i3-sensible-terminal
, 结果发现是psutils
这个库没了, 应该就是我刚才升级引起的了.
怎么让pacman来安装包呢? 1
2pacman -Syy python-pip
pacman -Syy python-sixpip
之后报没有six
, 安装了下就能使用了.
执行terminator
, 报You need to install gobject, gtk, pango to run Terminator
最后, 我也没找到怎么处理的办法, 就把python3.8里的库复制到了python3.9的里...
timeout
[Solved] Connection time-out on installation (curl / iPv6 problem) / Installation / Arch Linux Forums 捣鼓了半天, 最后是因为我在Arch里默认开了代理, 代理好像有问题了.
内核异常
卡在loading initial ramdisk
There was a kernel update, some element of your initramfs wasn't successfully built and copied to your bootloader. Generally the output of mkinitcpio shows errors, chroot in and make it again. 执行
(1) Stuck on Loading initial ramdisk : archlinux
1
2 mkinitcpio
# 就会报出initramfs的错误.
打开调试日志
1 | vim /boot/grub/grub.cfg |
通过增加set debug=all
和set ignore_log_level=all
倒是生效了, 看到了一些代码的执行记录. 但是倒是没看到Error信息
General troubleshooting - ArchWiki
为其他不是当前正在运行的内核创建镜像,添加内核版本到命令行, 可以在/usr/lib/modules目录查看支持的内核版本.
捣鼓了2天, 换了个稳定版的内核就正常开机了. #### 进入reach target basic system之前的shell 在
1
2 # mkinitcpio -p linux
就会以当前安装的linux版本对/boot目录下的initramfs-linux.img进行再次生成了.linux16
那行追加rd.break=pre-trigger
在linux16
这行追加rd.debug
可以打出initrd
中的dracut
脚本的内容
周期内核升级
1 | pacman -Sy linux-lts |
terminal
i3-sensible-terminal
- Mod+shift+q 退出程序
快捷键 shortcuts
不知道为什么alt+f
和alt+b
没办法快速在单词之间跳
这个快捷键是emulator
的还是shell
的呢?
bash默认是启动了emacs
模式的.
哦, 好吧, 是Super
key覆盖掉了alt+f
这个操作, 所以把Super
key换成command也就可以了.
(1) Can I completely swap the Alt and Super keys? : i3wm
set $mod Mod4
Archlabs-i3wm/config at master · alexandrebobkov/Archlabs-i3wm
主要是我之前生成的配置文件里居然都是直接Mod1 + Enter
之类的, 而不是$mod + Enter
, 导致我直接set $mod
没有效果.
网络
systemd-networkd 禁用ipv6 net.ipv6.conf.all.disable_ipv6 = 1
输入法
kde最稳妥
可以和i3结合?
bspwm ## 文件系统只读问题 一般都是fstab被改坏了之类的.
桌面:i3wm
毫无疑问,我主要感兴趣的点就是能够尽量完全使用键盘来控制的方式.
$mod + Enter 启动虚拟终端 $mod + A 焦点转义到父窗口上
i3lock
歧义性好严重...没有看到输入密码的框, 原来是因为默认就处在接收密码的状态下, verifing
和wrong
的状态就是密码验证的结果... ### 登录桌面[deprecated] 最后因为vmware
里似乎X11
的直接配置没能配置生效, 导致sddm始终分辨率都是800x600
, 我最后还是选择使用.xinitrc
来调用xrandr
修改分辨率
1 | pacman -S sddm |
urxvt
rxvt-unicode 不知道这个好不好用
(1) Which terminal simulator do you use with i3, and why? : i3wm
urxvt 要支持hidpi, 还需要一些特殊配置. 先这样用吧. 已经挺好了.
默认的复制粘贴
Ctrl+alt+c/v
unable to load base fontset
因为HiDPI
, 所以增加了pixelsize
的设置, 结果无法启动了.
看了下, 似乎是缺字体?
图片和壁纸 feh
feh
feh --bg-scale new.jpg
HiDPI[^7]
看起来多屏高分屏支持有点费事, 暂时还是不捣鼓了.
xrandr --output eDP-1 --auto --output DP-1 --auto --scale 2x2
这个的scale 和那个~/.Xresources的Xft.dpi=192区别?
是不是xrandr修改了dpi之后, 修改指定程序的字体大小就行了?
xrandr --dpi
这个好像是xft.dpi
的更新的方案
这个设置了以后, 标题栏的确hidpi了, 但是应用程序并没有, 不管是Terminal还是chrome.
.Xresources[^8]
Xft.dpi: 141 xrdb ~/.Xresources xrdb -merge ~/.Xresources xrdb -query -all
最后成功版本[^9][^10]
最后其实还是按照wifi操作成功的.
我在 .xinitrc中添加xrandr --output Virtual-1 --mode 2560x1600 在.Xresources中添加 1
2
3
4Xft.dpi: 256
export GDK_SCALE=2
export GDK_DPI_SCALE=0.5
export QT_AUTO_SCREEN_SCALE_FACTOR=1
远程控制: x11远程和本地渲染不同?
我看到的窗口和颜色不太一样啊,vnc
manjaro
先用i3试试.
i3wm 使用
[^4]可以看. 不配置de
还挺舒服的.
程序启动器
dmenu
和dmenu-manjaro
冲突
Wayland仍未成熟
目前来看,虽然Wayland还是在逐渐开发, 不过Xorg的成熟度还是远比其成熟, Wayland存在的问题稍多.
Sway
等价于i3wm
的管理器,不过这个没能做到i3polybar
的程度, 而且也始终是存在部分问题的. 所以如果要用arch, 还是继续Xorg
下吧. ## 开关机 shutdown -h now
驱动
【openSUSE】软件源和软件搜索 --- 看了之后 受益匪浅 - 孙愚 - 博客园
Reference
- Installation guide - ArchWiki
- i3 (简体中文) - ArchWiki
- Manjaro-architect 安装指南_兴趣斗士的博客-CSDN博客_manjaro architect
- i3: i3 User’s Guide
- xps13(9370) Linux之路 · Kevin的笔记
- screen lock / verifying : i3wm
- Linux 下, hipdi 高分屏外接显示器显示怎么整啊? - V2EX
- 安装xdpyinfo在Linux Xresources中设置正确的屏幕DPI-教程-Linux系统学习
- HiDPI - ArchWiki
- Fixing HIDPI on a bare i3 install (in Arch Linux btw)