Apple Magic Mouse 多点触控在 Linux 里的安装与配置

Felix 弄来一只 Apple Magic Mouse 小白, 蓝牙配对上后发现各种scrolling很靠谱, 三键也支持好了, 但是多指动作没有支持…
在各种Google之后, 找到了有人使用 PyMT 来实现 Magic Mouse 多点触控手势的脚本, 由于原脚本(参考资料1)是针对GNOME/compiz的, 而且网上没有靠谱的KDE可用版本, 于是本猫自己Hack了一下…

安装说明:
首先要安装pymt, ArchLinux用户可以直接

yaourt -S pymt

Ubuntu用户可以直接

sudo apt-get install python-pymt

接下来, 配置pymt识别MagicMouse的多点触控:
编辑 ~/.pymt/config
找到 [input] 段, 修改为:

[input]
default = hidinput,/dev/input/event

上面的<n>需要替换成MagicMouse对应的编号, 可以用下面这个本猫写的挫挫的语句察看:

cat /var/log/Xorg.0.log|grep udev|grep -i apple|grep /dev/input/event

然后, 给这个文件(设备?信号?事件? = =不知道怎么称呼了)加上读属性, 以使得pymt可以用当前用户身份读取:

sudo chmod a+r `cat /var/log/Xorg.0.log|grep udev|grep -i apple|grep /dev/input/event|sed -e 's/.*\(\/dev\/input[^\)]*\).*/\1/'`

至此, 可以认为pymt安装好啦!
测试:

python -m pymt.tools.demo

(arch用户自行改为python2 = =)

接下来…可以试试我的脚本啦!

— Changelog:
2011/4/19 – 第二个版本, 增加了三指上下调节系统音量的功能~~
2011/4/19 – 第一个版本, 仅简单实现了双指Swipe Left/Right 切换虚拟桌面的效果.

Continue reading Apple Magic Mouse 多点触控在 Linux 里的安装与配置

ArchLinux 小白好奇看 (2)

纠结了一坨东西之后, 忍不住猫爪痒痒继续记笔记- –

1, 首先记下一些有用的从AUR安装的软件包:

aur/aliedit
aur/arpoison
aur/bin32-wine-suse
aur/chromium-browser-bin
aur/dropbox
aur/ffmpeg-mt-git
aur/googlecl
aur/google-talkplugin
aur/hotot-hg
aur/jdownloader
aur/neroaacenc
aur/nginx-unstable
aur/pacfile
aur/ruijieclient
aur/sdcv
aur/uwsgi
aur/vidalia
aur/virtualbox_bin
aur/virtualbox-ext-oracle
aur/winff
aur/x264-git
aur/xmind

安装Arch之前对Arch的印象都是”难装”, 而事实上, 从AUR安装这些不被官方支持的第三方软件, 比Ubuntu等发行版还要容易的多 XD

Continue reading ArchLinux 小白好奇看 (2)

修改 DHCP 超时时间解决 netcfg 无法连接某些Wifi连接的问题

今天公交车堵在路上, 蛋疼的拿出本本开机, 用爪机的Wi-fi hotspot打开了分享, 但是使用wifi-select的时候却提示连接失败…
失败时候的提示类似如下:

:: WirelessLAN up                                                               [BUSY]
...
DHCP IP lease attempt failed                                               [FAIL]

经各种测试和纠结后, 后来在Archlinux论坛上找到可行解了:
修改此连接的profile文件, 增加一行:

DHCP_TIMEOUT=30

然后…再连接就可以啦!
(因为Google搜索此问题这个解法并不在最前面, 而且前面的几个解都很ugly而且不好使..于是在此记录一下^_^)

参考资料: https://bbs.archlinux.org/viewtopic.php?id=55901

ArchLinux 使用 netcfg 建立 Ad-hoc 热点共享上网

为这个问题Felix搜索了一圈, 几个页面上的方法各有问题, 结合自己以前使用Ubuntu里dnsmasq的经验, 拼凑起来成功实现了, 于是就留下这篇笔记啦~
netcfg的前期配置这里不再赘述, 有需求的盆友请移步ArchWiki 🙂

新建Ad-hoc热点样例:

CONNECTION="wireless"
INTERFACE="wlan0"
SECURITY="wep-old"
IP="static"
ADDR="<本机IP>"
ESSID="<网络名>"
KEY="s:<密码>"
PRE_UP="ifconfig wlan0 down; iwconfig wlan0 mode ad-hoc"
QUIRKS=(prescan predown)

如果网卡不一样请修改=.=

这个配置在我这里可以完全正常工作(虽然不知为何建立的网络会多两个双引号= =|||)

接下来配置dnsmasq: 修改/etc/dnsmasq.conf:

no-resolv
no-poll
server=4.2.2.1
server=2001:470:20::2
dhcp-range=192.168.0.100,192.168.0.200,12h
dhcp-option=3,<本机IP>
dhcp-option=6,<本机IP>

