Автозапуск приложений в IceWM: IceWM autostart

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

Как говорит документация, которую всё равно настоящие джигиты не читают, в IceWM начиная с версии 1.2.13 имеется бинарный файл icewm-session. Именно он запускает все компоненты IceWM, такие как собственно icewm, системный лоток icewmtray, скрипт автозапуска startup, и другие. Так что для автозапуска приложений в IceWM правим (или создаём сами) файл ~.icewm/startup в домашнем каталоге. Это обычный bash-скрипт, с тем лишь отличием, что каждая команда в нём заканчивается знаком амперсанда &, что означает параллельный запуск приложений (скрипт не будет ждать, когда приложение завершится).

Например, удобно, чтобы сразу запускалась стильная консоль Yakuake и полезный системный монитор Conky. Вот как это сделано в ~.icewm/startup :

#! /bin/bash

/usr/bin/myscript/conkydetailedstart &
yakuake &
Снова обращаю внимание на амперсанды & в конце строк, так как без них скрипт будет ожидать завершения предыдущей команды (а этого никогда не будет). И не забудьте сделать файл исполняемым:
chmod 755 ~.icewm/startup
Можно написать ещё более продвинутые скрипты, которые, например, автоматически включают клавишу NumLock при старте IceWM и меняют настройки языка. Вот, например:
#! /bin/bash
xscreensaver &
xmms &
numlockx on &

export LANG=en_EN

export LC_ALL=en_EN
export LANGUAGE=en_EN
Помимо вышеперечисленных бубенчиков и свистулек, можно таким образом запускать и более полезные вещи, например менеджеры иконок рабочего стола (EIconMan из состава EDE, который Equinox Desktop Manager, или idesk). При этом EIconMan позволяет создавать и настраивать иконки через контекстное меню по нажатию правой клавиши мыши (таскать иконки в нём - тоже одно удовольствие).

Так же можно добавить в автозапуск раздачу привилегий программам. Например, чтобы дать RT-привилегии программе yakuake при старте, можно написать:
ps aux | grep "yakuake" | grep --invert-match "grep" | awk '{print $2}' | xargs chrt -p

или вот так:

chrt -p $(pgrep yakuake)
Так ваша любимая консоль будет иметь полный приоритет.


Внеклассное чтение
На IceWM есть хорошая и доходчивая документация, в которой это и описано. Как сделать автостарт для Linux-приложений в иксах для других сред и оконных менеджеров, рассказывается в этой замечательной гентушной вики, коя так славно читается длинными зимними вечерами.

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

26 комментариев: |высказаться!| RSS-лента дискуссии.|
imposeren комментирует...

а просто ~/.xinitrc IceWM не запускает при старте?

ну и не все приложения надо писать с детачем (&). Некоторые процессы сами детачатся, или просто выполняются за секунду и всё.

У вас стоит IceWM, а зачем при этом ставить ОГРОМНЫЙ кусок kde, который вместе с yakuake тянется (kdelibs, konsole...)? Есть неплохая альтернатива — yeahconsole.

Кстати, чем пользуетесь для переключения раскладок? Или в IceWM есть что-то своё?

Анонимный комментирует...

>ps aux | grep "yakuake" | grep --invert-match "grep" | awk '{print $2}' | xargs chrt -p

Может, лучше будет «chrt -p $(pgrep yakuake)»?

virens комментирует...

@ Ярослав Клюев пишет...
а просто ~/.xinitrc IceWM не запускает при старте?
Не запускает. По крайней мере, на Этче и Ленни у меня не запускается. Нужен отдельный стартап.

ну и не все приложения надо писать с детачем (&)
Грёбаный блоггер, блин. Он вот так амперсанды отображает.

У вас стоит IceWM, а зачем при этом ставить ОГРОМНЫЙ кусок kde, который вместе с yakuake тянется (kdelibs, konsole...)? Есть неплохая альтернатива — yeahconsole.
Я не иду на компромиссы :-) Видел я эту эх,консоль. Не летает (с). Яквейк красивше, и шут с ними с кделибсами, всё равно матлаб уже установлен (а это 3Гб).

