| Subcribe via RSS

低级错误

一月 27th, 2010 | 2 Comments | Posted in 笔记

今天犯了一个很好玩的低级错误.

一直想把主要操作系统转到 Archlinux, 两次尝试都因为与显卡驱动有关的原因失败了. 这一次在 Wish 的怂恿和协助下, 终于成功完成了安装. Arch 的 Wiki 非常的丰富, 基本所有遇到的困难都能够解决. 因为对 KDE 和 Gnome 的庞大感到畏惧, 我选择了 lxde 这个轻巧的桌面环境 (默认 openbox 作为窗口管理器使我对它有了很好的初印象). 现在已经完全可以沉浸在Arch下, 能够这样随心而容易地定制鼠标和键盘设置充分的满足了我的控制欲 XD.. 今晚写下几件遇到的难题和趣事, 可能会对同样在 Thinkpad T400 或者其他机型上安装 Archlinux 的同学有一些帮助.

第一次 startx 没有启动hal,  键盘和鼠标同时不再搭理我.. 于是只好忍痛按下 power 键..

成功 startx 后遇到的第一个麻烦是 touchpad dpi 太低, 这个问题在 archwiki 里查下 touchpad 的设置很快解决了. 连接蓝牙鼠标, 装好 bluez 后也很顺利的成功识别. 接着是耗了我很长时间的怎么样让蓝牙鼠标在系统启动时自动连接, 而不要每次都重新匹配. archwiki 中对我似乎并不适用, 在折腾了非常长的时间后终于在 archlinux fourm 的 这篇 帖子里找到了解决方案, 大概是先建立 trusts 文件, 然后安装 blueman. Archlinux 下小红点的工作非常完美, 比 Windows 下还要出色, 具体表现在 Windows 下小红点的中键只能用来做滚轮, 而不能实现类似在 Firefox 中点击中键关闭 Tab 的功能, 但在 Arch 下完全没有问题, 但是实现小红点的滚轮功能花了我不少时间. 最后是在 ThinkWiki 上找到了解决方法, 看 这里,

印象最深刻的就是开头所说的, 我犯的这个低级错误. 多媒体键中除了键盘灯和调节屏幕亮度的三个键外, 其他键基本都不能正常工作. 但设定键盘快捷键对 Openbox 来说是小 case 啦, 我参照 这篇文章 顺利的搞定了音量调节的三个键, 并受此启发, 开始折腾方向键上控制播放器的多媒体键. 我主要的音乐播放器是 Exaile, 它可以很完美的通过命令行控制. 最初我直接在 openbox 的 rc.xml 文件中写下相应的命令, 但是出现了这样两个问题: 在命令行执行 exaile 的控制命令后, 如果 exaile 没有启动, 那么它会自动启动, 但事实上我们可能并不愿意这样; 另一个不那么刺眼的问题是下方向键其实是有两个功能的, 如果当前播放器正在播放音乐, 或者处于暂停状态, 按下这个键播放器应该暂停或者继续播放, 而如果当前播放器是停止播放音乐, 那么按下这个键应该让播放器开始播放音乐, 但在 openbox 的配置文件中我无法表述这样复杂的意思. 所以我打算写个与之前类似的 python 脚本. (这样做的另一个好处是, exaile 没有一个通知我当前正在播放歌曲的快捷键, 通过脚本我可以利用 notify-osd 显示当前播放的曲目, 而且我感觉 notify-osd 的通知界面比 exaile 的更美观一些)

脚本很快就完成了: 首先判断 exaile 进程是否存在, 如果不存在则直接结束; 否则执行相应的指令, 唯一需要做特判的地方是如果按下的是下方向键, 则先确认播放器的当前状态. 其中判断 exaile 进程是否存在是这样写的:

21 try:
22         subprocess.check_call(['pgrep', 'exaile'])
23 except:
24         sys.exit(0)

不出意外的, 脚本没有按我想象的执行, 无论 exaile 是否启动, 它总是认为 exaile 进程存在. 我在终端下根本得不到 exaile 进程的 pid, 但我写的 python 却能每次都返回一个不同的 pid. 我百思不得其解, 甚至怀疑是不是 python 运行在一个类似虚拟机的环境中, 所以得到的结果和我在终端中得到的不一样..

终于, 在我让脚本完整的输出进程的 pid 和进程名时, 我发现进程名是 “exaile-mmkey.py” (我写的脚本的文件名),  那一刻, 我泪流满面, 原来 grep 部分匹配了进程名.. 给 pgrep 加了个 -x 选项, 再执行, 终于一切正常了!

