博文

眼下最好的 hidpi linux 桌面可能还是 gnome

gnome 从 3 开始就有很多非议。对于 gnome 想走的 ui 风格我并不讨厌,反倒是可以看出其实很用心在设计感(触屏友好)上。对于 gnome 的各种外围开发全面拥抱 javascript,虽然我对 js 并无好感,但是只要能最大化笼络社区(KDE 不也这么干了)开发人员,作为一个伸手党也实在没什么资格抱怨。

不过最近遇到的问题,还真是反应了 gnome 在设计上的一些短板,也终于体会到了大家都在吐槽什么(搜 gnome crash 可见一斑)。像上一篇末提到的卡顿的问题,其实就是 gnome shell 崩了在自行重启。相比之下,xorg 好一些,wayland 惨不忍睹。前因后果,redhat 的主力开发在自己的博文里说的清楚。

于是前段时间考察了其他几个桌面,但是试用下来都不甚理想:

KDE:说实话个人真的接受不了 KDE 的 UI,太缭乱。看样子想要配置出理想效果所需的努力令人望而却步。Budgie:外观最接近 gnome 的一个,功能简单(或者说简陋)但堪用。Deepin:需要装个 kernel module 令人意外,login 的时候会黑屏 hang 接近 1 分钟,而且 ui 在 hidpi 下表现失准,若干字体非常小。 而最要紧的贯穿上述所有 desktop 的死结是输入法。输入法的光标跟随计算有偏差,距离左上角坐标值越大,候选窗口偏的越远,以至于基本没法用,无论是 ibus 还是 fcitx。目测跟 xrdb 的 dpi 设定有关,也可能跟 gdm 有关,但实在是无暇折腾(被 ubuntu 默认 LightDM 的 hidpi 表现吓到了)。
于是转了一圈还是回到 gnome。虽然 gnome shell 写个 js extension 就能 core 掉整个 shell 的设计实在是难以令人满意,但在去掉了花哨的 gnome shell extension(或者说只保留了必要的 extension)之后,gnome shell 确实稳定了许多(当然日志还是没法看)。而且,这真的是目前开箱即用做的最好的,对 hidpi 支持的也最好的 linux 桌面了。

ArchLinux on Dell Precision 5520

自从公司给配备笔记本之后,很长一段时间我都没有更新过自己的笔记本(还是 10 年前那台富士通)。可惜这次公司给配的 Dell 并不耐用,转轴里面的金属件断了(疑似金属疲劳),先是屏幕开合不太顺,继而估计是里面的天线断掉了从而 wifi 信号极弱几乎不可用。而拿给公司 IT 的结果,就是怎么看都像是人为损坏,需要自费维修。
这台已经服役了 39 个月的笔记本再有几个月就可以无条件换新,眼下还修它作甚。但码农不可一日无本,于是入了 Dell Precision 5520 周年版,又过起了自备生产资料的日子,顺势体验了一下 ArchLinux 对当前顶配硬件的支持。
1、4K 分辨率
整个系统对 4K 分辨率的默认支持的出人意料的好。Gnome 几乎不用做什么设置,绝大多数软件显示也没问题,字体渲染直接上了一个档次。看习惯之后再看外接的 24 寸 1080p 显示器会觉得很粗糙。
一个细节是外接显示器竖起来用(我经常是拿来看 pdf),evince、nautilus 之类会因为顶栏内容无法在 1080 宽度完整放下而导致无法在外接显示器上 win+up 自动最大化。
另一个小小的瑕疵是 wps,字体还好,图标太小且没什么地方能调。
另外两个可能需要调整的地方是 grub 控制台字体。grub 需要 pixel font,试过一圈用 ttf-unifont 生成制定大小的 .pf2 最合适。控制台字体用的是 terimus-font(ter-p32n)。
2、双显卡
第一次在 Linux 系统上感受 Intel+Nvidia 双显卡。因为要用 CUDA 所以只能钉住核弹厂官方驱动(不过话说回来 N 卡开源驱动也确实不济),看了不少资料,已经基本不再维护的 bumblebee 项目目前仍然是较优的选择。
bumblebee 默认关闭 N 卡(省电),写个脚本用来动态打开或者关闭 N 卡(CUDA 用),普普通通的游戏用 optirun/primusrun 跑,正儿八经玩游戏,就用 nvidia-xrun 再起一个 N 卡的 X,在 ~/.nvidia-xinitrc 里写一行 openbox-session,在 ~/.config/openbox/autostart 里写一行 /usr/bin/steam-runtime -bigpicture,实现 nvidia-xru…

