пятница, 28 сентября 2007 г.

E17 - моя первая тема...

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

посвящается SRV (Stevie Ray Vaughan) - последнему герою 20-го века...

понятно, что первый блин - комом, но я старался...

HUGE THANKS to the following persons (beg my pardon if I missed someone! please! ):

boneyfrog (creator of "blue_eyed" theme)
E devilhorns (Christopher Michael)
E Rasterman (Carsten Haitzler)
E Ravenlock (Eric Schuele)
E mekius (shame on me - forgot full name...)
E morlenxus (Brian Miculcy)
E Viktor Kojouharov (creator of "darkness" theme)


P.S. all updates will be available by using links below. in case of broken link - just let me know. thanks.

SRV theme updated version 0.2h:
http://ifolder.ru/4222647


Changelog:
________new in 0.2i________

* 'efm_nav' and 'efm_path' support added


Changelog:
________new in 0.2h________

* NEW BORDER TYPE. I call it "rio", because the idea was "stolen" in Plan9 window system.
Border support "resize" in all directions except by "dragging" the top border (and there's no "resize corners" for the top-left and the top-right ones). I hope that this will suit the needs of "tiled window lovers" :).


Changelog:
________new in 0.2g_fix1_____

* iBar animation improved
* drag'n'drop window icon to iBar enabled
* other minor fixes...

Changelog:
________new in 0.2g__________

* new 'iBar' focus animation and font color
* new 'iBox' font color with default animation for easy recognition between iBox and iBar items


Changelog:
________new in 0.2f1___(it's a bugfix only!)____

* fixed proper scaling of right upper window corner...

Changelog:
________new in 0.2f__________

* I don't know how, but I made round corners... (never thought I can do it, heh)


Changelog:
________new in 0.2e__________

* new 'efm' tricks (glows on selection)
* new "cover" for 'cpu' module
* 'cpu' and 'tclock' modules are included into the theme "configs"
* new mime.types are added for 'efm' (yep, size grows day by day)
* minor shelf customization
* some 'pager' module experiments (solid background added)

Changelog:
________new in 0.2d__________

* 'efm' toolbar added
* minor fixes and animation improvements...
* bacground scaling now up to 2048x1536


Changelog:
________new in 0.2c__________

* display of filenames in 'efm' now limited to the horizontal size of icon


Changelog:
________new in 0.2b__________

* 'net' module is adjusted to work with transparent shelf;
* new ( ? simplified ? ) scrollbar, sliders, slider buttons etc.;
* new 'cpufreq' module (from 'gant' theme);
* increased size of a 'net' module popup;
* some animation added to the background and configuration dialog;
* narroved focus window up to a single pixel :).


Changelog:
________new in 0.2__________

* fresh smell of "napalm in the morning" added (always wanted some "burn'em Stevie")


Changelog:
________new in 0.1.9__________

* added "efm" customization
* button image changed

Changelog:
________new in 0.1.8__________

* completely redesigned titlebar
* active window titlebar buttons and icon animation
* minor changes in "winlist" and "exebuf" modules
* adjusted vertical shelf SRV background
* minor fixes...

Changelog:
________new in 0.1.7a__________

* noresize_dialog border fixed...


Changelog:
________new in 0.1.7__________

* funny animated border's titlebar

TODO:

* I don't know... frankly speaking I achieved the goal to build a theme almost from scratch, because my starting point was a heavily aged Cthulhain theme (it was actual God knows how many years ago). During this exercise I discovered even some pieces of the "lost code" (thanks to "boneyfrog" for the clue, cause I just glared at the source code without any any desire to summarize 2 and 2). Just mail me if you wish any feature to be implemented (it's really possible with superior edje tricks)!

Changelog:
________new in 0.1.6__________
* the look of "net" module slightly changed (imported from "smoke" theme and popup background is changed)
* "forecasts" module is imported from "darkness" theme and popup background is changed (lost pieces of gadman code are up both for "net" and "forecasts")
* kind of "watermark" is added into menu backgroung
* cpu optimization in "Enlightenment" -> "About"
* animated "Enlightenment" -> "Theme" (very modest frankly speaking)
* added SRV icon in "Configuration Panel"...

TODO:

* may be some kind of animation for border titles or border controls (like in "smoke" or like it was in "Lucax" theme from e-live or "mix all together")...

Changelog:
________new in 0.1.5__________
* theme background is animated,
* new look of "exebuf" and "winlist"
* a little improvements in overall design...

TODO:

* customize the look of modules

SRV ETK theme added version 0.1.5 (looks like "ready for production usage":)):
http://rapidshare.com/files/60111755/SRV_0.1.5.edj.html

and here are some screenshots:






E17 - приятные мелочи

сначала - итоги: за 130 часов аптайма на версии 016.999.041 - ни одного сбоя!!! срочно сделал бэкап исходников, доволен как слон.

появился в обойме чудный модуль news. понимает пока только RSS (в планах есть поддержка всего остального), впечатления - не очень, ибо по умолчанию использует шрифт Vera (без глифов кириллицы). но для отслеживания новостей по разработке 17-го - в самый раз. пробую весёленькую тему Steampunk (часики нравятся):

пользователям Elive/Debian должна приглянуться Darkrevolution.
жду появления темы "я - гламурное блондинко", бо все предпосылки к этому созданы...

среда, 26 сентября 2007 г.

E17 - полезные ссылки

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

Темы:

wget -c -r -l5 -nH -nd -np http://www0.get-e.org/Themes/E17/_files/

Иконки:

wget -c -r -l5 -nH -nd -np http://www0.get-e.org/Resources/Animated_Icons/_files/

Обои:

wget -c -r -l5 -nH -nd -np http://www0.get-e.org/Backgrounds/Static/_files/
wget -c -r -l5 -nH -nd -np http://www0.get-e.org/Backgrounds/Animated/_files/


немного ссылок на сайты, так или иначе посвящённые этому ВМ-у:

домашняя страничка:
http://enlightenment.org/

сайт, на котором действительно можно взять кучу нового:
http://www0.get-e.org/

попытка собрать в одном месте все ресурсы для пользователей 17-го:
http://e17-stuff.org/

Elive - до требований "дотаций" - можно было рекомендовать к посещению...
http://elivecd.org

