明琪琪可爱用什么?

本页面参考自Wiwi/use,列举自己当前爱用什么东西。

我的软件使用原则是,在可行的情况下,优先使用自由软件和开放格式,对于无法主要使用自由软件的项目,也会尽力寻找替代方案。

写在前面

本页面参考自Wiwi/use,列举自己当前爱用什么东西。

电脑软件

我的软件使用原则是,在可行的情况下,优先使用自由软件和开放格式,对于无法主要使用自由软件的项目,也会尽力寻找替代方案。

操作系统

现在我基本都在用 GNU/Linux ,不像大多数人所认为的那样,Linux其实比想象中的要好用,只需要学习基本的终端用法,会重装操作系统就能用起来。

遇到问题的话可以看ArchLinux Wiki,虽然是Arch Linux的Wiki,但这玩意已经算是Linux的百科全书了。

关于生态问题,其实现在大部分市面上绝大多数的功能在Linux上都有自由软件替代品,因此没必要纠结于能不能在Linux上跑Adobe之类的Windows商业软件,而且个人看来这些玩意本来就不怎么好用,又特别占空间。当然部分windows才有的游戏,目前已经有很好的兼容层 Wine 可以运行了。

或者直接用Steam游戏,Steam自带的Pronton已经能让80%的Windows游戏在Linux上优雅地运行了。

不习惯Linux的新手建议选择主流发行版,像Linux MintManjaroUbuntu这类会更有信心。

  • GNU/Guix - 目前正在用的主力GNU/Linux发行版,像Nix那样可以用一个配置文件声明式构建操作系统,但是Guix可复现性和声明性更强,而且GNU的向下兼容也是出了名的好,很少需要担心GNU项目会引入大量破坏性更新。当然,强烈不建议新手使用这个发行版。

  • Gentoo - 用过几个月,有类似Arch Linux的滚动更新特性的发行版,所有软件包都在本机上编译,更新策略比较保守所以破坏性更新少。

  • Arch Linux - 旧爱,一个滚动式更新发行版,同样不推荐新手使用。

网页浏览器

网页浏览器倒是没什么特别挑剔的,一直都在用的Firefox系浏览器,现在只是换成了更注重隐私的LibreWolf。

当然,基于理查德斯托曼所写的JavaScript 的陷阱,我觉得之后也有比较考虑换成更方便审查JavaScript脚本的浏览器。

  • LibreWolf 注重隐私的Firefox分支版本,仅移除了Firefox的监控和遥测特性,是兼顾隐私和网页兼容性的选择。

桌面环境

目前用的桌面环境,是自己搭配和定制的一套桌面环境系统,以前是用的基于X的Xfce,现在换成了基于Wayland的桌面环境。

以前还是用的传统的鼠标叠瓦式桌面,现在特别喜欢滚动式和平铺式的桌面,因为能更鼓励你专注于当前工作流,习惯了基于键盘操作的工作流后,切换窗口也非常方便快捷,更容易进入心流状态。

  • Niri - 滚动式Wayland合成器,桌面切换还是很方便的。

  • Waybar - 针对Wayland桌面环境的顶栏菜单,支持JSON格式配置和CSS语法自定义样式,选这个单纯是因为开箱即用。

  • Rofi - 一个Wayland的选择器,一般用来做软件选择菜单,但其实高级选择功能挺多的。

  • SwayBG - Wayland的桌面背景显示工具。

  • Swaylock - Wayland的锁屏工具,不过基本没用到。

  • Xwayland Satellite - 一个Wayland上的X兼容层。