Кстати, чем пользуетесь для переключения раскладок?
Дык штатный иксовый переключатель, что в иксорге. В формате "настроил и забыл".

@ nnz пишет...
Может, лучше будет «chrt -p $(pgrep yakuake)»?
Лучше (кстати спасибо, вставил в пост), но на этот пример ссылается ещё один пост, который пока не опубликован.

virens комментирует...

Вдогонку к моему же комменту: амперсанды, оказывается, корёжит не блоггер, а шрифты в шаблоне, так что поклёп на блоггер беру назад. Ничего, с шаблоном мы скоро разберёмся ;-)

Кстати, что-то я не смог найти ссылок или скриншотов на EIconMan. Негуглёж у меня. Поможите, люди добрыя...

Алексей Убоженко комментирует...

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

imposeren комментирует...

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

Настройте уже, что-ли, комментарии так что бы форма отправки в теле поста отображались?

drakulavich комментирует...

IceWM тот ещё old school. Гном с автозапуском дружелюбен донельзя :-)

"гуглить в яндексе" заберу в закрома интересных выражений :-)

virens комментирует...

@Алексей Убоженко
Давно использую icewm, правде единственное, что меняю - делаю двойную высоту
Хм, а я вот эту функцию никогда не понимал. Но на вкус и цвет...

@Ярослав Клюев
Ах, ну да, вам же редкоиспользуемая третяя раскладка не нужна
Не бачу я на мове :-))

как индикатор можно и на клаве чего-нибудь использовать.
Так и делаю. А что, удобно.

Настройте уже, что-ли, комментарии так что бы форма отправки в теле поста отображались?
Это особенность шаблона.
Багрепорт принят с благодарностью.
Починим.


@Dr.AKULAvich,
IceWM тот ещё old school.
Не знаю. Я к нему, к АйсВМу, привык. Быстрый, настраиваемый, выглядит приятно, трей работает.

Гном с автозапуском дружелюбен донельзя :-)
Шутки не понял. Поясни.

Кстати о гноме. Не холивара ради, но на свой университетский ноут взгромоздил убунту 10.10. Из плюсов: вайфай из коробки. Из минусов: тормозной гном просто до ужаса, автозапуска не нашёл, всё через наутилус, монтирование в папки по uuid... иёёё... Вытерпел два дня и сбежал в дебиан под айсвм.

"гуглить в яндексе" заберу в закрома интересных выражений :-)
Давай-давай, я тебя потом как SCO троллить буду копирайтами :-)

Да, кстати, чемпионат по загуглению EIconMan вольным стилем можно считать открытым. Я про него слышал, народ говорил, что можно такое сделать, но я его не видел. Победителю отгружается благодарность с бесплатной международной доставкой :-)

drakulavich комментирует...

@virens
Дружелюбный он потому, что к скриптам прибегать нет нужды. Запустил gnome-session-properties, добавил необходимые программы, всё.

uuid-ами почему-то любит флешки обзывать. С накопителем всё нормально. Как я понимаю, сие недоразумение связано с заменой hal'а какими-то udisks.

Vladimir Khodakov комментирует...

ubuntu != gnome, попробуйте гнум в нормальном дистрибутиве =)

автозапуск находится в Система => Параметры => Запускаемые приложения

virens комментирует...

@Dr.AKULAvich, 19.07.2010 Дружелюбный он потому, что к скриптам прибегать нет нужды. Запустил gnome-session-properties, добавил необходимые программы, всё.
Ну да, запустил Vim, добавил нужные программы, и всё, :wq :-)

uuid-ами почему-то любит флешки обзывать.
Некошерно. Особенно меня это бесило, когда в убунте наутилус отвалился (проблемы с винчестером).