注意本机IP要和上面的IP段在一个网段哟^_^
最后…至于通用的iptables和sysctl.conf…我就不说啦..哈哈~~~

Continue reading ArchLinux 使用 netcfg 建立 Ad-hoc 热点共享上网

ArchLinux 小白好奇看 (1)

Hello Felix~
于是…在上次愤怒的卸载掉arch几周之后, 我又忍不住伸出猫爪了~~
这次很乖的Follow着wiki安装, 可是某几个问题依旧没有在wiki上得到(能看懂的)答案, 于是在各种折腾之后…算是解决了吧!
在此记录下解决的过程, 以免自己以后忘掉~!

1, KDE英文locale启用ibus输入中文
首先是需求: 我选择的桌面环境是KDE, 而我要让所有的QT和GTK应用程序都能正确调用ibus输入法!
(题外话: 我把dbus @kdm都加到DAEMONS里才可以正常用KDE4的, 这个wiki里貌似没说耶…)
打开 ~/.bashrc, 在前面加上下面几句:

export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus

然后重启X就好啦~

注意: 如果在GTK程序里仍然不行(貌似不是必然的…吧?), 还需要编辑 /etc/gtk-2.0/gtk.immodules, 找到

"/usr/lib/gtk-2.0/2.10.0/immodules/im-xim.so" 
"xim" "X Input Method" "gtk20" "/usr/share/locale" "ko:ja:th:zh" 

替换为

"/usr/lib/gtk-2.0/2.10.0/immodules/im-xim.so" 
"xim" "X Input Method" "gtk20" "/usr/share/locale" "en:ko:ja:th:zh" 

(也就是让en的locale也能调用啦~!)

Continue reading ArchLinux 小白好奇看 (1)

Ubuntu 命令行调节屏幕亮度

今天本猫的本本突然开机后最大亮度只能调到30%, 各种漆黑一片纠结无比, 感觉有可能是intel驱动的bug(未确定)…
然后…很笨笨的一度以为是高压条灯管之类的出问题了, 直到某次重启发觉引导界面很亮- –
各种Google之后找到一篇blog及其评论里比较详细的介绍了两种命令行调节屏幕亮度的方法 原理不一样.其中的第一种解决了我屏幕亮度的问题, 第二种让我写出了一个很蛋疼的程序..恩..下面分别介绍.

1, 用setpci命令对显卡设备操作来硬调节亮度:

sudo setpci -s 00:02.0 F4.B=xx

其中的00:02.0来自于

lspci

命令输出结果中显卡对应的序号, 比如我的:

00:02.0 VGA compatible controller: Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller (rev 07)

而xx对于不同显卡有不一样的取值规律, 在我这里是00最暗, ff最亮(16进制), 而原文作者和我正相反, 读者可以自己试试~~ 🙂

2, 用xgamma来软调节亮度:

xgamma -gamma x

这里x的取值在0.1到10之间, 0.1最暗, 10最亮.

Continue reading Ubuntu 命令行调节屏幕亮度

在 Ubuntu 里用 DVD-RAM 光硬盘

Felix 弄来了一摞光硬碟(DVD-RAM), 打开 Wikipedia 看到了那个夸张的10W次重写和30年不损坏, 感到各种爽, 于是插入光驱随便存了一堆东西进去…
于是, 问题来了: Nautilus 把这张 DVD-RAM 当作普通空光碟了, gvfs 仅挂载了一个空刻录目录(就像WinXP自带的刻录功能一样), 而我把一坨东西拖进去点刻录, 会调用 brasero, 然后提示: 剩余空间不足…
WTF? 我的 DVD-RAM 是双面的, 每个单面也有 4.7G, 怎么可能装不下 3.3G 的不大的(小)电影呢?
于是跑去问谷哥, 悲剧的没有遇到和我遇到同样问题的人(貌似 DVD-RAM 实在太小众了?). 但是大家都纷纷指出(见这里)要用udf这个文件系统..于是我打开 Disk Utility, 点Format, 但是在列表中并没有找到udf这个文件系统…
于是…上命令行吧!

sudo apt-get install udftools

然后看看 Disk Utility 里这光盘的设备在哪里(我的在/dev/sr1), 然后手动建文件系统:

sudo mkudffs --utf8 --media-type=dvdram /dev/sr1

然后你会看到类似这样的输出:

start=0, blocks=16, type=RESERVED 
start=16, blocks=3, type=VRS 
start=19, blocks=237, type=USPACE 
start=256, blocks=1, type=ANCHOR 
start=257, blocks=16, type=PVDS 
start=273, blocks=1, type=LVID 
start=274, blocks=2236173, type=PSPACE 
start=2236447, blocks=1, type=ANCHOR 
start=2236448, blocks=239, type=USPACE 
start=2236687, blocks=16, type=RVDS 
start=2236703, blocks=1, type=ANCHOR 

