воскресенье, 18 ноября 2012 г.

1920x1080 #3

Итак, Java/Swing приложения настроены на использование GTK+ L&F темы, а опции антиалиасинга включены - все равно остаются две проблемы.

Проблема #1: меню и контролы рисуются правильным шрифтом, но с full-хинтингом. В то, что Java под Linux использует неотключаемый full-хинтинг можно удостовериться включив временно такой же хинтинг во всей системе (я все таки предпочитаю slight) - приложения на Java/Swing и родные приложения станут похожи. Как чинить это не совсем понятно. Некоторые предлагают патчить OpenJDK

Проблема #2: В элементах, которые отрисовывает само Java/Swing приложение (например все текстовые редакторы) шрифты отрисовываются в неправильных размерах. Например, мне приходится выставлять в IDEA в качестве моноширийного шрифта шрифт размером 16pt, тогда как в нативных приложениях с этой ролью справляется шрифт размером 10pt. Суть проблемы в том, что под Linux рендерингом занимается сама Java, вычисляя размер в пикселах относительно фиксированного разрешения в 72 DPI. Остается завидовать владельцам маков, где такая проблема решена. Само несоответствие размеров - полбеды, беда в том, что при этом хинтинг работает неправильно и рисунок шрифта кардинально отличается от того, что должно быть. При этом full-хинтинг делает буквы тонкими и ажурными, что терпимо в случае меню и контролов, но вызывает раздражение в моноширийном шрифте текстового редактора.

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

Я уже приготовился смириться с этим и выставил Lucida Typewriter 16 pt, как наиболее удобоваримый шрифт в моей ситуации, но мне на глаза попалась утилита ttfautohint, которая удаляет встроенный в шрифт хинтинг, заменяя его своим. Попробовал обработать пару шрифтов и вот оно! - желаемая мясистость моноширийного достигнута, причем без каких-либо заметных артефактов.

вторник, 13 ноября 2012 г.

1920x1080 #2

Вдогонку к посту про высокое разрешение

Следующие волшебные опции полностью убирают мусор из хинтинга в Java/Swing приложениях в случаях когда они либо не используют GTK+ тему; либо используют, но у них еще есть текстовый редактор, который отрисовывается не через GTK-библиотеки.

-Dswing.aatext=true
-Dawt.useSystemAAFontSettings=lcd

Приложения, конечно, все равно не выглядят такими же как родные, но при этом выглядят идеально

воскресенье, 11 ноября 2012 г.

1920x1080

Не было печали - на работе подогнали новый ноут. Sony Vaio SVS1511, зверь-машина: 4 ядра, i7-3612QM, RAM 8GB (up to 12GB), SSD 220GB, USB 3.0, матовый 15'' 1920x1080. До этого почти три года сидел на Asus 15'' 1366x768 и десктопах. Соответственно после перехода на новый ноут экранный DPI увеличился почти в полтора раза - спасибо хоть не ретина с ее двухкратным удвоением. Но все равно на экране всё стало очень мелким и работать в таком режиме стало тяжело.

В Unity/Gnome3, как известно, значение DPI больше нельзя выставить вручную так, как это можно было сделать в старом добром Gnome 2. В данный момент там можно выставить только "коэффициент увеличения шрифта" и то, только после дополнительно установки gnome-tweak-tools. Это стало последней каплей, которая окончательно переполнила мое терпение - Unity, давай, досвидания! Поставил XFCE - тот же Gnome 2, только лучше. Установил в настройках разрешающую способность в 120 DPI, в качестве основного выбрал шрифт Ubuntu 10 - все стало отлично. Почти.

Оболочка и родные GTK-, QT-приложения работают замечательно. В редких случаях (Sublime 2) приходится просить увеличить шрифт в редакторе, но практически всё прекрасно отображается и так. Приложения Java/SWT (Eclipse, Xmind) работают также отлично.

Консольный шрифт, там где он нужен (xfce4-terminal, gnome-terminal, guake) приходится доустанавливать вручную (DejaVu Sans Mono 10), иначе он какой-то не такой.

