openbox: 특정 위치에서 새 창 열기

openbox: 특정 위치에서 새 창 열기

특정 영역에서 특정 응용 프로그램에 대한 새 창을 열도록 Openbox를 구성할 수 있습니까? 예를 들어, 애플리케이션 A는 화면의 왼쪽 상단 사분면에 열려야 하고, 애플리케이션 B는 왼쪽 하단 사분면에, 애플리케이션 C는 화면 오른쪽 절반에 열려야 합니다. 아니면 최소한 창을 열어야 하는 좌표를 설정하세요.

뭔가를 쓰고 싶은데 rc.xml뭔지 모르겠어요.

도움이 된다면 lightdm과 openbox를 사용하여 raspbian을 실행하고 있습니다.

답변1

applications로 이동하세요 rc.xml. 수행할 수 있는 작업에 대한 전체 의견 섹션이 있습니다. 여기에 사본이 있습니다.

<!--
  # this is an example with comments through out. use these to make your
  # own rules, but without the comments of course.
  # you may use one or more of the name/class/role/title/type rules to specify
  # windows to match

  <application name="the window's _OB_APP_NAME property (see obxprop)"
              class="the window's _OB_APP_CLASS property (see obxprop)"
          groupname="the window's _OB_APP_GROUP_NAME property (see obxprop)"
         groupclass="the window's _OB_APP_GROUP_CLASS property (see obxprop)"
               role="the window's _OB_APP_ROLE property (see obxprop)"
              title="the window's _OB_APP_TITLE property (see obxprop)"
               type="the window's _OB_APP_TYPE property (see obxprob)..
                      (if unspecified, then it is 'dialog' for child windows)">
  # you may set only one of name/class/role/title/type, or you may use more
  # than one together to restrict your matches.

  # the name, class, role, and title use simple wildcard matching such as those
  # used by a shell. you can use * to match any characters and ? to match
  # any single character.

  # the type is one of: normal, dialog, splash, utility, menu, toolbar, dock,
  #    or desktop

  # when multiple rules match a window, they will all be applied, in the
  # order that they appear in this list


    # each rule element can be left out or set to 'default' to specify to not
    # change that attribute of the window

    <decor>yes</decor>
    # enable or disable window decorations

    <shade>no</shade>
    # make the window shaded when it appears, or not

    <position force="no">
      # the position is only used if both an x and y coordinate are provided
      # (and not set to 'default')
      # when force is "yes", then the window will be placed here even if it
      # says you want it placed elsewhere.  this is to override buggy
      # applications who refuse to behave
      <x>center</x>
      # a number like 50, or 'center' to center on screen. use a negative number
      # to start from the right (or bottom for <y>), ie -50 is 50 pixels from
      # the right edge (or bottom). use 'default' to specify using value
      # provided by the application, or chosen by openbox, instead.
      <y>200</y>
      <monitor>1</monitor>
      # specifies the monitor in a xinerama setup.
      # 1 is the first head, or 'mouse' for wherever the mouse is
    </position>

    <size>
      # the size to make the window.
      <width>20</width>
      # a number like 20, or 'default' to use the size given by the application.
      # you can use fractions such as 1/2 or percentages such as 75% in which
      # case the value is relative to the size of the monitor that the window
      # appears on.
      <height>30%</height>
    </size>

    <focus>yes</focus>
    # if the window should try be given focus when it appears. if this is set
    # to yes it doesn't guarantee the window will be given focus. some
    # restrictions may apply, but Openbox will try to

    <desktop>1</desktop>
    # 1 is the first desktop, 'all' for all desktops

    <layer>normal</layer>
    # 'above', 'normal', or 'below'

    <iconic>no</iconic>
    # make the window iconified when it appears, or not

    <skip_pager>no</skip_pager>
    # asks to not be shown in pagers

    <skip_taskbar>no</skip_taskbar>
    # asks to not be shown in taskbars. window cycling actions will also
    # skip past such windows

    <fullscreen>yes</fullscreen>
    # make the window in fullscreen mode when it appears

    <maximized>true</maximized>
    # 'Horizontal', 'Vertical' or boolean (yes/no)
  </application>

  # end of the example
-->

이 특정 예의 경우 결과는 다음과 같습니다.

  <!-- A -->
  <application name="A">
    <decor>yes</decor>
    <shade>no</shade>
    <position force="no">
      <!-- start pos at (0,0), top-left corner -->
      <x>0</x>
      <y>0</y>
      <monitor>1</monitor>
    </position>
    <size>
      <!-- go in height & width only 50%, one quarter of the screen -->
      <width>50%</width>
      <height>50%</height>
    </size>
    <focus>yes</focus>
    <desktop>1</desktop>
    <layer>normal</layer>
    <iconic>no</iconic>
  </application>

  <!-- B -->
  <application name="B">
    <decor>yes</decor>
    <shade>no</shade>
    <position force="no">
      <!-- start pos at (0,mid of screen), middle-left of screen -->
      <x>0</x>
      <y>50%</y>
      <monitor>1</monitor>
    </position>
    <size>
      <!-- go in height & width only 50%, one quarter of the screen -->
      <width>50%</width>
      <height>50%</height>
    </size>
    <focus>yes</focus>
    <desktop>1</desktop>
    <layer>normal</layer>
    <iconic>no</iconic>
  </application>
  
  <!-- C -->
  <application name="C">
    <decor>yes</decor>
    <shade>no</shade>
    <position force="no">
      <!-- start pos at (mid of screen, 0), top-mid of screen -->
      <x>50%</x>
      <y>0</y>
      <monitor>1</monitor>
    </position>
    <size>
      <!-- take up half the screen width, but all the height -->
      <width>50%</width>
      <height>100%</height>
    </size>
    <focus>yes</focus>
    <desktop>1</desktop>
    <layer>normal</layer>
    <iconic>no</iconic>
  </application>

_OB_APP_*실행할 수 있는 속성을 찾아 obxprop | grep _OB_APP원하는 속성이 있는 창을 클릭하세요.

관련 정보