然后等光驱没动静之后手动弹出一下光盘再插入, Disk Utility 里就会惊喜的看到插入的 DVD-RAM 被识别出来了! 卷标 LinuxUDF 文件系统: udf. 然后用 Nautilus 挂载上来, 就可以和普通可移动磁盘一样操作了:)
PS: 值得一提的是写入速度确实够慢(3M/s), 不过仅仅用来 Data Backup 还是很不错的.

Ubuntu uwsgi + nginx / bottle 的配置方法

首先赞PT大牛帮了很多忙, 本文大部分原型来源于 http://apt-blog.net/moinmoin-on-nginx-via-fastcgi-and-uwgi

UPDATE: 更新到 nginx 1.0 / uwsgi 0.9.6.8 的配置 – 2011/4/15
然而由于现在那几个玩意版本更新挺厉害, 有许多配置都不一样了, 再加上本猫是要让它运行bottle, 所以决定重新整理一下:)

下面这段关于 uwsgi 的介绍 来自PT牛的那篇文章:

uwsgi充当了python解析器的角色,使用wsgi的接口和Python程序交互,这个过程中做了优化,和上层nginx之间则设计了更加轻量的协议。nginx0.8.40以后官方默认带了uwsgi的协议模块,所以使用很方便。

恩, 由上面这段话 我们可以淡定的看出, 官方源里那个残念的0.7.x的nginx肯定是满足不了要求的啦!

Continue reading Ubuntu uwsgi + nginx / bottle 的配置方法

把完美的notify-osd找回来

写在前面: 本文希望通过一个具体的修改编译安装Ubuntu系统软件包的过程 帮助在编译安装时遇到类似问题的盆友解决问题.

恩, 首先呢, 这个问题仅仅针对启用了 ppa:xorg-edgers/ppa 的 alpha tester 盆友…
这个悲剧已经有两个多月(以上)的历史拉(因为两个多月前Felix才忍不住去report了), 我report的错误参见: https://bugs.launchpad.net/ubuntu/+source/pixman/+bug/623272
不过某位大大(Peter Clifton)给出了解决方案, 这里简单解释一下…

首先获得当前版本的notify-osd的源代码:

sudo apt-get source notify-osd

完成后进入目录, 把下面的patch存成文件 然后用patch命令应用上去:

=== modified file 'src/tile.c'
--- src/tile.c	2009-07-31 11:07:29 +0000
+++ src/tile.c	2010-12-06 00:24:55 +0000
@@ -180,7 +180,7 @@
 
 	// top right
 	cairo_matrix_init_scale (&matrix, -1.0f, 1.0f);
-	cairo_matrix_translate (&matrix, -width, 0.0f);
+	cairo_matrix_translate (&matrix, -1.0f * width, 0.0f);
 	cairo_pattern_set_matrix (pattern, &matrix);
 	cairo_rectangle (cr,
 			 width - pad_width,
@@ -193,7 +193,7 @@
 
 	// bottom right
 	cairo_matrix_init_scale (&matrix, -1.0f, -1.0f);
-	cairo_matrix_translate (&matrix, -width, -height);
+	cairo_matrix_translate (&matrix, -1.0f * width, -1.0f * height);
 	cairo_pattern_set_matrix (pattern, &matrix);
 	cairo_rectangle (cr,
 			 pad_width,
@@ -206,7 +206,7 @@
 
 	// bottom left
 	cairo_matrix_init_scale (&matrix, 1.0f, -1.0f);
-	cairo_matrix_translate (&matrix, 0.0f, -height);
+	cairo_matrix_translate (&matrix, 0.0f, -1.0f * height);
 	cairo_pattern_set_matrix (pattern, &matrix);
 	cairo_rectangle (cr,
 			 x,

然后

patch -p1 -i xxx.patch
Continue reading 把完美的notify-osd找回来

找回 Ubuntu Natty 里 Compiz 0.9.2.1 版本丢失的附加特效包

Compiz 更新到 0.9 虽然已经过去挺长时间了, 但是 Ubuntu 源似乎一直没有打算把 plugins-extra 也跟上更新到0.9.2.1版本. 搜索了一阵, 在 LinuxQuestion 找到了一个可行的编译方法以配合系统源里的compiz.
步骤:
1, 到 http://releases.compiz-fusion.org/0.9.2.1/ 下载合适版本的plugins-extra.
传送门: http://releases.compiz-fusion.org/0.9.2.1/compiz-plugins-extra-0.9.2.1.tar.gz

2, 解压之:

tar xzvf compiz-plugins-extra-0.9.2.1.tar.gz
cd plugins-extra

3, 执行下面的命令:

mkdir build && cd build
cmake ..

4, 编辑 CMakeCache.txt

gedit CMakeCache.txt

5, 查找下面的内容:

CMAKE_INSTALL_PREFIX:PATH=/usr/local

替换为

CMAKE_INSTALL_PREFIX:PATH=/usr
Continue reading 找回 Ubuntu Natty 里 Compiz 0.9.2.1 版本丢失的附加特效包
QR Code Business Card