Приложения Java Swing похоже жестко завязаны на фиксированный DPI и игнорируют значение DPI установленное в системе. Установка L&F стиля в значение "GTK+" помогает привести текст в меню, окнах и сообщениях в надлежащий вид. Но даже при установке этого стиля приходится вручную увеличивать размер моноширийного шрифта до 16-18 пунктов для всяких редакторов и отображений результатов. Установить тему GTK+ можно либо покопавшись в настройках приложения (далеко не все это позволяют), либо с помощью опции "-Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel" или "-Dswing.systemlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel" в строке запуска. Некоторые приложение не дают настроить L&F в настройках, но при этом еще и игнорируют опцию в командной строке - устанавливая L&F жестко в коде. В таком случае последней надеждой является возможность настройки шрифтов индивидуально (на практике это позволяют многие приложения).

Для Swing-темы JGoodies (Aquafold Datastudion, Soap UI) есть специальные переключатели позволяющие устанавливать необходимый шрифт через системные опции.

JAVA_OPTS="${JAVA_OPTS} -DPlastic.controlFont=\"Ubuntu-plain-18\""
JAVA_OPTS="${JAVA_OPTS} -DPlastic.menuFont=\"Ubuntu-plain-18\""

Firefox и Thunderbird. Меню, окна, сообщения - все хорошо. Контент - плохо, очень мелко. Во многих местах размер шрифтов задается в px - и потом так же честно в мелких пикселах и отображается. Одним из решений является увеличение значения настроек font.minimum-size.* до значения 15 и выше. Это ограничивает размер шрифтов снизу, однако, к сожалению, зачастую приводит к расползанию верстки на сайтах, поскольку шрифты увеличиваются, а вот контейнеры в которых содержится текст - нет. Другим вариантом, который и оказался самым выигрышным, является увеличение значения настройки "layout.css.devPixelsPerPx" до 1.3, что приводит к плавному увеличению всего контента. При этом некоторая пиксел-оптимизированная графика выглядит размыто, но она, к счастью, уже является редкостью и анахронизмом.

Единственным неприятным моментом является то, что затейливые изогнутые табы в Thunderbird при этом визуально расползаются. Я уже оформил баг, а временным решением является корректировка XUL-верстки файлом ${THUNDERBIRD_PROFILE}/chrome/userChrome.css

@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");

.tab-background {
  background: transparent!important;
  margin: 0px !important;
}

.tab-background[selected=true] {
  background: -moz-Dialog!important;
} 

.tabmail-tab:not([selected]):not(:hover) +
.tabmail-tab:not([selected]):not(:hover)::before {
  background: transparent!important;
}

В браузере Chromium все еще хуже - там даже интерфейс рендерится без учета системного DPI. Я особо Chromium не пользуюсь, поэтому пока ничего особого не делал - только установил увеличение по-умолчанию в 125% в настройках.

Еще один найденный источник проблем - приложения Wine. Я пользуюсь парочкой виндовых утилит, поэтому пришлось разобраться. Микроскопичность устраняется с помощью настроек в winecfg. Во-первых, на вкладке "Graphic" есть ползунок устанавливающий DPI. Во-вторых, на вкладке "Desktop Integration" можно вручную выставить все шрифты (я поставил везде Ubuntu 10). После этих двух мероприятий приложения Wine выглядят почти также, как и родные.

И последнее - подключение к виртуальной Windows-машине через rdesktop. В Windows уже давно можно изменять общее увеличение/уменьшение размера шрифтов, но оказалось, что в RDP-сеансе изменение этого масштаба игнорируется - он остается таким же мелким. Проблема уже решена оперативным патчем от Микрософт.

среда, 5 сентября 2012 г.

Быстрая раздача файлов

Для того чтобы быстро отдать файл/директорию на другую машину или мобильное устройство через HTTP можно использовать два способа (кроме использования DropBox).

  • Питоновский скриптик woof (есть в репозитории)
  • Питоновскую же команду python -m SimpleHTTPServer
  • Команда (echo -e "HTTP/1.1 200\nContent-Disposition: attachment; filename=my.file\nContent-Type: application/octet-stream\nConnection: close\n";cat my.real.file.here) | nc -l 8888

пятница, 29 июня 2012 г.

