Настройка трекбола Logitech TrackMan Marble Mouse в Ubuntu Linux


В статье описывается настройка трекбола Logitech TrackMan Marble с возможностью прокрутки страниц. Основной ref тут (документация сообщества Ubuntu) и тут.

Добавьте следующий код в

/usr/share/X11/xorg.conf.d/11-evdev-quirks.conf

и перезапусте X Window сервер:
(или в /etc/X11/xorg.conf.d/50-marblemouse.conf, предварительно выполнив

gsettings set org.gnome.settings-daemon.plugins.mouse active false

)

Section "InputClass"
        Identifier  "Marble Mouse"
        MatchProduct "Logitech USB Trackball"
        MatchIsPointer "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
        Option "ButtonMapping" "1 8 3 4 5 6 7 2 9"
        Option "EmulateWheel" "true"
        Option "EmulateWheelButton" "8"
        Option "ZAxisMapping" "4 5"
        Option "XAxisMapping" "6 7"
        Option "Emulate3Buttons" "true"
EndSection

Я обычно предпочитаю ставить ButtonMapping таким, как указано выше, но некоторые предпочитают вот такой:

Option "ButtonMapping" "1 2 3 4 5 6 7 8 9"

С моим ButtonMapping я могу легко закрывать ненужные вкладки в браузере, использовать функцию копирования-вставки, и то, и другое с помощью малой левой клавиши. С альтернативным ButtonMapping теряются “возможности средней кнопки” и малая левая кнопка работает как кнопка “назад” при нажатии.

Обновление: работает также в Ubuntu 13.10, 14.04, Debian Squeezy.

Воспроизведение MIDI в Ubuntu Linux

Установил однажды я виртуальную MIDI клавиатуру (vmpk), протестировал, не работает. Перерыл кучу страниц в интернете, полезной оказалась эта.

Инструкция пригодится для всех, кроме тех,

  • кто использует Linux-поддерживаемые hardware synth звуковые карты
  • кто использует внешние MIDI инструменты

Итак, для того, чтобы заработал MIDI требуется настроить программный синтез. Существует три основных программы, которые способны на такое: TiMidity++, Fluidsynth и ZynAddSubFX.

ZynAddSubFX – наиболее прост для тех ситуаций, когда вы хотите иметь один инструмент на выходе, т.к. он не требует сэмплов или саундфонтов (samples, soundfonts). В тех случаях, когда вы хотите прогрывать MIDI потоки с более чем одним инструментом, такие как General MIDI файлы, FluidSynth или Timidity++ более просты. FluidSynth имеет хороший графический интерфейс, но вам придётся потрудиться при поиске подходящего soundfont для него. TiMidity++ чуть труднее при установке, но samples легко устанавливаются из репозиториев.

Для своих целей я выбрал TiMidity++. Устанавливается он вот так:

sudo apt-get install timidity

Легко подключаются сэмплы (у меня установились сразу с timidity):

sudo apt-get install freepats

Сэмплы из freepats не полные на настоящий момент и полностью не покрывают стандарт General MIDI.

Если вы хотите звук получше, можете установить сэмплы Eawpatches, для этого добавьте следующий репозитарий в свой /etc/apt/sources.list файл:

deb http://www.fbriere.net/debian squeeze opencbm misc

Верифицируйте репозитарий командой:

wget -O- http://www.fbriere.net/public_key.html | sudo apt-key add -

После этого вы можете установить пакет ‘eawpatches’ (31 MB). Если же вы не хотите подключать репозиторий, можете скачать файл отсюда: http://www.fbriere.net/debian/dists/stable/misc/deb/eawpatches_12-1~fbriere.5_all.deb
Eawpatches подключается к Timidity следующим образом. После установки Eawpatches, необходимо найти и заменить следующую строку в файле /etc/timidity/timidity.cfg:

source /etc/timidity/freepats.cfg

Её заменить на такую строку:

source /etc/timidity/eawpatches.cfg

Всё, eawpatches установлены.

После установки timidity и подключения к нему сэмплов, необходимо проверить, работает ли он или нет:

timidity myfile.mid

Если звук играет, то всё ок!

Далее для использования timidity в других приложениях, необходимо запустить TiMidity++ Server. Для этого подключаем модули:

sudo modprobe snd-seq-device
sudo modprobe snd-seq-midi
sudo modprobe snd-seq-oss
sudo modprobe snd-seq-midi-event
sudo modprobe snd-seq

И запускаем сервер:

timidity -iA -B2,8 -Os1l -s 44100

