Внимание! Это руководство не является частью официальной документации fvwm или Ubuntu

Установка fvwm-patched в Ubuntu 9.10

fvwm-patched - это fvwm 2.5.28 и семнадцать патчей к нему, изменяющих некоторые аспекты поведения этого WM и добавляющих новый функционал. fvwm-patched существует в виде пакета в таких дистрибутивах, как Gentoo или Archlinux и без проблем собирается в Ubuntu.

fvwm-patched имеет смысл устанавливать, если нужны обеспечиваемые патчами функции. Например, патчи RoundedCorners.patch и ButtonWidth.patch позволяют использовать для декорации окон в fvwm темы от xfvw4 - оконного менеджера XFCE.

Список патчей и описание их функций

  • fvwm-translucent-menus.patch - добавляет возможность сделать в колорсете для меню цвет background прозрачным (translucent):
Colorset 3 fg #888888, Translucent #241F1D 95, sh #3d3d3d, hi #3d3d3d

Прозрачность - «настоящая», сквозь background меню видно не рабочий стол, а окна, находящиеся под ним. Прозрачность пропадает в «оторванном» меню.

  • ColourBorders.patch - позволяет задавать для каждого элемента рамки окна свой колорсет, пример:
Colorset 2 fg white, bg darkred
Colorset 3 fg white, bg blue
Colorset 4 fg white, bg orange
Colorset 5 fg white, bg green

Style * FvwmBorder, BorderWidth 7, HandleWidth 7
Style * HilightBorderColorsetRegions 2 2 2 2
Style * BorderColorsetRegions 6 6 6 6
Style * HilightHandlesColorsetRegions 3 3 3 3
Style * BorderHandlesColorsetRegions 4 4 4 4
  • ResizeOutlineThin.patch - при изменении размеров окна видно «рамку» будущих размеров, а не «решётку», как по умолчанию:
Style * ResizeOutline, ResizeOutlineThin
  • Conditionals.patch - добавляет два новых условия - HasTitle и HasBorders для команд fvwm с условиями:
All (CurrentPage, HasTitle, HasBorders) Echo $[w.name]
  • FlatSeparators.patch - добавляет стиль меню FlatSeparators, при применении этого стиля разделители отрисовываются толщиной в один пиксель и тем же цветом, что и текст:
MenuStyle * FlatSeparators
  • BorderUnderTitle.patch - добавляет возможность отрисовать дополнительную рамку окна под тайтлбаром, стиль рамки - Flat, при скатывании окна в заголовок рамка пропадает:
Style * BorderUnderTitle
  • InactiveFont.patch - позволяет установить свой шрифт для неактивного окна (по умолчанию меняется только цвет):
Style * InactiveFont "xft:sans:size=8"
  • FluxRoundedCorners.patch - позволяет рисовать закруглённые углы окон и меню, все четыре, два верхних или два нижних, имеет две степени закругления:
Style * RoundedCornersTop, SlightlyRoundedCorners 
#Слабо закруглённые верхние углы

Style * RoundedCornersBottom
#Сильно закруглённые нижние углы

Style * RoundedCorners
#Все углы сильно закруглены

MenuStyle * RoundedCorners, SlightlyRoundedCorners
#Все углы меню слабо закруглены
  • TopBorder.patch - позволяет установить толщину верхней рамки окна, не затрагивая других сторон рамки:
Style * !TopBorder
  • ButtonWidth.patch - позволяет задавать в конфигурационном файле ширину кнопок деокрации окна, по умолчанию кнопки могут быть только квадратными.
TitleStyle ButtonWidth 20
  • MultiBorder.patch - позволяет рисовать каждую сторону рамки окна со своей текстурой. Текстуры для углов прикрывают углы, текстуры для рамки рисуются на рамке только методом tiled, требуется указать восемь существующих картинок по часовой стрелке:
BorderStyle Active MultiBorder NW.png N.png NE.png E.png \
SE.png S.png SW.png W.png -- flat

или, для меню:

MenuStyle * BorderWidth 5
MenuStyle * menuface multiborder NW.png N.png NE.png E.png \
SE.png s.png SW.png W.png
MenuStyle * Background White
  • FvwmButtonsTips.patch - Нужна информация
  • FvwmIconMan.patch - позволяет установить закруглённые углы кнопок в FvwmIconMan и установить расстояние между кнопками по горизонтали:
*FvwmIconMan: RoundedCorners True
*FvwmIconMan: Padding 3
  • Hover.patch - позволяет задавать текстуры для кнопок декорации активного окна, находящихся под курсором мыши.
Buttonstyle Hover True
AddButtonStyle 4 ActiveHover (Pixmap max-hover.png -- flat)
  • FirstItemUnderPointer.patch - нужна информация.
  • TextOffset.patch - позволяет сдвигать текст в заголовке окна по вертикали относительно его нормального положения:
TitleStyle TextOffset -1
  • ThinGeometryProxy.patch - нужна информация
Для установки fvwm-patched необходимо удалить fvwm, если он уже установлен.
Не забудьте сделать бэкап всех конфигурационных файлов.

Процесс установки

Исходный код fvwm и патчи соответственно можно скачать по этим ссылкам:

ftp://ftp.fvwm.org/pub/fvwm/version-2/fvwm-2.5.28.tar.gz
http://aur.archlinux.org/packages/fvwm-patched/fvwm-patched.tar.gz

Устанавливаем зависимости:

sudo apt-get install libstroke0-dev libgtk2.0-dev libpng12-dev 
libreadline-dev librplay3-dev libxpm-dev libxrender-dev librsvg2-dev 
libxt-dev build-essential
Названия пакетов в репозитарии могут измениться со временем! Увидеть, какие библиотеки нужно установить можно в выводе команды ./configure

Распаковываем архивы с исходниками fvwm и патчами в одну папку.

Накладываем патчи:

В папке с исходниками и патчами:

patch -p0 < ./Имя_патча
./configure
make
sudo make install

Для того, чтобы появлась возможность запускать fvwm-patched из GDM, нужно создать файл /usr/share/xsessions/fvwm.desktop:

sudo nano /usr/share/xsessions/fvwm.desktop

И вставить в него следующее:

[Desktop Entry]
Encoding=UTF-8
# This is the name you'll see for the session in gdm
Name=FVWM-patched
# This is the comment
Comment=fvwm-patched
# The command
Exec=/usr/local/bin/fvwm
Type=Application