终端工具

  • Foot - 目前用的终端模拟器。

  • Fish - 强烈推荐,即装即用,补全超舒服的终端交互语言。

  • FFmpeg - 偶尔用用,万能的音视频媒体转换器。

  • Ripgrep - 高性能的全文搜索,我一般配合Emacs的插件,非常方便搜索。

  • Aider - 基于终端的AI结对编程工具,主要配合Emacs使用。

  • NNW - 个人开发的基于标签的终端笔记管理软件,只有很基本的输入输出功能,主要配合Emacs前端管理笔记,做成终端程序是为了方便兼容多前端。

  • isync/mbsync - 电子邮箱同步工具,将远端电子邮箱自动同步到本地的小工具。

  • mu - 电子邮箱索引工具,配合mu4e可以很方便地用Emacs收发电子邮件。

  • sdcv - 纯终端词典查询工具,一般配合emacs快速查词,因为我希望尽可能查询外语词典来学习外语,尽可能减少对翻译的依赖。

  • git - 众所周知的软件版本管理工具,程序必需品!

  • Gnupg - 简称GPG,是GNU的加密、签名、验证、认证、和密钥管理分发工具,既于生成并分发自己的密钥,方便他人验证软件和git提交者的身份,也可以用公钥加密文件给你发私密信息,还可以用于ssh的密钥验证。

  • OpenSSH - 不多说了,维护服务器都会用。

  • rsync - 用于将文件传到服务器上的首选工具。

GNU/Emacs相关

目前为止,可以说我的绝大多数文本工作流都在GNU/Emacs上,Emacs毫无疑问是目前最灵活的编辑器,任何关于文本的工作只需要Emacs就能高效取代。

顺带一提,因为Emacs一切皆缓冲区的灵活性,使得它不仅是一个文本编辑器,更像是一个万能的Linux控制前端,几乎绝大多数依靠管道传递的Linux终端程序,都能在Emacs这个前端做更好用和快捷的包装。

如果想学习如何使用Emacs,可以看国内Emacs社区的教程《21天学会Emacs》

  • Emacs-Pgtk - 世界上最好用的文本编辑器兼程序开发环境!Pgtk是纯GTK版本的Emacs,没有引入对X的依赖,在Wayland环境下兼容性更好。

  • OrgMode - 常用的标记语言兼文本编辑模式,可以说我的文本和笔记工作流最关键的一部分全靠它。

  • Projectile - 方便的Emacs项目管理器,取代默认的项目管理器。 +其实我基本也就用它的快速打开项目的功能。+

  • Ellama - Emacs超好用的AI前端,可以灵活定制各种AI。

  • nnw4e - 个人开发的nnw兼容Emacs的工具

  • mu4e - Emacs的电子邮件收发前端。

  • dirvish - 好用的Emacs文件管理工具。

  • geiser - Emacs做Scheme开发基本只能用它做IDE了,Lisp语言必须运行Repl才能实时获取补全和调试运行,一般用来写Guile程序。

  • sly - Slime的一个分支,CommonLisp的IDE工具,用来写Trial游戏和CommonLisp程序的。

  • Racket Mode - Racket编程首选,虽然Racket我目前也就用来写写幻灯片。

  • Rustic - 集成了多个工具的Rust IDE。

  • Ement - Emacs的Matrix前端,虽然有很多bug,使用体验很差,不过勉强是可以用的。只是不能看到图片,得换客户端看。

  • Elfeed - Emacs的RSS阅读器,配合elfeed-protocol插件可以做miniflux的客户端。

视频媒体

  • mpv - 轻量级播放器,很符合Unix只做好一件事的哲学,可以直接播放云端的ipfs视频。

  • Syncplay - 和朋友一起看番专用,基于mpv的视频播放进度和状态同步工具,可以和朋友一起流畅地看本地的番,同步看视频的进度并相互交流。

  • Kodi - 炫酷的个人多媒体管理中心,功能很多,虽然现在用得少了,基本都用浏览器看番,不过偶尔还是会用。

通讯软件

这里只列出前面Emacs没提到的通讯工具。

  • Fluffychat - 安卓端体验最好的Matrix客户端,适配多平台,不过同样笨重,而且Wayland上兼容有问题。

  • Element - Matrix官方推荐客户端,但是这是Electron程序,问题太多了,还是考虑迁移到Ement比较好。

办公软件

  • LibreOffice - 虽然Emacs的OrgMode已经能胜任绝大多数工作了,但因为跑团一般用xls车角色卡的缘故,所以才装了这个。

档案同步

密码管理器

  • KeepassXC - 离线使用,利用Syncthing来同步密码库到不同设备上。

