четверг, 19 июня 2014 г.

Установка и настройка awesome. FreeBsd 10

Первоначально ставим иксы:
cd /usr/ports/x11/xorg-minimal
make install clean
установится с одним видеодрайвером vesa, поэтому остальные видеодрайверы ставим отдельно.

пр. /usr/ports/x11-drivers/xf86-video-intel  (для intel)

ставим /usr/ports/x11/xrdb

В файл /etc/rc.conf добавляем
dbus_enable="YES"
hald_enable="YES"

Далее выполняем Xorg -configure (создает файл /root/xorg.conf.new) 
X -config /root/xorg.conf.new (тестируем иксы) 
cp /root/xorg.conf.new /etc/X11/xorg.conf (копируем)
Если необходимо правим файл. Обязательно указать разрешение монитора:
Section "Screen" 
 ... 
 DefaultDepth 24 
 SubSection "Display" 
   Modes "1680x1050_75.00" 
 EndSubSection 
EndSection
! Если FreeBsd выступает в качестве гостевой ОС в VirtualBox, то необходим ряд нюансов чтобы полноценно заработали иксы. 
 1. установить 32-битные библиотеки на 64-битную ОС
     cd /usr/src
     make build32 
     (здесь может выпадать такая ошибка
      /usr/bin/ld: cannot find -legacy
   cc: error: linker command failed with exit code 1 (use -v to see invocation)
 

      тогда выполняем команду 
      make toolchain)
      make install32
      ldconfig -32 /usr/lib32
  2. далее ставим дополнения virtualbox'a
      cd /usr/ports/emulators/virtualbox-ose-addition
  3. в файл /etc/rc.conf добавляем
      vboxguest_enable="YES" 
      vboxservice_enable="YES" 
  4. так же в файле /etc/X11/xorg.conf меняем видеодравер
      Section "Device" 
                              ... 
                     Driver "vboxvideo" 
                              ... 
      EndSection
   
Устанавливаем awesome:
cd /usr/ports/x11-wm/awesome
make install clean 
(также буде полезно установить библиотеку awesome-vicious (нужна для виджетов))