Ubuntu 12.04: Network Manager

Совершенно внезапно оказалось, что в новой десктопной версии Ubuntu 12.04 используется новая схема резолвинга сетевых имен. Сервис Network Manager больше не пишет настоящие адреса DNS-серверов в файл /etc/resolv.conf. Вместо этого туда прописывается nameserver 127.0.0.1, а на порту 127.0.0.1:53 гордо восседает dnsmasq.

Пока не совсем понятно как новая схема работы повлияет на функциональность внутренних виртуалок, но в любом случае отключить ее не составляет труда.

Тут описана причина и подробности: http://www.stgraber.org/2012/02/24/dns-in-ubuntu-12-04/

This was done to better support split DNS for VPN users and to better handle DNS failures and fallbacks. This dnsmasq server isn’t a caching server for security reason to avoid risks related to local cache poisoning and users eavesdropping on other’s DNS queries on a multi-user system.

воскресенье, 24 июня 2012 г.

Brasero

Уже вторую подряд версию дистрибутива Ubuntu на моем лэптопе Brasero не записывает диски - также как и встроенный в Nautilus записыватель.

Судя по всему баг скрыт где-то в недрах libburn и присутствует не у меня одного. Проблема пока что решается отказом от записи-на-лету (on-the-fly). В таком режиме Brasero тратит дополнительное время (и дисковое пространство) на подготовку ISO-образа - после чего запись происходит без проблем. Так же лучше на всякий случай отключить в Brasero все включенные по умолчанию плагины - там все равно ничего полезного.

четверг, 21 июня 2012 г.

Skype 4.0.0.7

Как уже всем известно - вышел новый Skype четвертой версии.

Самый беспроблемный способ начать с ним работу прямо сейчас - скачать статический дистрибутив и распаковать его в /opt (под рутом конечно). Старый Skype из штатного репозитория удалять не нужно.

Один баг я уже запостил.

вторник, 5 июня 2012 г.

GIMP 2.8

Вышел новый GIMP 2.8. Сделали наконец-то режим одного окна, а то эти плавающие тулбары сильно раздражали, хотя и были концептуально правильными (конечно только с точки зрения разработчиков).

Версия 2.8 будет стандартной в Ubuntu 12.10, а пока что ее можно легко установить из PPA-репозитория.

Решение бага с отсутствием иконки GIMP в лаунчере Unity уже на подходе.

среда, 23 мая 2012 г.

Ubuntu 12.04: git, merge, mergetool, meld

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

Отмечу, что я уже давно традиционно разрешаю конфликты при слиянии и рибэйзе с помощью связки git mergetool и meld.

Разрешение конфликтов в Git

Краткий экскурс в процесс. Когда git в процессе слияния обнаруживает конфликты в файлах он прямо в этих же файлах устанавливает маркеры конфликтов в виде секций с разделителями "<<<<<<<" и ">>>>>>>". Нужно вручную убрать эти разделители и выбрать нужный код, после чего добавить файл в индекс git и сделать коммит. Конфликт считается разрешенным

Чтобы автоматизировать и облегчить процесс при большом количестве файлов, а также визуализировать различие в изменениях существует утилита git mergetool. Для каждого из конфликтных файлов она создает еще четыре вспомогательных служебных файла. На примере файла test.txt такими файлами будут:

  • test.txt.BACKUP.4071.txt - копия текущего файла test.txt (с маркерами конфликтов внутри)
  • test.txt.BASE.4071.txt - файл в ревизии, которая являющется базовой для обоих конфликтных версий
  • test.txt.LOCAL.4071.txt - "наша" версия файла
  • test.txt.REMOTE.4071.txt - "чужая" версия файла

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

Я, как уже отметил ранее, использую в качестве такой команды утилиту meld.

Кто виноват?

Так вот - есть проблема. После обновления до 12.04 обновилось множество пакетов, в том числе и git и meld. Если раньше mergetool вызывал meld в режиме 2-way-merge, то сейчас meld вызываетcя в режиме 3-way-merge.

Ubuntu 11.10, Git 1:1.7.5.4-1, Meld 1.5.2-1ubuntu2