@Valdos the Fat Troll
ubuntu != gnome, попробуйте гнум в нормальном дистрибутиве =)
Да я знаю. Просто убанта под руку подвернулась, а там Kile стартует по минуте.

оффтопик: хотя псевдоним Valdos the Fat Troll тонко намекает нам, комменты более чем адекватные. Удивительное рядом :-)

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

Анонимный комментирует...

Вместо kile попробуй texmaker или, лучше, textmakerx

и в дополнение: в конфиге icewm можно прописать и скрипт который будет выполняться при выходе. Да и вообще там отличный набор *Command:
$ cat ~/.icewm/preferences | grep '.*Command='
# MailCommand="xterm -name pine -title PINE -e pine"
# NewMailCommand=""
# LockCommand=""
# ClockCommand="xclock -name icewm -title Clock"
RunCommand="gmrun"
OpenCommand="xdg-open"
# TerminalCommand="xterm"
LogoutCommand="wm-session-end --end"
# LogoutCancelCommand=""
ShutdownCommand="wm-session-end --shutdown"
RebootCommand="wm-session-end --reboot"
# CPUStatusCommand="xterm -name top -title Process\ Status -e top"
# NetStatusCommand="xterm -name netstat -title 'Network Status' -e netstat -c"
AddressBarCommand="xdg-open"

morbo комментирует...

>выглядит приятно, трей работает.

Выглядит приятно только с приятной шкуркой, а "трей работает" - это для IceWM звучит как нечто противоестественное. Весь Lenny и Squeeze трей через раз запускается в виде отдельного окошка. Чтобы полечить приходится перезапускать IceWM методом убийства иксов Ctrl-Alt-Backspace, т.к. при глюкнувшем трее кнопка а-ля "Пуск" не работает. Уж его сколько латали и перелатывали в рассылке debian-russian, патчи попадали в unstable и testing, а трей у меня так толком и не работает. Пользуюсь LXDE (Openbox).

virens комментирует...

@h4tr3d комментирует...
Вместо kile попробуй texmaker
Не люб он мне. Мне кайл милей.

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

@morbo комментирует...
Выглядит приятно только с приятной шкуркой
Так в чём проблема? Идущие по умолчанию - уродливы, согласен. Мейнтейнер пакета в Дебиан мой вопрос, а зачем совать эту жуть, проигнорировал.

а "трей работает" - это для IceWM звучит как нечто противоестественное. Весь Lenny и Squeeze трей через раз запускается в виде отдельного окошка.
Морбо, у тебя неправильный Дебиан :-) Про сквизи не знаю, но в Ленни у меня на двух машинах трей работает без малейших нареканий. IceWM из коробки.

при глюкнувшем трее кнопка а-ля "Пуск" не работает.
Как ты это делаешь? Мне просто интересно.

Rakshas комментирует...

> Весь Lenny и Squeeze трей через раз запускается в виде отдельного
> окошка. Чтобы полечить приходится перезапускать IceWM методом
> убийства иксов Ctrl-Alt-Backspace, т.к. при глюкнувшем трее
> кнопка а-ля "Пуск" не работает.

Я такую проблему решил следующим образом:
http://grey-rakshas.blogspot.com/2010/12/icewm.html
(Прошу прощения у автора за "самопиар")

virens комментирует...

@Rakshas комментирует...
Я такую проблему решил следующим образом
Пиар по делу, но выше говорят не об этом, а о том, что часто трей в IceWM не работает, как надо. Я с этим не сталкивался, но народ говорит, и у меня нет оснований народу не верить.

Rakshas комментирует...

Ну у меня как-раз и запускался трей в отдельном окне, когда в него одновременно лезли 2 и более программ. Как только я разнес запуск программ по времени, проблема прошла.

virens комментирует...

Rakshas, ёлки зелёные, это ОЧЕНЬ важный момент, а ты его нигде не озвучил. Это может быть причиной того, что это чёрное окно появляется. Здесь бы и засабмиттить багрепорт команде Дебиана ( и ещё автору отписать). Народ требует добавления этого в пост (и, может быть, отдельного поста на эту тему).

