Блог Александра Башкирова

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

Linux

Подписаться на эту метку по RSS

Осваиваем DWM: проблемы и решения (настройка трея, запуск dwm через систему альтернатив)

Просмотров: 5581Комментарии: 0
Linux

Ссылка на аепрый пост, посвященный DWM: клиц

Итак, как мы помним, в DWM нет плагинов, но есть патчи. Таким образом, чтобы эХсперементировать над DWM с патчами, не трогая основной DWM из пакета, появляется задача: скомпилировать чистый DWM в папке пользователя и настроить его запуск, не трогая dwm из пакета.

Решение:

Скачиваем исходные коды по ссылке http://dl.suckless.org/dwm/

Распаковываем в ~/dwm, переходим в него, делаем make, получаем ошибку:

alexander@alexander-ThinkPad-X201 ~ $ cd ~/dwm
alexander@alexander-ThinkPad-X201 ~/dwm $ make
dwm build options:
CFLAGS   = -std=c99 -pedantic -Wall -Wno-deprecated-declarations -Os -I/usr/X11R6/include -I/usr/X11R6/include/freetype2 -D_BSD_SOURCE -D_POSIX_C_SOURCE=2 -DVERSION="6.1" -DXINERAMA
LDFLAGS  = -s -L/usr/X11R6/lib -lX11 -lXinerama -lfontconfig -lXft
CC       = cc
CC drw.c
drw.c:5:22: fatal error: X11/Xlib.h: Нет такого файла или каталога
 #include <x11 xlib.h="">
                      ^
compilation terminated.
make: *** [drw.o] Ошибка 1

Лечим:

sudo apt-get install libx11-dev

Опять получаем ошибку, но уже другую:

drw.c:6:25: fatal error: X11/Xft/Xft.h: Нет такого файла или каталога

лечим:

sudo apt-get install libxft-dev

получаем:

/usr/include/X11/Xft/Xft.h:39:22: fatal error: ft2build.h: Нет такого файла или 
каталога

пробуем: make

получаем:

/usr/include/X11/Xft/Xft.h:39:22: fatal error: ft2build.h: Нет такого файла или каталога

лечим:

sudo apt-get install libfreetype6-dev

Этот файл лежит в /usr/include/freetype2

Правим config.mk

Находим строчку: INCS = -I${X11INC} -I${FREETYPEINC}

Правим: INCS = -I${X11INC} -I${FREETYPEINC} -I/usr/include/freetype2

Пробуем make

получаем:

X11/extensions/Xinerama.h: Нет такого файла или каталога

Но в config.mk говорится, что Xinerama, comment if you don't want it - так что ищем строки

# Xinerama, comment if you don't want it
XINERAMALIBS  = -lXinerama
XINERAMAFLAGS = -DXINERAMA

и комментируем их

пробуем: make

Ура! Все скомпилировалось :)

Теперь патч,который выводит системный трей

Скачиваем его: http://dwm.suckless.org/patches/dwm-6.1-systray.diff (для версии 6.1)

Патчим:

patch < dwm-6.1-systray.diff

Получаем ошибку:

1 out of 33 hunks FAILED -- saving rejects to file dwm.c.rej

Ручками правим в пропатченном dwm.c строку 663: с XMoveResizeWindow(dpy, m->barwin, m->wx, m->by, m->ww, bh); на resizebarwin(m);

Компилируем: make

Все ок.

Теперь задача номер два: запустить наш DWM при входе. Для этого нам поможет

встроенная в ubuntu система альтернатив

.

Добавляем в систему альтернативу. Смотрим, где располагается текущий dwm:

alexander@alexander-ThinkPad-X201 ~ $ which dwm

/usr/bin/dwm

Добавляем альтернативу при помощи ключа --install утилиты update-alternatives (для памяти:   --install <ссылка> <имя> <путь> <приоритет>)

alexander@alexander-ThinkPad-X201 ~ $ sudo update-alternatives --install /usr/bin/dwm dwm /home/alexander/dwm/dwm 1065
[sudo] password for alexander: 
update-alternatives: используется /home/alexander/dwm/dwm для предоставления /usr/bin/dwm (dwm) в автоматический режим

Собственно, смотрим, что получилось... (выходим из текущего WM, и запускаем DWM)

Трей есть!

Далее, если надо вдруг удалить альтернативу, то используем ключ   --remove

  --remove <имя> <путь>

В данном случае:

alexander@alexander-ThinkPad-X201 ~ $ sudo update-alternatives --remove dwm /home/alexander/dwm/dwm
[sudo] password for alexander: 
update-alternatives: используется /usr/bin/dwm.default для предоставления /usr/bin/dwm (dwm) в автоматический режим

Для истории:

--config - настраивает альтернативу. Например, sudo update-alternatives --config x-www-browser - может сменить браузер по умолчанию.

ls -al /etc/alternatives/ - посмотреть список файлов-ссылок на альтернативы

Основные ссылки:

editor — редактор текста (типа nano, vi, vim, emacs)

ftp — ftp-клиент

x-cursor-theme — тема курсора

x-session-manager — графическая сессия (kde, gnome, openbox)

x-terminal-emulator — эмулятор терминала

x-window-manager — оконный менеджер (kwin, metacity, openbox)

x-www-browser — веб-браузер

Ну и напоследок, так сказать - выводы про dwm.

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

Осваиваем DWM: проблемы и решения (как выйти из сеанса пользователя через консоль, автозапуск в DWM и т.д.)

Просмотров: 4194Комментарии: 0
Linux

Меня что-то торкнуло в сторону тайлинговых WM (windows manager, менеджер окон). Идея понравилась :) особенно на широкоформатном дисплее ноутбука... правда, есть одно "но": как правило, настройке эти DM подвергаются достаточно сложно. Начать "смотреть" решил с "самого простого" - DWM.

Оказалось, правда, что он самый сложный. Потому что настройка его сводится к измнению заголовочного C-файла, и перекомпиляции. Афигеть! Но "just for fun" попробовать стоит.

В общем, я буду потихоньку описывать тут - что сделано, что как решил...

Итак, первое. Вы установили DWM (ставится из репозиториев Убунты) и зашли в него. Посмотрели. Захотели что-нибудь запустить... а как - непонятно: меню нет, значков нет, ничего нет! Мышка есть - но зачем она, непонятно.

Да, DWM управляется с клавиатуры. И самое первое, что надо запомнить - это Shift-Alt-Enter. Запуск терминала. Кроме того, DWM поддерживает Dmenu - удобная вещь для запуска разных приложений. Вызывается через Alt-P. Alt-Num - переходы по "тегам" (9 областей). Alt-Shift-c - закрыть активное окно.

Второе. Вы захотели выйти из DWM.

Решается двумя путями:

1) Alt-Shift-q - закрыть dwm (штатная возможность DWM, ни за что бы не догадался).

2) Воспользоваться странным, но универсальным способом: killall -u `whoami` (я вообще себе в .bashrc прописал alias logoff='killall -u `whoami`' и использую logoff из консоли).

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

Третье. Обоев тоже нет, а среда графическая.

Ну, тут вроде должно быть просто: есть feh, есть nitrogen (я лично предпочитаю его)... но вот засада: нет в DWM startup скриптов. Никаких. Вообще!

Что в таком случае делают тру-линуксодиды? Правильно, используют .xinitrc (лично я давно не использовал этот как мне казалось - рудимнет, на чём и погорел, но об этом ниже). Так вот, раньше как было: в папке пользователя создаешь .xinitrc - пишешь туда, что нужно, и вуаля, оп! всё работает! Но, как выяснилось .xinitrc - "не работает". Теперь автостарт при старте иксов подхватывает ~/.xsessionrc - беда не велика, будем работать с ним.

Дальше - больше и интереснее. Если просто прописать в .xsessionrc - nitrogen --restore, то обои "из нитрогена" будут "переписывать" обои используемых WM. Для обоев может и не критично, а вот разнести запуск каких-то специфических для WM вещей хотелось бы... В итоге родилось такое вот извращенское решение:

(sleep 5

if [ `ps -aux | grep '0:00 dwm' | wc -l` -eq 2 ] ;

then

  nitrogen --restore

fi;) &

Тут, кстати, надо сделать пару пояснений. Идея в том, чтобы после того, как загрузится DWM (или другой WM) - убедиться что загружен именно DWM, и, если это так - провести нужные нам запуски (в данном примере - только нитроген). Задержка в 5 секунд нужна, чтобы DWM загрузился (на самом деле, это очень быстрая и легкая среда - грузится намного быстрее, секунды за 3. Остальные 2 - страховка).

Ну и для памяти: ps -aux | grep xfce-session - позволяет узнать, запущен ли xfce в данный момент (может, кому пригодится).

Продолжение наверное следует :)

Если вам надо быстро нарисовать прототип мобильного приложения или веб-сайта...