lyman 的 2017 游戏总结

又是半年没写东西了。趁过年翻了翻流水账,发现 2017 居然几乎没有怎么正经完成什么游戏。人到中年,身不由己,趋势似乎已经不可逆转。

年度完成的游戏很少,只有以下几个:

Tom Clancy's The Division
没有赶热闹,很晚才入坑。于是大家都吐槽的土豆服务器我的感觉倒没那么恶劣。剧情是做完了只是游戏的开始。整个游戏的节奏、枪枪枪的手感很好。因为没凑热闹,四人组队刷任务体验的次数也不多。虽然游戏品质一流,但是剔掉刷刷刷和社交成分之后也很容易厌倦,于是刷了不长的时间就弃了。Quantum Break
说是配合同名美剧一起食用更佳,但是剧我没有追。游戏人物建模还原度很高,整个剧情倒没留下特别深刻的印象,以至于写下这段文字的时候还要翻攻略回忆一下。不过跟很多美剧一样,玩的时候沉浸感还是很不错。Inside
Limbo 同作者出品,黑暗致郁系。游戏不长,但是整个流程里充满了似是而非的隐喻。
以上都是 5 月之前就完成了的。然而从此之后持续忙到吐血,游戏时间非常碎片。于是这些时间都花在了手游和以下这些跳台子游戏上:

Dead Cells
Rogue like 的跳台子游戏,流畅、爽快、有难度,无限循环,有毒。游戏本身进化的也比较快,隔两个月没玩再捡起来发现版本更新之后感觉像是个新游戏。The Vargrant
冲着便宜和卖肉去的。怎么说呢,剧情没做完,各种平衡也比较糟糕,但是对得起价格。Axiom Verge
这个更 hard core 向一些,于是只进行了一点点。王者荣耀
自从人民日报点名批评农药之后,我觉得有必要入坑了解一下以防止自绝于人民。碧蓝航线
国之将亡,遍地舰娘。听说这游戏在 11 区很火,于是入坑。这不就是个宅向的数值游戏么,紧张什么呢,连真实舰名都不让用,文化自信个屁。
2017 未完成的游戏:

Shadow Tactics Baldes of the Shogun
日本战国背景的盟军敢死队。难度较高,很杀时间,于是停在了武士含恨自杀、大家雪地逃脱那关。NieR Automata
二周目进行到 1/3 不到,而看起来是要三周目才能做完整体验评价。要知道,我从来没见过像这样有黑丝白胖次的女仆小姐姐挥舞巨大太刀探讨存在主义的后废土背景的音乐软件。而能做到所有这些,已经够得上艺术品的门槛了。

杭州驾照换证攻略

十年前刚刚拿到驾照的兴奋感还很清晰。如今已经要换证了,却依旧没有摇到车牌。

周五上午参加完小朋友们的毕业典礼,准备下午把换证的事情搞定。当然,事先参考各种网上攻略是必须要做的功课:照片自备;古墩路车管所没有体检服务,要自己去医院体检,查了一下似乎离家近的第七人民医院,省立同德都可以。

先跑到超市的自助拍照机器搞定一寸白底照片。花 30 大洋(支付宝给免了 5 块)虽然贵了点,但是整个过程非常快速舒适。

然后跑到第七人民医院(纯粹因为离家近)准备体检。被告知七院的驾驶员体检不对外(没舍得追问对内是个什么概念,反正人家不给做)。

然后跑到省立同德医院,被告知驾驶员体检只能周一至周五的上午做(最晚大概是十一点半)。

看了看表,已经是下午一点四十。狠了狠心,冲向河坊街 33 号。两点半左右到达河坊街,决策正确,河坊街体检+办证可以一站搞定,但是人山人海宛如假期的火车站。