尽管这样一个低级的错误耗费了我半个多小时 (可能还不止), 但这也应该是 Archlinux 一直以来对我的吸引所在吧.

另外, tilda 是一个非常快速和美观的终端, 推荐给和我一样喜欢用透明背景, 可嵌入桌面的终端的人.  我在又一个 project 上看到了 oldherl 大牛的名字. lowsars 成为了我提交给 AUR 的第一个包.

最后, 那个简单的 python 脚本是我写的第一个 python 程序. 我跟着 mit ocw 的 6.00 课程断断续续的学了十天左右, 其中一半时间讲的还是跟 python 无关的内容, 能写出可以给自己用的东西, 很有成就感.

Tags: , , , ,

LinuxQQ 竟会与 Vim 不兼容

一月 18th, 2009 | 2 Comments | Posted in 笔记

这个问题困扰了我很久. 当用 vim 敲代码敲的正开心时, 按Esc, 再按Esc, 完全没反应, 囧掉.. 无奈的解决之道是关掉终端, 然后再用临时文件恢复代码. 今天终于 google 到罪魁祸手, 竟然是 LinuxQQ.. 谁知道他们又用了怎样恶心的代码..

据说是1月6日发布的新版 LinuxQQ 已经解决了这个问题, 受此问题困扰的同学们去 down 一个重新安装一下好了.

Tags: , ,

vim+gcc+gdb

十月 7th, 2008 | No Comments | Posted in 笔记

从noi回来之后一直在学习vim+gcc+gdb的使用, 毕竟这次noi的教训之一是不要依赖ide. 我觉得自己开始越来越喜欢这样一种环境, 果然就像王垠在那篇<完全在linux下工作>中所写的, 一个专门的工具比一个整合所有功能于一身的工具强大的多.. 当然, 我的这些感受产生于我以前是使用anjuta的, 并且我编程只是在解决oi问题, 而不是在写软件. 废话到此.

下面这张图向我们展示了vi/vim对键盘挖掘的有多深.

vim快捷键

vim键盘图

More »

Tags: ,

FX3不能保存Cookies? Torbutton是元凶!

六月 29th, 2008 | 3 Comments | Posted in 笔记

我从fx3发布rc版开始使用这个新版本的, 不能保存cookies问题自从rc版开始就困扰我. 起初以为是bug, 期盼正式版能修正一下, 没想到正式版问题依旧. 今天在fx的官方论坛上找到有人遇到同样的问题, 说是插件引起的问题. 禁用Torbutton, 果然, 问题解决.
如果卸载Torbutton后问题仍没有解决, 很可能是Torbutton已经修改了你的cookie设置, 在编辑->首选项->隐私中将关于cookie的选项正确设置, 尤其是"保存直到cookie过期".
希望Torbutton的这个bug早点解决, 毕竟Torbutton用起来那么傻瓜.

Tags: , ,

Ubuntu 安装备忘

四月 5th, 2008 | 5 Comments | Posted in 笔记

这些是在刚接触linux时写的, 很多地方没用, 很多地方仅适合ubuntu 7.10, 留着作一个纪念而已.

写一点Ubuntu安装备忘, 主要是人家写的文章的整合下载地址, 一方面给一些对linux比我还囧的人看, 另一方面自己下次重装的时候有用( 比方说, 再过20天8.04就发布了, ubuntu论坛的意见好像都是重装会比升级带来少得多的麻烦 ).

首先声明, 我是一颗菜, 所以说, 我写出来的方法只可以用作参考, 可能很多主意是很**的, 可能很多东西都可以用几行命令搞定, 但是我还在执著的这么做着. 当然, 如果你可以告诉我哪里实在太**了, 我会很感谢你的~
一. 安装:
从光盘引导, 按F2将语言换成简体中文( 你要是喜欢法文也请便, 感觉linux发行版本的语言支持都好全 ), 然后进入Ubuntu的live cd. 如果你刚用过redhat9. 就是在live cd中, 你都会看到ntfs分区已经自动挂载, 鼠标移动也不卡了, 界面看着也很简洁, 不免会骂道: “靠, noi想搞什么, 误导中国学生远离linux?”
桌面上有安装图标, 双击, 安装过程注意一件事就行了, 就是硬盘分区的时候千万闭上眼睛就点下一步, 除非硬盘里的东西都不想要了, 自定义分区, 然后建立新的分区, 并给已有分区选择适当的挂载点.
建议安装的时候把网线拔掉, 等换到一个快一点的源之后再安装中文支持什么的. More »

Tags: , , , ,