Настройка Fluxbox
Материал из Википедии - свободной энциклопедии.
Содержание |
Fluxbox в Gentoo
Что такое Fluxbox
Fluxbox это Оконный Менеджер для X, основанный на blackbox. Он очень быстр и настраивается через несколько файлов конфигурации. Поначалу после emerge fluxbox может показаться череcчур простым, но это руководство поможет вам его настроить под ваши нужды, сделать вид более "презентабельным", как впрочем и расширить его функциональность.
Установка
- emerge fluxbox
Если вы используете gdm или kdm, то fluxbox должен будет автоматически появиться в меню выбора сессии. Если вы хотите использовать стандартный xdm, который идёт в связке с Xorg, то отредактируйте /etc/rc.conf и измените строчку XSESSION="Xsession" на XSESSION="fluxbox".
Если вы не планируете использовать графический менеджер входа в систему (gdm, kdm или xdm), тогда измените файл общей конфигурации /etc/X11/xinit/xinitrc (для всех пользователей) или .xinitrc для каждого отдельного пользователя.
- nano -w /etc/X11/xinit/xinitrc (для всех пользователей)
или
- nano -w ~/.xinitrc (для индивидуальный пользователей)
Для того чтобы запустить fluxbox вам нужно будет что-то подобное:
File: ~/.xinitrc |
|
Запуск других программ при входе в fluxbox осуществляется через .fluxbox/apps, использование которого будет рассмотрено далее в этом руководстве.
Простейшее использование
Когда вы в первый раз запустите fluxbox, перед вами будет пустой фон рабочего стола и маленькая панель инструментов внизу экрана. Интерфэйс довольно интуитивен. Правый клик на рабочем столе вызывает меню fluxbox. Панель инструментов показывает иконки каждого открытого окна.
Экран по умолчанию поделён на четыре рабочих области также как и в KDE. Это значит, что программы ,открытые в одной рабочей области, не появляются в других. Вы можете перемещать программы из области в область, выбирая Send-To в меню, открывающемся на правый клик мыши, или просто перетаскивая окно программы к границе экрана.
Настройка Fluxbox
Теперь, когда у вас есть работающий fluxbox, было бы неплохо его настроить под ваши индивидуальные нужды и рабочие привычки. Давайте проверим файлы в директории ~/.fluxbox
- init: Главный файл конфигурации
- menu: Файл, отвечающий за File that changes the items in your root menu.
- keys: Позволяет менять шорткаты на клавиатуре.
- apps: Содержит информацию о всех программах, которые вы хотите, чтобы fluxbox запомнил (данные вроде позиции окна, его размера и оформления).
- lastwallpaper: Создаётся программой fbsetbg (подробнее о ней далее в руководстве). Этот файл сохраняет информацию о последнем фоне для рабочего стола, дабы в следущий раз вам не нужно было прописывать до него путь при запуске fbsetbg.
Создание ~/.fluxbox/menu
fluxbox-generate_menu
Для использования генератора меню, которые идёт с fluxbox, просто запустите его подобным образом:
- $ fluxbox-generate_menu
Это установит ~/.fluxbox/menu, который вы можете настроить по вашему желанию. Например, добавить поддержку gnome или kde или изменить браузер или term, использующиеся по умолчанию.
menumaker
Menu Maker это программа, созданная для интеграции меню из разных оконных менеджеров таким образом, чтобы они были не конфликтовали/пересекались между собой в выборе программ
Так как menumaker не является частью fluxbox, вам придётся сделать ему emerge перед тем как его использовать:
Code: emerging menumaker |
$ su # emerge -va menumaker # exit $ mmaker -v fluxbox |
Заметьте, что это добавит /очень много/ нового в ваше меню.
gen-portage-menu.sh
Этот скрипт добавит программы прямо из меню portage. Он черезвычайно медленен на моей системе, но в любом случае вот он:
File: gen-portage-menu.sh |
#!/bin/sh # from http://dev.gentoo.org/~solar/portage_misc/gen-portage-menu.sh.txt # modified by joe@neoturbine.net to add -a option and sudo OUTFILE=~/.fluxbox/portage_menu source /etc/make.conf source /sbin/functions.sh if [ -e ${OUTFILE}.lock ]; then ewarn "Refusing to load another session for $$" exit 0 fi touch ${OUTFILE}.lock echo $$ > ${OUTFILE}.lock [ -e "$PORTDIR" ] || PORTDIR=/usr/portage cd ${PORTDIR} TOTAL=0 echo \[begin\] \(Portage @TOTAL@\) > $OUTFILE echo \[submenu\] \(Portage @TOTAL@\) >> $OUTFILE find ${PORTDIR} -name '*[a-z]-[a-z]*' -type d -maxdepth 1 | while read line; do # [ -f /usr/bin/beep ] && beep -n 1 -r 1 pushd $line > /dev/null count=$(find . -type d -maxdepth 1 | cut -c 3- | grep -v ^CVS$ | grep -v ^$ |wc -l | awk '{print $1}') category=$(basename $line) # [ -w /dev/speech ] && echo $category > /dev/speech & echo -ne '\t' >> $OUTFILE echo \[submenu\] \(${category}\) \{$count packages\} >> $OUTFILE find . -type d -maxdepth 1 | cut -c 3- | grep -v ^CVS$ | grep -v ^$ | while read dname ; do echo -ne '\t\t' >> $OUTFILE #/usr/lib/portage/bin/portageq has_version / $category/$dname ret=$? #if [ "$ret" == 0 ] ; then # vname=$(basename $(/usr/lib/portage/bin/portageq best_version / $category/$dname)) #else vname=$dname #fi echo \[exec\] \($vname\) \{ xterm -rv -e \"sudo emerge -va $category/$dname \; bash --login\" \} >> $OUTFI LE let ++TOTAL done echo -ne '\t' >> $OUTFILE echo \[end\] >> $OUTFILE popd $line > /dev/null done echo \[end\] >> $OUTFILE echo \[end\] >> $OUTFILE sed -e "s:@TOTAL@:${TOTAL}:g" < $OUTFILE > $OUTFILE~ && cp $OUTFILE~ $OUTFILE [ -f /usr/bin/beep ] && beep -n 1 -r 5 rm ${OUTFILE}.lock |
Вы можете использовать созданное подобным образом меню, добавив '[include] (~/.fluxbox/portage_menu)' в ~/.fluxbox/menu, если вы используете своё собственное меню, или добавьте в ~/.fluxbox/usermenu, если вы используете меню созданное fluxbox-generate_menu.
fbprocmenu
Вот ещё один скрипт для создания вещей для включения в меню fluxbox. Этот скрипт должен быть запущен с привилегиями root. Забыл где я его достал, но в любом случае:
File: fbprocmenu |
#!/usr/bin/env python #------------------------ process info script for fluxbox menu ------------------ import sys, os from os.path import isdir, isfile, join from time import sleep def getprocesses(): """Sort out process ids from /proc""" proccontent = os.listdir("/proc") dirsonly = [d for d in proccontent if isdir(join("/proc", d))] proclist = [elem for elem in dirsonly if elem[0] in ['1', '2', '3', '4', '5', '6', '7', '8', '9']] proclist.sort() return proclist def getprocinfo(procid): """Get info about an individual process.""" procinfo = {} procpath = "/proc/%s/status" % procid statfile = open(procpath, 'r') procinfo["pid"] = procid for line in statfile.readlines(): if "Name" in line: procinfo["Name"] = line.split(":")[1].strip() elif "State" in line: procinfo["State"] = line.split(":")[1].split(" ")[0].strip() else: break return procinfo def makeprocdictlist(proclist): """Construct list of procinfo dictionaries""" #procdictlist = [getprocinfo(pid) for pid in proclist] procdictlist = map(getprocinfo, proclist) return procdictlist while 1: procs = getprocesses() info = makeprocdictlist(procs) os.remove("/usr/share/commonbox/fbprocmenu.txt") try: outfile = open('/usr/share/commonbox/fbprocmenu.txt', 'w+') outfile.write('[begin] (procinfo) {}\n') for elem in info: line = "[submenu] ("+elem["Name"]+" "+elem["pid"]+" "+elem["State"]+") {}\n [exec] (kill) {kill -9 "+elem["pid"]+"}\n [exec]"\ +" (restart) {kill -18 "+elem["pid"]+"}\n [exec] (terminate) {kill -15 "+elem["pid"]+"}\n[end]\n" outfile.write(line) outfile.close() sleep(5) except IOError: print "Cannot create fbprocmenu file." |
Вы можете использовать созданное подобным образом меню, добавив '[include] (/usr/share/commonbox/fbprocmenu.txt)' в ~/.fluxbox/menu, если вы используете своё собственное меню, или добавьте в ~/.fluxbox/usermenu, если вы используете меню созданное fluxbox-generate_menu.
Автозапуск программ при входе в fluxbox
Первый шаг в настройке fluxbox это добавить нужные вам программы в автозапуск при входе в систему. Есть три способа этого добиться:
- изменение пользовательского ~/.fluxbox/startup
Этот метод работает только когда вы используете "startfluxbox" для запуска fluxbox, что является стандартным способом в сессионных скриптах Gentoo для kdm/gmd/xdm. Примерный ~/.fluxbox/startup будет создан при первом использование команды "startfluxbox".
- $ nano -w ~/.fluxbox/startup
Добавьте имя каждой программы, которую вы хотите запускать при входе в fluxbox, на отдельной строчке в файле. Незабудьте добавить амперсанд (&) на конце. После этого единственное что вам нужно будет включить в xinitrc это "startfluxbox" (добавляется самой системой в /etc/X11/Sessions/fluxbox по умолчанию - прим. перев.)
- Изменение пользовательского .xinitrc
Некоторые предпочитаю этот подход к автозапуску программ, так как он работает даже если вы не используете "startfluxbox" или какой=нибудь сессионный скрипт без "startfluxbox" (например, gdm в некоторых случаях). По умолчанию gdm проверяет только скрипты в/etc/X11/Sessions и не делает этого для .xinitrc и .xsession.
- $ nano -w ~/.xinitrc
Добавьте fluxbox и другие программы для автозапуска в этот файл.
- Использование другого скрипта bash, запускающегося каждый раз при старте fluxbox.
Этот способ обычно бессмысленен, если конечно вам не требуется что-то, что остальные два метода не могут вам предоставить.
Для начала откройте файл ~/.fluxbox/init вашим любимым редактором и просмотрите советы и примеры:
- $ nano -w ~/.fluxbox/init
Теперь найдите строчку со словом rootCommand и измените её на:
write full name.rootCommand: ~/.fluxbox/autostart.sh
Зайдите в директорию .fluxbox и создайте файл autostart.sh, сделав его выполнимым (executable)
Code: Создание autostart.sh |
cd ~/.fluxbox/ |
В этот файл вы можете добавить столько программ сколько вашей душе угодно, например, gaim и aterm. Только опять же не забудьте поставить амперсанд (&) на конце каждой строчки, чтобы выполнение команды не задерживалось (что иногда бывает её ожидаемым поведением).
Простейшей разницей между первым/вторым и третьим методами является то, что третий метод выполняется после того, как fluxbox запустился, тогда как другие два выполняется до старта fluxbox. Это делает трудным (читайте невозможным) задавать переменные окружения, используя третий способ.
Установка фона рабочего стола через fbsetbg
Пожалуйста приведите эту статью в соответствии с wiki разметкой, и затем удалите {{Wikify}} из текста статьи
Fbsetbg идёт с fluxbox по умолчанию и является "умным" скриптом для задания фона, взаимодействующим с установленными программами (feh, eterm, xv), которые поддерживают данную возможность. Не все вышеперечисленные программы поддерживают псевдопрозрачность (например, нужную для прозрачности в xchat). feh является популярным выбором так как он мал, быстр и поддерживает прозрачность. Поэтому мы начнём с его установки:
emerge -av feh
После этого убедимся в том, что fbsetbg знает, что мы собираемся использовать feh:
fbsetbg -i
Должно появится сообщение с текстом вроде "feh is a nice wallpapersetter. You won't have any problems.". Если это так, то вы можете перейти к установке фона. Если же сообщение говорит о том, что вы используете другую программу тогда вы можете или продолжить её использовать или её удалить из системы. Это команда поставит изображение jptd как полноэкранный фон на рабочем столе:
fbsetbg -f /path/to/image.jpeg
Вы можете сделать так, чтобы фон автоматически задавался при загрузке fluxbox, добавив эту комманду в файл ~/.fluxbox/startup. Если после добавления комманды и перезагрузки fluxbox фон появляется, но быстро исчезает, то это значит, что что-то его перезаписывает/сбрасывает. Скорее всего всему виной выбранный вами стиль fluxbox. Попробуйте изменить текущий стиль, закоментировав строчку с коммандой bsetroot. Например, закомментированная строчка в /usr/share/fluxbox/styles/Nyz:
#rootCommand: bsetroot -solid grey20
За более подробной информацией обращайтесь к man fbsetbg.
Иконки с помощью Idesk
Idesk это хорошая программа для создания иконок на рабочем столе, которым можно задать общему тему. Вы можете использовать как PNG, так и SVG изображения в качестве иконок. idesk так же включает несколько наборов иконок для выбора
Для начала мы должны установить idesk
emerge -av idesk
теперь создайте файл в вашей домашней директории под названием .ideskrc и и с данным содержимым:
table Config FontName: verdana FontSize: 12 FontColor: #ffffff Locked: false Transparency: 100 Shadow: true ShadowColor: #000000 ShadowX: 1 ShadowY: 2 Bold: false ClickDelay: 300 IconSnap: true SnapWidth: 55 SnapHeight: 100 SnapOrigin: BottomLeft SnapShadow: true SnapShadowTrans: 200 CaptionOnHover: false end
table Actions Lock: control right doubleClk Reload: middle doubleClk Drag: left hold EndDrag: left singleClk Execute[0]: left doubleClk Execute[1]: right doubleClk end
Теперь создайте директорию .idesktop/ в вашей домашней директории. В ней вы будете хранить иконки, которые вы хотите использовать, вместе с информацией о том, что эти иконки делаютю
Создайте файл для каждой иконки. Например, для иконки HOME вы должны будете сделать следущее:
это создаст файл с названием home.lnk touch ~/.idesktop/home.lnk
отредактировать стиль с помощью вашего любимого редактора (nano, pico, vi - что душе угодно) nano ~/.idesktop/home.lnk
Добавьте этот код в файл home.lnk
table Icon Caption: Home Command: rox Icon: /home/ikaro/.idesktop/home.png # the image to be used as an desktop icon end
Проделайте тоже самое для других иконок, которые вы хотите использовать.
Запустите idesk:
nohup idesk > /dev/null &
Убедитесь в том, что вы запустиле idesk только раз и у вас нет нескольких idesk, запущенных в одно и тоже время. После того как вы закончили редактировать нужные вам иконки и расположили их там где хотели на рабочем столе, измените Locked из "false" в "true" в .ideskrc. Не забудьте добавить 'idesk' в ваш .fluxbox/startup или другой загрузочный скрипт для запуска при старте X.
Иконки используя ROX-Filer
Сперва установите rox и rox-session:
emerge rox emerge rox-session
Добавьте эту строчку во ~/.fluxbox/autostart.sh:
rox --pinboard=Default &
И это всё! Теперь вы увидите иконки на рабочем столе и сможете выбрать любой фон!
Установка дополнительных стилей fluxbox
Большинство *box стилей сможет работать с fluxbox. Очень большой выбор стилей может быть установлен с помощью:
emerge -av commonbox-styles commonbox-styles-extra fluxbox-styles-fluxmod
Данные наборы содержат богатый выбор стилей, которых должно хватить для удовлетворения вкусов большинства людей. fluxbox-styles-fluxmod ebuild довольно часто обновляется, поэтому не забывайте за ним следить.
USE flags
Список существующих USE Flags для fluxbox:
gnome kde nls truetype xinerama
- gnome
Добавляет поддержку gnome в fluxbox. Например, если вы используете gaim, то вы увидете его иконку в трэе (slit)
- kde
Добавляет поддержку kde в fluxbox. Например, если вы используете kopete, то вы увидите его иконку в трэе (slit)
- nls
Добавляет языковую поддержку в fluxbox. В результате вы сможете видеть сообщения на вашем языке.
- truetype
Улучшенные шрифты.
- xinerama
Добавляет поддержку нескольких экранов, для тех у кого есть два и более мониторов.
- bigger-fonts (0.9.10-r4+)
Старается сделать шрифты в стилях немного более читабельными
Установка gkrellm
gkrellm это программа, которая показывает набор разной полезной информации о вашем компьютере (использование процессора, сетевой карточки и так далее)
Для начала нужно установить gkrellm:
- # emerge gkrellm
После этого мы можем его запустить:
- # nohup gkrellm2 > /dev/null &
Затем щёлкните правой кнопкой мыши наверху gkrellm и выберите "Configuration" для его настройки.
Для запуска gkrellm при старте fluxbox добавьте эту строчку в файл .fluxbox/startup:
File: ~/.fluxbox/startup |
gkrellm2 & |
Нужно написать:
- установка torsmo TIP torsmo