总结 - 哆啦比猫's Blog - I'm an ArchLinuxer

2015 夏休总结

编程

项目:

  • makelessPerl5):无需配置即可使用的单文件 C++ 构建系统(build system),用 makeless -h 可以出文档。
  • renay 和 rematePerl5):摸索服务器编程,实现了一个多客户端的 UDP 中继 renay,以及基于 renay + mosh + tmux 实现的终端共享 remate (名字和功能 inspired by tmate)。
  • font-renderC++):探索 OpenGL 文字渲染,距离场字体的生成,实现了 fontconfig 的 C++ 封装文档)。
    • TODO:实现字体管理/缓存
    • TODO:做成完整的字体渲染引擎
  • gnome-extensionsGNOME JavaScript):我制作或维护的 GNOME Shell 扩展(一个扩展一个分支)。现在用的第三方扩展几乎全部换成自己实现的啦:
    • iso-clock:GNOME 本身的时钟太挫了,尤其是在 en_US.UTF-8 环境下,居然拒绝按照 ISO 8601 格式(YYYY-MM-DD)显示日期,必须换掉。
      • 彩色显示周次、日期、时间
      • 周日到周六分别用 ⊗①②③④⑤⊙ 表示(工作日用带圈数字,周末用非数字)
    • netspeed-ng:netspeed 改造的,显示网速的一个插件,目前只改了一个地方:所有文字都纵向居中了(我 OCD 快被这个插件折磨死了)。
    • maximus-ng:去掉最大化窗口的标题栏。比 maximus 代码简化很多,抽象很多。而且干掉了两个 bug:
      • 有时会出现需要鼠标选择窗口的交互的 bug:弹出新窗口的时候,整个画面卡着,就等你用鼠标随便点一下。
      • 创建时就最大化的窗口顶部有很厚的黑边的 bug:原来的标题栏的地方变成了黑色。
    • capslipcapslip@repeatcapslip@shrink:大小写锁定键状态指示,在屏幕左边中间泛起涟漪。解决 ThinkPad 键盘无指示灯的坑。我原来用的插件是在切换大小写时发送一个消息,消息从顶上弹出,挡住各种重要的地方,而且鼠标还能碰到。现在显示在左侧,动态的,透明的,可以看到但是鼠标碰不到,great。感觉挺中二就不上 gif 了。三个分支,三种动画。
    • rotten-tray:左下角 legacy tray 太恶心了,缩起来还要露出个头,轻碰就会弹出,有时还会抽搐,作为 OCD 简直无法忍受。以前的 GNOME Shell 底栏的设计多好,用力推才会显示,平时完全可以忽略它的存在。所以这个插件就是要让左下角彻底隐藏,用力推才显示。
    • top-fence:替代我以前写的 top-struggle,用来阻止鼠标指针从下方穿过 y = 14 这条直线,只有很用力的推才能穿过。之前用的是一种 dirty hack 方法(等待鼠标移动,检测鼠标指针是否 y < 14,过线则用 libxdo 把鼠标拉回来,etc),现在终于找到正确实现的方法了,即 XFIXES 5 Pointer Barriers(X 的一个扩展,GNOME Shell 已大量使用,可以阻止鼠标从某个方向穿过某个横着或竖着的线段,只阻止不放行),GNOME 扩展里面可以用 Mutter 的 MetaBarrier(在看 GNOME Shell 源代码时发现的我会乱说)。虽然 GNOME Shell 提供了 PressureBarrier 实现了用力推就放行,不过感觉手感太渣,所以还是自己实现了一个。
  • vimlight 0.19C++, Lua, VimScript):Vim 里的 C 和 C++ 语义高亮插件,基于 clang 实现。新版本改进的地方见发行注记吧。
  • 我的 VPS 流量统计页面HTML, CSS):学习 responsive design 页面的制作。

继续阅读




© 2010, 2011, 2012, 2013, 2014, 2015-2016 and 2017 Giumo Xavier Clanjor (哆啦比猫/兰威举).
© 2013, 2014, 2015-2016 and 2017 The Dark Colorscheme Designed by Giumo Xavier Clanjor (哆啦比猫/兰威举).
知识共享署名·非商业性使用·相同方式共享 3.0 中国大陆许可协议
| © 2007 LinuxGem | Design by Matthew "Agent Spork" McGee