LINUX.ORG.RU

Openbox и отключение titlebar, когда окно во весь экран

 , ,


0

2

Собственно сделать хочется, что бы было когда окно во весь экран убиралась рамка окон, не подскажете как это сделать в openbox?

Вроде бы все просто для какого-то режима задать и клика, но вот хотелось бы для всех окон что бы это работало, а т.к. я использую tint2 и у этой панели есть возможность на ПКМ повесить по клику задачи делать его во весь экран - интересует как это провернуть глобально

★★★★★

Последнее исправление: NK (всего исправлений: 1)

Ответ на: комментарий от NK

openbox 3.5

maximus 0.4.14-5 (22)
A desktop daemon which will automatically maximise and, optionally, un-decorate windows.

Его нужно класть в автозапуск. Сам не пользовался, но, думаю, там есть ключ, для того, чтобы убирать декорации у развёрнутых на весь экран окон (для просто развёрнутых точно есть).

sudopacman ★★★★★
()
    <keybind key="W-f">
      <action name="if">
        <maximized>no</maximized>
        <then>
          <action name="Undecorate"/>
          <action name="MaximizeFull"/>
        </then>
        <else>
          <action name="UnmaximizeFull"/>
          <action name="Decorate"/>
          <action name="MoveResizeTo">
            <x>center</x>
            <y>center</y>
          </action>
        </else>
      </action>
    </keybind>
kom3s
()
Ответ на: комментарий от sudopacman

спасибо конечно, но как-то неохота собирать gnome-либы и тянуть их, а то вот такое получаю:

checking for DEPS... configure: error: Package requirements (gtk+-2.0
                  gconf-2.0
                  libwnck-1.0
                  libgnomeui-2.0
                  xtst
                  libfakekey
                  unique-1.0
                  ) were not met:

No package 'libgnomeui-2.0' found

а gnomeui подавай еще пачку

checking for LIBGNOMEUI... no
configure: error: Package requirements (  libxml-2.0 >= 2.4.20   libgnome-2.0 >= 2.13.7   libgnomecanvas-2.0 >= 2.0.0   libbonoboui-2.0 >= 2.13.1   gconf-2.0 >= 1.1.11   pango >= 1.1.2   glib-2.0 >= 2.16.0
  gio-2.0 >= 2.16.0
  gnome-vfs-2.0 >= 2.7.3   gnome-keyring-1 >= 0.4) were not met:

No package 'libgnome-2.0' found
No package 'libgnomecanvas-2.0' found
No package 'libbonoboui-2.0' found
No package 'gnome-vfs-2.0' found

NK ★★★★★
() автор топика
Ответ на: комментарий от kom3s

<keybind key=«W-f»>

ну это же только на конкретный хоткей только, а если двойной клик по рамке или нажать кнопку развернуть на ней - рамка останется

NK ★★★★★
() автор топика
Ответ на: комментарий от NK

На двойной клик по рамке:

    <context name="Titlebar">
<!--
......
-->
      <mousebind button="Left" action="DoubleClick">
            <action name="Undecorate"/>
            <action name="MaximizeFull"/>
      </mousebind>
На кнопку «развернуть»:
    <context name="Maximize">
<!--
......
-->
      <mousebind button="Left" action="Click">
            <action name="Undecorate"/>
            <action name="MaximizeFull"/>
      </mousebind>

kom3s
()
Ответ на: комментарий от sudopacman

maximus -m &

собрал все таки , а оно как-то странно работает точнее работает единично и непонятно как

NK ★★★★★
() автор топика
Ответ на: комментарий от NK

Ну это уже не ко мне вопрос. Я просто знаю, что такая штука есть. Ну не пройти же мне мимо, чем мог, тем помог.

sudopacman ★★★★★
()
Ответ на: комментарий от kom3s

а если отойти от темы, то как понял ты Ob пользуешься, какую панель для этого WM посоветуешь?

NK ★★★★★
() автор топика

https://github.com/baverman/orcsome

И такой ~/.config/rc.py:

from orcsome import get_wm

wm = get_wm()

@wm.on_key('Ctrl+Mod+space')
def maximize_window():
    w = wm.current_window
    if w.maximized_vert and w.maximized_horz:
        wm.set_window_state(w, vmax=False, hmax=False, decorate=True)
    else:
        wm.set_window_state(w, vmax=True, hmax=True, decorate=False)

Можно в принципе во внешнему событию ловить изменение размера, а не по кнопке.

A1
()
Ответ на: комментарий от A1

Внешнее событие:

@wm.on_property_change('_NET_WM_STATE')
def window_maximized_state_change():
    w = wm.event_window
    if w.decorated and w.maximized_vert and w.maximized_horz:
        wm.set_window_state(w, decorate=False)
    elif not w.decorated and not (w.maximized_vert and w.maximized_horz):
        wm.set_window_state(w, decorate=True)
A1
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.