Команда запускает TiMidity++ midi сервер и открывает 2 midi порта. После этой команды сторонние midi программы должны работать! Необходимо зайти в их настройки и выбрать timidity как output.

Объединение нескольких PDF файлов в один в Ubuntu Linux

Иногда удобно бывает объединять несколько файлов PDF в один. Например, можно аккумулировать много PDF счетов, новостных файлов и др. в один сложный.

Подготовка системы:

sudo apt-get install gs pdftk

Теперь, рассмотрим пример объединения pdf файлов. К примеру, у нас есть файлы 1.pdf,2.pdf,3.pdf и мы хотим их объединить. Делается это следующим образом:

gs -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE=combinedpdf.pdf -dBATCH 1.pdf 2.pdf 3.pdf

В команде сверху после “-sOUTPUTFILE=” укажите название файла на выходе на такое, какое посчитаете нужным. Переназовите файлы “1.pdf 2.pdf 3.pdf” на те, которые у вас имеются и которые вы хотите объединить (названия файлов отделяются с помощью пробелов).

После запуска комманды сверху будет создан новый PDF файл под названием combinedpdf.pdf и он будет содержать все файлы, которые были указаны для объединения в порядке указания.

Если вы хотите узнать о других возможностях комманды gs – проверьте его man страницу.

Приглашения, рассадочные карточки в Libreoffice

Потребовалось мне тут как-то оформить рассадочные карточки для свадьбы. Для своей свадьбы имена писались на каждую карточку вручную, для чужой свадьбы каждое имя стало писать лень и я решил это дело оптимизировать. С помощью данного способа можно также легко создать кучу персональных приглашений на мероприятие, напечатать почтовые конверты для многих адресатов и др. Задача решалась в свободном офисном приложении LibreOffice Writer (3.3.3), действия в OpenOffice аналогичные.

  1. Для начала выбрал красивый шрифт! Мне понравился Corinthia Regular TrueType Font.
    Шрифт Corinthia
    Шрифт устанавливал в Ubuntu через консоль следующей командой:

    sudo cp CORINTHI.TTF /usr/share/fonts/truetype/openoffice/
    

    Кнопку “Install Font” при кликании на шрифт сначала не разглядел, но думаю должно заработать и так.

  2. После этого создал новый документ в Writer:
    Новый документ в LibreOffice Writer
  3. Установил нужные параметры страницы – ориентацию, размер бумаги, поля
    Размеры полей
  4. Создал таблицу 3х1
    Создание таблицы
  5. После этого преобразовал список имён из такого вида:
    Иванов Иван Иванович
    Петров Пётр Петрович
    Сидоров Сидор Сидорович

    в удобный вид для дальнейшего использования макросами LibreOffice:

    "Иванов Иван Иванович", "Петров Пётр Петрович", "Сидоров Сидор Сидорович"

    Т.е. записал все имена в строчку через запятую и каждое имя в кавычках.
    Имена записывал в строчку с помощью VIM и следующих простых команд:

    :%s/^/"/g
    :%s/$/"/g
    :%s/\n/,/g
    :%s/"\ /"/g
    :%s/\ "/"/g
    :%s/"\ /"/g
    :%s/,$//g
    
  6. По умолчанию макросы отключены в LibreOffice и являются экспериментальной функцией. Включить макросы можно с помощью нажатия галочки в меню:
    “Tools | Options… | General | Enable experimental”
  7. Далее был написан следующий индусский код, который был записан в новый макрос Writer:
    sub Main
    dim document   as object
    dim dispatcher as object
    document   = ThisComponent.CurrentController.Frame
    dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
    dim col as integer
    dim row as integer
    dim args4(0) as new com.sun.star.beans.PropertyValue
    
    myarray=Array("Иванов Иван Иванович", "Петров Пётр Петрович", "Сидоров Сидор Сидорович")
    row=0
    Do while row<(UBound(MyArray) \ 3)+1
            col=0
            Do While col<3
                    dispatcher.executeDispatch(document, ".uno:JumpToNextCell", "", 0, Array())
                    col=col+1
            Loop
            args4(0).Name = "Text"
            col=0
            Do While col<3
                    args4(0).Value = myarray(row*3+col)
                    dispatcher.executeDispatch(document, ".uno:InsertText", "", 0, args4())
                    dispatcher.executeDispatch(document, ".uno:JumpToNextCell", "", 0, Array())
                    col=col+1
            Loop
            row=row+1
    Loop
    end sub
    
  8. Далее при установке курсора в первую ячейку таблицы и активации макроса Иванов, Петров и Сидоров автоматически помещались в таблицу.
  9. Остаётся только изменить размеры ячеек и выбрать нужный шрифт и его размер
    Размеры ячеек