图片制作

  • Krita - 最好用的绘画自由软件,我的所有插画作品都是用它完成。

  • GIMP - GNU项目的图片编辑器,现在基本没怎么用。

  • Inkscape - 矢量图编辑器,我一般用于制作logo和人造语言的字体。

  • Pixelorama - 基于Godot开发,自由像素画软件的常用选择。

  • Aseprite - 专有像素画软件,曾经是自由软件,后来商业化之后分支出了自由分支LibreSprite

字体制作

  • Fontforge - 字体制作工具,但因为在Wayland上兼容非常差,差到几乎没法用,所以我一般只用来做导出器,将Inkscape制作的SVG格式字体导出为其它格式的字体。

图片整理

  • digikam - 能将标签写入图片元数据,并基于标签分类的的图片管理工具,说实话我一直都觉得这玩意远程访问就不太好用了,主要是我目前的图片库都搬到了NAS上,而因为远程访问总是要等很久的加载,效率也很低。但是又找不到更好的基于web方便NAS前端管理的替代品。

电子书

  • Calibre - 几乎是Linux电子书管理器的唯一选择了,虽然远程目录同样很难用,但也只能用着。

图片浏览器

  • emacs - 因为懒得弄图片管理器,所以目前大部分图片基本都在Emacs默认的图片模式上直接浏览了。

  • feh - 一个像mpv一样轻量级的图片浏览器,有且只有一个功能,就是看一张图片。

音乐制作

  • LMMS - Linux上最容易上手的数字音乐工作站(DAW)

  • Reaper - 以前用过,不过后来没用了。

输入法

  • Fcitx5 - Linux常用输入法,我一般装Anthy来输入日语,装Rime包装来输入中文。

  • Rime - 后端无关的中文输入法,理论上也不只可以用来输入中文。

编程语言

目前编程语言我主要用Lisp系编程语言,Lisp系编程语言都是非常灵活,代码即数据,且具有强函数式特性的编程语言。

  • Guile - GNU首选系统脚本语言,目前的主力编程语言,大部分软件都会优先用Guile编程。

  • Common Lisp - 次主力编程语言,目前为止最灵活的Lisp语言,一般用来做游戏开发。

  • Racket - 图形和元语言方面功能最强的Scheme编程语言。

  • S7 Scheme - 以前用来做游戏内嵌脚本语言的语言,不过后来干脆考虑Guile和Common Lisp的方案了。

  • Clojure/ClojureScript - 暂时没学过,Java和JavaScript的Lisp替代品。

  • Fennel - 暂时没学过,Lua的Lisp替代品。

  • Chicken Scheme - 暂时没学过,可以编译成C语言的Scheme。

  • Emacs Lisp - 写Emacs配置和插件必学的DSL(领域专用语言)。

  • Rust - 以前为了做Lisp解释器学的编程语言,是我会的唯一一门比较熟练的静态语言。

  • Gdscript - 以前用Godot做游戏的时候学的编程语言。

  • Shell - 服务器运维基本必学。

  • Python - 以前常用的脚本语言,现在很少用了,脚本语言优先考虑Guile。

  • Lua - 以前玩MC写OpenComputer的脚本的时候用过。

  • C - 其实不是特别擅长,但之前写NekoLisp项目的时候学过一点点C的语法。

  • Java - 以前做Minecraft的Mod的时候学的,会一点点Java的开发语法。

  • Html/CSS - 仅做网页的时候会用到。

游戏开发

目前我的游戏开发主要用CommonLisp和Trial引擎开发,不过我这里也会推荐一些我用过和考虑过的游戏引擎。

  • Trial - 当前的首选模块化游戏引擎,基于CommonLisp这门非常灵活的Lisp语言。

  • Bevy - 之前尝试过,一个用Rust写的纯ECS架构的模块化游戏引擎,是值得期待的新兴引擎。

  • Chickadee - 基于Guile开发的游戏引擎,还处于非常早期的阶段,但因为其使用的协议是GPLv3协议的缘故,比较劝退商业用途的游戏开发者。

  • Godot Engine - 对标Unity的选择,大多数游戏开发者的常用选择,是自由游戏引擎里面最保守的选择。

  • Tiled - 目前的主力关卡编辑器,是关卡编辑器兼容性最广的选择。

  • LDTK - 死亡细胞系列工作室开发的关卡编辑器,有很多强力的特性和功能,是关卡编辑器现代化的选择。

  • Evennia - 超酷的MU*文字冒险游戏引擎,有中文文档

  • Tilesetter - 瓦片图块生成器,用于降低绘制图块的工作量。