Если вам надо быстро нарисовать прототип мобильного приложения или веб-сайта, то рекомендую воспользоваться проектом pencil.

Этот проект - это редактор, где можно достаточно быстро построить макет (прототип) интерфейса. Из интересного: редактор построен на движке Mozilla Gesko, соответственно, распространяется и как независимое приложение (linux, windows), и как... плагин для Firefox. Забавно :)

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

Ссылки:

http://pencil.evolus.vn/ - сайт проекта. Строго говоря, именно этот проект "умер", и на смену ему пришло развтие проекта энтузиастами;

https://addons.mozilla.org/ru/firefox/addon/pencil/ - сайт аддона для Firefox. Отсюда его можно сразу установить в браузер;

https://code.google.com/archive/p/evoluspencil/downloads - сайт нового проекта. Отсюда можно взять как версии для win && lin, так и xpi - для firefox. Тут же, если поискать - отыщется и базовые элементы для отрисовки интерфейса Андроид;

https://code.google.com/archive/p/android-ui-utils/downloads - тут можно разжиться дополнительными элементами для отрисовки интерфейса Android;

Из плюшек. Приложение кроссплатформенное. В приложение интегрирован выход на OpenClipart - что есть "совсем хорошо". Ну и удобно... Например, такую картинку я накидал за пару минут буквально:

ну и скриншот:

Вышел Linuux Mint 18

Просмотров: 2665Комментарии: 0
Linux

30/06/2016 вышла очередная (18ая) версия моего любимого inux-дистрибутива - Linux Mint.

Для начала - напомню, что Linux Mint это в общем и целом - очень, очень хорошо допиленная Ubuntu. И хотя Ubuntu вполне пригодна к использованию "из коробки", Mint требует намного меньше телодвижений и в целом производит более благоприятное впечатление. (Хотя бы отсутствием Unity и присутствием практически всех возможных кодеков). В данном случае - Linux Mint 18 построена на базе Ununtu 16.04.

Linux Mint поддерживается до 2021 года - что приятно, LTS дистрибутивы вообще приятная вещь))

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

1) Возможность в менеджере программ (mintinstall, он же менеджер обновлений) выбрать версию ядра, на которой работает система. Раньше я менял ядро - но было сие нетривиально... Ну, не в "два клика".

2) Использование X-apps. Это , насколько я понял из релиза, такая тема... Есть набор приложений, который работает и выглядит в любом поддерживаемом окружении абсолютно одинаково.

С точки зрения разработчиков, основные идеи X-apps выглядят так:

- Использование современных технологий (GTK3 для поддержки HiDPI, gsettings и т.д.)

- Использование традиционных интерфейсов пользователя

- Работоспособность в любой среде

- Быть обратно совместимым, иметь возможность работать на как можно большем числе дистрибутивов

Понятное дело, что есть и другие улучшения - например, новая тема Mint-Y. Но они на мой взгляд, менее значимы, чем перечисленные выше.

Кроме того, в дистрибутиве обновилось всё, что могло быть обновлено по объективным показателям (имеются в виду версии компонент системы). Обеспечили поддержку exFAT, обновили коллекцию обоемв :)

Ну и - на форумах вовбсю обсуждают, что через месяц где-то можно будет перейти с 17.3 на 18. Но на оффсайте ничего такого пока не написано.

На момент написания поста, кстати, дистрибутив доступен в версии Mate и Chinnamon. Остальные обещают выпутить чуть позже, где-то в течение месяца.

ПС. Что касается меня - то я пока поживу на 17.3, до конца срока поддержки, то есть до 2019 года. А там посмотрим.

И да, как-то невежливо наверное говорить, что Linux Mint - это бесплатное абсолютно легальное ПО, распространяемое под одной из свободных лицензий :)

Ссылка на оф.сайт: https://linuxmint.com/

Ссылка на новости: http://blog.linuxmint.com/?p=3051 и http://blog.linuxmint.com/?p=3052

Чем проиграть .vob в Linux или кое-что об mpeg

Просмотров: 3065Комментарии: 0
Linux

Нашел тут очень старый клон диска с мультиками (клон делал сам, уже не помню чем, но формат там .vob). И решил, что надо бы посмотреть. Ну и - детям "скормить"...

В общем, каково же было моё удивление узнать, что ничего из установленного у меня (MPlayer, Баньши, VLC) не проигрывает файлы с таким расширением. Реально - первый случай, когда минт чего-то не смог проиграть.

В общем, поискал, выяснил, что можно проблему решить, установив ffmpeg:

sudo add-apt-repository ppa:mc3man/trusty-media && sudo apt-get update
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8E51A6D660CD88D67D65221D90BD7EACED8E640A
sudo apt-get install ffmpeg

Очень подробно об ffmpeg написано тут: http://help.ubuntu.ru/wiki/ffmpeg

В общем, всё путем. Но. Если вдруг захочется внезапно сохранить мультики в чем-то более удобоваримом, нам на помощь приходит куча конверторов. Они описаны здесь: http://softhelp.org.ua/?p=1825

Я использую только FF Multi Convertor, как наиболее универсальное решение. По крайней мере, на то, чтобы перегнать .vob и .mp4 в .avi в Linux его более чем достаточно.

sudo add-apt-repository ppa:ffmulticonverter/stable
sudo apt-get update
sudo apt-get install ffmulticonverter

В общем, "счастье есть" :)

Установка PhotoME на Linux

Просмотров: 2467Комментарии: 0
Linux

Ситуация: надо мне поставить PhotoME (http://www.photome.de/home_en.html) на Linux. Естественно, PhotoME только под Windows, и естественно, используем Wine.

Скачиваем отсюда: http://www.photome.de/download_en.html инсталлятор и MS GDI+ библиотеку, устанавливаем... запускаем:

wine /home/alexander/.wine/drive_c/Program\ Files\ \(x86\)/PhotoME/photome.exe

Получаем ошибку:

err:module:import_dll Library MSVBVM60.DLL (which is needed by L"C:\\Program Files (x86)\\PhotoME\\photome.exe") not found

Устанавливаем недостающее:

1) sudo apt-get install winetricks

Примечание: winetricks - полезная программа, которая умеет доставлять всего нужного

2) winetricks vb6run

Устанавливает VBrun - содержащий MSVBVM60.DLL

После этого запуск проходит нормально.

Рабочее окружение на openbox и tint2: допилить и улучшить

В процессе доведения travel-нетбука до состояния "мне удобно" пришла идея использовать итоги "марафона января 2015", и устроить себе рабочее окружение на связке openbox + pcmanfm + tint2.

В общем-то "сказано-сделано". Достаточно подробно весь процесс расписан тут: http://www.alib.spb.ru/blog/page/janvarskij-marafon-post-5-openbox (я остановился на варианте с pcmanfn - так как он дает привычный интерфейс рабочего стола... а nitrogen это все-таки вещь, которая "просто натягивает обои"). Отдельно остановлюсь на выборе панели. tint2 выбрал потому, что она маленькая, легкая, и включает в себя то, что надо: лаунчер и трей. А как же меню? А меню, как выяснилось, мне не очень-то и надо. При наличии appfinder (о нем чуть ниже) оно становится "слегка ненужным". Логика проста: travel-нетбук имеет огрниченное число вариантов использования. От него нужен офис, браузер, скайп и файловый менеджер. Это выносим в лаунчер tint2. Запущенные приложения отображаются в панели по дефолту. Что не хватает: индикатора громкости (ставим volumeicon и автозапускаем его на openbox-сессии) и индикатора раскладки (ставим xxkb и аналогично автозапускаем его).
Немного о настройке tint2: http://www.alib.spb.ru/blog/page/pro-paneli-v-okonnyh-sredah-4(там не описана настройка лаунчера... вообще планирую написать отдельный пост на тему настройки tint2. В принципе, можно посмотреть тут или тут).

Ну и про appfinder. Это пакет из xfce4, независимый, то есть может использоваться не только в xfce, но и в любых других средах, чем мы и воспользуемся. Суть appfinder - отображение списка приложений, поиск приложений по вводу первых букв. (для памяти: sudo apt-get install xfce4-appfinder).

Я его повесил на сочетания Win+Tab, получается, что если мне нужно что-то кроме того, что висит в лаунчере, то это "что-то" можно прекрасно без меню найти. (хотя appfinder с моей точки зрения, это как раз разновидность меню, просто не привязанного к панели).

Ну и пару слов о том, как повесить вызов приложения на сочетания клавиш в lubuntu.

Открываем /home/alexander/.config/openbox (не забываем сделать бекап!!), там ищем секцию <keyboard>, в нее добавляем новый раздел по аналогии

    <keybind key="W-Tab">
      <action name="Execute">
        <command>xfce4-appfinder</command>
      </action>
Перегружаем openbox. Профит.

И дополнительно много толкового по настройке openbox тут: http://www.unix-lab.org/posts/openbox/