Вот, что получилось в конечном итоге:
Вот, что получилось в конечном итоге

В моём случае 17 листов имён людей создались за пятнадцать-двадцать кликов мышкой!

Апплет индикатор погоды в Ubuntu 11.04 Unity


Если вы также, как и я соскучились по старому доброму индикатору погоды, установить его в новом Unity интерфейсе можно так:

sudo add-apt-repository ppa:weather-indicator-team/ppa
sudo apt-get update
sudo apt-get install indicator-weather

Мне понравился больше индикатор от weather-indicator-team, но также можно установить индикатор от Лоренцо:

sudo add-apt-repository ppa:lorenzo-carbonell/atareao
sudo apt-get update
sudo apt-get install my-weather-indicator

Firefox 5 доступен в Ubuntu из PPA

На днях вышла на свет очередная версия популярного браузера Firefox, теперь уже пятая версия. Mozilla активно разрабатывает свой браузер и под Linux, т.к. он входит в большинство дистрибутивов предустановленным по умолчанию. Благодаря этому Firefox 5 beta 2 уже доступна для установки под Ubuntu из PPA. Подключить PPA Firefox-next могут пользователи дистрибутивов Ubuntu 11.04 и 11.10.

Firefox 5.0

Для того, чтобы установить Firefox 5 beta 2 in Ubuntu необходимо подключить PPA Firefox-Next, для этого нужно открыть терминал и написать:

sudo add-apt-repository ppa:mozillateam/firefox-next

Затем ужно обновить репозитории следующей командой:

sudo apt-get update

После обновления репозиториев можно приступать к установке Firefox 5:

sudo apt-get install firefox

Если у вас уже был установлен Firefox 4, вы также можете воспользоваться командой обновления дистрибутива. Firefox 5 установится вместо вашего Firefox 4:

sudo apt-get upgrade

После можно пользоваться вашим свежеустановленным Firefox 5 beta 2 на вашей Ubuntu.

Установка rTorrent+ruTorrent на Ubuntu Server 10.10 Maverick Meerkat

Линки на продукты: rTorrent+ruTorrent на Ubuntu Server 10.10 Maverick Meerkat.

Имеем:

$ uname -a
Linux klisanor-srv 2.6.35-28-server #49-Ubuntu SMP Tue Mar 1 14:55:37 UTC 2011 x86_64 GNU/Linux
#prerequisites
sudo aptitude update && sudo aptitude upgrade && sudo aptitude install apache2 php5 libapache2-mod-php5 libapache2-mod-scgi
sudo echo "LoadModule scgi_module /usr/lib/apache2/modules/mod_scgi.so" >> /etc/apache2/apache2.conf
SCGIMount /RPC2 127.0.0.1:5000 -> /etc/apache2/sites-available/default
sudo echo "scgi_port = localhost:5000" >> ~/.rtorrent.rc