网站制作

  • haunt - 新宠,用Guile写的静态网站生成器,可定制性和自由度都非常高,目前的网站就是基于haunt搭建的。

  • hugo - 旧爱,老派静态网站生成器,兼容性和主题都比较丰富,因为有ox-hugo的缘故,所以曾经也是org格式搭建静态网站的最佳选择。

防火墙

  • nftables - 新式防火墙底层,规则写法非常透明和人类化。

系统监控

  • btop - 比较现代化的终端进程监控软件,相比htop界面更酷,而且看得更清晰。

  • glances - 服务器进程监视软件,有可以在web页面实时显示进程信息的功能。

  • tcpdump - 网络包捕获软件,虽然名字有tcp,但实际上是tcp和udp通用的包捕获软件,我一般这个来调试网络。

AI

  • ollama - 在本地执行大语言模型。

  • Stable Diffusion - 以前会玩一下的AI绘图工作站,现在基本不用了。

游戏

  • Retro Arch - 全能游戏模拟器,可以下载很多老游戏的模拟器核心。

  • Wine - Windows兼容层,一般用来玩Windows平台特有的游戏。

  • Nwjs - RPG Maker MV/MZ系列游戏的打包器,其实MV/MZ系列的游戏本质上就是JavaScript程序,所以只需要NWJS的linux版替换掉原来的windows版就能玩了。

  • Steam/Proton - 最常用来玩游戏的平台,兼容windows游戏有时也会用到Steam的Proton。

服务器软件

本条目负责介绍个人的服务器类软件,包括部署在云端和NAS上的服务软件。

文件管理

  • IPFS - 星际文件系统,一个去中心化的网络文件系统,SouthFox的这篇文章有专门介绍IPFS。

  • FileBrowser - 简单的NAS文件管理后端,方便通过web管理NAS。

联邦宇宙

联邦宇宙相关的内容都部署在个人的VPS上。

  • Misskey - 目前正在用的超酷的Fediverse服务端,Fediverse服务端里面的集大成者,但是非常臃肿。

  • Tuwunel - 用Rust写的Matrix服务端,Conduit的分支,非常轻量级,适合小型Matrix服务器。

  • Synapse - Matrix官方的参考服务端实现,之前用的Matrix服务端,非常臃肿。

  • Docker Mailserver - Docker的电子邮箱服务器集成,用于域名邮箱的建设。

专辑管理

  • Navidrome - 部署在NAS上的私人音乐专辑管理系统,可以直接web播放音乐也可以用subsonic客户端播放音乐。

图书管理

  • Calibre Web - 将你的Calibre书库部署在Web端,并提供OPDS服务方便客户端下载书目。

RSS订阅

  • MiniFlux - RSS订阅代理,支持自动爬取网站原文等功能。

路由器

  • OpenWrt - 开放的路由器系统。

硬件信息

台式机

  • 显卡:NVIDIA GeForce RTX 3090

  • CPU:AMD Ryzen 5 2600X

数位板

  • Wacom Intuos S

订阅服务

  • Claude.ai - 编程能力最强的高端大模型。

  • Venice.ai - 注重隐私的大模型提供商,有部署无审查的Dolphin模型venice-uncensored。

  • Linode - 按量计费的月租KVM主机。

  • Proton Mail - 电子邮箱的备用选择。

手机

操作系统

  • LineageOS - 剔除掉谷歌服务的纯净安卓操作系统。

应用商店

  • F-Droid - 自由软件的应用商店。

APP

语言

自然语言

  • 中文 - 我的母语。

  • 英语 - 上学时期英语很差,没考过级,不过编程学着学着不知不觉就熟练了。

  • 日语 - 依然在初学阶段。

人工语言

  • 道本语 - 会一点皮毛。

  • 香格里拉文 - 自创语言,还在创作中。

古代语言

  • 文言文 - 略有了解。

  • 古埃及文 - 以前学过一点点基础。