不经意间入了 i3 的坑,感觉很好用,尤其是在虚拟机里专门写代码的场景下。
1. i3
i3 是一款平铺式桌面管理器,跟我们常用的桌面管理器最大的区别就是窗口不会重叠(浮窗除外),并且其非常轻量。平铺式简单的描述就是:当用户只开一个窗口时,该窗口会占据整个桌面,当开了两个窗口时,这两个窗口会平分桌面,依次类推。如下,一图胜千言。
同时,i3 主要的用法是通过快捷键用键盘来控制窗口和工作区,堪称键盘党和强迫症的福音。附上官网提供的默认快捷键图:
具体的使用方法和窗口树的概念花15分钟看下官方文档前三章就足够了:i3 User’s Guide。
2. VMware Fusion 配置 Manjaro i3
下载地址:Manjaro i3
VMware 配置:
- 按需添加共享目录
- 按需调整 CPU 和 内存,并 enable hypervisor 和 IOMMU
- 按需调整硬盘大小
- USB 兼容性调成 USB 3.1
- Disable Side Channle Mitigations
安装过程不用太多说明,一路鼠标点点点,之后重启就好了。只有一处需要注意,在进度到 93% 时安装程序应该会从默认的官方源安装一些东西,如果不能访问国外的网络,可能会在 93% 处等比较久。
配置的重头主要在安装完成后的 Manjaro 系统上,具体步骤如下。
2.1 更新
安装完成并重启登录后:
- 参考桌面左下角,先了解下 i3 的快捷键:mod + Enter 打开 terminal。mod 在 mac 下一般为 command 或 option,在 windows 下为 alt 或 win。
sudo pacman-mirrors -i -c China -m rank
挑个自己中意的镜像源。sudo pacman -Syyu
更新系统。sudo mhwd-kernel -i linux510 rmc
换个 LTS 版本的内核。
2.2 open-vm-tools
open-vm-tools 就是 VMware 的一些工具:
vmtoolsd
- 负责汇报虚拟机状态的服务。vmware-checkvm
- 用于检测虚拟机中是否在运行着某程序的工具。vmware-toolbox-cmd
- 用于收集宿主系统信息的工具。vmware-user
- Tool to enable clipboard sharing (copy/paste) between host and guest.vmware-vmblock-fuse
- 文件系统。基于 FUSE (Filesystem in Userspace) 实现了宿主 / 客机之间拖拽文件。vmware-xferlogs
- 向虚拟机的日志文件输出日志与调试信息。vmhgfs-fuse
- 挂载 HGFS 共享目录的工具。
以上工具已经默认安装了,但还是有些问题需要解决,参考:VMware/Install Arch Linux as a guest。
分辩率无法调整
sudo vi /etc/systemd/system/multi-user.target.wants/vmtoolsd.service
在 “ExecStart” 之前添加一行ExecStartPre=/usr/bin/sleep 3s
给 vmtoolsd 增加 3s 启动延迟。主宿机之间无法 copy/paste
vi .i3/config
添加一行exec_always --no-startup-id vmware-user-suid-wrapper &
主宿机之间文件无法共享
去掉 /etc/fuse.conf 文件中 user_allow_other 前的注释符。
vi .i3/config
添加一行exec_always --no-startup-id vmhgfs-fuse -o allow_other -o auto_unmount .host:/ /home/cy/Shares
语法:
vmhgfs-fuse -o allow_other -o auto_unmount .host:/<shared_folder> <shared folders root directory>
烦人的主板 beep
echo "blacklist pcspkr" > /etc/modprobe.d/nobeep.conf
重启下确定配置生效。
2.3 个性化
到这里就是看个人喜好配置了,先装好 fish、vim。
开启 sshd
systemctl enable sshd
状态栏置顶,改时间格式
.i3/config 是 i3 的主配置文件,里边有各种快捷键、启动项、桌面绑定等配置。
更改 .i3/config 的 bar 位置为 top:
1 2 3 4 5 6
bar { i3bar_command i3bar status_command i3status position top ... }
参考 configuration file path,把 /etc/i3status.conf 拷贝到 .config/i3status/config,删掉没啥用的信息:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
# order += "ipv6" order += "cpu_usage" order += "disk /" # order += "disk /home" # order += "wireless _first_" # order += "ethernet _first_" # order += "battery all" # order += "load" order += "memory" order += "tztime local" ... tztime local { format = "%Y-%m-%d %H:%M:%S" # format = " %d.%m. %H:%M " }
窗口间移动改成 vim 的 hjkl
在 .i3/config 中搜索 semicolon,替换为 l ,相应的 jkl 也改为 hjk 并保存,mod + shift + r 刷新后会提示冲突,把冲突的改掉即可。
安装 firefox,把 mod + f2 改为启动 firefox
1
bindsym $mod+F2 exec firefox
绑定 app 到不同工作区
1 2 3
assign [class="(?i)urxvt"] $ws1 assign [class="(?i)firefox"] $ws2 assign [class="Pcmanfm"] $ws3
关闭 conky,
# exec --no-startup-id start_conky_maia
选张壁纸,
nitrogen
终端透明
Opacity,在 .config/picom.conf 中添加:
1 2 3 4
opacity-rule = [ "90:class_g = 'URxvt' && focused", "60:class_g = 'URxvt' && !focused" ];
90、60 分别表示焦点和失焦的透明度。别外,可以通过快捷键:mod + t 和 mod + crtl + t 快速关闭和打开 picom(透明特效)。
中文输入法,Fcitx5
Fcitx5 是继 Fcitx 后的新一代输入法框架。
fcitx5-im 包组提供了 fcitx5 本体、配置工具、和必要的输入法模块。
fcitx5 仅提供基本框架,仅提供英文支持,如果要输入其他语言(例如中文),则需要输入法引擎。
fcitx5-chinese-addons、fcitx5-rime 为不同的中文输入法引擎。
安装
1 2
sudo pacman -S fcitx5-im sudo pacman -S fcitx5-chinese-addons
配置,在 ~/.pam_environment 中设置以下环境变量。
1 2 3 4 5
GTK_IM_MODULE DEFAULT=fcitx QT_IM_MODULE DEFAULT=fcitx XMODIFIERS DEFAULT=@im=fcitx INPUT_METHOD DEFAULT=fcitx SDL_IM_MODULE DEFAULT=fcitx
开机启动
1
exec --no-startup-id fcitx5 -d
时间同步
1
$ sudo timedatectl set-ntp true
安装中文字体
1 2 3 4 5
sudo pacman -S wqy-zenhei vim ~/.Xresources URxvt.font: xft:Source Code Pro:style=Regular:antialias=True:pixelsize=14,xft:WenQuanYi Zen Hei:antialias=True:pixelsize=14 URxvt.boldfont: xft:Source Code Pro:style=Bold:antialias=True:pixelsize=14,xft:WenQuanYi Zen Hei:antialias=True:pixelsize=14 URxvt*letterSpace: -1.5
2.4 遗留问题
虚拟机启动的时候经常黑屏,没找到解决办法,遇到启动黑屏时只能多启动几次。