LINUX.ORG.RU

Ob и мозаичное расположение окон

 , , , ,


6

1

(1) Собственно интересует, как прописать для хоткеев, что бы окно располагалось: на 1/2 экрана, 1/4 экрана и там все это слева-справа расположить можно?
(2) И если знаете, не подскажите еще регулировку размера окна, как-то задать можно и что бы окно при этом располагалось, при настройке по-центру?

Хотелось бы такое провернуть, при чистом openbox и без сторонних прог и примерно такое я реализовывал во fluxbox, кому интересно как и что я получить хочу в Ob, вот как я это реализовал при flux'е, в принципе, ничего особенного в ~/.fluxbox/keys прописал:

# 1/2 - WxH - 50x100
# Corner
Mod4 	1 	:MacroCmd {ResizeTo 50%  99%} 	{MoveTo 00 00 LowerLeft}
Mod4 	3 	:MacroCmd {ResizeTo 50%  99%} 	{MoveTo 00 00 LowerRight}
#Mod4 	1 	:MacroCmd {MoveTo 00 00 Left}
#Mod4 	3 	:MacroCmd {MoveTo 00 00 Right}
# Center - Max - Min
Mod4 	2 	:MacroCmd {ResizeTo 70%  88%} 	{MoveTo 00 00 Center}
Mod4 	4 	:Maximize
Mod4 	5	:Minimize
# 1/4 - WxH - 50x50
Mod4 	q	:MacroCmd {ResizeTo 50%  50%} 	{MoveTo 00 00 UpperLeft}
Mod4 	a	:MacroCmd {ResizeTo 50%  50%} 	{MoveTo 00 00 LowerLeft}
Mod4 	w	:MacroCmd {ResizeTo 50%  50%} 	{MoveTo 00 00 UpperRight}
Mod4 	s	:MacroCmd {ResizeTo 50%  50%} 	{MoveTo 00 00 LowerRight}

# 1 size +/- 20
Mod4 	Left 	:MacroCmd {ResizeHorizontal -20} {MoveTo 00 00 Center}
Mod4 	Right 	:MacroCmd {ResizeHorizontal +20} {MoveTo 00 00 Center}
Mod4 	Up 	:MacroCmd {ResizeVertical +20} 	 {MoveTo 00 00 Center}
Mod4 	Down	:MacroCmd {ResizeVertical -20} 	 {MoveTo 00 00 Center}
# 1 size +/- 01
Mod4 	Control		Left 		:Resize		-05	 00
Mod4 	Control		Right 		:Resize		+05	 00
Mod4 	Control		Up 		:Resize		 00 +05
Mod4 	Control		Down 		:Resize		 00 -05
★★★★★

1/2 лево-право-верх-низ (без декораций)

<keybind key="W-F1">
  <action name="Unmaximize"/>
  <action name="Undecorate"/>
  <action name="MoveResizeTo">
    <x>0</x>
    <y>0</y>
    <height>100%</height>
    <width>50%</width>
  </action>
</keybind>
<keybind key="W-F2">
  <action name="Unmaximize"/>
  <action name="Undecorate"/>
  <action name="MoveResizeTo">
    <x>-0</x>
    <y>0</y>
    <height>100%</height>
    <width>50%</width>
  </action>
</keybind>
<keybind key="W-F3">
  <action name="Unmaximize"/>
  <action name="Undecorate"/>
  <action name="MoveResizeTo">
    <x>0</x>
    <y>0</y>
    <width>100%</width>
    <height>50%</height>
  </action>
</keybind>
<keybind key="W-F4">
  <action name="Unmaximize"/>
  <action name="Undecorate"/>
  <action name="MoveResizeTo">
    <x>0</x>
    <y>-0</y>
    <width>100%</width>
    <height>50%</height>
  </action>
</keybind>
1/4 углы экрана (без декораций)
<keybind key="W-F5">
  <action name="Unmaximize"/>
  <action name="Undecorate"/>
  <action name="MoveResizeTo">
    <x>0</x>
    <y>0</y>
    <width>50%</width>
    <height>50%</height>
  </action>
</keybind>
<keybind key="W-F6">
  <action name="Unmaximize"/>
  <action name="Undecorate"/>
  <action name="MoveResizeTo">
    <x>0</x>
    <y>-0</y>
    <width>50%</width>
    <height>50%</height>
  </action>
</keybind>
<keybind key="W-F7">
  <action name="Unmaximize"/>
  <action name="Undecorate"/>
  <action name="MoveResizeTo">
    <x>-0</x>
    <y>0</y>
    <width>50%</width>
    <height>50%</height>
  </action>
</keybind>
<keybind key="W-F8">
  <action name="Unmaximize"/>
  <action name="Undecorate"/>
  <action name="MoveResizeTo">
    <x>-0</x>
    <y>-0</y>
    <width>50%</width>
    <height>50%</height>
  </action>
</keybind>
По-центру (w-60%,h-70%), ToggleMaximize, ToggleDecorations
<keybind key="W-F9">
  <action name="If">
    <query target="default">
      <undecorated>yes</undecorated>
    </query>
    <then>
      <action name="Decorate"/>
    </then>
  </action>
  <action name="If">
    <query target="default">
      <maximized>yes</maximized>
    </query>
    <then>
      <action name="Unmaximize"/>
    </then>
  </action>
  <action name="MoveResizeTo">
    <x>center</x>
    <y>center</y>
    <width>60%</width>
    <height>70%</height>
  </action>
