ForeverYoung's blog » Nokia N900
/atom/Nokia%20N900/?lang=ru
2011-08-12T10:45:00Z
Anton Novosyolov
Linux, программирование и понемногу о разном
blohg
Укорачивание ссылок по нажатию клавиши
/post/link-shortener/?lang=ru
2011-08-12T10:45:00Z
2011-08-12T10:45:00Z
Anton Novosyolov
anton.novosyolov@gmail.com
<!-- date: 1313145900 -->
<!-- tags: Nokia N900 -->
<p>Установите <a class="reference external" href="http://maemo.org/packages/view/keyboard-shortcuts/">keyboard-shortcuts</a>. Так же установите CSSU, чтобы keyboard-shortcuts работали.</p>
<p>Настройте <tt class="docutils literal"><span class="pre">/apps/osso/hildon-desktop/key-actions/dbus_shortcuts_use_fn</span></tt>,
чтобы нажимать <tt class="docutils literal"><span class="pre">Ctrl-Fn-<буква></span></tt> вместо <tt class="docutils literal"><span class="pre">Ctrl-Shift-<буква></span></tt> (как удобней).</p>
<p><em>/home/user/.bin/clck.py</em>:</p>
<pre class="brush: python">
#!/usr/bin/python
import os
import pygtk
pygtk.require('2.0')
import gtk
clipboard = gtk.clipboard_get()
text = clipboard.wait_for_text()
import urllib2
fetcher = urllib2.urlopen('http://clck.ru/--?url=' + text)
text = fetcher.read()
os.system("phone-control --notify 'Ссылка укорочена'")
clipboard.set_text(text)
clipboard.store()
</pre>
<p>Отредактируйте <em>/usr/bin/keyboard-shortcuts</em>:</p>
<pre class="brush: bash">
if key == 'c': # или другая буква
os.system("su user -c 'run-standalone.sh /home/user/.bin/clck.py'")
</pre>
<script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPython.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/current/scripts/shBrushBash.js"></script>
<link type="text/css" rel="stylesheet" href="http://alexgorbatchev.com/pub/sh/current/styles/shCoreDefault.css"/>
<script type="text/javascript">SyntaxHighlighter.defaults.toolbar=false; SyntaxHighlighter.all();</script>
<!-- date: 1313145900 -->
<!-- tags: Nokia N900 -->
<p>Установите <a class="reference external" href="http://maemo.org/packages/view/keyboard-shortcuts/">keyboard-shortcuts</a>. Так же установите CSSU, чтобы keyboard-shortcuts работали.</p>
<p>Настройте <tt class="docutils literal"><span class="pre">/apps/osso/hildon-desktop/key-actions/dbus_shortcuts_use_fn</span></tt>,
чтобы нажимать <tt class="docutils literal"><span class="pre">Ctrl-Fn-<буква></span></tt> вместо <tt class="docutils literal"><span class="pre">Ctrl-Shift-<буква></span></tt> (как удобней).</p>
<p><em>/home/user/.bin/clck.py</em>:</p>
<pre class="brush: python">
#!/usr/bin/python
import os
import pygtk
pygtk.require('2.0')
import gtk
clipboard = gtk.clipboard_get()
text = clipboard.wait_for_text()
import urllib2
fetcher = urllib2.urlopen('http://clck.ru/--?url=' + text)
text = fetcher.read()
os.system("phone-control --notify 'Ссылка укорочена'")
clipboard.set_text(text)
clipboard.store()
</pre>
<p>Отредактируйте <em>/usr/bin/keyboard-shortcuts</em>:</p>
<pre class="brush: bash">
if key == 'c': # или другая буква
os.system("su user -c 'run-standalone.sh /home/user/.bin/clck.py'")
</pre>
<script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPython.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/current/scripts/shBrushBash.js"></script>
<link type="text/css" rel="stylesheet" href="http://alexgorbatchev.com/pub/sh/current/styles/shCoreDefault.css"/>
<script type="text/javascript">SyntaxHighlighter.defaults.toolbar=false; SyntaxHighlighter.all();</script>
Вариант out-call-vibro, с использованием dbus-scripts
/post/out-call-vibro/?lang=ru
2011-08-12T10:25:10Z
2011-08-12T10:25:10Z
Anton Novosyolov
anton.novosyolov@gmail.com
<!-- date: 1313144710 -->
<!-- tags: Nokia N900 -->
<p>После установки enhanced-busybox, <a class="reference external" href="http://maemo.org/packages/view/out-call-vibro/">out-call-vibro</a> перестал работать.
Я переписал его с использованием <a class="reference external" href="http://wiki.maemo.org/DbusScripts">dbus-scripts</a>.</p>
<p><em>/etc/dbus-scripts.d/out-call-vibro.dbus</em>:</p>
<pre class="brush: plain">
/home/user/.bin/out-call-vibro.sh * * org.freedesktop.Telepathy.Channel.Interface.Group MembersChanged *
</pre>
<p><em>/home/user/.bin/out-call-vibro.sh</em>:</p>
<pre class="brush: bash">
#!/bin/sh
if [[ "$5" == "Call answered" ]]; then
if [ `cat /sys/devices/platform/gpio-switch/proximity/state` = "open" ]; then
echo 150 > /sys/class/leds/twl4030:vibrator/brightness
gsleep 0.5
echo 0 > /sys/class/leds/twl4030:vibrator/brightness
fi
fi
</pre>
<script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPlain.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/current/scripts/shBrushBash.js"></script>
<link type="text/css" rel="stylesheet" href="http://alexgorbatchev.com/pub/sh/current/styles/shCoreDefault.css"/>
<script type="text/javascript">SyntaxHighlighter.defaults.toolbar=false; SyntaxHighlighter.all();</script>
<!-- date: 1313144710 -->
<!-- tags: Nokia N900 -->
<p>После установки enhanced-busybox, <a class="reference external" href="http://maemo.org/packages/view/out-call-vibro/">out-call-vibro</a> перестал работать.
Я переписал его с использованием <a class="reference external" href="http://wiki.maemo.org/DbusScripts">dbus-scripts</a>.</p>
<p><em>/etc/dbus-scripts.d/out-call-vibro.dbus</em>:</p>
<pre class="brush: plain">
/home/user/.bin/out-call-vibro.sh * * org.freedesktop.Telepathy.Channel.Interface.Group MembersChanged *
</pre>
<p><em>/home/user/.bin/out-call-vibro.sh</em>:</p>
<pre class="brush: bash">
#!/bin/sh
if [[ "$5" == "Call answered" ]]; then
if [ `cat /sys/devices/platform/gpio-switch/proximity/state` = "open" ]; then
echo 150 > /sys/class/leds/twl4030:vibrator/brightness
gsleep 0.5
echo 0 > /sys/class/leds/twl4030:vibrator/brightness
fi
fi
</pre>
<script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPlain.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/current/scripts/shBrushBash.js"></script>
<link type="text/css" rel="stylesheet" href="http://alexgorbatchev.com/pub/sh/current/styles/shCoreDefault.css"/>
<script type="text/javascript">SyntaxHighlighter.defaults.toolbar=false; SyntaxHighlighter.all();</script>
Работа качельки громкости в заблокированном режиме
/post/volume-unlocked/?lang=ru
2011-07-18T12:30:01Z
2011-07-18T12:30:01Z
Anton Novosyolov
anton.novosyolov@gmail.com
<!-- date: 1310992201 -->
<!-- tags: Nokia N900 -->
<p>Для того чтобы физические кнопки (в частности качелька громкости) не блокировались в заблокированном режиме, нужно поправить параметр DisableKPImmediately в разделе [TKLock] файла <em>/etc/mce/mce.ini</em>, присвоив ему значение 2.</p>
<pre class="brush: plain">
# Policy for keypad interrupts
#
# 2 - leave keypad interrupts on even after blanking
# (used to support pass-through of +/-)
# 1 - disable interrupts immediately
# 0 to wait until display is blanked
DisableKPImmediately=2
</pre>
<script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPlain.js"></script>
<link type="text/css" rel="stylesheet" href="http://alexgorbatchev.com/pub/sh/current/styles/shCoreDefault.css"/>
<script type="text/javascript">SyntaxHighlighter.defaults.toolbar=false; SyntaxHighlighter.all();</script>
<!-- date: 1310992201 -->
<!-- tags: Nokia N900 -->
<p>Для того чтобы физические кнопки (в частности качелька громкости) не блокировались в заблокированном режиме, нужно поправить параметр DisableKPImmediately в разделе [TKLock] файла <em>/etc/mce/mce.ini</em>, присвоив ему значение 2.</p>
<pre class="brush: plain">
# Policy for keypad interrupts
#
# 2 - leave keypad interrupts on even after blanking
# (used to support pass-through of +/-)
# 1 - disable interrupts immediately
# 0 to wait until display is blanked
DisableKPImmediately=2
</pre>
<script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPlain.js"></script>
<link type="text/css" rel="stylesheet" href="http://alexgorbatchev.com/pub/sh/current/styles/shCoreDefault.css"/>
<script type="text/javascript">SyntaxHighlighter.defaults.toolbar=false; SyntaxHighlighter.all();</script>
QR-коды
/post/qr-code-local/?lang=ru
2011-05-31T06:49:59Z
2011-05-31T06:49:59Z
Anton Novosyolov
anton.novosyolov@gmail.com
<!-- tags: gentoo,Nokia N900,QR -->
<!-- date: 1306824599 -->
<p>Продолжение <a class="reference external" href="/post/qr-code/?lang=ru">поста</a>, версия без использования Google Chart API.</p>
<!-- tags: gentoo,Nokia N900,QR -->
<!-- date: 1306824599 -->
<p>Продолжение <a class="reference external" href="/post/qr-code/?lang=ru">поста</a>, версия без использования Google Chart API.</p>
<!-- read_more -->
<p><em>qrcode</em> - для создания QR-кода - компьютерная версия:</p>
<pre class="brush: bash">
#!/bin/bash
qrencode -o /tmp/qr.png
feh /tmp/qr.png
rm /tmp/qr.png
</pre>
<p><em>qrcode</em> - для создания QR-кода - версия для N900:</p>
<pre class="brush: bash">
#!/bin/bash
qrencode -o /tmp/qr.png
phone-control --browse file:///tmp/qr.png
</pre>
<p>Различия минимальны - в вызове просмотрщика изображений.</p>
<p>На компьютере ставим media-gfx/qrencode и feh (либо переделываем под другой просмотрщик), на N900 - qrencode и phone-control (оба из extras-devel).</p>
<p>Использование:</p>
<pre class="brush: plain">
$ qrcode < file
$ qrcode
text
text2
Ctrl-D
</pre>
<p>На N900 сделал виджет <a class="reference external" href="http://wiki.maemo.org/Desktop_Command_Execution_Widget_scripts">DCEW</a> для вызова.</p>
<p>Команда:</p>
<pre class="brush: bash">
sh -c "osso-xterm -e /home/user/.bin/qrcode &" | echo ""
</pre>
<p>Чтение кода - все как было.</p>
<p><strong>UPD</strong>: <em>qrcode-clip</em> - читает из буфера обмена:</p>
<pre class="brush: bash">
#!/bin/bash
clip=`xclip -o -selection clipboard`
if [ "$clip" != "" ]; then
echo "$clip" | qrencode -o /tmp/qr.png
phone-control --browse file:///tmp/qr.png
fi
</pre>
<script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/current/scripts/shBrushBash.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPlain.js"></script>
<link type="text/css" rel="stylesheet" href="http://alexgorbatchev.com/pub/sh/current/styles/shCoreDefault.css"/>
<script type="text/javascript">SyntaxHighlighter.defaults.toolbar=false; SyntaxHighlighter.all();</script>
QR-коды
/post/qr-code/?lang=ru
2011-04-11T11:06:00Z
2011-04-11T11:06:00Z
Anton Novosyolov
anton.novosyolov@gmail.com
<!-- date: 1302519960 -->
<!-- tags: gentoo,Nokia N900,QR -->
<!-- aliases: 301:/2011/04/qr.html/ -->
<p>Написал пару скриптов для передачи мелкой текстовой информации с ноутбука в телефон (Nokia N900) и обратно.</p>
<!-- date: 1302519960 -->
<!-- tags: gentoo,Nokia N900,QR -->
<!-- aliases: 301:/2011/04/qr.html/ -->
<p>Написал пару скриптов для передачи мелкой текстовой информации с ноутбука в телефон (Nokia N900) и обратно.</p>
<!-- read_more -->
<p><em>qrcode</em> - для создания QR-кода (средствами Google Chart API):</p>
<pre class="brush: python">
#!/usr/bin/python
import sys
import webbrowser
import urllib
if len(sys.argv) == 1:
s = sys.stdin.read()
else:
s = sys.argv[1]
webbrowser.open("http://chart.apis.google.com/chart?chs=300x300&cht=qr&chl=%s" % (urllib.quote(s, safe="")))
</pre>
<p>Этот скрипт располагаем на телефоне и на ноутбуке.</p>
<p>Использование:</p>
<pre class="brush: plain">
$ qrcode < file
$ qrcode text
$ qrcode
text
text2
Ctrl-D
</pre>
<p>Чтение кода - на телефоне mBarCode.</p>
<p>На ноутбуке <em>qrread</em>:</p>
<pre class="brush: bash">
#!/bin/bash
trap 'xclip /tmp/qr -selection clipboard' 2
zbarcam --raw -q | tee /tmp/qr
# --nodisplay
</pre>
<p>Нужна программа zbar, для gentoo находится в оверлее bircoph.</p>
<p>Если не нужно окно с изображением с камеры, нужно добавить закомментированный параметр.</p>
<p>Как только распознанный текст появляется в консоли, нужно нажать Ctrl-C, и он попадет в буфер обмена.
Таким способом легко передался например текст qrcode с телефона на ноутбук.</p>
<p>В проекте генерация QR-кода без использования Google (оффлайн). <strong>UPD</strong>: <a class="reference external" href="/post/qr-code-local/?lang=ru">Сделал</a></p>
<script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/current/scripts/shBrushBash.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPlain.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPython.js"></script>
<link type="text/css" rel="stylesheet" href="http://alexgorbatchev.com/pub/sh/current/styles/shCoreDefault.css"/>
<script type="text/javascript">SyntaxHighlighter.defaults.toolbar=false; SyntaxHighlighter.all();</script>