Setup

Demo

收集当前使用的工具及配置。其它相关 Blog:


本文所有 dotfiles

工作/摸鱼环境:当前使用的是一台 MBP 15" 2018 + Dell 2720Q 4K 显示器。时常会命令行或 VSCode ssh 到 Lab 的 Ubuntu 下。之前有过一台 Alienware 17" R4 安装了 Windows&Ubuntu 双系统。Ubuntu 为主系统,Windows 只用来 Steam。由于需要搬家 + 感觉 MBP 买了不用有些浪费所以卖掉了。目前没有配台式的打算,游戏环境准备完全交给 Xbox

Yabai

macOS 下平铺式窗口管理器,搭配 skhd 热键守护进程 + spacebar 状态栏实现桌面环境大改造。快速切换、排列窗口及桌面,告别鼠标和触控板。安装与使用前请完整阅读 wiki

一些系统设置(均在 System Preferences):

  • 防止桌面顺序自动更改:取消勾选 Mission Control -> Automatically rearragen Spaces based on most recent use
  • 减少动画效果:勾选 Accessibility -> Reduce Motion
  • 隐藏 Dock:勾选 Dock -> Automatically hide and show the Dock
  • 隐藏菜单栏:勾选 General -> Automatically hide and show the menu bar

Spacebar

一款轻量状态栏,配合 Yabai 使用,显示当前桌面和窗口信息。安装和配置都比较简单。显示图标注意字体问题

Skhd

简单的热键守护进程,快捷键触发命令,配合 Yabai 使用。配置文件规则简单,搭配 Karabiner 键盘映射软件可以实现更多定制化需求

Karabiner

macOS 键盘映射软件。添加 ~/.config/karabiner/assets/complex_modifications/custom.json 文件并编写规则即可。配置文件主要参考:Capslock

  • 定义 Capslock 键单独按下时为 Esc,与其它键组合时变为 Hyper
  • 与 h, j, k, l 组合变为上下左右

Alfred

替换 Mac Spotlight,功能强大。可用来打开软件、文件、网页;搜索书签;查看剪贴板。另外可以添加 Workflows 扩展功能。推荐 Workflow:

自动备份设置(存在敏感信息):Preferences -> Advanced -> Set preferences folder

Pock

将 Dock 栏显示在 Touch Bar 上

Lunar

根据 Macbook 的自带光传感器自动调节外接显示器亮度和对比度。界面好看,模式种类多,需要自己根据需要调节一些参数

Rime

全平台开源输入法,在 macOS 下为鼠须管。可定制化选项多,上手比较复杂,参加帮助文档。全部数据都在本地,设置和词库可以跨平台同步。

Typora

Markdown 编辑器,平时用来做笔记,写 Blog。Typora 天下第一 🐶

主题推荐:Ursine Polar, Cobalt, Hivacruz

Zotero

知识管理平台,主要用来整理文献,并配合 Dropbox 同步。

Zotero 设置 Preferences -> Advanced -> Files and Folders

  1. Link Attachment Base Directory: 选择附件根目录 .../Dropbox/Zotero
  2. Data Directory Location: 选择链接根目录 .../Zotero/storage

并且在 Preferences -> Sync 中取消 File Syncing 选项

Zotero 下载插件 ZotFile,在 Tools -> ZotFile Preferences 中更改

  1. Source Folder for Attaching New Files: 选择链接根目录
  2. Custom Location: 选择附件根目录
  3. Use subfolder defined by: 选择根据 collection 建立子文件夹 /%c

全选 Zotero 条目,右键 Manage Attachments -> Rename Attachments 即可重名名 PDF 附件并移动至设置的文件夹中。重命名规则可在 ZotFile Preferences -> Renaming Rules 中更改

该方法在删除条目时无法删除对应 PDF,可以使用 zot_rm_unmaintained_files.py 自动删除

Mathpix Snip

截图数学公式转化 Mathjax 语法,准确率高,用 Typora 写学习笔记时非常方便。免费用户支持 50条/月

Surfingkeys

浏览器插件,键盘操作网页,按键模式与 Vim 类似。上手简单,功能齐全,支持自定义

VSCode

代码编辑器,插件生态全,迭代更新快,又是一个天下第一系列 🐶

一些推荐插件

  • Ayu: 主题
  • Dumb copy-paste: 使用 ctrl+shift+v 可以保存缩进格式粘贴
  • GitLens: 在文件中显示 git 信息
  • Material Theme: 主题,主要用它来显示文件图标
  • Path Intellisense: 自动补全文件路径
  • Rainbow CSV: 高亮 csv 文件
  • Sublime Text Keymap and Settings Importer: sublime 快捷键和配置无痛转换
  • Todo Tree: 高亮关键字