</keybind>
<keybind key="W-F10">
  <action name="ToggleMaximize"/>
</keybind>
<keybind key="W-F11">
  <action name="ToggleDecorations"/>
</keybind>
Размер окна
<keybind key="W-A-Left">
  <action name="ResizeRelative">
    <right>-10</right>
  </action>
</keybind>
<keybind key="W-A-Right">
  <action name="ResizeRelative">
    <right>+10</right>
  </action>
</keybind>
<keybind key="W-A-Up">
  <action name="ResizeRelative">
    <bottom>-10</bottom>
  </action>
</keybind>
<keybind key="W-A-Down">
  <action name="ResizeRelative">
    <bottom>+10</bottom>
  </action>
</keybind>
<keybind key="C-W-Left">
  <action name="ResizeRelative">
    <left>+10</left>
  </action>
</keybind>
<keybind key="C-W-Right">
  <action name="ResizeRelative">
    <left>-10</left>
  </action>
</keybind>
<keybind key="C-W-Up">
  <action name="ResizeRelative">
    <top>+10</top>
  </action>
</keybind>
<keybind key="C-W-Down">
  <action name="ResizeRelative">
    <top>-10</top>
  </action>
</keybind>
Позиция окна
<keybind key="W-Left">
  <action name="MoveRelative">
    <x>-10</x>
  </action>
</keybind>
<keybind key="W-Right">
  <action name="MoveRelative">
    <x>+10</x>
  </action>
</keybind>
<keybind key="W-Up">
  <action name="MoveRelative">
    <y>-10</y>
  </action>
</keybind>
<keybind key="W-Down">
  <action name="MoveRelative">
    <y>+10</y>
  </action>
</keybind>

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

спасибо, постараюсь на днях испробовать

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

Еще раз спасибо, проверил все работает...

Пользуюсь случаем спрошу, может знаете, вот по поводу правил для конкретных окон можно ли их в Ob задавать? К примеру, как для лисы я во flux'е задал:

[app] (class=Firefox)
 [Workspace] {1}
 [Jump]	{no}
 [Deco] {NONE}
 [Maximized] {yes}
[end]
[transient] (class=Firefox)
 [Position] (WINCENTER){0 0}
 [Deco] {NORMAL}
[end]

т.е. мне вот интересно, как сделать что бы окно лисы по-умолчанию запускалось без декорации и во весь экран на конретном рабочем столе и если возможно transient - это для дополнительного окна, там открыть с помощью, что бы это диалоговое окно стартовало по-центру и с обычной декорацией?

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

конце файла rc.xml все описано в комментариях

параметры конкретного окна можно узнать командой obxprop|grep ^_OB

пример правила

    <application class="Pale moon" name="Navigator" type="normal" role="browser">
      <desktop>2</desktop>
      <decor>no</decor>
      <maximized>true</maximized>
    </application>
    <application class="Pale moon" name="Places" type="normal" role="Organizer">
      <position force="yes">
        <x>center</x>
        <y>center</y>
      </position>
      <size>
        <width>900</width>
        <height>600</height>
      </size>
      <focus>yes</focus>
      <layer>above</layer>
    </application>

darktic ★★ ()
Последнее исправление: darktic (всего исправлений: 1)
Ответ на: комментарий от darktic

ну вот пробую в manjaro-ob

[manjaro@manjaro ~]$ obxprop|grep ^_OB
_OB_APP_TYPE(UTF8_STRING) = "normal"
_OB_APP_TITLE(UTF8_STRING) = "manjaro - File Manager"
_OB_APP_GROUP_CLASS(UTF8_STRING) = "Thunar"
_OB_APP_GROUP_NAME(UTF8_STRING) = "thunar"
_OB_APP_CLASS(UTF8_STRING) = "Thunar"
_OB_APP_NAME(UTF8_STRING) = "thunar"
_OB_APP_ROLE(UTF8_STRING) = "Thunar-1442508258-3269332119"
и что-то не получается так
<application class="thunar" name="Thunar">
      <desktop>2</desktop>
      <decor>no</decor>
      <maximized>true</maximized>
</application>

ладно, думаю разбирусь со временем, спасибо за ' obxprop|grep ^_OB ' не знал про такое, если честно

А слушайка, я как понял ты на Ob, а каким ФМ пользуешься и с каким параметром openbox стартуешь, что бы там флэшки и не смонтированные разделы были отображены в ФМ?

Во flux'е у меня вот с этим прекрасно в Thunar все отображается:

# Start DBUS session bus:
if [ -z "$DBUS_SESSION_BUS_ADDRESS" ]; then
   eval $(dbus-launch --sh-syntax --exit-with-session)
fi
по опыту еще в голову вот это приходит из кранча: thunar -d

NK ★★★★★ ()
Последнее исправление: NK (всего исправлений: 1)
Ответ на: комментарий от NK

У тунар class с большой буквы:

_OB_APP_GROUP_CLASS(UTF8_STRING) = "Thunar"
а name с маленькой:
_OB_APP_NAME(UTF8_STRING) = "thunar"

я использую spacefm --desktop -d & - всё монтируется

в арче так по-умолчанию:

if [ -z "${DBUS_SESSION_BUS_ADDRESS-}" ] && type dbus-launch >/dev/null; then
  eval $(dbus-launch --sh-syntax --exit-with-session)
fi

darktic ★★ ()
Последнее исправление: darktic (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.