This page looks best with JavaScript enabled

介绍一下我的生产力工具

 ·  ☕ 10 min read

我的计算机是我日常打交道最多的设备, 就像是我的一位老朋友. 他懂我的心意.

DELL XPS 15

嗯, 我觉得这是一台外观朴素,重量不轻(毕竟是 15 寸的电脑),配置强大的计算机。

来,瞧瞧我的计算机与外接显示器:



多么低调的外观!

多么朴素的自带键盘!

多么稳重的气质!

操作系统 : ArchLinux

linux-mac-windows

BTW, I Use ArchLinux!

arch
我人生中第一次使用的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, manjaroarch并不相同, manjaro 的源是在arch的源的基础之上改动的。 因为manjaro 在安装的时候就对用户很友好, 而且初始安装后的各种软件都帮你安装好了, 因此他吸引了好多人。 因为我想要正宗arch, 于是上手了 Rolling Update linux distributionArchlinux

DE: KDE

kde

桌面环境,目前我用的桌面环境是KDE plasma5, 但是我是从 gnome3->xfce -> i3wm->awesome -> kde 过来的。(一脸沧桑)

由于第一次接触的 linux 发行版是默认有gnome3ubuntu, 但是我却一点也不喜欢gnome3, 因为gnome3总给我一种很厚重的感觉, 并且经常崩溃, 卡顿, 甚至卡死, 渐渐的我想要去寻找别的好玩的桌面环境。

经过一番对比, 因为我喜欢简简单单, 清量的环境, 并且当时我的电脑配置很低, 所以我选择了 xfce

xfce的资源占用确实少, 而且响应速度快, 也不卡, 好评。 但是我实在是太喜欢折腾了, 看 redit 有人在 unixporn 版块晒他的配色/配置截图, 我又按耐不住我的好奇心去尝试 那个看起了非常简约, 非常戳中我心的i3wm, 当我阅读了 2~3 遍 i3wm的官方文档后, 我终于尝试上手安装了, 一点一点的照着文档去配置, 一点一点的去找各种时钟, 窗口指示,网速指示, 资源监视,各种管理器等等各种插件, 折腾什么 urxvtrofiranger, 改那个 ~/.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的,改完配置不用重启就生效。

alt text

konsole是个优秀的也是个优秀的终端, konsole可以配置transparent/blur,还可以配置背景图片。

shell

zsh

zsh

我使用了 oh-my-zsh, 我的主题是 p10k

我按下 Ctrl+R 显示我的历史命令记录, 支持搜索。这是 fzf 的功劳

我有一个小窍门: 在命令的最末尾加上注释 #

比如:

1
❯ sudo pacman -Syy #sync package

注释后面的不会生效, 但是能在我下次搜索的时候帮一点忙。

然后我在命令历史里搜索 sync package 就能匹配到这条历史记录。

我喜欢的 zsh 插件:

  • zsh-autosuggestions
  • zsh-syntax-highlighting
  • zsh-vim-mode # vim 党必备!
  • colored-man-pages # 让man手册带上颜色,从此 阅读 manual 不枯燥

Terminal Multiplexer: tmux

alt text

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 emacs
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是因为 vimemacs 启动速度更快!)

平时开发都是用 IDE, (我在 IDE 下使用 vim 的键位插件)用 vim 只是编辑一些配置文件, 或者我在 命令行敲太长的文本时,按 Ctrl-X Ctrl-E 来用 vim 去编辑复杂的命令。

vim 也有丰富的的插件:

  • easymotion: 根据几个字母,将光标定位到目的位置
  • surround: 加入、删除、改变()[]{}``""’’<> 等等
  • nerdtree: 在侧边显示文件目录树
  • sneak: f 的替代品, 但是比 f 更强大
    强烈推荐我正在使用的 firefox 下的 tridactyl 插件, 里面有:editor 命令配合 vim 来编辑浏览器里的文字框:

需要设置在 浏览器里定义 : editorcmd

1
2

set editorcmd tmux new-window -n firefox 'nvim -f %f; tmux wait-for -S firefox-neww-done' \; wait-for firefox-neww-done

参考这篇文章:

https://quinoa42.github.io/en/oceanus/tridactyl-editorcmd-with-tmux/

附上 vim keybindings

vim key bindinsg

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 / 移动端 文件互传,移动端消息提醒)

网页浏览器

我有安装了这么几个浏览器

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
sudo pacman -Qs web browser
[sudo] password for vory:
local/brave-bin 1:1.17.73-2
    Web browser that blocks ads and trackers by default (binary release).
local/chromium 87.0.4280.66-1
    A web browser built for speed, simplicity, and security
local/filebrowser-bin 2.10.0-1
    Web File Manager which can be used as a middleware or standalone app.
local/firefox 83.0-2
    Standalone web browser from mozilla.org
local/firefox-developer-edition 84.0b4-1
    Developer Edition of the popular Firefox web browser
local/google-chrome 87.0.4280.66-1
    The popular and trusted web browser by Google (Stable Channel)
local/google-chrome-dev 88.0.4324.11-1
    The popular and trusted web browser by Google (Dev Channel)
local/lynx 2.8.9-3
    A text browser for the World Wide Web
local/w3m 0.5.3.git20200507-2
    Text-based Web browser as well as pager

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
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 有这么一个特点: 每个工具都很强大, 把多个工具组合到一起, 就可以发挥出各种非常强大的威力

总结

每个人都有自己的工作流,适合自己的才是最好的。

工具用来帮助你实现自己的目的,每门工具都有自己擅长的领域,所以不要浪费时间去漫无目的折腾工具。

:-)

参考资料

Share on

EXEC
WRITTEN BY
EXEC
Eval EXEC