Записи в категории ‘Linux’ Подписаться на обновления в категории 'Linux'

Увеличил быстродействие системы (кажется)

На digg.com сегодня проплывала заметка на тему улучшения быстродействия Linux системы (оригинал статьи). Решил попробовать.

Оптимизация состоит из трёх шагов:

1. Изменение параметров работы жёсткого диска с помощью hdparm. Для меня это не актуально, т.к. у меня жёсткий диск SATA и к нему предлагаемые в статье методы неприменимы. Поэтому этот шаг я пропустил.

2. Монтирование файловых систем с опцией noatime. При этом не сохраняются данные о времени последнего доступа к файлам (Access Time). Тут всё просто – добавляем параметр noatime к списку опций в /etc/fstab и перемонтируем файловую систему.

3. Уменьшение времения запуска программ с помощью предварительной линковки (prelink). Про это писал StraNNick, и я тогда включал у себя предварительную линковку по его рецепту, но после этого система была переустановлена, поэтому на текущий момент prelink у меня не использовался. На этот раз я решил не делать prelink для всех приложений, а сделал его только для тех, которые часто приходится запускать, например sudo prelink /usr/bin/thunar и т.д.

В общем советы эти большой оригинальностью и новизной не отличаются, но тем не менее два из трёх для меня подошли. Насколько после этого увеличилось быстродействие сказать не могу, мерить было лениво. Большую надежду возлагаю на монтирование с noatime, т.к. мне часто приходится производить полнотекстовый поиск по большому количеству мелких файлов.

Управление рабочим столом с помощью Wii Remote

Вчера я стал счастливым обладателем игровой видеоприставки Nintendo Wii. Так как при этом я являюсь счастливым обладателем компьютера с Debian GNU/Linux, то мне конечно же захотелось сделать так же, как на этом видео-ролике :)

Вот что для этого необходимо:

  • Wii Remote (сама приставка не нужна!)
  • Debian GNU/Linux 4.0 (другой дистрибутив тоже подойдёт, но инструкции я привожу именно для Debian)
  • Две свечки (это такие штуки из воска, которые создают романтическую атмосферу). Они нужны в качестве источника IR излучения.

Нужно установить некоторые пакеты:

sudo aptitude bluez-utils python-bluez python-xlib
  1. Скачать “драйвер” для Wii Remote отсюда (есть SVN-репозитарий – https://svn.forthewiin.org/wmd/trunk). На самом деле это никакой не драйвер, т.к. с ядром он не взаимодействует. Это просто Python скрипт для обработки сигналов с Wii Remote
  2. “Пропатчить” файл /usr/share/python-support/python-xlib/Xlib/protocol/display.py (из пакета python-xlib). В нём нужно заменить:
    recv = self.socket.recv(4096)

    на

    recv = self.socket.recv(2048)

    Возможно, этот шаг можно пропустить. Я не знаю точно, для чего это нужно :)

  3. Выполнить команды:

    sudo modprobe uinput
    sudo chmod a+rwx /dev/input/uinput

    Без этого кнопки на Wiimote не работали.

  4. Теперь нужно определить адрес вашего Wiimote. Нажимаем одновременно кнопки 1 и 2 на Wiimote, при этом он на 30 секунд переходит в режим discovery. Выполняем команду:

    andrey@cornelius:~$ hcitool scan
    Scanning ...
            00:19:1D:73:30:69       Nintendo RVL-CNT-01
    

    Среди найденных устройств должен появится и Wiimote. В моём случае его адрес 00:19:1D:73:30:69

  5. Прописываем этот адрес в wmd/Config.py (параметр MY_WIIMOTE_ADDR)
  6. В том же файле отключаем ненужные модули:
    'DISABLE_PYLAB': 1,
    'DISABLE_PYGAME': 1,
    'DISABLE_PYOSD': 1,
  7. Зажигаем свечки :) и ставим их перед монитором на расстоянии 20-25 см. друг от друга
  8. Нажимаем одновременно кнопки 1 и 2 и запускаем WMD.py
  9. Если повезёт так же как мне, то будет работать :)
  10. Хвастаемся перед друзьями

Удачи!

Играем в приставочные игры под Linux

Лет десять назад (а может и больше), я с друзьями почти каждый день ходил к одному нашему однокласснику, у которого была игровая приставка Super Nintendo. Мы проводили часы пытаясь освоить многочисленные варианты combo-ударов в лучшем файтинге всех времён (по версии Cornelius Magazine)Killer Instinct.

Оказывается, ощутить “инстинкт убийцы” можно и без помощи игровой консоли. Для этого нужно воспользоваться одной из приведённых ниже команд:

  • sudo ps -eo pid h | xargs kill -kill (не рекомендуется)
  • sudo aptitude install snes9x-x (рекомендуется)

Я воспользовался вторым вариантом и получил в своё распоряжение эмулятор игровой консоли Super Nintendo. Осталось только найти образ нужной игрушки (ROM). Для этого можно погуглить словом “rom”+название_игры. В случае с Killer Instinct нужный образ нашёлся очень быстро. Это оказался файл с расширением .smc размером ~4Mb.

Запускается игра так:

snes9x /path/to/rom

Gamepad

Чтобы полностью погрузится в приставочную атмосферу и я решил воспользовался USB Gamepad’ом фирмы Genius. Чтобы заставить его работать, я установил следущие пакеты:

sudo aptitude install joystick xserver-xorg-input-joystick

Теперь при подключении геймпада должно появиться устройство /dev/input/js0

Тут у меня возникла проблема: работали только кнопки, перемещение не работало. Поэтому я сделал следующее:

jscal /dev/input/js0

Эта программа попросила переместить джойстик в определённые положения по осям X/Y и таким образом откалибровала его (где при этом сохраняются настройки, я не понял). После этого перемещение заработало.

Чтобы играть с джойстиком, запускать игру нужно так:

snes9x -joydev1 /dev/input/js0 /path/to/rom

Второй джойстик можно подцепить через опцию -joydev2


Скриншот Killer Instinct

А вот и скриншот

Темы оформления GTK

На днях решил в очередной раз поменять тему оформления GTK на своём рабочем столе. Для этого отправился на www.gnome-look.org и www.xfce-look.org. Но там не нашёл ничего подходящего и решил попробовать сваять что-нибудь самостоятельно, используя одну из готовых тем. Ну и заодно разобраться более подробно, как вообще работает механизм тем оформления GTK, о чём сейчас вкратце расскажу.

В файле gtkrc (~/.themes/yourtheme/gtk-2.0/gtkrc) определяются стили, которые будут использоваться для отображения того или иного элемента. Описание стиля выглядит так:

style "name-of-style" [= "name-of-parent-style] {
 PROPERTY1 = VAL1
    PROPERTY2 = VAL2
    engine "name-of-engine" {
     ENGINE_PROPERTY1 = VAL3
     ENGINE_PROPERTY2 = VAL4
 }
}

Каждый стиль имеет имя ("name-of-style") и набор свойств (PROPERTY1,PROPERTY2). Свойства включают в себя определения цветов (напр. bg[SELECTED] = "#a3b8cc") и параметры элементов интерфеса (напр. GtkScrollbar::min_slider_length = 30). Также нужно, обратить внимание на свойства xthickness и ythickness, которые, если я правильно понимаю, аналогичны свойству padding в HTML.

Стиль может быть наследовать свойства другого стиля ("name-of-parent-style"). Кроме того, можно задать, какой движок GTK (см. ниже) нужно использован для этого стиля (engine "name-of-engine") и определить параметры этого движка (ENGINE_PROPERTY1, ENGINE_PROPERTY2)

Как правило, в сначала описывается стиль "theme-default", в котором определяются все основные параметры и движок, а оставшиеся стили наследуются от него.

Также необходимо указать к какому элементу какой стиль надо применить:

...
class "GtkWidget"      style "theme-default"
class "GtkButton"      style "theme-button"
class "GtkScale"       style "theme-range"
...

Движок темы (engine) определяет внешнид вид элементов интерфейса (widget), таких как кнопки, скроллбары, тулбары и т.д. Например в Ubuntu по умолчанию используется движок Ubuntulooks, а раньше использовался Clearlooks. Я использую движок под названием Murrine. Для этого движка существует утилита-конфигуратор под названием (угадайте с одного раза) Murrine Configurator. Это программка позволяет менять параметры движка в уже установленных темах (основанных на Murrine).

При создании темы очень полезна будет программка The Widget Factory – она представляет из себя окно, в котором собраны все (или почти все) GTK виджеты и позволяет менять тему офомление только внутри этого окна (то есть не затрагивая остальные программы).

Исчерпывающую информацию по созданию тем GTK можно найти здесь.

Напоследок маленькая плюшка для тех, кто использует Xfce. Добавьте в файл gtkrc следующий текст:

style "xfdesktop-icon-view" {
    XfdesktopIconView::label-alpha = 25

    base[NORMAL] = "#000000"
    base[SELECTED] = "#ffffff"
    base[ACTIVE] = "#ffffff"

    fg[NORMAL] = "#ffffff"
    fg[SELECTED] = "#ffffff"
    fg[ACTIVE] = "#ffffff"
}
widget_class "*XfdesktopIconView*" style "xfdesktop-icon-view"

и вы сможете управлять внешним видом подписей к значкам на рабочем столе.

Считаем деньги

Евгения Власова пишет в своем блоге о программе для ведения бюджета, которая называется KMyMoney.

Где-то год назад у меня была идея посчитать свои деньги, тогда это закончилось ничем. Сейчас я решил попробовать снова, тем более, что перед глазами есть, так скачать, живой пример.

Так как я предпочитаю программы, названия которых начинаются на G, а не на K, я отправился на gnomefiles.org в поисках подходящей софтины. Посмотрев несколько программ, я остановился на Grisbi.

grisbi

Принцип работы с этой программой такой: сначала нужно создать так называемые “счета” (accounts). Это могут быть, например, ваши счета в Швейцарском банке, либо просто ваша наличность. В моем случае я создал три счета: Наличные, Связьбанк (туда капает моя зарплата) и WMZ (мой кошелек WebMoney). По умолчанию созданный счет ведется в Евро, но это легко можно поправить в настройках.

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

Все. Теперь можно начинать записывать свои транзакции. На то, чтобы зафиксировать все свои траты за один день, у меня ушло около 15 минут, но при этом мне приходилось постоянно отвлекаться на создание новой категории и т.п. Так что 5-10 минут в день и все будет учтено и посчитано.

← Обратно к настоящему