До обновления meld вызывался в режиме 2-way-merge. Это очень простой режим в котором все конфликты помечаются самим движком git, а meld используется только как удобный визуальный редактор. В трех панелях meld показываются три файла: "наш", конфликтный файл с маркерами конфликтов, "чужой" файл. Как я уже отметил, режим очень прост и в своей сути мало отличается от прямого редактирования конфликтного файла в любом текстовом редакторе.

Ubuntu 12.04, Git 1:1.7.9.5-1, Meld 1.5.3-1ubuntu1

После обновления Ubuntu новая версия meld вызывается (внезапно!) в режиме 3-way-merge. В этом режиме mergetool передает в meld три файла: "наш" файл, базовую для для обоих конфликтных версий ревизию файла, "чужой" файл. Сам конфликтный файл, в котором git сделал соответствующие метки конфликтов в утилиту не передается. Таким образом все сделанные в git маркеры конфликтов игнорируются, а весь процесс определения и разрешения конфликтов отдается на откуп самому meld.

Вот такой вот сюрприз. Есть люди, которым такое новое поведение видимо нравится. И действительно - в простейших случаях конфликты разрешать очень удобно: видно начальную версию файла до изменений, а также видно два последующих изменения, которые и привели к конфликту. В предыдущем же варианте вызова были видны только два изменения, оформленные в виде конфликтной секции - а вот что было до этих изменений (базовую версию) meld не показывал.

К сожалению, на практике новый режим работы meld к использованию не пригоден. Скорее всего дело в том, что git априори обладает более полной информацией о всех сделанных изменениях и, используя ее, git помечает конфликты точно и аккуратно, тогда же как meld вынужден работать только с тремя слепками файлов, а вся история ему недоступна.

Что делать?

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

git config --global mergetool.meld2way.cmd 'meld "$LOCAL" "$MERGED" "$REMOTE"'
git config --global mergetool.meld3way.cmd 'meld --output "$MERGED" "$LOCAL" "$BASE" "$REMOTE"'

После этого можно вызывать команды "git mergetool -t meld2way" и "git mergetool -t meld3way". Также можно указать установку старого поведения в качестве варианта по умолчанию.

git config --global merge.tool meld2way

После этого git mergetool/meld ведут себя также покладисто как и раньше.

вторник, 8 мая 2012 г.

Ubuntu 12.04 - новый софт

С новым дистрибутивом пришел и новый софт

  • В штатном репозитории появился MySQL Workbench. Старые инструменты работы с MySQL (Query, Admin) убраны
  • VLC 2.0.1 имеет проблему при работе с большим буфером. Я ставлю буфер на 5-10 секунд для предотвращения лагов на динамичных сценах с большим битрейтом при Wi-Fi подключении. Поставил новый VLC 2.1 - вроде таких проблем нет.
  • Новый Conky 1.8.1-6 теперь некорректно обрабатывает команды ${execi} - выводит "(null)" если период обновления больше чем uptime системы. Откомпилированной новой версии 1.9 в PPA не нашел, самому пакетировать лень. Пока сделал хак в конфиге и вручную заапдейтил до 1.9 (но можно и задаунгрейдить до 1.8.1-2).
  • Кто-то срет при загрузке системы в домашнюю директорию файлами .goutputstream
  • Уровень подсветки у меня так же не сохраняется (как и в 11.10) при перезагрузке. Более того теперь иногда не помогает даже "cat 5 > /sys/class/backlight/acpi_video0/brightness" в rc.local - видимо при загрузке иксов кто-то некорректно переустанавливает уровень. Поставил из репы утилитку xbacklight и прописал ее в автозагрузку Unity благо прав суперпользователя она не требует в отличие от прямой записи в "/sys/*".

Текущий конфиг Conky

# Conky configuration file (~/.conkyrc)
# http://ubuntudrom.blogspot.com/search/label/conky

own_window yes
own_window_type override
own_window_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
own_window_colour brown

alignment top_right
minimum_size 240 700
maximum_width 240
gap_x 20
gap_y 40

double_buffer yes
use_spacer right
use_xft yes

update_interval 2.0
update_interval_on_battery 5.0
cpu_avg_samples 2