канал irc, посвящённый enlightenment-у (можно поболтать с разработчиками):
irc.freenode.net (/join #e)

канонический скрипт для сборки 17-го из cvs -
Easy_e17.sh:
http://omicron.homeip.net/

мой скрипт по сборке 17-го:
http://rootshell.be/~sda00/install.sh

поскольку в "каноническом" скрипте наконец-то доделали поддержку компиляции на FreeBSD, то советую для сборки пользоваться им. мой скрипт попроще будет, да и подзабросил я его, поскольку интерес невелик. он отличается от "канонического" тем, что поддержка DirectFB убрана, взамен чего поддержка OpenGL форсирована. секция предварительного тестирования системы также не доведена до ума (она работала для версии 016.999.037, но с той поры многое изменилось).

у кого есть что дополнить - скажу спасибо...

воскресенье, 23 сентября 2007 г.

E17 - заметки об использовании

эту заметку буду дописывать время от времени, внося какие-то мелочи об особенностях 17-го...

немного о нагрузке на процессор - как оказалось значительное увеличение сего показателя имеет место в начальный период использования 17-го, предполагаю, что это связано с жесточайшим кэшированием объектов файловой системы, что подтверждается следующим:

$ du -sh ~/.e/e/fileman
545M /home/sda/.e/e/fileman


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

ещё больше снизить нагрузку можно передав бремя отрисовки с процессора на видеокарту (посредством икс-сервера, но гарантий, что нагрузка снизится - нет, всё может быть как раз наоборот):

$ enlightenment_remote -engine-list
REPLY <- BEGIN REPLY: "SOFTWARE"
REPLY: "XRENDER"
REPLY <- END $ enlightenment_remote -default-engine-set XRENDER


очень интересны опции конфигурирования "листалки" запущенных окон (по умолчанию - Alt+Tab):

$ enlightenment_remote | grep winlist

(список будет слишком большим для цитирования). ещё одна абсолютно фантастическая "фишка" - это практически тотальный контроль за цветом используемых шрифтов (Enlightenment Configuration Panel -> Appearance -> Colors). если прибавить к этому возможность перекраивать темы оформления по своему усмотрению, возможности по конфигурации самих шрифтов, огромный потенциал edj файлов - получаем самую передовую на сегодня технологию формирования оформления рабочего стола (формирования пользовательского интерфейса), что находит отражение в имплементации 17-го в мобильных устройствах.

информацию о "ночных" сборках (статусе cvs кода) можно просмотреть здесь:

http://download.enlightenment.org/tests/
http://download.enlightenment.org/tests/LAST_EMAIL.txt

в связи с использованием edj файлов в качестве "обоев" рабочего стола, программы типа root-tail не понимают куда выводить информацию, conky, torsmo и gkrellm (с прозрачной темой) требуют чёткого указания бэкграунда (спасает не всегда, на функциональности conky, torsmo и gkrellm-а это никак не сказывается, только выглядят приложения слегка непривычно).

субъективно для версии 016.999.041 заметил, что при рестарте 17-го urxvt может уйти в "зомби" при условии "наследования" фонового рисунка с обоев стола (ибо edj файл кроме как EFL никто понять не желает). при этом если в urxvt запущен mc - то после рестарта возможно появление довольно интересных артефактов. один раз (не помню правда как) но удалось окно перевести в статус "Lost Window" - было очень занятно наблюдать, как оно убегало от курсора мыши...

IMHO: рассматривая потенциал, заложенный в E17 можно говорить о том, что все остальные WM-ы нервно курят в сторонке (хочется правда чего покрепче написать...)

E17 - tips & tricks, часть II

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

в "обойме" 17-го есть ненавязчивый, но очень интересный однопанельный файловый менеджер, который чудненько смотрится в дополнение к излюбленному urxvt+vim+bash+mc :

всё классно, но прошло какое-то время, прежде чем стал пользоваться этим чудом на полную катушку. очень интересно организована ассоциация типов файлов и приложений, им соответствующих. как ни странно - всё в соответствии со стандартами, что просто удивительно. каждый файл "оценивается" по mime.types (определённому либо в /etc/mime.type либо в ~/.mime.types, но субъективно у /etc/mime.types есть некий приоритет в "весовой категории"):

а для непосредственной ассоциации одной или нескольких программ с определённым типом файла используется запись "MimeType=" в .desktop файле приложения. например:

$ cat ~/.local/share/applications/MPlayer.desktop

[Desktop Entry]
Hidden=false
Name[en_US]=MPlayer
NoDisplay=false
Icon[en_US]=/home/sda/.icons/MacOS-X/48x48/apps/mplayer.png
Exec=mplayer %f
Type=Application
Version=1.0
StartupNotify=false
StartupWMClass=MPlayer
GenericName=MPlayer
Name=MPlayer
Terminal=false
Icon=/home/sda/.icons/OSX/scalable/apps/purrr.png
GenericName[en_US]=MPlayer
MimeType=video/x-msvideo;video/x-ms-wmv;video/mpeg;


результат - прекрасный однопанельник без излишних "наворотов", чего собственно и хотелось.

на закуску - об очередной чумовой придумке. смысл: для того, чтобы что-то сделать (написать текст, нажать на кнопку и т.п.) нужно сперва "разбить стекло"! идея-то лежала на поверхности: разбейте стекло и воспользуйтесь огнетушителем, топором, молотком и т.п.. это стоит право увидеть самому (команда ewl_embed_test). итак... до:

"после":

внесённые изменения опять прячем под стекло:

E17 - tips & tricks, часть I

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

~/.e/e/modules
$prefix/lib/enlightenment/modules

где prefix = каталог_установки_e17-го. для активации желаемого модуля стоит воспользоваться следующими командами:

enlightenment_remote -module-load имя_модуля
enlightenment_remote -module-enable имя_модуля

любой загруженный модуль отъедает чуток памяти. выгрузка неиспользуемых модулей для машин с малым объёмом ОЗУ будет очень полезна:

enlightenment_remote -module-disable имя_модуля
enlightenment_remote -module-unload имя_модуля

второе - это формирование собственного Favorite Applications меню. гуёвый тулкит не предусматривает создание вложенных каталогов с элементами меню (субменю). не страшно, поскольку с недавних пор вывод меню полностью соответствует стандартам freedesktop. рассмотрим, с чем нам предстоит работать. для этого создадим при помощи Enlightenment Configuration Panel->Menus->Favorites Menu ярлычок например для Bluefish (очень неплохого редактора для всяких глупостей). после чего у нас появится файлик ~/.e/e/applications/menu/favorite.menu со следующим содержанием (пропущены 2 первые строки с хэдером xml-а и указателем !DOCTYPE):

$ cat favorite.menu.bak

<Menu>
<Name>(null)</Name>
<DefaultAppDirs/>
<DefaultDirectoryDirs/>
<Layout>
<Filename>bluefish.desktop</Filename>
</Layout>
<Include>
<Filename>bluefish.desktop</Filename>
</Include>
</Menu>


при подобном "построении" с использованием Layout-а добавить туда каталог с "ярлычками" своих любимых программ чуток труднее, чем переписать саму структуру этого файла с нуля. сам же файл bluefish.desktop создан в ~/.local/share/applications, значит ~/.local/share/desktop-directories - это и есть каталог для создания .directory файла (в соответствии со спецификациями freedesktop для создания своего субменю нам нужен .directory файл и .desktop файл/файлы, расположенные в datadir/desktop-directories и datadir/applications соответственно). мне всегда хотелось иметь все EFL приложения, собранные в одном месте. поэтому создал файлик ~/.local/share/desktop-directories/e17_apps.directory:

$ cat e17_apps.directory

[Desktop Entry]
Encoding=UTF-8
Icon=~/.icons/nuoveXT.2.2/128x128/places/folder.png
Icon[en_US]=~/.icons/nuoveXT.2.2/128x128/places/folder.png
Name=E17_Apps


desktop файлы в
~/.local/share/applications создаются в момент присвоения окнам необходимых иконок. меняем структуру ~/.e/e/applications/menu/favorite.menu на следующую:

<Menu>
<Name>Other</Name>
<Menu>
<Name>E17_Apps</Name>
<DefaultAppDirs/>
<DefaultDirectoryDirs/>
<Directory>E17_Apps</Directory>
<Include>
<Filename>exhibit.desktop</Filename>
</Include>
</Menu>
<DefaultAppDirs/>
<DefaultDirectoryDirs/>
<Include>
<Filename>bluefish.desktop</Filename>
</Include>
</Menu>


всё что остаётся - заполнить элементы нашего меню по усмотрению и наслаждаться результатом:



иконка на субменю правда не подхватилась, но это уже мелочи (видимо опять чего-то не учёл). к сожалению любая модификация получившегося меню с помощью гуи E17-го приведёт к утере наших изменений, посему... vim/bluefish/kate/emacs/и_т._д. - рулят!

суббота, 22 сентября 2007 г.

Русификация E17

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

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

Теперь в картинках и по пунктам:
а) Configuration Panel -> Language -> Language Settings -> и выставляем свою локаль, что очень важно, поскольку на /etc/X11/xorg.conf Е преспокойно забивает



