我的计算机是我日常打交道最多的设备, 就像是我的一位老朋友. 他懂我的心意.
DELL XPS 15
嗯, 我觉得这是一台外观朴素,重量不轻(毕竟是 15 寸的电脑),配置强大的计算机。
来,瞧瞧我的计算机与外接显示器:
多么低调的外观!
多么朴素的自带键盘!
多么稳重的气质!
操作系统 : ArchLinux
我人生中第一次使用的linux
操作系统是 ubuntu 18.04 LTS
, 记得第一次安装linux
时, 是带着欢喜,紧张, 强烈的好奇的心情安装的, 我先从 tuna 的镜像源下载一个镜像, 然后将它刻录到 u 盘上。 最后。 我按照安装提示一步一步地安装了ubuntu 18.04 LTS
。 (并且还格式化了我的 win10) 。 ubuntu 的安装过程挺简单的, 因为它有 图形化的安装界面。
从此, 我跟随着这只兔子, 进入了兔子洞
— 爱丽丝梦游仙境
我拿着《鸟哥的 linux 私房菜》这本书, 照着书上面的命令一点点敲, 然后我打开了一个新世界的大门。
曾经, 我也被 linux 的魅力迷地神魂颠倒, 配置我的操作系统就像是装修我的小家一样。
后来我熟悉了 ubuntu/debian
的 包管理工具:apt
, 同时也对比了其他的包管理工具, 我更喜欢 ArchLinux
系的 pacman
, 同时 ArchLinux
在中国有 国内社区:ArchlinuxCN
, 也有第三方软件源: aur
,于是我后来试图迁移到 arch 系, 先尝试了manjaro
, manjaro
和arch
并不相同, manjaro
的源是在arch
的源的基础之上改动的。 因为manjaro
在安装的时候就对用户很友好, 而且初始安装后的各种软件都帮你安装好了, 因此他吸引了好多人。 因为我想要正宗arch
, 于是上手了 Rolling Update linux distribution
: Archlinux
。
DE: KDE
桌面环境,目前我用的桌面环境是KDE plasma5
, 但是我是从 gnome3
->xfce
-> i3wm
->awesome
-> kde
过来的。(一脸沧桑)
由于第一次接触的 linux 发行版是默认有gnome3
的 ubuntu
, 但是我却一点也不喜欢gnome3
, 因为gnome3
总给我一种很厚重的感觉, 并且经常崩溃, 卡顿, 甚至卡死, 渐渐的我想要去寻找别的好玩的桌面环境。
经过一番对比, 因为我喜欢简简单单, 清量的环境, 并且当时我的电脑配置很低, 所以我选择了 xfce
。
xfce
的资源占用确实少, 而且响应速度快, 也不卡, 好评。 但是我实在是太喜欢折腾了, 看 redit
有人在 unixporn
版块晒他的配色/配置截图, 我又按耐不住我的好奇心去尝试 那个看起了非常简约, 非常戳中我心的i3wm
, 当我阅读了 2~3 遍 i3wm
的官方文档后, 我终于尝试上手安装了, 一点一点的照着文档去配置, 一点一点的去找各种时钟, 窗口指示,网速指示, 资源监视,各种管理器等等各种插件, 折腾什么 urxvt
,rofi
,ranger
, 改那个 ~/.Xresorces
, 乐此不疲。。。。。。。折腾i3wm
的过程 就像是买了个毛胚房,自己去刷涂料, 自己贴地砖, 自己买家具布置家具的体验。但是也浪费时间。后来我也由于好奇去玩awesome wm
了。
后来, 我买了这台XPS
, 并且自己买了额外的内存加装了上去, 从此, 少年的身体里有了底气, 也有了胆量去尝试那个人们都说资源消耗较高的: kde plasma5
。
壁纸
没错, 我是个喜欢收集各种各样的壁纸的收集狂魔!我喜欢地球风景,外太空,二次元,暗黑,黑白,抽象军事等等各种题材的壁纸。
我使用variety
来自动更换壁纸,它可以设置一些源(reddit,flickr,bing)自动获取壁纸。我每5
分钟就会自动更换一次壁纸,所以我每次打开桌面看到的壁纸基本都不会重样!
Terminal: alacrity, konsole
alacritty
声称自己是 GPU-accelerated terminal emulator
,没有别的原因, 我挑选alacritty
作为我的终端纯粹是因为我是有Nvidia
独立显卡, 并且alacritty
的配置就是一个 ~/.config/alacritty/alacritty.yml
, 配置简单, 而且配置是 live-loading
的,改完配置不用重启就生效。
konsole
是个优秀的也是个优秀的终端, konsole
可以配置transparent/blur
,还可以配置背景图片。
shell
zsh
我使用了 oh-my-zsh, 我的主题是 p10k
我按下 Ctrl+R 显示我的历史命令记录, 支持搜索。这是 fzf 的功劳
我有一个小窍门: 在命令的最末尾加上注释 #
。
比如:
|
|
注释后面的不会生效, 但是能在我下次搜索的时候帮一点忙。
然后我在命令历史里搜索 sync package
就能匹配到这条历史记录。
我喜欢的 zsh 插件:
- zsh-autosuggestions
- zsh-syntax-highlighting
- zsh-vim-mode #
vim
党必备! - colored-man-pages # 让
man
手册带上颜色,从此 阅读 manual 不枯燥
Terminal Multiplexer: tmux
tmux 是一个终端复用神器! 他的默认 prefix 是 Ctrl-a, 我觉得 Ctrl-a 不好按, 改成了 去用左手大拇指和中指按的 Alt-e。
我有好多快捷键都是用左手按的, 但我对自己有一个约束, 任何 和 kde 相关的快捷键都绑定在 Meta 键上, 其他与应用实例相关的按键优先绑定到 alt 键, 如果 alt 还不够, 用 Ctrl-Alt 组合, 要是 Ctrl-Alt 还不行, 最后用 Ctrl-Shift-Alt。
我是将大写锁定键和左下角的 Ctrl 键调换了的, 这样我用左手小拇指就能很轻松的按 Ctrl 了。
tmux 超级简单,它有三个于窗口有关的概念:session, window, pane。
一个 session 由众多 window 组成, 一个 window 就是你所打开的终端那么大, 一个 window 下面可以开好多小 pane。(用图来说话)
session
Prefix + Ctrl+C , 新建一个 Session
Prefix + $ , rename session
Prefix+ s ,显示你的所有的 session 列表
window
Prefix + c, 新建一个 window
Prefix + w, 不仅打开所有的 session 列表, 而且把 所有 session 下的所有 window 列表也给你展示出来。
打开一个 window 后, Prefix + Ctrl + h 进入左边的 window, Prefix + Ctrl + l, 进入右边 的 window
Showtime
晒晒我在tmux
下工作的日常
(显示 OS Logo 的是:neofetch 的输出结果)
panel
prefix + - , 横向打开一个新的 panel
prefix + _ , 纵向打开一个新的 panel
prefix + hjkl, 在不同的 panel 里移动
prefix + Alt + hjkl, 调整 panel 大小
prefix + z 将 panel 最大化/还原
tmux 是强大的终端复用神器, 您要是感兴趣的话, 一定要尝试他的配置哦: tmux config
tmux plugins
tmux-resurret + tmux-continum
tmux 也有一些不错的插件, 比如我最喜欢的是 tmux-resurret + tmux-continum , 让我能保存 tmux 会话历史, 即使我的计算机重启之后, 也能回复上一次打开的会话
Prefix+Ctrl+s, 保存会话记录
Prefix+Ctrl+r, 恢复会话记录
会话历史保存在你的 ~/.tmux/resurret/
里
作为一个没用鼠标的人, 想要复制终端里的内容就很困难了, tmux 官方文档里说想要复制的话, 得先 Prefix+], 进入复制模式, 然后用 vim 键位 移动到你想开始复制的地方, 按 space 标记, 按 y 复制。 想粘贴的话, Prefix+ ]。 是不是很麻烦?
tmux-etrako
于是 tmux-etrako 可以稍微改善一下这么尴尬的局面, 你只要按下 Prefix+Tab, 就会显示一个小提示框, 你可以输入你想复制的内容的几个关键字母, 就会匹配结果, Ctrl+j/Ctrl+k 在匹配结果之间移动, 在按下 Tab 确认选择。
tmux wiki: https://github.com/tmux/tmux/wiki
tmux-translator
进入tmux
的 copy 模式后,可以翻译你选择单词
Text Editor:
linux
下一切可配置的东西, 都是文本, 上古时期在*nix
下工作的人们开发了一些强大的文本编辑器:
vim: vi improved | emacs |
The Editor War
emacs
当然, 我是一名忠实的vim
用户, 我在 jetbrains
家的 ide 里用 ideavim
插件, 在 firefox
里 用 tridactyl
来 用 vim
键位操作浏览器,当我想编辑浏览器里的文本框时, 我使用 tridactyl
的 :editor
命令配合 tmux
+ vim
来编辑文本(这样做的目的是为了提升编辑体验, 或者 当我编辑代码时, 可以得到语法高亮)!
其实我以前对 emacs 特别感兴趣的, 但是 emacs 的编辑键位我不太喜欢,(后来才知道 emacs 也有 evil-mode 能用 vim 的方式去编辑)。
我不了解emacs
,但我了解过 emacs 的 git 客户端:magit
, 还有 强大的org-mode
, emacs 给我的感觉是它希望你把一切活都在 emacs 里面干掉,你可以在 emacs 里发邮件, 阅读 pdf, 使用 org-mode 记笔记, 你可能再敲代码的时候用 org-capture 将你的想法以最快速的速度记下来,org-mode 里面还有好多好玩的东西。 现在 emacs 还有 EAF (emacs application framework) , 你可以在 emacs 里面使用浏览器, 听音乐,播放视频, 你可以真真正正的做到 live in emacs 了。
org-mode
emacs 之所以能在各种优秀的编辑器中脱颖而出,是因为它拥有强大的 org-mode。
当我生活中发生了比较有意思的事情时,我只需要按下(C-c C-j)就可以用 org-journal
来写日记,没事的时候看看过去一天,一周,一个月自己都干了什么。
当我灵机一动时,使用 org-capture
帮助我迅速的记录下这个小点子
当我有一些小计划时,使用 org-agenda
做计划
还有强大的 org-roam
用来做小卡片笔记。
emacs 速度慢的问题。
emacs
的慢速让我很不开心,我使用过这几种办法:
办法很脏!但是有用
- 开
cpu
睿频, 让cpu
频率从2.6 GHz
超到4.5GHz
, 足够暴力) - 使用
nice
/renice
为 emacs 设置更小的nice
值,(其他进程靠边,emacs
优先!) emacs daemon mode
pdump
: 将运行中的emacs
内存dump
到一个.pdmp
文件里,下次emacs
冷启动的时候,读取这个dump
文件,极速启动。emacs-native-comp
: 将lisp
编译为elc
, 有肉眼可见的效果
vim
vim 就比较单纯了, 它就是一个纯粹的 text editor, 我已经对 vim 的键位形成了肌肉记忆。(最开始决心用vim
是因为 vim
比emacs
启动速度更快!)
平时开发都是用 IDE, (我在 IDE 下使用 vim 的键位插件)用 vim 只是编辑一些配置文件, 或者我在 命令行敲太长的文本时,按 Ctrl-X Ctrl-E 来用 vim 去编辑复杂的命令。
vim 也有丰富的的插件:
- easymotion: 根据几个字母,将光标定位到目的位置
- surround: 加入、删除、改变()[]{}``""’’<> 等等
- nerdtree: 在侧边显示文件目录树
- sneak: f 的替代品, 但是比 f 更强大
强烈推荐我正在使用的firefox
下的tridactyl
插件, 里面有:editor
命令配合vim
来编辑浏览器里的文字框:
需要设置在 浏览器里定义 : editorcmd
:
|
|
参考这篇文章:
https://quinoa42.github.io/en/oceanus/tridactyl-editorcmd-with-tmux/
附上 vim keybindings
https://georgebrock.github.io/talks/vim-completion/
Top Panel
这么长的一条, 就是我的 Top Panel。
从左到右, 依次是
- Application Launcher, 绑定在 Meta+F3
- 时钟
- Individual Cpu Monitor
- System Load: CPU, Memory,Dirty Cache
- Network Monitor
- Weather Report
- 翻译插件
- Workspace: Virtual Desktop (20 个)
- Task Manager / Recent Applications
- WhiteSpaceBar
- Notification Panel
- CopyQ, 我绑定了 Meta+p, 随时随地选择我的历史复制记录
- Media Player
- KDE Connect (PC / 移动端 文件互传,移动端消息提醒)
网页浏览器
我有安装了这么几个浏览器
|
|
firefox
firefox 是我最喜欢的浏览器
插件
- tree style tab bar : (在浏览器左侧以竖排形式展示所有的 tab, 经常打开好多 tab, 但是又懒得关掉的人一点要尝试下)
- tridactyl: (vim 用户一定会喜欢的)
tridactyl
不仅能让你在浏览器里用 vim 键位控制浏览器, 而且tridactyl
的 editor 命令可以让你用用 vim 编辑网页里的文本框!(参见上文,可以做到无缝丝滑的极致体验)
VirtualBox / Vmware
说不准你需要 windows 呢? 还是安装一下虚拟机吧,虚拟出个 win10,未雨绸缪。
wine
winetricks-zh
微信没有 linux 的客户端, 但是可以用 wine,
或者 试试这个 :docker-wine
docker-wine
我曾经安装 虚拟机, 然后在虚拟机里跑唯一的应用: 微信。 因为公司的同事们使用微信来沟通的。 (还好我内存容量大~)
输入法
在 linux 下输入中文是没问题的
我尝试过 fcitx-libpinyin + cloudpinyin, fcitx-googlepinyin,fcitx5-rime+ ArchlinuxCN 源里的 fcitx5-pinyin-zhwiki(词库)。
但是我最后选择了 fcitx-sogoupinyin, 因为搜狗的云输入很方便,导入词库和挑选皮肤都很方便。(云输入意味着你的输入记录会被上传到云输入的服务器,要是对隐私要求很严格的话最好还是选用离线的吧)
小鹤双拼 输入法
我为了提高中文打字速度, 学了小鹤双拼。
2 个按键敲出一个字
别怕, 小鹤输入法超级简单, 比五笔简单多了。
只要最开始花十几分钟背过键位图, 别着急, 慢慢用着用着就熟了。
对 Linux 的理解
- Small is Beautiful
- Each Program Does One Thing Well
- Prototype as Soon as Possible
- Choose Portability Over Efficiency
- Store Data in Flat Text Files
- Use Software Leverage
- Use Shell Scripts to Increase Leverage and Portability
- Avoid Captive User Interfaces
- Make Every Program a Filter
Linux 有这么一个特点: 每个工具都很强大, 把多个工具组合到一起, 就可以发挥出各种非常强大的威力
总结
每个人都有自己的工作流,适合自己的才是最好的。
工具用来帮助你实现自己的目的,每门工具都有自己擅长的领域,所以不要浪费时间去漫无目的折腾工具。
:-)