一楼机器上自助交钱,上二楼体检。像我一样近视但是平时不戴眼镜的,二楼找官方租眼镜,消费 5 块押金 200。

体检排队+检查消耗时间约半小时。然后到 2~10 号窗口排队换证。窗口是通用的,大量排队的人都是驾校报名,考试预约什么的。而且会不停有人尝试插队。插队的套路是比惨,理由不外乎我已经来了第几次了,我从 xx 点就在这里开始排了但是缺个什么材料之类——不要落入跟这类人比惨的圈套,一句话关我屁事即可。

排队花了一个小时,运气还不错:期间挡掉两个尝试插到我前面的妇女;旁边队伍进展缓慢,速度大概是本队的一半;另有比较远的两个队因为插队发生了争执和肢体冲突,保安从人群中拽出去了两个人。

2 张照片+体检单递进去,现有驾照收掉,验证身份证及复印件(外地户口还应该准备暂住证之类),换到 13 号窗口开票,换到 12 号窗口交 10 块,然后在 11 号窗口等着取证(大概 10 分钟证件制作时间,趁这个空挡把眼镜还了)。所幸后面这三个窗口基本不用排队。整个换证流程在手续齐全的情况下一个半小时多一点,主要内容是排队。

提示:

河坊街的体检已经电子化了,不需要提前准备照片。换证窗口所需照片在 2 楼也可以现场解决。但是如果要到其他医院体检的话估计还是要自己提前准备照片。

换证窗口需要 2 张一寸白底证件照,蓝底是不行的(排在我后面的大三同学第一次失败就是因为准备的是蓝底的照片)。

河坊街一站式服务很好很强大,但问题是人…

解决登录卡顿问题一例

ArchLinux,Gnome。有些时候,笔记本从睡眠中醒来,登录 Gnome,会卡好一阵子。经查是因为挂载了网络文件系统的缘故——比如休眠之前通过 gvfs 挂了个 samba,醒来重新登录的时候基本上要等一个超时才能见到桌面。

于是一直都是小心翼翼的在合上笔记本之前把该卸载的都卸载掉。但是这样人肉毕竟不方便。作为一个程序员,如果都不能给自己日常工作增加生产力,实在是羞耻。

于是准备用代码来解决问题。准备工作如下:
suspend 的 hook。翻了翻 wiki,现在什么 acpid、pm-utils 都不用了,hook 可以直接写成 systemd service file 的形式。卸载 fuser 的挂载。linux 的外围存储都是 sshfs 挂上来,在 mount 表里直接可以看到,最容易处理。卸掉 gvfs 的挂载。主要是来自 windows 的外围存储,Gnome 自带的 gvfs 其实还挺好用。但 gvfs 令人讨厌的是挂载行为变化不定,挂载点用 mount -l 是看不到的,之前还在 /run/user/$(id -u)/gvfs 下,而现在的版本则又找不到地方了。搜了一圈下来,看到 gio mount -s 可以直接按类型卸载,还算方便。干掉 vpn 进程。好几次休眠之前开着公司的 vpn,唤醒之后忘了,结果一边是 vpn 在顽强的尝试恢复连接,一边是我一头雾水在看为啥网络不通。 写好 suspend-root.service,实测发现以 root 用户身份执行的 gio mount -s 是有问题的,而且简单的用 su 或者 sudo 换掉身份也不行。gio 依赖 dbus,而 dbus 里面貌似也有 session 的概念,在开发环境即使用 root 都验证过了,放到 suspend hook 里还是会有问题,估计和 session 的生命周期有关,事情越搞越复杂。

好在后续的搜索工作找到了 xss-lock(其实最早 ArchLinux 的 wiki 上就提到过,但是被忽略了),可以越过 systemd 的 hook,让用户进程直接订阅 suspend 事件。于是又搞一个 user space 的 systemd service,用来卸载 gvfs 和 sshfs。

最终方案用到的脚本都在 github 的 toolbox 项目里了,用到的…

lyman 的 2016 游戏总结