draw_shades no
draw_outline no
draw_graph_borders yes
draw_borders no
stippled_borders 0
border_width 0
border_inner_margin 10
border_outer_margin 0

default_color grey
default_bar_size 10 60

xftfont ubuntu:size=8
xftalpha 1
text_buffer_size 512

imlib_cache_size 4194304
imlib_cache_flush_interval 10

uppercase no
format_human_readable yes

top_name_width 18
top_cpu_separate false

TEXT
# ------ System
${time} ${alignr} ${nodename}
Kernel: ${kernel} ${alignr} Uptime: ${uptime}

# ------ Weather
# http://info.weather.yandex.net/yoshkar-ola/2_white.png
# http://info.weather.yandex.net/moscow/2_white.png
${color orange}Weather${color}
${execi 600 wget -q --timeout=10 -O- "http://info.weather.yandex.net/moscow/2_white.png" | convert -crop "200x54+0+28" -alpha Activate -channel alpha -evaluate multiply 0.7 "png:-" "png:${HOME}/.conkyweather" }
${voffset 18}
${alignc}${image ~/.conkyweather -f 30 -p 20,58}

# ------ CPU
${color orange}CPU${color}
Total: ${cpu cpu0}% ${alignr} Temp: ${acpitemp}°C
${alignc}${cpugraph 0 20,240 e5e5e5 F1AA0E}
${freq_g 1}GHz${goto 74}${freq_g 2}GHz${goto 136}${freq_g 3}GHz${goto 198}${freq_g 4}GHz
${cpugraph 1 10,52 e5e5e5 F1AA0E}${goto 74}${cpugraph 10,52 e5e5e5 F1AA0E}${goto 136}${cpugraph 3 10,52 e5e5e5 F1AA0E}${goto 198}${cpugraph 4 10,52 e5e5e5 F1AA0E}
${voffset 2}
Load: ${loadavg}
${alignc}${loadgraph 20,240 e5e5e5 F1AA0E}
${top name 1}${goto 120}${top pid 1}${goto 150}${top cpu 1}${goto 180}${top mem 1}${goto 210}${top time 1}
${top name 2}${goto 120}${top pid 2}${goto 150}${top cpu 2}${goto 180}${top mem 2}${goto 210}${top time 2}

# ------ Memory
${color orange}Memory${color}
Used: ${mem} / ${memmax} (${memperc}%) ${alignr} Swap: ${swapperc}%
${memgraph 20,170 e5e5e5 F1AA0E} ${alignr} ${swapbar 20,60}
${top_mem name 1}${goto 120}${top_mem pid 1}${goto 150}${top_mem cpu 1}${goto 180}${top_mem mem 1}${goto 210}${top_mem time 1}
${top_mem name 2}${goto 120}${top_mem pid 2}${goto 150}${top_mem cpu 2}${goto 180}${top_mem mem 2}${goto 210}${top_mem time 2}

# ------ Disk
${color orange}Disk${color}
${alignc}${diskiograph /dev/sda 20,240 e5e5e5 F1AA0E}
root: ${fs_used_perc /}% ${alignr} ${fs_bar 10,180 /}

# ------ Network
${if_up wlan0}\
${if_existing /sys/class/net/wlan0/operstate up}\
${color orange}Network${color} ${alignr} wlan0: ${addr wlan0}
essid: ${wireless_essid wlan0} (${wireless_bitrate wlan0}) ${alignr} q: ${wireless_link_qual_perc wlan0}
${downspeedgraph wlan0 20,110 e5e5e5 F1AA0E} ${alignr} ${upspeedgraph wlan0 20,110 e5e5e5 F1AA0E}
<< ${totaldown wlan0} / ${downspeed wlan0} ${alignr} ${totalup wlan0} / ${upspeed wlan0} >>

${endif}\
${endif}\
${if_up eth0}\
${if_existing /sys/class/net/eth0/operstate up}\
${color orange}Network${color} ${alignr} eth0: ${addr eth0}
${downspeedgraph eth0 20,110 e5e5e5 F1AA0E} ${alignr} ${upspeedgraph eth0 20,110 e5e5e5 F1AA0E}
<< ${totaldown eth0} / ${downspeed eth0} ${alignr} ${totalup eth0} / ${upspeed eth0} >>