Python Autoformatting

  1. 安装 python 静态代码检查工具 flake8 和格式化工具 yapf
  2. 在 VSCode 中配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
"python.linting.flake8Enabled": true,
"python.linting.flake8Path": "${env:CONDA_PREFIX}/bin/flake8",
"python.linting.flake8Args": [
// Ignore some pattern
"--ignore=E501, E265, E226",
],

"python.formatting.provider": "yapf",
"python.formatting.yapfPath": "${env:CONDA_PREFIX}/bin/yapf",
"python.formatting.yapfArgs": [
// yapf Style
"--style", "{column_limit: 140, arithmetic_precedence_indication: True}"
]
}

Kite

AI 支持代码补全插件,用着挺有意思

Jupyter Notebook

可交互式计算 Web 程序,主要用来测试 Python 程序

主题

  1. 安装 Jupyter themes

  2. 更换主题, 目前使用的为 jt -t onedork -f consolamono -fs 13 -tfs 15 -nfs 15 -ofs 13 -cellw 88% -T

  3. 解决 matplotlib 与主题适配问题: 在 ~/.ipython/profile_default/startup/startup.ipy 中加入

    1
    2
    from jupyterthemes import jtplot
    jtplot.style()

若想重置图片颜色,比如保存图片时,在 notebook 中添加 jtplot.reset() 即可。

插件

安装 Jupyter notebook extensions

插件推荐:

  • LaTeX environments for Jupyter: 方便写 LaTeX。
  • ScrollDown: output 窗口自动滚动。
  • Table of Contents: 显示 Markdown 大纲视图。
  • Variable Inspector: 方便查看变量类型与维度。
  • Hinterland: 代码自动提示。
  • Spellchecker: 检查 Markdown 拼写错误。
  • Scratchpad: 调试小窗口。

iTerm2

macOS 终端工具。一些设置:

  • 默认终端: iTerm2 -> Make iTerm2 Default Term
  • 快捷键: iTerm2 -> Preferences -> Keys -> Hotkey。设置为 option + space
  • 字体问题: 安装 Nerd Fonts,在 iTerm2 -> Preferences -> Profiles -> Text 中选择字体。推荐 14 pt MesloLGM Nerd Font Regular
  • 下载 iTerm2 的配色方案。推荐 Snazzy, ayu

备份:

  • 自动备份设置:Preferences -> General -> Preferences -> Load preferences from a cutom folder or URL
  • 手动备份 Profiles:Preferences -> Profiles -> Other Actions -> Save all Profiles as JSON

Oh My Zsh

zsh 增强。开启一些自带插件:

  • git:关于 git 的各种 alias
  • extract:使用 x 傻瓜式解压文件
  • colored-man-pages:man 命令高亮

Powerlevel10k

zsh 的一款主题,可定制化选项多,傻瓜式引导配置

zsh-autosuggestions

zsh 插件,可以根据历史提示命令,一键补全

zsh-syntax-highlighting

zsh 插件,高亮命令。

注意需要放在 .zshrc 插件列表最后一位

Vim

命令行编辑器,目前小型文件全部用 Vim 取代 Sublime,大型项目使用 VSCode。

新手使用 vimtutor 命令来快速熟悉,学习曲线陡峭。

安装 vim-plug 插件管理器;插件可以在 VimAwesome 中搜索

Tmux

终端复用器,ssh 连接断开时会话依旧会保存。每个会话可以打开多个窗口,每个窗口可以划分窗格。

一个会话中的操作对服务器端和用户端同时可见,可以用来做演示。

安装 tpm 插件管理器

Dracula Tmux

Tmux 主题插件,显示简单信息,容易定制

vim+tmux+true_color+italic

  1. .tmux.conf 中加入

    1
    2
    set -g default-terminal tmux-256color
    set -ga terminal-overrides ",xterm-256color:RGB"
  2. 下载 tmux-256color 后终端执行 /usr/bin/tic -x tmux-256color 后会产生 ~/.terminfo 文件

Ranger

命令行文件管理器,按键模式和 Vim 类似。支持自定义快捷键和命令。新手请阅读 wiki

Bug:快速预览有时会卡死,需要 ctrl-c 后继续。参考 issue

Yadm

Yet Another Dotfiles Manager.

Dotfiles 管理工具。基本工作原理即是在 ~ 目录下建立一个 git 仓库,命令与 git 相同,模式与 git 相反,即默认不添加文件,需要手动 yadm add

命令行工具

  • autojump: 目录快速跳转
  • bat: cat 增强版,输出高亮,多种语法
  • cheat: 提示命令的用法,可以自己编写
  • icdiff: 支持高亮的比对工具,可以搭配 git 使用
  • lsd: ls 增强版
  • neofetch: 显示系统信息,可定制选项多
  • ripgrep: 类似于 grep,使用正则表达式搜索文件内容
  • tree: 树形显示文件夹结构
  • htop: 交互式进程管理器
  • wudao-dict: 有道词典命令行版本
  • nvidia-htop: nvidia-smi 增强版,显示进程对应用户与 CPU,Memory 使用率
  • xclip (Linux): 复制文件内容至剪切板,Mac 自带 pbcopy

