Linux 的休眠

先区分一下两个名词:睡眠(sleep)和休眠(hibernate)。

  • 睡眠:将工作镜像写入内存(RAM),以便快速恢复。内存读写很快,所以睡眠的特点就是“睡得快”和“醒得快”。对于笔记本来说,合上盖子就睡了,打开盖子你的工作区间即刻就能恢复,很是方便。但是睡眠有一个缺点,就是要给内存供电,一旦断电,你的镜像数据就会丢失,工作区间将不复存在。当然这来自于内存的固有特点,建议百度 RAM。
  • 休眠:将工作镜像写入硬盘(disk,ROM),这样你也可以恢复工作区间。只是睡下去和醒过来的时间比内存慢不少。但是,它有一个好处就是断电了也不会丢失数据。当你再次开机,系统就会从硬盘里面读取镜像,恢复你的工作区间。

一个 really simple 的 LaTeX 宏包

众所周知,LaTeX 是一个高效易用的排版软件,基本上只要找到合适的模板,剩下的就只剩码字了。比起 MS Word,简直不知道高到哪里去。就拿最近写论文的事来说,我先用 TeX 码好字,然后要投的那个刊需要用 Word 提交。转格式转了我一下午带一晚上,太痛苦了。深刻的体会到什么叫自以为是,MS Word 自作聪明地给你调格式。当你敲下回车之后,天知道它又会自动帮你做些什么?!

Latexmk 基础用法

怎么想到用 latexmk 的呢?写论文呗!

本来呢,我一直习惯于使用命令行手敲

1
pdflatex someting.tex

千万别小看这种重复劳动,它不仅帮你加深记忆,还有最完整的输出,让你一窥 Tex 排版系统的内裤(→_→,一本正经胡说八道中……)。还记得 Archlinux 的哲学名言吗?–Keep it simple and stupid (KISS)–说得太对了呀!

Gnome 应用启动缓慢

先看环境:

$ neofetch
                   -`                    yychi@MiBook-Air 
                  .o+`                   ---------------- 
                 `ooo/                   OS: Arch Linux x86_64 
                `+oooo:                  Host: TM1604 XMAKB3M0P0202 
               `+oooooo:                 Kernel: 5.5.13-arch2-1 
               -+oooooo+:                Uptime: 5 mins 
             `/:-:++oooo+:               Packages: 1153 (pacman) 
            `/++++/+++++++:              Shell: zsh 5.8 
           `/++++++++++++++:             Resolution: 1920x1080 
          `/+++ooooooooooooo/`           WM: i3 
         ./ooosssso++osssssso+`          Theme: Adwaita [GTK2] 
        .oossssso-````/ossssss+`         Icons: Adwaita [GTK2] 
       -osssssso.      :ssssssso.        Terminal: urxvt 
      :osssssss/        osssso+++.       Terminal Font: DejaVu Sans Mono for Powerline 
     /ossssssss/        +ssssooo/-       CPU: Intel i5-7200U (4) @ 3.100GHz 
   `/ossssso+/:-        -:/+osssso+-     GPU: NVIDIA GeForce MX150 
  `+sso+:-`                 `.-/+oso:    GPU: Intel HD Graphics 620 
 `++:.                           `-/+/   Memory: 1608MiB / 7881MiB 
 .`                                 `/

再看问题:Gnome 系软件(gedit, baobab, nautilus 等)启动龟速,通常需要等待 10-30s.

Metapost 学习笔记

想必你也有过这样的疑问,中学数学书上的那些精美的作图是如何画出来的?一直以来,我都想学习一门绘图语言,只是久久未能行动 orz…

闲话少叙,开始学习!

声音的消亡

近日整理以前的文章,发现一个事实:我越来越不会说话,越来越不会表达,越来越没有自己的思想。

以前的我每隔几天都会发表空间说说,即使大部分属于“少年不识愁滋味,为赋新词强说愁”。但好歹能时常发表自己的观点、见解和感悟。我现在看起自己以前写过的东西,不论正确与否,起码可以通过写的文字窥见当时的自己,了解当时的想法,经过时空的转换,这些想法现在品起来十分有味道、并且非常有乐趣。

转义字符到底是什么

转义字符到底是啥?