${endif}\
${endif}\
\
# ------ Battery
${if_existing /proc/acpi/battery/BAT0/info}\
${color orange}Battery${color}
cap: ${battery_percent BAT0}% ${alignr} ${battery_bar 10,180 BAT0}
${endif}\
\
# ------ Misc

пятница, 4 мая 2012 г.

Ubuntu 12.04 - энергопотребление

По всей видимости в новой Ubuntu 12.04 с новым же ядром 3.2 наконец-то пофиксили позорную проблему с энергопотреблением последних версий ядра на лэптопах. Посмотрел на своем Asus - среднее потребление в простое стало 12-14W/h вместо 17-18W/h

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

четверг, 3 мая 2012 г.

Ubuntu 12.04

Обновил рабочий десктоп до версии 12.04

  • Guake все так же некорректно вычисляет свою ширину при фиксированном лаунчере. Фиксить так же как и раньше.
  • Установленный ранее консольный шрифт Monospaced 9 превратился во что-то отвратительно-нечитаемое. Сильно расстроился, но потом нашел, что надо просто в глобальных настройках поставить в качестве моноширийного шрифт DejaVu Sans Mono 9 - все стало так же как и раньше
  • Шрифт в чате Skype стал ужасным. Оказалось надо установить пакет qt4-qtconfig и с помощью утилиты qtconfig-qt4 установить (главное не забыть про команду save) стандартный шрифт Ubuntu.
  • Клавиша Alt теперь вызывает HUD. Полезность пока сомнительна, а недостаток налицо - в mc невозможно выполнить команду "Alt+." и другие команды с модификатором Alt. Отключается в настройках плагина Unity в Compiz Settings Manager. Я пока перекинул команду вызова HUD на "Super+Q".
  • Клавиша F10 теперь вызывает контекстное меню. Соответственно в mc, htop и других консольных утилитах использовать ее нельзя и просто отключить ее в настройках терминала уже не выйдет, потому как это поведение стало ключевой фичей GTK3. Решение проблемы заключается в создании специального файла настроек GTK3
  • Хинтинг кириллических шрифтов местами стал очень странным (по крайней мере в Firefox). Похоже замешан шрифт Arial, но я пока еще до конца не понял в чем дело.
  • Вот такой файлик в Firefox неправильно рендерит лигатуру "бл":
    <!DOCTYPE html>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
        </head>
        <body>
            <div style="font-family: Arial; font-size: 13px;">Бла, бла, бла</div>
        </body>
    </html>
    
  • Вроде все грузится быстрее. Падений пока не замечено.

UPD1: Проверил хинтинг под Firefox 12 && Ubuntu 11.10 - все то же самое.

пятница, 6 апреля 2012 г.

Adobe Flash & NVIDIA

В последнем обновлении Adobe Flash включена поддержка аппаратного ускорения, что приводит к синюшной картинке на проприетарном драйвере видео-карт NVIDIA. Решение проблемы заключается в отключении аппаратного ускорения. Это можно сделать, щелкнув правой кнопкой мышки на видео-ролике и выбрав пункт меню "Settings...". К сожалению, из-за особенностей работы Compiz диалог настроек на клики мышки не реагирует. Чтобы все-таки снять галочку с опции аппаратного ускорения необходимо либо загрузиться в режиме Unity-2D, либо (что проще) вызвать диалог настроек в полноэкранном режиме просмотра видео.

среда, 29 февраля 2012 г.

Startup Disk Creator

В новых дистрибутивах утилита "Startup Disk Creator" при попытке создать загрузочный флеш-диск с образом системы 10.04.x диск успешно создает, однако он при загрузке вываливается с сообщением "Unknown keyword in configuration file: gfxboot".

Проблема известна и вроде как уже чинится.

Тем временем существует workaround - после получения такого сообщения необходимо ввести в строке приглашения: help <enter>, и затем в появившемся меню еше раз нажать <enter>

среда, 14 декабря 2011 г.

Кнопки мыши