Для автостарта иксов при авторизации пользователя добавим в файл в каталоге пользователя ~/.login (для bash'а в файл ~/.bash_profile) команду startx

В конец файла ~/.xinitrc добавляем exec awesome (это позволит нам запускать awesome вместе с иксами).

Баг в переключении раскладки в awesome
Нужно закомментировать в файле /usr/share/X11/xkb/compat/basic (от рута)
group 2 = AltGr;
group 3 = AltGr;
group 4 = AltGr;
(в этом случае могут перестать работать горячие клавиши связанные с буквами)

или в файл ~/.xinitrc
setxkbmap -layout 'us,ru' -option 'grp:ctrl_shift_toggle,grp_led:scroll' & 



ставим /usr/ports/x11/rxvt-unicode (терминал)

ставим шрифт для терминала
cd /usr/ports/x11-fonts/terminus-font   (выбираем опции DV1, HI2, J1, TD1)

в /etc/X11/xorg.conf в секцию Files добавляем путь к шрифту
FontPath     "/usr/local/lib/X11/fonts/terminus-font/"

пример файла .xinitrc
xrdb -merge ~/.Xdefaults &


пример файла .Xdefaults
Xft.dpi:                            96
Xft.antialias:                   true
Xft.rgba:                          rgb
Xft.hinting:                       true
Xft.hintstyle:                    hintslight
#
URxvt*foreground:         #DEDEDE
URxvt*font:                     xft:terminus:pixelsize=14
URxvt*boldFont:            xft:terminus:bold:pixelsize=14
URxvt*fading:                 50
URxvt*transparent:        true
URxvt*shading:              25
URxvt*inheritPixmap:    true
URxvt*saveLines:          1000
URxvt*scrollBar:             false
URxvt*scrollstyle:           plain
URxvt*cursorBlink:         true


Настраиваем awesome.
в каталоге пользователя mkdir -p .config/awesome
копируем основной файл cp /usr/local/etc/xdg/awesome/rc.lua ~/.config/awesome/rc.lua

также можем скопировать тему для дальнейшего изменения
cp -r /usr/local/share/awesome/themes/default ~/.config/awesome/default/


theme.lua - конфигурационный файл темы
Здесь указываем обои, шрифт, цвета темы, цвета виджетов, размер выпадающего меню, пути к иконкам и т.д.

Конфигурационный файл  ~/.config/awesome/rc.lua

пример подключения библиотеки
local vicious = require("vicious")

layouts оставляем те которыми будем пользоваться
(я оставляю floating, fair.horizontal, max, magnifier)

пример настройки тегов
tags[s] = awful.tag({" term ", " web ", " work ", " media "}, s, {layouts[1], layouts[3], layouts[2], layouts[4]})

пример добавления пункта меню
internet_menu = {{"firefox", "firefox", beautiful.firefox_icon},
                              {"opera", "opera", beautiful.opera_icon}}
в главном меню добавляем пункт нашего меню
mymainmenu = awful.menu({ items = { {"internet", internet_menu},
                                                                  {...},
                                                                  {...}
                                                                }
                                                })

Виджеты
в секции Wibox
mywidgetnet = wibox.widget.textbox()                    (добавляем виджет)
vicious.register(mywidgetnet, vicious.widgets.net, "${eth0 down_kb} ${eth0 up_kb}", 1)   (регистрируем, если необходимо подключаем библиотеку виджетов, в данном случае это vicious, в кавычках то что будет выведено, здесь можно вставлять html-теги, 1 - обновление в 1 секунду)

отображаем наш виджет там где необходимо
пр. ...
      right_layout:add(mywidgetnet) (перед часиками)

      right_layout:add(mytextclock) 
      ...

Примеры виджетов
-- {{{ MyWidgets
--- NET ---
mywidgetnet = wibox.widget.textbox()
vicious.register(mywidgetnet, vicious.widgets.net, "     <span color='#00CC99'>D ${enp5s0 down_kb} kb</span> / U ${enp5s0 up_kb} kb", 1)

--- DateTime ---
mywidgetdate = wibox.widget.textbox()
vicious.register(mywidgetdate, vicious.widgets.date, "     <span color='#00CC99'> %A %d %B %T </span>  ", 1)


локализация часов
копируем к себе
cp /usr/local/share/awesome/lib/awful/widget/textclock.lua ~/.config/awesome/awful/widget/textclock.lua
в этом файле добавляем
...
local timer = capi.timer { timeout = timeout }
os.setlocale("ru_RU.utf8")
...

---HDD---
mywidgethdd = wibox.widget.textbox()
vicious.register(mywidgethdd, vicious.widgets.fs, "     hdd ${/ used_p}% [${/ size_gb} Gb]", 1)

---Memory---
mywidgetmem = wibox.widget.textbox()
vicious.register(mywidgetmem, vicious.widgets.mem, "     RAM $1%", 1)

---CPU---
mywidgetcpu = wibox.widget.textbox()
vicious.register(mywidgetcpu, vicious.widgets.cpu, "     CPU $1%", 1)

-- }}}


Добавление кнопки запуска приложения
создаем виджет кнопки (на примере virtualbox)
     vbox_button = awful.widget.button( { image = beautiful.vbox_icon } )
обработчик события  
     vbox_button:buttons(awful.util.table.join(awful.button({ }, 1, function () awful.util.spawn_with_shell("virtualbox") end)))
отображаем
     ...
     left_layout:add(vbox_button)
     ...
в файле темы добавляем иконку
     theme.vbox_icon = "путь до иконки"


Hotkeys 
mod4+ctrl+r        перезапустить awesome
mod4+Enter       запуск терминала
mod4+p               смотрим приложения
mod4+r                запуск программы
mod4+shift+c     закрыть окно
mod4+mouse1   перетащить окно
mod4+mouse2   изменить размер окна


 пример рабочего стола





Комментариев нет:

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