bik комментирует...

Есть проблемка с IceWM (ОС Debian-6-64bit), а именно с автостартом приложений, запускаемых файлом ~/.icewm/startup.
Содержимое startup:

#!/bin/sh
feh --bg-scale /home/user/Изображения/backgrounds/showtime.jpg &
fbxkb &
parcellite &
gvolwheel &
hillman &

При первом включении ПК или после перезагрузки все работает нормально. Однако, если выйти из системы (перелогиниться), то при повторном входе в систему также все запускается, но стартует какое-то терминальное окошко, которое ничем закрыть не удается, не работают hotkey'и программы можно запустить только через меню IceWM. Если закрыть например, parcellite, то повторно можно его и не запустить. Выйти из ОС можно только завершением процесса icewm или icewm-session через системный монитор.
Никто не сталкивался с подобным? Что-то я пока не знаю куда "копать"

bik комментирует...

Решил проблему следующим образом:
#!/bin/sh
feh --bg-scale /home/user/Изображения/backgrounds/showtime.jpg &
sleep 2 &&
fbxkb &
sleep 1 &&
parcellite &
sleep 2 &&
gvolwheel &
sleep 2 &&
hillman &

mul.sasha комментирует...

Читаю данные статьи автора давно уже, если возможно просил бы помочь вас (ну и тех кто не откажется). Вобщем проблемы такие:
1. Разрешение монитора как менять то в Айсе? (ну родной программы для настройки нету). (Debian Squeeze)
2. На одном компе установил Дебиан 5 (с нетинстала) и прекрасно запускается ххкв по рецептам автора, а вот та другом компе (изначально там Хfce, поставил Айс, ххкв не стартует.

theoden комментирует...

А мне нравится, когда сплэш xscreensaver при входе не вываливается:
xscreensaver -no-splash &

а в shutdown можно добавить
killall xscreensaver

Подсмотрено здесь: http://www.jimbrooks.org/web/linux/x_window_system.php

Анонимный комментирует...

команды iwconfig mode iwconfig essid прописанные в STARTUP, не выполняются, кроме одной - fxkbd.
Это доказывается тем, что после загрузки появляется значок переключателя клавиатуры, а сеть не находится.

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

Это доказывается тем, что появляется 2й значок перекл. клав-ы, и НАХОДИТСЯ СЕТЬ.

ВОПРОС: в чем тут дело? (синтаксис, как я понимаю, правильный, раз сам файл во второй раз выполняет все записанные в него команды) Чего -то наверно не хватает при первой автоматической загрузке?

Unknown комментирует...

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

virens комментирует...

@Ivan Zyryanov комментирует...
Вот вы говорите что айс такой хороший, я сразу же наткнулся на огромную для меня проблему, которую так решить и не смог: нет прозрачности.
Прямой поддержки композитинга у IceWM, понятное дело, нет - это оконный менеджер вообще-то, а не графическая среда. Но это не значит, что её нет вообще: запускаем xcompmgr, и далее вызываем команду transset-df (её можно повесить на хоткей) для того, чтобы менять прозрачность окон.

Мне например удобно печатать в консоли когда на заднем плане располагается страница с командами
Собственно, я тоже использую полупрозрачность, правда, для других целей. Через transset-df всё работает (IceWM 1.2.35 из Lenny). Скриншот.

Анонимный комментирует...

У меня на двух компьютерах одинаковые Wheezy и одинаковые Icewm, на одном все нормально, на другом Icewm работает, но не клеятся обои - вместо них чернота. Сделал startup как у вас - но он не выполняется. То есть если запустить его принудительно, то обои появляются, но при запуске Х11 про startup "забывают". ЧЯДНТ?

Отправить комментарий

Подписаться на RSS-ленту комментариев к этому посту.