个性化

  • Downlink: 用实时卫星图片做桌面背景
  • Matrix: 类似黑客帝国的屏幕保护程序

Hexo 博客搭建

参照 Readme

系统相关

Win & Ubuntu 双系统

Win 安装 Ubuntu

进入 Win 下控制面板中的电源选项关闭快速启动。

使用磁盘管理工具在 Win 下将磁盘压缩出一块可用空间,100 GB 左右。如果硬盘为动态磁盘,需先使用傲梅分区助手将磁盘转化为基本磁盘。

在 Ubuntu 官网下载安装文件。按照官网教程制作装机 U 盘。

U 盘插入电脑,重启进入 BIOS 选择从 U 盘启动。按照安装步骤进行,安装类型页面选择与 Win 共存。

安装完成后,在 Software -> Additional Drivers 里安装 Nvidia 显卡驱动,如果未关闭 Secure Boot,则需要设置密码并重启,在界面中选择 Enroll Key 并输入密码即可。

网上大多数教程还是以 Legacy 模式安装,关闭 Secure Boot,手动分区,用软件制作引导。而目前的版本完全不需要这么麻烦

Ubuntu 安装 Win

需要一台 Win 电脑制作装机 U 盘

在 Microsoft 官网下载安装工具,(注意必须要在 Win 电脑上打开才会显示制作工具下载,否则会直接跳转至 ISO 文件下载)。按照说明制作装机 U 盘。

U 盘插入电脑,重启进入 BIOS 选择从 U 盘启动,按照安装步骤进行。

若提示因为 MBR 分区表无法安装至该磁盘,使用 Shift + F10 进入命令行,输入以下命令将磁盘转换为 GPT 后可以继续安装:

1
2
3
4
5
6
dispart
list disk
select disk [number]
clean
convert gpt
exit

添加 Ubuntu 开机引导:安装完成后在 BIOS 中将 Ubuntu 选为第一启动项,Ubuntu 系统下更改 /etc/default/grubGRUB_DEFAULT=4 后执行 sudo update-grub,在输出内容看到 Found Windows ... 即可

WOL

首先查看主板是否支持 WOL

开启 WOL 服务:

  • Ubuntu: 开启 BIOS 中 WOL (Wake on Lan)。安装 sudo apt-get install ethtool 并开启网卡的 WOL 服务 sudo ethtool -s eth0 wol g
  • Mac: 开启 Energy Saver -> Power Adapter -> Wake for Wi-Fi network access

发送 Magic Packet 以唤醒其它机器:

  • 安装 wakeonlan,使用 wakeonlan -i ip -p port macaddress

Ubuntu Fix

鼠标滚轮速度设置

下载 imwheel,创建 ~/.imwheelrc 文件并加入如下内容

1
2
3
4
5
6
7
".*"
None, Up, Button4, 2
None, Down, Button5, 2
Control_L, Up, Control_L|Button4
Control_L, Down, Control_L|Button5
Shift_L, Up, Shift_L|Button4
Shift_L, Down, Shift_L|Button5

并添加开机启动: 执行命令 gnome-session-properties,添加 imwheel -k -b "4 5"

DP 没有音频传输

更改显示器选项为 DP 1.1,电脑 Settings -> Sound -> Output 中出现 HDMI/DisplayPort 选项。

可能还需要在 pavucontrol -> Configuration 中更改 profile

应用加入启动器

/usr/share/applications 新加入 xxx.destop 文件,加入以下内容

1
2
3
4
5
6
7
8
[Desktop Entry]
Version=1.0
Name=应用名称
Exec=应用路径
Terminal=false
Icon=应用图标
Type=Application
Categories=Development

蓝牙自动连接

终端操作:

1
2
3
4
5
bluetoothctl
devices # 列出设备
remove [mac addr]
# 重新配对并连接蓝牙
trust [mac addr]

Tips

SSH With Tmux

使用 ssh NAME -t tmux new -A 可以在 ssh 时自动 attach 到 tmux session,如果没有则自动创建

History 增加时间显示

.zshrc 中添加 HIST_STAMPS="yyyy-mm-dd"

Mac System Copy

pbcopy 只能够复制文本内容,如果达到系统复制的效果可以将下列函数加入 .zshrc

1
syscp() {osascript -e{'on run{a}','set the clipboard to posix file a',end} "$(readlink -f -- "$1")"}

通过 syscp FILE 来复制文件,注意只能复制单个文件