实不相瞒我就是因为不知道才写下这篇文章,不,准确的说是这篇笔记 orz,既然是笔记,无所谓抄不抄了。每次说到转义字符,多少有点模糊,所以不如记下这篇笔记,以后忘了直接翻出来看看,复习起来要快一些。

小内存机器的自我救赎

在此记录一下我自己用过的非常棒的小软件。

有必要维护一个自己使用的软件列表。

套用一下 suckless 的 slogan,

Everything sucks, we just suck less.

-- suckless.org

下载

  • aria2c: 命令行下载工具,支持下载种子、磁力等。有 RPC 模式,配合 WebUI 使用更佳。参考简介

多媒体

  • mpv: 命令行多媒体播放器,拥有较强的扩展性和自定义的空间,另外我自己体验上来看比 mplayer 要流畅,mplayer 在我的机子上有丢帧,而 mpv 无明显丢帧。
  • mpd/mpc: 音乐播放,没有界面。mpd 作为服务端,mpc 作为客户端,占用内存非常低。
  • OBS stuido: 录屏软件,大而全,跨平台。虽然较大,但实践证明是兼容性最好的,在 linux 上也好使。可以正常录制扬声器和麦克风。
  • SimpleScreenRecorder: 录屏软件,配置比 obs 少但也够用。

文档

  • zathura: A vim-like pdf reader. vim 系快捷键,小而轻,但功能也相对较少。

截图

  • flameshot: gnome-screenshot 的替代品,支持截图后标记,复制到剪贴板;平台:Linux
    • flameshot gui: 直接打开截屏功能,更多参考flameshot -h.
  • peek: 小巧易用的录屏软件,支持录制 gif, mp4, webm 等格式。

看图

  • imv: feh 的替代,支持多种格式(包括 gif1)。界面简洁只有一个图片框和 feh 一样,但是有必要的信息显示(overlay)。简洁党的最爱。
  • ImageViewer: 纯 Qt 的图片查看器,简约不简陋。

效率

  • xpad: 小而轻的桌面便签。
  • Taskwarrior: A command-line todo manager,不要因为它的强大而忘记使用它的初衷。
  • ranger: File manager in terminal,三页分栏显示文件树,支持文件预览(需安装对应依赖),支持自定义命令,书签等。
  • rofi: dmenu 替代品,窗口切换,应用启动器,简约大方,纯文本构成。
  • Everything: windows 平台,免费且简单易用的全局搜索器,该有的都有。
  • QTTabBar: 众所周知,windows 文件管理器十分难用,尤其是不支持 tab,所以,它来了。

学习

  • GoldenDict: 离线词典,支持在线页面查词,接有道,维基等,可以看做是 Linux 上的 Eudic,支持多种离线字典格式,支持自定义快捷键查找剪贴板中的单词。

笔记

  • Obsidian: markdown 笔记软件,也可做个人知识库管理(过于方法论)。卖点有二,一是支持双向链接,并由此牵扯出一套方法论;二是你的数据你做主,一切笔记皆本地 markdown 文件。你拥有完全的掌控权,即便以后不用它,也很容易迁移到别的软件。对个人永久免费(付费版提供笔记同步、发布服务)。可玩性很强,太过知名,教程软文一搜一大把,还须记住记住本心为宜:我最初是为什么要用它来着?

锁屏

  • slock: suckless 出品,极简的锁屏软件。简单到什么程度呢?配置文件都没有,直接下源码改头文件来配置

VSCode 插件

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
$ code --list-extensions
bungcip.better-toml
tomoki1207.pdf
huacnlee.autocorrect                   # 修正中英混合排版的问题
huizhou.githd                          # git history, blame on single file
mhutchie.git-graph                     # git graph
KylinIDETeam.cmake-intellisence
llvm-vs-code-extensions.vscode-clangd  # c++ dev
twxs.cmake                             # cmake syntax support
vadimcn.vscode-lldb                    # c++ debug
vscodevim.vim

VSCode C++ 开发配置参考:

Brief Introduction to Shell Script

This article is mainly refered to “The Linux Command Line”1. I just take some most important things out of the book.

Expansion

Each time you type a command line and press the Enter key, bash performs several processes upon the text before it carries out your command. Just look an example:

1
2
[me@linuxbox ~]$ echo *
Desktop Documents ls-output.txt Music Pictures Public Templates Videos

Why not display an asterisk? That’s expansion! * expands to all files in current directory.