Проблемы:

  1. ruTorrent требует для установки свежую xmlrpc-c
  2. Берём её из SVN, компилим libtorrent+rTorrent с новым xmlrpc-c

  3. Проблема библиотеки ncurses. Русские буквы вместо кириллицы в консоли отображаются непонятными символами-кракозябрами.
                                                       *** rTorrent 0.8.6/0.12.6 -  ***
        [View: main]
          Tracker: [Tried all trackers.]
           BBC_M-P~QM-PM-5M-PM-7M-Q~CM-PM- M-P~^M-Q~EM-PM->M-Q~BM-Q~K M-PM-=M-PM-0 M-P~RM-PM-5M-PM-4M-Q~LM-PM-<
                    done      894,7 MB Rate:   0,0 /   0,0 KB Uploaded:  3150,0 MB                 [   R: 3,52 high]
          Tracker: [Tried all trackers.]
           Davidenko_Egypt_xvid.avi
                    done     1264,9 MB Rate:   7,3 /   0,0 KB Uploaded:  5647,2 MB                 [   R: 4,46]  Tracker: [Tried all
        [Throttle off/off KB] [Rate  25,3/591,1 KB] [Port: 6944]                     [U 6/0] [D 36/0] [H 0/32] [S 1/48/768] [F 67/128]
    

    Вместо libncurses5-dev нужно ставить libncursesw5-dev. Правда, по дефолту rtorrent потом не собирается, поскольку заголовочные файлы лежат в нестандартной папке.

Полный guide по установке:

#remove old packages
sudo apt-get remove rtorrent libtorrent11 libxmlrpc-c3 libxmlrpc-c3-dev libxmlrpc-core-c3 libxmlrpc-core-c3-dev

#dev packages
sudo apt-get install checkinstall subversion build-essential make autoconf autotools-dev automake libtool libcurl4-openssl-dev libsigc++-2.0-dev pkg-config libncursesw5-dev

#fresh xmlrpc-c lib install
svn co https://xmlrpc-c.svn.sourceforge.net/svnroot/xmlrpc-c/advanced xmlrpc-c
cd xmlrpc-c
./configure --prefix=/usr
make
sudo checkinstall -D

#libtorrent install
cd ..
# svn co svn://rakshasa.no/libtorrent/trunk
# cd trunk
# cd libtorrent
wget http://libtorrent.rakshasa.no/downloads/libtorrent-0.12.6.tar.gz
tar zxfv libtorrent-0.12.6.tar.gz
cd libtorrent-0.12.6
./autogen.sh
./configure --prefix=/usr
make
sudo checkinstall -D

#rtorrent install
cd ..
wget http://libtorrent.rakshasa.no/downloads/rtorrent-0.8.6.tar.gz
tar zxfv rtorrent-0.8.6.tar.gz
cd rtorrent-0.8.6
./autogen.sh
CPPFLAGS="-I/usr/include/ncursesw/" ./configure --with-xmlrpc-c --prefix=/usr
make
sudo checkinstall -D

#rutorrent web-GUI
cd /var/www/
sudo svn co http://rutorrent.googlecode.com/svn/trunk/rutorrent
sudo chown -R  www-data:www-data /var/www/
sudo chmod -R  777 /var/www/rutorrent/share

#update rutorrent
cd /var/www/rutorrent
svn up

thnx to: isudo, zg

rTorrent autostart

sudo -s
wget http://libtorrent.rakshasa.no/raw-attachment/wiki/RTorrentCommonTasks/rtorrentInit.sh
mv rtorrentInit.sh /etc/init.d/
vim /etc/init.d/rtorrentInit.sh
#change line 34 user="user" to match your setup

sudo chmod +x /etc/init.d/rtorrentInit.sh
cd /etc/init.d/
sudo update-rc.d rtorrentInit.sh defaults

#now you can start it as a service by using
/etc/init.d/rtorrentInit.sh start

rtorrentInit.sh mirror

via rakshasa.no, unixguru.se, lostnihilist

Using Gmail as Postfix relay in Ubuntu

Here’s are consolidated set of instructions for setting up a postfix gmail smarthost on Ubuntu 10.10. In “smarthost” configuration, the local mail transport agent (MTA) routes all mail to another server for delivery. This is useful since frequently you won’t want to try to deliver mail yourself (SPF and/or blacklisting would likely squash your message as spam).

  1. Install Postfix
  2. sudo apt-get install postfix
    
  3. The deb-installer will prompt you to answer a series of questions
    • Type of mail server : Satellite System
    • Mail Name : example.org (the name you want on your outbound mail)
    • SMTP relay host : smtp.gmail.com
    • Postmaster : I left this blank
    • Other destinations : I left this blank
    • Synchronous Queues : your choice, won’t impact the relaying
    • Network blocks to allow relay : default (unless you know what your doing)
    • Mailbox size : your choice, won’t impact relaying
    • Local address : i left this as ‘+’
    • Listen Address : all, your choice
  4. We’re almost done, but need some tweaks in postfix config /etc/postfix/main.cf. Add the following lines to enable TLS and passwords on outbound connections.
  5. smtp_use_tls=yes
    smtp_sasl_auth_enable = yes
    smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
    smtp_sasl_security_options = noanonymous
    smtp_sasl_tls_security_options = noanonymous
    
  6. And create the /etc/postfix/sasl_passwd with one line (replace the user and password with your own)
  7. smtp.gmail.com some.user@gmail.com:PASSWORD
    
  8. Rebuild the hash:
  9. postmap /etc/postfix/sasl_passwd
    
  10. Restart postfix:
  11. /etc/init.d/postfix restart
    
  12. You can optionally lock down your password file
  13. chmod 640 /etc/postfix/sasl_passwd*
    chown postfix.postfix /etc/postfix/sasl_passwd*
    

Thats all there is to it. Here’s my main.cf for reference.

via braiden.org, techienote.com

Last.fm нахаляву в Ubuntu Linux


Warning: Trying to access array offset on value of type bool in /var/www/sandalov.org/blog/wp-content/themes/mantra/includes/theme-loop.php on line 249


Last.fm — интернет-проект музыкальной тематики, основным сервисом которого является сбор информации о музыке, которую слушает пользователь, и её каталогизация в индивидуальных и общих чартах. После того как собрана информация о той музыке, которую прослушали, пользователь получает радио персональных рекомендаций.

Когда-то во времена коммунизма Last.fm было бесплатно для всех. Можно было слушать сколько угодно. Но потом халява кончилась и доступ остался бесплатным только для таких стран, как USA, UK, Germany. Все остальные для прослушивания должны платить по $5 в месяц. Помаявшись с PayPal платежами, мои $3 ушли в никуда. Как заявляет сам PayPal они ушли на проверку моего счёта. Больше я их не видел 🙂 Позже, после того как мой PayPal был привязан, платёж просто не прошёл. После этого я не стал запариваться насчёт денег, а стал пользоваться с помощью Tor.

Tor (The Onion Router) — свободное программное обеспечение для реализации второго поколения так называемой «луковой маршрутизации». Это система, позволяющая устанавливать анонимное сетевое соединение, защищённое от прослушивания. Рассматривается как анонимная сеть, предоставляющая передачу данных в зашифрованном виде.

Tor можно спокойно настроить и под Windows, но речь далее в посте пойдёт исключительно про Linux. Для настройки связки “Ubuntu Lucid”->Tor (с выходным адресом в UK, US, Germany)->Last.fm было предпринято следующее:

В /etc/apt/sources.list добавляется новый репозиторий


Новый репо можно добавить либо с помощью обычного текстового редактора, либо же с помощью GUI: System –> Admin –> Software Sources. В зависимости от версии Ubuntu в файл добавляются 2 строчки

    deb http://deb.torproject.org/torproject.org <DISTRIBUTION> main
    deb-src http://deb.torproject.org/torproject.org <DISTRIBUTION> main
    

На следующем шаге необходимо добавить ключ для репозитория:

gpg --keyserver keys.gnupg.net --recv 886DDD89
gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | sudo apt-key add -
sudo apt-get update
sudo apt-get upgrade

После того, как источник и его ключ добавлены, можно устанавливать Tor:

  • Ubuntu 9.10 (Karmic) и остальные более поздние версии:
sudo apt-get install tor tor-geoipdb
  • Ubuntu 9.04 (Jaunty) и более ранние версии Ubuntu
sudo apt-get install tor

Установка Privoxy

Одного Tor недостаточно, необходима служба, которая использует мощь анонимности Tor и преобразует в локальный проки-сервер.

sudo apt-get install privoxy

Конфигурация Privoxy

Добавить в файл /etc/privoxy/config в любое место строчку:

forward-socks4a / localhost:9050 .

Запуск служб

sudo /etc/init.d/tor start
sudo /etc/init.d/privoxy start

/* Check that the service is running on port 9050 */
netstat -a | grep 9050
/* You should see the following output: */
tcp 0 0 localhost:9050 *:* LISTEN

Установка Vidalia (не обязательный шаг)


Чтобы наглядно контролировать процесс работы Tor ставится GUI-оболочка Vidalia. Шаг для тех, кому не хочется контролировать Tor/Privoxy из консоли.

sudo apt-get install vidalia

Настройка Privoxy для Vidalia

Чтобы использовать Privoxy для Vidalia нужно убрать Tor и Privoxy из автозагрузки:

sudo update-rc.d -f tor remove
sudo update-rc.d -f privoxy remove

Настройка Vidalia

Проверьте, что присутствует путь Tor в строке Vidalia (vidalia->settings):

/usr/sbin/tor

Для запуска Privoxy при старте Vidalia необходимо создать такой скрипт:

exec gksu /etc/init.d/privoxy start

К примеру, вот так:

echo exec gksu /etc/init.d/privoxy start > ~/privoxyStart.sh

Скрипту даются права на выполнение:

chmod +x ~/privoxyStart.sh

И в строке “Start a proxy application when Tor starts” указывается путь до скрипта:

~/privoxyStart.sh

Для того, чтоб на выходе Tor был с компьютера UK, US, Germany необходимо настроить exit nodes.

vim ~/.vidalia/torrc

В конец файла прописываются Exit Nodes:

ExitNodes server1, server2, server3
StrictNodes 1

(Для старой версии StrictExitNodes)

Сервера берутся из списка “Карта сети Tor” в Vidalia либо из других открытых источников. Делается сортировка по стране и по Uptime.

Настройка клиента Last.fm


Настройки->подключение->настройки прокси. В поле прокси указывается:

127.0.0.1

Порт по умолчанию

8118

Успехов! 🙂