坚持很难,放弃则很简单。之前一直心里想的是每月至少一篇,结果从 8 月开始,竟然也半年没写了。人到中年,问题很多。不过这不是这篇的重点,这篇还是来愉快的回忆这一年的游戏成绩。
Witcher 3 这游戏真是无论用什么溢美之词都不过分,299 小时的游戏时间创了个人的单个游戏时间记录(之前是 RE5 的 215 小时)。记几个印象深刻的点:
3 代的世界突然大了好多,使得 1 代 2 代那点破事完全不重要。不仅松鼠党在 3 代完全没有存在感,连 Triss 都明显是女二号的安排。初到诺维格瑞城外,永恒之火在挨家挨户砸门搜捕术士。第一次撞上的时候等级完全不够,读档之后小心翼翼的绕开了准备之后卷土重来,结果后来再也没找到是哪间房。二周目也没找到。二周目的时候特意想在很多关键情节上做跟一周目不同的选择。然而在雪山之巅,终究还是无法忍受 Yennifer 心碎的神情,于是最后葡萄园也还是 Yen 陪在身边。史凯利杰的海图简直丧心病狂,然而花费了大量时间清了之后,发现还是有海量的隐藏支线从来没有遇到。 Rise of the Tomb Raider 跟前作一样出色的作品。有前作铺垫,少了惊艳的感觉。不过古墓 20 周年的还专门追加了几个 DLC,还算厚道。 Invisible 难度挺高的 SLG,剧情也不错。不过玩的有点累,一周目通关之后应该还有很多玩法可解锁,但是完全没有想要再虐自己一次的冲动。 Homeworld Deserts of Kharak 听到那沉稳平静的背景女声时感动的简直快哭了。初中时 R 君送了我一套正版家园,从那个时候起就觉得,对于每个有太空梦的少年,那个女声就是浩瀚星空里最性感的声音。游戏本身中规中矩。 XCOM 2 XCOM 系列的节奏掌握的真好。同样是 SLG,XCOM 2 相比 Invisible 就更引人入胜一些。 Spec Ops: The Line 很老的游戏了,系统还是 Windows 7 的时候就装了,升级了 Windows 10 之后一直无法启动以至于以为可能要错过了。结果只是需要重新安装一下游戏就行了。剧情编排的真好,很有现代启示录的味道。 Middle Earth: Shadow of Mordor 这是个开放世界玩法的游戏,剧情上偏弱。妹子的人设明明还挺抓人的,为啥就不多安排点啥呢。而剧情结束后满世界抓兽人对我来说一点吸引力都没有…

感应灯和万能遥控器

如题,是这阵子折腾的两个提升生活品质的东西。

一、感应灯

前阵子参观同事 L 的新房,万科的精装,看到玄关有这样的设计。人在灯亮,人走灯熄,这种行为放在玄关、过道,还真的是非常恰当。

于是淘宝看了一下,红外感应的方案其实便宜的很,而且硬装已经结束的场合,还有跟灯具直接整合的产品,真的是很方便。于是给储藏间和干区过道各弄了一个。

美中不足的是渐亮渐暗没有搞定。

二、万能遥控器

很久以前就在吐槽遥控器多。虽然我已经不用机顶盒,也还是有电视,功放,天猫盒子,投影仪和树莓派。

偶然看到罗技也有类似的解决方案,而且风评也很不错,于是淘宝上搞了个 Harmony 650。

几点体会:

设备支持真的挺全的。事先到官网查兼容性,电视、功放和投影仪自不必说,连小米盒子和乐视 TV 都支持,还是挺意外的。罗技的软件一如既往的渣。同步数据到遥控器 99% 这个问题还是浪费了我好几个小时(到 99% 卡住不动的时候设备管理器里迅速的禁用再启用一下就好,手要快)。几天后意外收到注册账号激活的邮件,然而激活链接已然失效,根据页面引导重新发送了激活 url,至今没有收到过。设置好了之后真的是很方便!
为了让 Harmony 650 能支持树莓派,给树莓派又淘了个 IR 模块配置参考这篇,一定要把 KEY_POWER 相关的行注释掉,否则树莓派关掉就打不开了。另,lircd.conf 的注释 # 必须在行首,前面不能再有空格。

美中不足的是还剩了个天猫盒子——这个货用的不是红外遥控的方案。虽然也有玩家 DIY 了红外模块上去,但这个还是等我会玩电烙铁了(惨痛的经历)再说吧。