б) Configuration Panel -> Appearance -> Fonts -> для начала выделяем всё в левом столбце (Shift + left mouse button) и указываем нужный шрифт по аналогии с картинкой (отмечаем для себя, что 17-ый кладёт болт на настройки fontconfig-а для своего интерфейса и EFL программ)


в) не дай Боже у кого-то логин/пасс с кирилицей и стоит Entrance как логин-менеджер - надо сразу рихтовать темы Entrance (http://rootshell.be/~sda00/notes.html), а далее - по обстоятельствам и по потребности.

есть и кое-какие мелочи, что несут кучу несуразиц в корректное отображение текста. во-первых на сентябрь 2007-го года в самом проекте Е с выбором шрифтов имеет место быть бардак. шрифт по умолчанию - Vera - не поддерживает utf-8 (кирилицу в utf-8 если быть более объективным), посему многие ответственные товарищи (спасибо Виктору Кожухарову, как я могу предположить) стали активно продвигать семейство DejaVu, и ноне имеем полный "ужас", вплоть до того, что компоненты одного и того же приложения/библиотеки собраны (в edj файлах) с поддержкой разных шрифтов.

теперь о сокращениях, которые будут использоваться далее:
prefix = каталог установки E17-го (например /opt/e17)
EFL = Enlightenment Foundation Libraries

сведения о используемом шрифте для каждого EFL приложения описываются в .edc файле двумя блоками. первый - глобальный, описывает шрифт и его сокращение (через пробел) для будущего быстрого вызова (// - комментарии):

fonts {
// font: "DejaVuSans.ttf" "Winter";
font: "DejaVuSans.ttf" "CarbonNormal";
// font: "DejaVuSans-Bold.ttf" "WinterBold";
font: "DejaVuSans-Bold.ttf" "CarbonBold";
}


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

text {
text: "Enlightenment";
font: "CarbonBold";
size: 16;
min: 1 1;
align: 0.5 0.5;
}

или

style {
*****
base: "font=CarbonNormal font_size=10 align=center color=#000 style=shadow shadow_color=#ffffff80 wrap=word";
****
}

а самое интересное тут в том, что вывод текста в EFL приложении может осуществляться как с помощью etk/ewl/evas/esmart, так и непосредственно edje (именно как EFL) способен использовать ttf-ку, ежели может до неё "дотянуться" (посмотрите как организована работа со шрифтами у любого модуля! ttf-ка просто "зашивается" в edj файл). и самое обидное - что после апдейтов всё приходится восстанавливать, поэтому я как-то давно уже написал себе скриптик по автоматизации этого процесса (может выложу когда приделаю к нему хоть какой-то дружелюбный интерфейс). в общем пока разработчики не заменят все шрифты на семейство DejaVu - хорошего не будет.

красивых и лёгких рецептов по русификации всего и вся из E17-го пока не придумал (есть пара намёток, но сырые). если кто имеет желание мне в этом помочь - буду только рад.

что же делать если появились "кракозяблики"? - смотреть кто их "родитель" (искать тему/стиль "родителя" - edj файл - и пересобирать его с заменой шрифта), смотреть на каких EFL построен "родитель" и вбивать нужный шрифт в эти EFL. если есть вагон свободного времени и желание "покрыть свет матом" - идём в $prefix и выкидываем "Верочку" (шрифт Vera) к свиньям собачьим.

рассмотрим на примере Emphasis - очередной "морды" к mpd. прыгаем в $prefix/share/emphasis и радостно обнаруживаем, что сие чудо пользует glade интерфейс без намёка на шрифт:

[sda@black emphasis]$ pwd
/opt/e17/share/emphasis

[sda@black emphasis]$ l
total 84
drwxr-xr-x 3 sda root 4096 2007-09-20 11:28 .
drwxr-xr-x 37 sda root 4096 2007-09-20 11:44 ..
-rw-r--r-- 1 sda root 12378 2007-09-20 11:28 config.glade
-rw-r--r-- 1 sda root 49603 2007-09-20 11:28 emphasis.glade
drwxr-xr-x 2 sda root 4096 2007-09-20 11:28 images


ок. отсосали - требуем долива! прыгаем в каталог с исходниками emphasis и делаем less config.log, роясь в поисках или прямого указания на EFL или в параметрах использования $PKG_CONFIG, повезло!

configure:21501: $PKG_CONFIG --exists --print-errors "
ecore >= 0.9.9.022
ecore-config
etk >= 0.1.0.002
enhance >= 0.0.1
libxml-2.0 >= 2.6.0
libmpd >= 0.12.0
"


ничего удивительного. прыгаем в $prefix/share/etk/themes
и перекраиваем default.edj:

$ edje_decc default.edj
$ cd default
$ rm ./*.ttf

потом копируем туда свой любимый шрифт (в нашем примере - DejaVu) и рихтуем default.edc:

fonts {
font: "DejaVuSans.ttf" "DejaVuSans";
font: "DejaVuSans-Bold.ttf" "DejaVuSans-Bold";
font: "DejaVuSans-Oblique.ttf" "DejaVuSans-Oblique";
font: "DejaVuSans-BoldOblique.ttf" "DejaVuSans-BoldObliqu";
font: "DejaVuSansMono.ttf" "DejaVuSansMono";
}


вот вроде и управились. собираем edj обратно и заменяем исходник (можно результат нашей рихтовки переименовать в допустим default_etk_my.edj, положить в ~/.e/etk/themes и, используя etk_prefs, выбрать к всеобщему удовольствию). оцениваем результаты:

четверг, 20 сентября 2007 г.

Enlightenment - путь к просветлению! (выбираем лучшее)

жил-был twm, и задрал он всех преизрядно, посему появился fvwm, который принёс с собой кучу мегарулёзных фишек, но своими конфигами тоже задрал всех. потом (от жуткой усталости по допилу ентого fvwm-а) настоящий мужик (true man) Carsten Haitzler (aka The Rasterman) переписал этот фы-вы в нормальный WM - Enlightenment - и показал убогим и заблудшим путь к просветлению. но, поелику муж сей щедро одарён как талантами, так и ленью, то к DR-14 (development release), код "Ешки" превратилсо в помойку - и был переписан заново с нуля. в 2000-ом вышел DR-16 (он же Enlightenment E16), который по сей день (вот уже на протяжении 7-ми лет, товарищи!) является лучшим WM-ом! (бурные овации зала) DR-17 пишется также с нуля, бо замахнулся товарищ Rasterman нипадецки...

мораль:

  1. идём http://sourceforge.net/project/showfiles.php?group_id=2 и качаем версию 0.16.8.9 (компилируется всё минут за 5-10)

  2. вкуриваем по пунктам:
       а) ~/.e16/bindings.cfg
       б) опции управления с eesh (что понравилось - пихаем в ~/.e16/bindings.cfg)
       в) http://themes.freshmeat.net/browse/60/ - выбираем чего душа просит из 165 доступных тем оформления, помимо 4-ёх стандартных (берём и вбиваем пинками поддержку рiдноi мовы)
       г) http://etherdoxproject.com/ - для создания собственных тем оформления

всё элементарно просто, вкусно и очень круто. вечера за три-четыре вполне можно управиться.

P.S. все более-менее нормальные темы оформления fvwm-а на сегодня слизаны с элементов тем Enlightenment-а... так почему бы не выбрать лучшее???

E17 - непутёвые мыслишки....

мои отношения с этим чудным ВМ-ом можно назвать поверхностными. особо-то над внешним видом никогда не парился, до тех пор пока работа не потребовала более чем 10-ти одновременно открытых приложений. alt+tab в гноме/кедах плюс ctl+alt+f* для "консольных" программ быстро разрушили мою неокрепшую нервную систему. на первый взгляд требования были элементарны:

* шорткаты на клавиатуру и мышь (в частности управление окнами с клавиатуры);
* быстрый поиск и переключение между всеми запущенными приложениями;
* работа с систреем без "бубна" (долго работал без него, с появлением liferea и stardict-а возникла необходимость, как говорят немцы).

перепробовав wmii, dwm, ion, twm (угу, оно ещё живо), gnome и kde остановился на E16 - именно то, что Доктор прописал. наконец-то разобрался с ~/.e16/bindings.cfg и оказалось, что dwm с wmii для достижения такого же функционала требуют весьма существенных "телодвижений". настал черёд 17-го... сделал скриптик по установке из cvs для *nix и FreeBSD, заодно и сайтик на свет появился:

http://rootshell.be/~sda00/

сказать, что 17-ый очень красивый и функциональный - ничего не сказать. лучше поставить и убедиться воочию. сказать, что в 17-ом всё работает и он стабилен - опять же нет, нет и нет. хотя, если Ваши приложения не вводят 17-го в состояние "коры дуба" - то работа в нём доставит массу приятных ощущений. поскольку лучше один раз увидеть, чем 100 раз прочитать - рекомендую инсталлировать и оценить самостоятельно. установка "по максимуму" со всеми EFL библиотеками и приложениями займёт около 80-ти Мб диска. оно того стоит.

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





версии 016.999.026 (2006 год, elive 0.6.4 development, вовремя стащенная с норвежского ftp, до того момента, когда за elive стали требовать donations, что по-видимому похерит сей неплохой проект, если уже не похерило) и 016.999.041 на "маме". изменений за это время на первый взгляд произошло не так уж и много (с точки зрения простого ламера/пользователя):
1) отказ от .eap в пользу .desktop (что выбило engage - системный трей и панель запуска приложений для Е17-го - за грань приемлимости в использовании, поскольку научить его понимать desktop файлы пока никто не озаботился. для систрея ноне рекомендуют плясать с бубном вокруг trayer-а или иных сходных прилад. вашему покорному слуге систрей не обязателен),
2) привязка модулей к "полочкам" (shelves) теперь не позволяет таскать элементы по всей поверхности рабочего стола (при желании запихать что-то в центр рабочего стола - придётся постараться),
3) появилась мало кому нужная возможность размещения "ярлычков/иконок" на рабочем столе (поместив файл.desktop в ~/Desktop),
4) внешний вид iBar-a и iBox-а стал практически одинаковым (мне это не очень понравилось),
5) увеличились возможности по конфигурации пользовательского интерфейса (избавиться же от enlightenment_remote до конца пока не удаётся, да это и излишне. теперь практически каждому элементу темы можно присвоить "значение" сходного элемента любой доступной темы. т.е. теперь можно мешать в кучу элементы из всех доступных тем, что есть абсолютная круть - как часто приходилось слышать, что "эх, ещё бы к сумочке часики как у Мэрилин Монро заиметь, тогда ваще...")


6) возросла нагрузка на процессор при отрисовке элементов изображения (очень субъективное замечание должен признать, но сравнение 17-го с 16-м убивает...),
7) написано порядком приложений/модулей на EFL, что не может не радовать,
8) построение основного меню приложений c версии 037 (вроде как) основано на xdg_menu,
9) доработали настройки по конфигурации шрифтов (года эдак с 2003-го ждём-с замены freetype/fontconfig в виде EFL библиотеки, видимо зря),
10) очень жаль, что с 2003-го года похерили evidence - чумовой файловый менеджер, который я бы пользовал с огромным удовольствием:


поводов взгрустнуть прибавляется... если же сравнить функционал 16-го и 17-го без оглядки на "рюшечки и красявости", то... однозначного ответа не будет. с одной стороны - лёгкость, гибкость 16-го + epplets (ведущих своё начало "из глубины веков" - наследие fvwm, которого можно считать "родителем" Enlightenment-a), с другой же Е17-ый + modules... возможности-то по работе с "окошками" и запущенными приложениями у них практически одинаковы. 17-ый замахивается на полноценный DE (Desktop Environment). при "правильной" компиляции имеем поддержку практически всех графических форматов (от xpm до svg) плюс великолепный внешний вид etk/efl "из коробки". но как-то непонятно пренебрежение к мелочам/деталям. с одной стороны - шикарный дизайн тем оформления 17-го, замечательные графические наработки (некоторые сделаны очень талантливо), комбинирование изображения с "маской" и градиентом практически на лету... с другой - бездарное отсутствие элементарных иконок к уже работающим EFL приложениям. единственной "независимой" найденной Бог знает где иконкой является вот эта:
по мне так "рука мастера" видна за версту. эта "икона" очень гармонично вписывается в оформление Е17-ого. логично на её основе нарисовать иконки для остальных, оные неимущих... работаю над этим, получается из рук вон плохо, бо ежели кисточка в моей руке хоть в чём-то отличается от малярного валика... тут талант надобен, а не изрядно поистрепавшийся энтузязизьм...

что же можно рекомендовать из приложений для пользования в повседневной жизни?

в первую очередь - Entrance - самый красивый и функциональный логин-менеджер с момента "рождения" в 2003-м году (сорьки, анимешка закралась в правый верхний угол :) экспериментирую с прокруткой видео на логине). может стоит помянуть добрым словом пару "сторонних" (не входящих в официальный репозиторий) проектов: exalt (настройка сетевых интерфейсов) и eppp (настройка модема). далее - "по списку"...

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



Extrackt - можно сказать, что копия Grip-а, другими словами - очень хороший гуй для рипа/кодинга аудио (на него же можно "повесить" и кодировку видео при желании).






Exhibit - гляделка картинок различных форматов с возможностью обработки их несколькими фильтрами (blur, sharpen, brighten) плюс поворот/отражение... очень близка по функционалу к Ephoto, посему последний останется без скриншота...




Edje_viewer - замечательная гляделка всех edj файлов. для потрошения этих "конфет" используется "декомпилер" edje_decc.





Eclair - универсальный медиаплеер на базе libxine.
по мне так дизайн просто идеальный (опять же для улучшения понимания русского в utf8 берём кувалду...).

Estickies - стикеры с махонькими такими проблемками с русским языком (и локалями, не поддерживаемыми шрифтом Vera). решаемо, но неприятно.

Exige - простая командная строка...



Elitaire - пасьянсы на EFL







Engycad - простенький такой и незамысловатый CAD (работает после Великого поста и усердных молитв).




Emphasis - очередная морда к mpd, заикающаяся на русских словах (лечится, но с трудом).




Expedite - ежели ручки зачесались тесты погонять - самое оно будет.




Epdf - довольно примитивная смотрелка pdf файлов








за бортом остались Edvi (смотрелка dvi файлов), Empower (аналог kdesu/gnomesu) и пара-тройка других не менее забавных приложений. замечу, что не всё из перечисленного выше собирается по умолчанию моим скриптом (http://rootshell.be/~sda00/install.sh), посему ежели чего-то не хватат - потрудитесь внести сами в соответствующие переменные (e17_apps, e17_proto, e17_misc, e_modules). меня же в 17-ом сразу покорила дефолтная комбинация Alt+Esc для вызова меню поиска приложений:

очень элегантное решение, строки (прокручиваются по мере надобности) внизу показывают файлы в $PATH, содержащие сочетание введённых символов, а строки вверху - поиск файлов/бинарников по информации из их desktop файлов. систрей же 17-му совершенно не обязателен, стоит лишь ознакомиться с выводом следующей команды:

$ enlightenment_remote -h | grep winlist
можно и проще:
$ enlightenment_remote | grep winlist

за пару минут научить Alt+Tab "вытаскивать" засевшие в трее приложения - упражнение банальнейшее для чуток внимательного человека. с учётом функционала модулей, находящихся в нашем распоряжении (читать), получаем очень симпатичный WM. прогнозировать же популярность его (естественно дождавшись/(дожив до) релиза не возьмусь, бо (imho) кедофилов, гномофилов и wmiiазохистов мало что может наставить на путь просветления, а ежели что и может - так это явно не здравый смысл... жаль, ибо есть некая корреляция между пользователями WM-а и количеством хороших тем оформления к оному.

вторник, 18 сентября 2007 г.

сетевые интерфейсы

несколько совершенно элементарных опций, которые могут иногда пригодиться. вешаем 2-ой/энный интерфейс на сетевую карточку:

sudo ifconfig eth0:0 192.168.5.2
sudo ip addr add 192.168.5.3 dev eth0

ставим uml_utilities (User Mode Linux) и получаем возможность работать с "туннелями":

sudo modprobe tun
sudo tunctl -u user -t tun0 -f /dev/net/tun
sudo ifconfig tun0 192.168.5.1 up

пакет bridge-utils даст brctl - инструментом для "мостостроения" между различными сетями ethernet.

для экспериментов с виртуальными туннелями подойдёт пакет vtun. очень душевное описание работы с vtun:

http://www.citforum.ru/nets/articles/vpn_linux/
http://palm.opennet.ru/base/net/vtund_bridge.txt.html

и "король" операций с сетевыми интерфейсами - пакет iproute, с документацией, переведённой на русский язык :

http://megalib.com/books/1346/lartc.html

для управления режимами работы сетевой карты (дуплекс и т.п.) - ethtool.

пятница, 14 сентября 2007 г.

автозагрузка приложений или о пользе детского сада

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

вопрос первый - где в ентом линуксе папочка, куды ярлычки на автозагрузку накидать можна, ась? и начинается дурдом. умники на форумах спрашивают какой WM/DE, чего-то там бубнят про сессии и ещё чёрт поймёт про что. а решение-то лежит на поверхности. и по старой доброй *nix традиции способов сих (приёмов и ухваток) множество (не стесняйтесь дополнить в комментариях чего упущено):

1. вопрос пусть и некритичный, но "влияющий на количество опций" - нужны ли нам иксы. если нет - то наилучшим местом для автозагрузки "глобально" будет модификация /etc/profile или ~/.profile для каждого пользователя.

2. если пользуем иксы - можем поиграть с Xsession (~/.xsession + ~/.xinitrc), создав скриптики с привязкой автозапуска к используемому WM/DE (не наш метод, но он вполне оправдан во многих жизненных ситуациях).

вопросами размера окон этих приложений, расположением на виртуальных столах и прочими "оконными" параметрами должен управлять WM. вот например шотик с "джентельменским набором" от Enlightenment-а:

то бишь настроил разок, запомнил и все дела. теперь можем спокойненько дописать в конец ~/.profile что-то похожее на:

if [ "`ps aux | grep mpd | grep -v grep`" = "" ]
then mpd &
fi

if [ "`ps aux | grep X | grep -v grep`" = "" ]

then exit
fi

if [ "`ps aux | grep stardict | grep -v grep`" = "" ]
then stardict &
fi

сперва мы проверяем, запущен ли демон mpd, если нет - запускаем его в "фоновом" режиме. потом - очень грубо смотрим на наш икс-сервер (есть ли возможность запускать приложения с GUI), если иксов нет - выходим не прощаясь, ежели что-то есть - пытаемся запустить stardict. в этом же духе можно продолжать пока не иссякнет фантазия.

вторник, 11 сентября 2007 г.

утилиты подсчёта трафика

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

iptraf
iftop
trafshow - знай наших!
bwmon
ntop

все хороши, но остановился на ntop - самое оно набрать в браузере (по умолчанию):

http://localhost:3000/

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

понедельник, 10 сентября 2007 г.

Enlightenment - out from the crowd



тема WM/DE всегда вызывает нездоровый ажиотаж. порой кажется, что приверженцы того или иного WM-а или DE готовы вылить друг на друга ушат помоев, превратив любую дискуссию в безобразную перепалку, лишённую и намёка на смысл. при этом вопросы удобства, функциональности и т.п. становятся совершенно излишними. холивар! бей <вписать_требуемое> спасай россию! благо обилие wm-ов к тому располагает. на мой совершенно неискушённый взгляд есть некий треугольник во всём этом безобразии, нет, более уместно будет говорить не о трио, но о 2-х полюсах: MAC OS и голая консоль терминала (из желания подчеркнуть, что известная компания из Рэдмонда таки скоммуниздила основы дизайна экскьюз май бэд фрэнч). и несётся из углов: "мышой возюкать", "клаву топтать", "юзабилити", "дружественность", "<сами_впишите_что_считаете_нужным>". касаясь личных предпочтений - интерфейс Mac OS X мне ближе командной строки, поскольку он (imho) более ориентирован на выполнение какой-либо работы (пример: выделяем текст в любом окне, идём в сервисы и видим, что мы с этим текстом можем сразу сделать - проверить орфографию, послать по почте и т.п. - интеграция системы и приложений великолепнейшая. вся организация меню строится на действиях, приложениях, а не на бессмысленной кнопке "Пуск" и последующем блуждании в дебрях чужого "разума", состояние психического здоровья которого оставляет желать лучшего).

среди всего этого хаоса Enlightenment выделялся всегда. полностью согласен с утверждением, что это - единственный WM, позволяющий контролировать любой аспект своей деятельности и дающий пользователю делать именно то, что он хочет (а не то, что иной WM считает правильным в той или иной ситуации). сейчас в стадии активной разработки находится DR17 (E17, Enlightenment DR17), стабильным же считается DR16 (E16, Enlightenment DR16). во многом они похожи, чего не скажешь по внешнему виду. Е17 принёс с собой класс библиотек EFL - Enlightenment Foundation Libraries, в то время как основой прежних релизов Е выступала лишь imlib, переросшая впоследствии в imlib2 (намеренно упускаю fnlib, поскольку ныне неактуальна, а слухи о появлении собственной "шрифтовой" библиотеки для Е17-го изрядно поднадоели).

если вести разговор с точки зрения поддержки EWMH, NetWM или прочих стандартов, то достаточно ознакомиться с файлом COMPLIANCE в корневом каталоге с исходниками Е16-го. можно при желании запустить в консоли eesh и управлять WM-ом посредством командной строки (для Е17-го где-то то же самое проделывается при помощи команды enlightenment_remote). одной из лучших характеристик Е является следующая: "Если Вы в состоянии создать картинку - Вы можете заставить Е выглядеть точно также" (Rob Malda). ни в коей мере не хочу принижать достоинства прочих, имя которым - легион: ion, wmii, dwm, twm, fvvm, windowmaker, icewm, cde и т.д.. долгое время пользовал windowmaker пока не захотелось чего-то совершенно особенного. не могу назвать выбор Е объективным - пришло ощущение, что это - моё. так оно и началось. заинтересовался Е17-м - появился сайт:
http://rootshell.be/~sda00/
где в довольно сумбурной форме нарисованы заметки об этом WM-е:
http://rootshell.be/~sda00/notes.html

позвольте же в заключение выложить довольно неуклюжий конфиг Е16-го (файл ~/.e16/bindings.cfg). он мало чем отличается от дефолта:
Alt+Esc - запуск exige (простая командная строка Е17-го)
Ctl+Esc - запуск urxvt
Ctl+F1 - показ всех запущенных приложений на всех столах с возможностью выбора нужного
Ctl+F2 - выключение пэйджера (он у меня самого большого размера, удобно окна таскать сразу по пейджеру, чем париться с переключениями)
Ctl+F3 - включение пэйджера
Shift+F8 - максимизация приложения на весь экран с "бордюрами"
Shift+F9 - минимизация/сворачивание приложения
Shift+F10 - максимизация приложения на весь экран без "бордюров" оформления темы
Shift+F11 - отображение приложения без "бордюров"
Shift+F12 - отображение приложения c "бордюром" по умолчанию (как правило количество типов "бордюров" зависит от темы и ограничено лишь фантазией создателя оной. любой из доступных "бордюров" может стать дефолтным для выбранного приложения)
выключена реакция Е на щелчки левой кнопкой мыши (вместе со всеми возможными "модификаторами") по рабочему столу.

$ cat ~/.e16/bindings.cfg

Aclass BUTTONBINDINGS normal
MouseDown A 1 wop * mo ptr
MouseDown SA 1 wop = mo ptr
MouseDouble A 1 wop * shade
MouseDown A 2 wop * sz ptr
MouseDouble A 2 wop * th available
MouseDown A 3 menus show WINOPS_MENU
Aclass DESKBINDINGS normal
Tooltip Clicking your mouse on the desktop will perform
Tooltip the following actions
Tooltip Display User Menus
Tooltip Display Enlightenment Menu
Tooltip Display Settings Menu
MouseDown - 2 menus show ROOT_2
Tooltip Display Enlightenment Menu
MouseDown A 2 menus show windowlist
Tooltip Display Task List Menu
MouseDown C 2 menus show deskmenu
Tooltip Display Desktop Menu
MouseDown S 2 menus show groupmenu
Tooltip Display Group Menu
MouseDown - 3 menus show CONFIG_SUBMENU
Tooltip Display Settings Menu
MouseDown * 4 desk prev
Tooltip Go Back a Desktop
MouseDown * 5 desk next
Tooltip Go Forward a Desktop
Aclass KEYBINDINGS global
KeyDown A F1 desk goto 0
KeyDown A F2 desk goto 1
KeyDown A F3 desk goto 2
KeyDown A F4 desk goto 3
KeyDown A F5 desk goto 4
KeyDown A F6 desk goto 5
KeyDown A F7 desk goto 6
KeyDown A F8 desk goto 7
KeyDown A Tab focus next
KeyDown SA Down area move 0 1
KeyDown SA Up area move 0 -1
KeyDown SA Left area move -1 0
KeyDown SA Right area move 1 0
KeyDown CA Delete exit logout
KeyDown CA End exit restart
KeyDown CA Right desk next
KeyDown CA Left desk prev
KeyDown CA Return desk this
KeyDown CA Up wop * raise
KeyDown CA Down wop * lower
KeyDown CA x wop * close
KeyDown CA k wop * kill
KeyDown CA s wop * stick
KeyDown CA i wop * iconify
KeyDown CA r wop * shade
KeyDown CA f wop * fullscreen
KeyDown CA m wop * ts conservative
KeyDown CA w menus show WINOPS_MENU
KeyDown CA a button_show all
KeyDown CA b button_show
KeyDown CA c button_show buttons CONFIG*
KeyDown CA d desk dragbar dir
KeyDown CA o desk dragbar order
KeyDown CS F1 menus show APPS_SUBMENU
KeyDown CS F2 menus show ROOT_2
KeyDown CS F3 menus show CONFIG_SUBMENU
KeyDown CS F4 menus show windowlist
KeyDown S F9 wop * iconify
KeyDown S F10 wop * fullscreen
KeyDown S F11 wop * border BORDERLESS
KeyDown S F12 wop * border DEFAULT
KeyDown C F1 menus show windowlist
KeyDown A Escape exec exige
KeyDown C F2 exec /opt/e16/bin/eesh "pager off"
KeyDown C F3 exec /opt/e16/bin/eesh "pager on"
KeyDown S F8 wop * ts
KeyDown C Escape exec urxvt


для создания своего уникального меню пользователя ознакомьтесь с файлом ~/.e16/menus/file.menu (его можно редактировать с помощью e16menuedit2).

Е16-ый вместе со всеми доступными epplets (эпплетами), инструментами для конфигурирования, библиотеками и т.п. занимает порядка 20мб. работает молниеносно, прекрасно поддерживает композит, прозрачность, Alt+правая кнопка мыши на любом запущенном приложении (по умолчанию) даст такое количество опций, о которых "вы всегда мечтали, но боялись спросить".

контроль, гибкость, свобода... ARE YOU ENLIGHTENED ???


java и linux

очень хорошо описано здесь:

http://www.nirendra.net/cms/java/linux

единственное, что можно добавить, так это совершенно детский скрипт:

$ cat ~/bin/jarwrapper

#!/bin/bash
# ~/bin/jarwrapper - the wrapper for binfmt_misc/jar

java -jar $1
# EOF

теперь достаточно выполнить

$ jarwrapper file.jar

и нещадно эксплуатировать результат.

archlinux... eine kleines arschloch "II"

тут будет очень скупо и кратко о доводке до текущего рабочего состояния, выборе софта и прочих "мелочах жизни".
"Мой корабль накрыло обломками слов,
Вместо мачты - окурок дымит!
На руках и ногах - килограммы оков,
Да и скрипка-лиса не скрипит..."

в /etc/inittab уровень равен трём. если нужна консоль - Ctl+Alt+F1, городить же огород с init 5 как-то не готов (всё устраивает и так). логин менеджер - entrance (это требует установленных EFL и кой чего ещё из арсенала E17, минималистам вряд ли подойдёт). установлено два WM-а: Е16 (основной рабочий) и Е17 практически со всеми доступными для компиляции компонентами. это хозяйство итого занимает на диске 100мб. постоянно "в обойме" следующие EFL приложения:

exhibit - смотрелка картинок и edj файлов
edje_viewer - очень хорошая смотрелка edj файлов
elicit - подбирает цвет с любой точки экрана
estickies - заметки-стикеры, очень удобно...
extrackt - рипаю аудио (это гуи, ирония в том, что его можно использовать не только по "прямому" назначению...)
exige - очень симпотная командная строка
eclair - медиаплеер (нравится дизайн)
scrot - незаменим для скриншотов

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

$ cat /etc/autofs/auto.media

cdrom -fstype=auto,ro,nodev,nosuid,utf8 :/dev/sr0
dvd -fstype=auto,ro,nodev,nosuid,utf8 :/dev/sr1
floppy -fstype=auto,async,nodev,nosuid,umask=000,utf8 :/dev/fd0
usbstick -fstype=auto,async,nodev,nosuid,umask=000,utf8 :/dev/sdd1


список загруженных сервисов и некоторые особенности их загрузки:

$ cat /etc/rc.conf | grep DAEMONS | grep -v \#

DAEMONS=(syslog-ng network netfs crond autofs clamav gpm sensors snort esd sysstat)

$ cat /etc/rc.local

#!/bin/bash
#
# /etc/rc.local: Local multi-user startup script.
#
iptables -F
iptables -t nat -F
iptables -t raw -F
iptables -t mangle -F
/etc/rc.d/iptables start
# иногда в этой строке идёт загрузка альтернативных правил iptables
route add # тут прописываю весь роутинг
modprobe nvidia
modprobe powernow-k8
modprobe cpufreq_ondemand # не люблю, когда проц надрывается попусту
cpufreq-set -g ondemand
cpufreq-set -d 1000
modprobe i2c-viapro
modprobe eeprom
modprobe w83627hf
modprobe k8temp
modprobe squashfs #
рекомендую в squash хранить статичный контент
echo "quake3.x86 0 0 direct" > /proc/asound/card0/pcm0p/oss
echo "quake3.x86 0 0 disable" > /proc/asound/card0/pcm0c/oss
alsactl restore
/opt/e17/sbin/entranced


на первый взгляд более логично вынести iptables в /etc/rc.conf (не забываем, что правила для загрузки должны по умолчанию быть в /etc/iptables/iptables.rules в формате, сохранённом командой iptables-save), но, поскольку есть в моей маленькой сети кое-какие особенности работы с мультикастом, мне проще в /etc/rc.local после старта iptables добивать пару-тройку правил или грузить альтернативный набор оных. то есть мой набор правил не статичен. модули, не требующие параметров для работы, можно также выкинуть в /etc/rc.conf без ущерба для здоровья, но откровенно лень. работает - не трожь...

с выбором софта приключилась маленькая эпопея. нужно работать с djvu, сравнив требования evince решил, что qt+djvulibre будет разумнее, чем этот gtk монстрик. потом начались "чудеса" с xpdf (оно оказывается имеет трепетную и негасимую ничем любовь к DRM), потом как-то оказалось, что ни xpdf, ни xdvi не в состоянии сохранить документ с именем, написаным не латиницей - от большого ума поставил kdegraphics, потом подсчитал количество хлама, пришедшего с kpdf и kdvi, прослезился, снёс всё и сейчас qt и djvulibre ходят "под ножом" - если будут косяки хоть с одним djvu - снесу напрочь с превеликой радостью (уже снёс). в отлове затаившихся по углам "партизанов" неоценимую помощь оказывает команда:

$ pacman -Qe

но гарантий 100% свободы от "мусора" как не было, так и нет. пример: opera осталась после вырезания qt/kde напрочь (экое свинство!). может ещё чего найду впоследствии.

в остальном - скучно и обыденно:
xmms, ffmpeg, mplayer, mpd+gkrellmpc, gkrellm, w3m, vim, mutt, urxvt (даже xterm-а нет. это - единственная "консолька" в гуях), seamonkey, openoffice, lyx, evince, vsftpd, apache, curlftpfs, stardict (с безумным количеством словарей), cinelerra, easytag, realplayer (нужен для линковки с mplayer-ом), bluefish, eclipse, meld, blender, gimp, gpa, xchm, amyedit, linuxdcpp, wine, mc, pidgin и supertux (пройдены все уровни!). диски пишу growisofs/cdrecord, не гнушаясь набрать команды своими заскорузлыми (и что характерно - не помню, когда запорол болванку в последний раз). вот и весь сказ.

"я еду по дороге, от солнца в глазах темно.
другой бы был рад, что не стало преград,
что можно вперёд, а можно назад,
я тоже хотел бы... но...
но мне - всё равно..."

воскресенье, 9 сентября 2007 г.

tips and tricks - show must go on

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

NVIDIA, Xorg


Подгружаем Composite Extension в Xorg:

sudo nvidia-xconfig –-composite

sudo nvidia-xconfig –-allow-glx-with-composite


Смотрим, что ещё можно наколбасить:

nvidia-xconfig -A


Смотрим на свой Х-сервер:

xdpyinfo

xvinfo

glxinfo

xrestop #(особенно ежели утечки имеют место...)


RPM

Чего у нас тут (поиск – давим “/” и пишем чего трэба):

rpm -qa | sort | less


А шо тут понасовали ?:

rpm -ql имя_пакета


А это откуда ??? :

rpm -qf Путь_к_файлу/файл

rpm -qf `which файл`


Фунтик вроде бы и есть... но ушёл... далеко ушёл:

sudo rm -rf `rpm -ql имя_пакета`


Собираем из spec-а:

rpmbuild -bb Путь_к_spec_файлу/file.spec


Устанавливаем несколько версий пакетов (особенно для kernel полезно):

rpm -i пакет.rpm


Апгрейдим установленные пакеты (в живых должен остаться только один...):

rpm -Uhv пакет.rpm


Прочая... прочая... прочая...

Ежели файлов туча, а надоть их того...:

for i in `ls /каталог/`; do

mv $i /другой_каталог

done

или

(cd каталог; ls|xargs -i mv {} другой_каталог)


Удаляем хлам, старше 2-х недель:

find /Путь_к_файлам/файлы* -mtime +13 -exec rm {} \;


Удаляем файлы из списка:

cat list.txt | tr '\n' '\000'| xargs -0 rm -f


Обнулить файл:

>file

echo > file


И что у нас внутри ??? :

sudo dmidecode
hwinfo

lspci

lsdev

cat /proc/cpuinfo

cat /proc/interrupts

procinfo


А чтой-то винтик не шуршит ???:

smartctl -a /dev/ВИНТИК

hdparm -i /dev/ВИНТИК

fdisk -l


О чём Вы мне, Мадам, орали, когда я Вас грузил ???:

dmesg


Сколько секунд Юникс живе среди нас:

echo "GMT = `date +%s` seconds since 1970"


Хто здесь?! ACHTUNG!!!:

last

who

w


Что-то с памятью моей стало...:

free

vmstat


Сколько осталось на хардах под порнуху ???:

df -h


А сколько отъел этот каталог ? :

du -sh /каталог


Размер всех директорий в данном каталоге :

find . -maxdepth 1 -type d -exec du -sk {} \; | sort -rn


Файло – на чтение-запись!!!

find ./ -type f -exec chmod 644 {} \;


Каталоги – открывайте врата!

find ./ -type d -exec chmod 755 {} \;


Поиск файлов принадлежащих специфическому юзеру и перевод их нa другого:

find ./ -uid 0 -exec chown 500 {} \;


Перевод имен файлов и директорий в определенном каталоге в нижний регистр:

for x in *; do mv "$x" "`echo $x | tr [A-Z] [a-z]`"; done


Удаление пропусков в именах файлов и директорий и подстановка нижней черты “_” в определенном каталоге:

for x in *; do mv "$x" `echo $x | sed -e 's/ /_/g'`; done

или

for x in *; do mv "$x" ${x// /_}; done


Что вообще происходит ??? :

top

ps aux

pstree


Re: Как удалить символы из строки средствами bash?

a="1 2 3 4" ; b=${a// /} ; echo $b

1234


Меняем время на часах:

допустим, что сейчас 31 июля 23:30:04 года 2007-го:

sudo date “073123302007.04”


теперь сбросим это время на часы компа:

sudo /sbin/hwclock --systohc


Монтируем ftp в файловую систему (для curlftpfs версии 0.9.1 и выше)
выполняем скрипт таким образом (опция codepage - не сочтите за рекламу):
$
~/bin/mount_ftp kernel.org
для размонтирования достаточно выполнить mount_ftp без аргументов. монтирование пользователем без параметра allow_root крайне нежелательно (с точки зрения администратора по крайней мере).

$ cat ~/bin/mount_ftp

#!/bin/sh
mount_folder="/mnt/ftp"

if [ "`mount | grep $mount_folder`" == "" ] ; then
sudo curlftpfs ftp://$1 $mount_folder -o \

codepage=cp1251,uid=1000,gid=100,allow_other
else sudo fusermount -u $mount_folder && \
sudo curlftpfs ftp://$1 $mount_folder -o \

codepage=cp1251,uid=1000,gid=100,allow_other \
|| { echo "error occured or you just unmount your ftp" && exit ; }
fi
# EOF


несколько полезных программ для поддержания хорошего настроения:

snort
aide
rkhunter
chkrootkit



AUDIO/VIDEO

Переводим видео из avi в gif :

mplayer -vo png video.avi

convert -dispose previous -delay 10 -page +0+0 *.png animation.gif


Делаем “сдвиги” в видеофайлах:

ffmpeg -i 1.avi -padcolor 00FF00 -padleft 100 -s 630x480 2.avi

Слушаем радио:

mplayer http://адрес:порт/точка_монтирования

N.B. По http://адрес:порт/точка_монтирования.m3u или http://адрес:порт/точка_монтирования.pls нам “выдадут” плейлист, но нам он не нужен. Можно сохранить плейлист, открыть и посмотреть, куда именно обращаться.


Смотрим мультикаст видео:

mplayer udp://@адрес:порт

Смотрим, что у нас с видео и аудио кодеками:

mplayer -vc help

mplayer -ac help

mencoder -ovc help

mencoder -oac help

ffmpeg -formats


Смотрим наши “демуксеры”:

mplayer -audio-demuxer help


Перебиваем индексы в битом видео для работы “перемотки”

mplayer -forceidx file.avi


Делаем видео из jpg файлов:

mencoder "mf://*.jpg" -mf fps=25 -ovc copy -o file_jpg.avi
Прикручиваем к этому видео звуковую дорожку:
mencoder file_jpg.avi -o file_jpg_snd1.avi -oac copy -ovc copy -audiofile audio.mp3
Прикручиваем к этому видео вторую звуковую дорожку:

ffmpeg -i file_jpg_snd1.avi -i audio2.mp3 -vcodec copy \

-acodec copy file_jpg_snd2.avi -newaudio


Потрошим DVD:

ffmpeg -i /media/dvd/VIDEO_TS/VTS_01_1.VOB \

-acodec copy -map 0:2 audio.ac3


FFmpeg version SVN-r9451, Copyright (c) 2000-2007 Fabrice Bellard, et al.

configuration: --prefix=/usr/local --mandir=/usr/share/man --enable-libmp3lame --enable-libogg --enable-libvorbis --enable-libfaad --enable-libfaac --enable-libxvid --enable-liba52 --enable-pp --enable-swscaler --enable-gpl --enable-gprof --enable-libx264 --enable-libamr-nb --enable-libamr-wb --enable-pthreads --enable-x11grab --enable-libtheora --cc=/home/sda/bin/gcc

libavutil version: 49.4.1

libavcodec version: 51.40.4

libavformat version: 51.12.1

built on Jun 29 2007 21:03:07, gcc: 4.2.0
Input #0, mpeg, from '/media/dvd/VIDEO_TS/VTS_01_1.VOB':
Duration: 00:25:11.8, start: 0.287267, bitrate: 5680 kb/s
Stream #0.0[0x1e0]: Video: mpeg2video, yuv420p, 720x576, 7500 kb/s, 25.00 fps(r)
Stream #0.1[0x80]: Audio: ac3, 48000 Hz, 5:1, 448 kb/s
Stream #0.2[0x81]: Audio: ac3, 48000 Hz, 5:1, 384 kb/s
Stream #0.3[0x82]: Audio: ac3, 48000 Hz, stereo, 96 kb/s
File 'audio.ac3' already exists. Overwrite ? [y/N] y
Output #0, ac3, to 'audio.ac3':
Stream #0.0: Audio: ac3, 48000 Hz, 5:1, 384 kb/s
Stream mapping:
Stream #0.2 -> #0.0
Press q to stop encoding
size= 37988kB time=810.4 bitrate= 384.0kbits/s
video:0kB audio:37988kB global headers:0kB muxing overhead 0.000000%
Received signal 2: terminating.

*******************************************************************************************************


разбираем "на пальцах". выше - dvd с тремя аудио дорожками и одной видео:
Stream #0.0[0x1e0]: Video: mpeg2video, yuv420p, 720x576, 7500 kb/s, 25.00 fps(r)
Stream #0.1[0x80]: Audio: ac3, 48000 Hz, 5:1, 448 kb/s
Stream #0.2[0x81]: Audio: ac3, 48000 Hz, 5:1, 384 kb/s
Stream #0.3[0x82]: Audio: ac3, 48000 Hz, stereo, 96 kb/s


а команда в самом верху делает копию второй аудиодорожки в audio.ac3 (без потерь),
соответственно можно скопировать все 3 аудиодорожки а потом - запихать их в пережатую (надеюсь, что x264-м кодеком) авишку, огг или что-там-душа-просит... (“потрошить” можно практически всё, равно как и “собирать”)


Тупенько рипаем DVD (параметры x264encopts лучше сразу положить в ~/.mplayer/mencoder.conf):

mencoder dvd://1 -oac copy -ovc x264 -o dvdrip.avi

или

mencoder dvd://1 -oac mp3lame -ovc x264 -o dvdrip.avi


Собираем несколько видеофайлов в один (можно с -nosound если вдруг чего):

mencoder file.avi file1.avi file2.avi ... -o result.avi


Делаем мувик для мобилки с экраном 128x96:

ffmpeg -i file.avi -s sqcif -ar 8000 -ac 1 -ab 12.2K file.3gp

или

ffmpeg -i file.avi -s 128x96 -ar 8000 -ac 1 -ab 12.2K file.3gp


Кодируем mencoder-ом на лету видео с ТВ-тюнера в файл tv.avi:

mencoder -tv driver=v4l2:width=768:height=576:device=/dev/video0:norm=SECAM:buffersize=128:f ps=25:audiorate=22050:forceaudio -oac mp3lame tv:// -o tv.avi -ovc lavc -lavcopts vcodec=mpeg4:autoaspect=1:vbitrate=1200:vme=4:vqscale=3:vb_strategy=1:keyint=30


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

Вот ещё несколько ссылок по кодированию видео с помощью mplayer/ffmpeg:

http://strannick.blogspot.com/2007/04/x264.html

http://www.linuxjournal.com/article/9005

http://www.opennet.ru/base/sys/mencoding_pop.txt.html

Проект ffmpeg развивается очень динамично, поэтому информация по использованию опций кодеков (особенно x264) “устаревает” довольно быстро. Если что-то не получается – не паникуйте. Кодирование видео – не простая дисциплина, старайтесь больше экспериментировать и читайте документацию к каждому используемому кодеку.