Чтобы быстро определить под какими номерами идут дополнительные кнопки мыши можно воспользоваться утилитой xev. Я себе настроил переключение рабочих столов боковыми кнопками (button6, button7) - через Compiz Settings Manager.

четверг, 17 ноября 2011 г.

Настройки тачпада в 11.10

После апгрейда до 11.10 вылезла проблема с тачпадом на ноутбуке: перестал работать drag-n-drop и выделение текста. Оказалось, что нехорошие люди поставили в xserver-xorg-input-synaptics новое значение флага MaxTapTime равное 180. У кого-то с таким значением тачпад работает прекрасно, а у меня же ни в какую. Кроме того, время от времени тачпад стал откликаться на попытки вертикального двупальцевого скролла как на двупальцевый тач (эмуляция правой кнопки мыши, контекстное меню). Все это наконец-то и заставило разобраться с проблемой вплотную.

$ dmesg | grep Synaptic
[   17.399178] elantech: Synaptics capabilities query result 0x78, 0x16, 0x0d.

В Oneiric стандартный диалог настройки тачпада в gnome-control-center очень куцый и имеет минимальное количество опций. Утилита gpointing-device-settings из одноименного пакета умеет чуть больше, но все равно имеет не полный набор, да и настройки у меня не запоминает.

Полный же набор настроек для тачпадов Synaptics отражающий все возможности датчика, контроллера и драйвера хорошо описан в документации и в моем случае решил все проблемы. Настройки можно изменять с помощью утилиты synclient из пакета xserver-xorg-input-synaptics что очень удобно - для начала можно создать временный скриптик со своими настройками, а затем, после того как станет понятно что настройки подходят, переместить все настройки на постоянную основу в /usr/share/X11/xorg.conf.d/51-synaptics-quirks.conf

Вот моя новая секция в 51-synaptics-quirks.conf:

Section "InputClass"
 Identifier "UBUNTU Oneiric custom quirks"
 Driver "synaptics"
 MatchIsTouchpad "on"
 MatchDevicePath "/dev/input/event*"
 Option "VertTwoFingerScroll" "1"
 Option "TapAndDragGesture" "1"
 Option "SingleTapTimeout" "300"
 Option "FastTaps" "1"
 Option "PalmDetect" "1"
 Option "PalmMinWidth" "2"
 Option "PalmMinZ" "140"
 Option "FingerLow" "10"
 Option "FingerHigh" "30"
 Option "MaxTapTime" "10"
 Option "MaxTapMove" "10"
EndSection
  • VertTwoFingerScroll=1 включает двупальцевое скроллирование
  • TapAndDragGesture=1 включает drag-n-drop
  • SingleTapTimeout=300 исправляет проблему, отрубившую drag-n-drop
  • FastTaps=1 ускоряет распознавание одиночного клика за счет замедления распознавания двойного клика
  • PalmDetect=1 включает игнорирование касания ладонью
  • PalmMinWidth=2 устанавливает ширину пятна касания. Ширина пятна касания выше этого значение будет означать, что тачпад задет ладонью, поэтому есть смысл установить по-минимуму
  • PalmMinZ=140 устанавливает силу касания выше которой касание будет игнорировано. Суть в том, что как правило по тачпаду мы легко водим кончиками пальцев, а вот сильное касание будет означать при этом, что тачпад задет случайно. Хорошо бы поставить поменьше, но значения меньше 130 отрубают у меня двупальцевый тач.
  • FingerHigh=30 устанавливает давление касания. Касание с давлением выше этого будет зарегистрировано.
  • FingerLow=10 устанавливает давление отпускания. Когда давление на тачпад будет ниже этой величины тачпад проинформирует об отпускании. Имеет смысл установить значение поменьше, чтобы только полностью убранный с тачпада палец приводил к отпусканию
  • MaxTapTime=10 устанавливает максимальное время для регистрации клика. Установил поменьше, чтобы только быстрое касание приводило к клику
  • MaxTapMove=10 устанавливает максимальную дистанцию скольжения пальца при регистрации клика. Также поставил поменьше, чтобы только несмазанные касания приводили к клику, а двупальцевый скролл не вызывал контекстное меню.