Openbox > Openbox configuration >
shortcuts
(You are probably best examining my current rc.xml.)
Notes ∞
Holy fucking crap! Openbox has SENSIBLE DEFAULT HOTKEYS!
- http://openbox.org/wiki/Help:Bindings [ 1 ] was http://icculus.org/openbox/index.php/Help:Bindings
-
http://openbox.org/wiki/Help:Actions [ 2 ] was http://icculus.org/openbox/index.php/Help:Actions
Bindings are locked up in that opaque xml file.
cannot control properties of a window ∞
TODO - Ask for help about application settings not working.
<keybind key="W-r"> <action name="Execute"> <command>xterm -fn 9x15 -bg black -fg gray -sl 10000 -geometry 24x11+850+450 -e /home/user/bin/dialogrun.sh</command> </action> </keybind>
This won't work:
<application name="dialogrun.sh"> <decor>no</decor> <focus>yes</focus> <skip_pager>yes</skip_pager> <layer>above</layer> <desktop>all</desktop> </application>
The title is correct, but openbox ignores this.. Boo.
This works
<application name="xterm" class="XTerm" > <decor>no</decor> <focus>yes</focus> <skip_pager>yes</skip_pager> <layer>above</layer> <desktop>all</desktop> </application>
xprop gives me this:
... 1=WM_CLASS(STRING) = "xterm", "XTerm" WM_HINTS(WM_HINTS): Client accepts input or input focus: True Initial state is Normal State. WM_NORMAL_HINTS(WM_SIZE_HINTS): user specified location: 850, 450 user specified size: 235 by 169 program specified size: 235 by 169 program specified minimum size: 28 by 19 program specified resize increment: 9 by 15 program specified base size: 19 by 4 window gravity: NorthWest WM_CLIENT_MACHINE(STRING) = "localhost" WM_COMMAND(STRING) = { "xterm", "-fn", "9x15", "-bg", "black", "-fg", "gray", "-sl", "10000", "-geometry", "24x11+850+450", "-e", "/home/user/bin/dialogrun.sh" } 1=WM_ICON_NAME(STRING) = "dialogrun.sh" WM_NAME(STRING) = "dialogrun.sh"
I want to use the green info, and not the red line..
Executing multiple commands ∞
- tested and works
<keybind key="W-r"> <action name="Execute"> <command> xterm -exec sh -e -c " echo ok ; echo two ; sleep 1 ; " </command> </action> </keybind>
- method one:
<keybind key="A-F5"> <action name="Execute"> <command>openbox --reconfigure</command> </action> <action name="Execute"> <command>xrefresh</command> </action> </keybind>
- method two:
<keybind key="A-F5"> <action name="Execute"> <command>sh -c 'openbox --reconfigure && xrefresh'</command> </action> </keybind>
or maybe:
sh -c 'openbox --reconfigure ; xrefresh'
Multimedia keyboard ∞
-
Edit
~/.Xmodmap
- (Xmodmap)
-
Add hotkeys the way you want. For example:
<keybind key="XF86AudioRaiseVolume"> <action name="Execute"> <command>aumix -v+10</command> </action> </keybind> <keybind key="XF86AudioLowerVolume"> <action name="Execute"> <command>aumix -v-10</command> </action> </keybind> <keybind key="XF86AudioMedia"> <action name="Execute"> <command>audacious2</command> </action> </keybind>
3. ???
4. Profit
My Preferences ∞
I added a few window management hotkeys, because I'm a bit quirky. The rest are application hotkeys:
<?xml version="1.0" encoding="UTF-8"?> <openbox_config xmlns="http://openbox.org/3.4/rc"> <resistance> <strength>10</strength> <screen_edge_strength>20</screen_edge_strength> </resistance> <focus> <focusNew>yes</focusNew> <!-- always try to focus new windows when they appear. other rules do apply --> <followMouse>no</followMouse> <!-- move focus to a window when you move the mouse into it --> <focusLast>yes</focusLast> <!-- focus the last used window when changing desktops, instead of the one under the mouse pointer. when followMouse is enabled --> <underMouse>no</underMouse> <!-- move focus under the mouse, even when the mouse is not moving --> <focusDelay>200</focusDelay> <!-- when followMouse is enabled, the mouse must be inside the window for this many milliseconds (1000 = 1 sec) before moving focus to it --> <raiseOnFocus>no</raiseOnFocus> <!-- when followMouse is enabled, and a window is given focus by moving the mouse into it, also raise the window --> </focus> <placement> <policy>Smart</policy> <!-- 'Smart' or 'UnderMouse' --> <center>yes</center> <!-- whether to place windows in the center of the free area found or the top left corner --> <monitor>Any</monitor> <!-- with Smart placement on a multi-monitor system, try to place new windows on: 'Any' - any monitor, 'Mouse' - where the mouse is, 'Active' - where the active window is --> </placement> <theme> <name>minimal</name> <titleLayout>NDLIMC</titleLayout> <!-- available characters are NDSLIMC, each can occur at most once. N: window icon L: window label (AKA title). I: iconify M: maximize C: close S: shade (roll up/down) D: omnipresent (on all desktops). --> <keepBorder>yes</keepBorder> <animateIconify>no</animateIconify> <font place="ActiveWindow"> <name>Sans</name> <size>12</size> <!-- font size in points --> <weight>Normal</weight> <!-- 'bold' or 'normal' --> <slant>Normal</slant> <!-- 'italic' or 'normal' --> </font> <font place="InactiveWindow"> <name>Sans</name> <size>12</size> <!-- font size in points --> <weight>Normal</weight> <!-- 'bold' or 'normal' --> <slant>Normal</slant> <!-- 'italic' or 'normal' --> </font> <font place="MenuHeader"> <name>Sans</name> <size>12</size> <!-- font size in points --> <weight>Normal</weight> <!-- 'bold' or 'normal' --> <slant>Normal</slant> <!-- 'italic' or 'normal' --> </font> <font place="MenuItem"> <name>Sans</name> <size>12</size> <!-- font size in points --> <weight>Normal</weight> <!-- 'bold' or 'normal' --> <slant>Normal</slant> <!-- 'italic' or 'normal' --> </font> <font place="OnScreenDisplay"> <name>Sans</name> <size>12</size> <!-- font size in points --> <weight>Normal</weight> <!-- 'bold' or 'normal' --> <slant>Normal</slant> <!-- 'italic' or 'normal' --> </font> </theme> <desktops> <!-- this stuff is only used at startup, pagers allow you to change them during a session these are default values to use when other ones are not already set by other applications, or saved in your session use obconf if you want to change these without having to log out and back in --> <number>4</number> <firstdesk>1</firstdesk> <names> <name>Desktop 1</name> <name>Desktop 2</name> <name>Desktop 3</name> <name>Desktop 4</name> </names> <popupTime>0</popupTime> <!-- The number of milliseconds to show the popup for when switching desktops. Set this to 0 to disable the popup. --> </desktops> <resize> <drawContents>yes</drawContents> <popupShow>Nonpixel</popupShow> <!-- 'Always', 'Never', or 'Nonpixel' (xterms and such) --> <popupPosition>Center</popupPosition> <!-- 'Center', 'Top', or 'Fixed' --> <popupFixedPosition> <!-- these are used if popupPosition is set to 'Fixed' --> <x>10</x> <!-- positive number for distance from left edge, negative number for distance from right edge, or 'Center' --> <y>10</y> <!-- positive number for distance from top edge, negative number for distance from bottom edge, or 'Center' --> </popupFixedPosition> </resize> <!-- You can reserve a portion of your screen where windows will not cover when they are maximized, or when they are initially placed. Many programs reserve space automatically, but you can use this in other cases. --> <margins> <top>0</top> <bottom>0</bottom> <left>0</left> <right>0</right> </margins> <dock> <position>TopLeft</position> <!-- (Top|Bottom)(Left|Right|)|Top|Bottom|Left|Right|Floating --> <floatingX>0</floatingX> <floatingY>0</floatingY> <noStrut>no</noStrut> <stacking>Above</stacking> <!-- 'Above', 'Normal', or 'Below' --> <direction>Horizontal</direction> <!-- 'Vertical' or 'Horizontal' --> <autoHide>no</autoHide> <hideDelay>300</hideDelay> <!-- in milliseconds (1000 = 1 second) --> <showDelay>300</showDelay> <!-- in milliseconds (1000 = 1 second) --> <moveButton>Middle</moveButton> <!-- 'Left', 'Middle', 'Right' --> </dock> <keyboard> <chainQuitKey>C-g</chainQuitKey> <!-- Keybindings for desktop switching --> <!-- My Custom Stuff --> <!-- ~~~~~~~~~~~~~~ --> <!-- The backtick doesn't work for a hotkey. Lame --> <keybind key="W-`"> <action name="ToggleOmnipresent"/> </keybind> <keybind key="S-A-1"> <action name="SendToDesktop"> <desktop>1</desktop> <follow>no</follow> </action> </keybind> <keybind key="S-A-2"> <action name="SendToDesktop"> <desktop>2</desktop> <follow>no</follow> </action> </keybind> <keybind key="S-A-3"> <action name="SendToDesktop"> <desktop>3</desktop> <follow>no</follow> </action> </keybind> <keybind key="S-A-4"> <action name="SendToDesktop"> <desktop>4</desktop> <follow>no</follow> </action> </keybind> <keybind key="A-1"> <action name="Desktop"> <desktop>1</desktop> </action> </keybind> <keybind key="A-2"> <action name="Desktop"> <desktop>2</desktop> </action> </keybind> <keybind key="A-3"> <action name="Desktop"> <desktop>3</desktop> </action> </keybind> <keybind key="A-4"> <action name="Desktop"> <desktop>4</desktop> </action> </keybind> <!-- launching applications --> <!-- TODO: Launch feedback / startup notification --> <!-- : I need another program which is aware of this and can do this for me. --> <!-- decrypt from the clipboard --> <keybind key="C-A-D"> <action name="Execute"> <command>~/bin/decrypt.sh</command> </action> </keybind> <keybind key="A-F6"> <action name="Execute"> <startupnotify> <enabled>yes</enabled> <name>Calculator</name> <icon>gnome-calc2</icon> </startupnotify> <command>kcalc</command> </action> </keybind> <keybind key="A-F5"> <action name="Execute"> <command>openbox --reconfigure</command> </action> <action name="Execute"> <command>xrefresh</command> </action> </keybind> <!-- Special tweaking was needed to make this possible. --> <keybind key="A-S-F5"> <action name="Execute"> <command>mousepad-root /etc/xdg/openbox/rc.xml</command> </action> </keybind> <keybind key="C-A-s"> <action name="Execute"> <command>xterm -fn 9x15 -bg black -fg gray -sl 10000 -geometry 80x24+0+0 -exec fish</command> </action> </keybind> <keybind key="W-s"> <action name="Execute"> <command>xterm -fn 9x15 -bg black -fg gray -sl 10000 -geometry 80x24+0+0 -exec fish</command> </action> </keybind> <keybind key="C-A-w"> <action name="Execute"> <command>firefox3.real</command> <startupnotify> <enabled>yes</enabled> <name>Firefox</name> <icon>firefox</icon> </startupnotify> </action> </keybind> <keybind key="C-A-S-w"> <action name="Execute"> <command>konqueror</command> <startupnotify> <enabled>yes</enabled> <name>Konqueror</name> <icon>konqueror</icon> </startupnotify> </action> </keybind> <keybind key="C-S-w"> <action name="Execute"> <command>links -g</command> </action> </keybind> <keybind key="C-A-e"> <action name="Execute"> <command>mozilla-thunderbird</command> <startupnotify> <enabled>yes</enabled> <name>Thunderbird</name> <icon>thunderbird</icon> </startupnotify> </action> </keybind> <keybind key="A-C-Escape"> <action name="Execute"> <command>xkill</command> </action> </keybind> <keybind key="A-C-r"> <action name="Execute"> <command>gmrun</command> </action> </keybind> <keybind key="W-r"> <action name="Execute"> <command>gmrun</command> </action> </keybind> <keybind key="A-C-l"> <action name="Execute"> <command>xscreensaver-command -lock</command> </action> </keybind> <keybind key="W-l"> <action name="Execute"> <command>xscreensaver-command -lock</command> </action> </keybind> <keybind key="W-c"> <action name="Execute"> <command>xcalc</command> </action> </keybind> <keybind key="W-f"> <action name="Execute"> <command>spacefm</command> </action> </keybind> <keybind key="W-e"> <action name="Execute"> <command>mousepad ~/new.txt</command> </action> </keybind> <keybind key="W-k"> <action name="Execute"> <command>kolourpaint ~/new.jpg</command> </action> </keybind> <!-- run an arbitrary commandline --> <keybind key="W-r"> <action name="Execute"> <command> sh -c '`kdialog --inputbox "Run program"`' // sh -c '`Xdialog --inputbox "Run program" 8 30`' </command> </action> </keybind> <keybind key="Print"> <action name="Execute"> <command>ksnapshot</command> </action> </keybind> <keybind key="A-Print"> <action name="Execute"> <command>ksnapshot</command> </action> </keybind> <!-- ~~~~~~~~~~~~~~~ --> <!-- My Custom Stuff --> <keybind key="C-A-Left"> <action name="DesktopLeft"> <dialog>no</dialog> <wrap>no</wrap> </action> </keybind> <keybind key="C-A-Right"> <action name="DesktopRight"> <dialog>no</dialog> <wrap>no</wrap> </action> </keybind> <keybind key="C-A-Up"> <action name="DesktopUp"> <dialog>no</dialog> <wrap>no</wrap> </action> </keybind> <keybind key="C-A-Down"> <action name="DesktopDown"> <dialog>no</dialog> <wrap>no</wrap> </action> </keybind> <keybind key="S-A-Left"> <action name="SendToDesktopLeft"> <dialog>no</dialog> <wrap>no</wrap> </action> </keybind> <keybind key="S-A-Right"> <action name="SendToDesktopRight"> <dialog>no</dialog> <wrap>no</wrap> </action> </keybind> <keybind key="S-A-Up"> <action name="SendToDesktopUp"> <dialog>no</dialog> <wrap>no</wrap> </action> </keybind> <keybind key="S-A-Down"> <action name="SendToDesktopDown"> <dialog>no</dialog> <wrap>no</wrap> </action> </keybind> <keybind key="W-F1"> <action name="Desktop"> <desktop>1</desktop> </action> </keybind> <keybind key="W-F2"> <action name="Desktop"> <desktop>2</desktop> </action> </keybind> <keybind key="W-F3"> <action name="Desktop"> <desktop>3</desktop> </action> </keybind> <keybind key="W-F4"> <action name="Desktop"> <desktop>4</desktop> </action> </keybind> <keybind key="W-d"> <action name="ToggleShowDesktop"/> </keybind> <!-- Keybindings for windows --> <keybind key="A-F4"> <action name="Close"/> </keybind> <keybind key="A-Escape"> <action name="Lower"/> <action name="FocusToBottom"/> <action name="Unfocus"/> </keybind> <keybind key="A-space"> <action name="ShowMenu"> <menu>client-menu</menu> </action> </keybind> <!-- Keybindings for window switching --> <keybind key="A-Tab"> <action name="NextWindow"/> </keybind> <keybind key="A-S-Tab"> <action name="PreviousWindow"/> </keybind> <keybind key="C-A-Tab"> <action name="NextWindow"> <panels>yes</panels> <desktop>yes</desktop> </action> </keybind> </keyboard> <mouse> <dragThreshold>8</dragThreshold> <!-- number of pixels the mouse must move before a drag begins --> <doubleClickTime>200</doubleClickTime> <!-- in milliseconds (1000 = 1 second) --> <screenEdgeWarpTime>400</screenEdgeWarpTime> <!-- Time before changing desktops when the pointer touches the edge of the screen while moving a window, in milliseconds (1000 = 1 second). Set this to 0 to disable warping --> <context name="Frame"> <mousebind button="A-Left" action="Press"> <action name="Focus"/> <action name="Raise"/> </mousebind> <mousebind button="A-Left" action="Click"> <action name="Unshade"/> </mousebind> <mousebind button="A-Left" action="Drag"> <action name="Move"/> </mousebind> <mousebind button="A-Right" action="Press"> <action name="Focus"/> <action name="Raise"/> <action name="Unshade"/> </mousebind> <mousebind button="A-Right" action="Drag"> <action name="Resize"/> </mousebind> <mousebind button="A-Middle" action="Press"> <action name="Lower"/> <action name="FocusToBottom"/> <action name="Unfocus"/> </mousebind> <mousebind button="A-Up" action="Click"> <action name="DesktopPrevious"/> </mousebind> <mousebind button="A-Down" action="Click"> <action name="DesktopNext"/> </mousebind> <mousebind button="C-A-Up" action="Click"> <action name="DesktopPrevious"/> </mousebind> <mousebind button="C-A-Down" action="Click"> <action name="DesktopNext"/> </mousebind> <mousebind button="A-S-Up" action="Click"> <action name="SendToDesktopPrevious"/> </mousebind> <mousebind button="A-S-Down" action="Click"> <action name="SendToDesktopNext"/> </mousebind> </context> <context name="Titlebar"> <mousebind button="Left" action="Press"> <action name="Focus"/> <action name="Raise"/> </mousebind> <mousebind button="Left" action="Drag"> <action name="Move"/> </mousebind> <mousebind button="Left" action="DoubleClick"> <action name="ToggleMaximizeFull"/> </mousebind> <mousebind button="Middle" action="Press"> <action name="Lower"/> <action name="FocusToBottom"/> <action name="Unfocus"/> </mousebind> <mousebind button="Up" action="Click"> <action name="Shade"/> <action name="FocusToBottom"/> <action name="Unfocus"/> <action name="Lower"/> </mousebind> <mousebind button="Down" action="Click"> <action name="Unshade"/> <action name="Raise"/> </mousebind> <mousebind button="Right" action="Press"> <action name="Focus"/> <action name="Raise"/> <action name="ShowMenu"> <keybind key="W-f"> <action name="Execute"> <command>spacefm/command> </action> </keybind> <menu>client-menu</menu> </action> </mousebind> </context> <context name="Top"> <mousebind button="Left" action="Press"> <action name="Focus"/> <action name="Raise"/> <action name="Unshade"/> </mousebind> <mousebind button="Left" action="Drag"> <action name="Resize"> <edge>top</edge> </action> </mousebind> </context> <context name="Left"> <mousebind button="Left" action="Press"> <action name="Focus"/> <action name="Raise"/> </mousebind> <mousebind button="Left" action="Drag"> <action name="Resize"> <edge>left</edge> </action> </mousebind> </context> <context name="Right"> <mousebind button="Left" action="Press"> <action name="Focus"/> <action name="Raise"/> </mousebind> <mousebind button="Left" action="Drag"> <action name="Resize"> <edge>right</edge> </action> </mousebind> </context> <context name="Bottom"> <mousebind button="Left" action="Press"> <action name="Focus"/> <action name="Raise"/> </mousebind> <mousebind button="Left" action="Drag"> <action name="Resize"> <edge>bottom</edge> </action> </mousebind> <mousebind button="Middle" action="Press"> <action name="Lower"/> <action name="FocusToBottom"/> <action name="Unfocus"/> </mousebind> <mousebind button="Right" action="Press"> <action name="Focus"/> <action name="Raise"/> <action name="ShowMenu"> <menu>client-menu</menu> </action> </mousebind> </context> <context name="BLCorner"> <mousebind button="Left" action="Press"> <action name="Focus"/> <action name="Raise"/> </mousebind> <mousebind button="Left" action="Drag"> <action name="Resize"/> </mousebind> </context> <context name="BRCorner"> <mousebind button="Left" action="Press"> <action name="Focus"/> <action name="Raise"/> </mousebind> <mousebind button="Left" action="Drag"> <action name="Resize"/> </mousebind> </context> <context name="TLCorner"> <mousebind button="Left" action="Press"> <action name="Focus"/> <action name="Raise"/> <action name="Unshade"/> </mousebind> <mousebind button="Left" action="Drag"> <action name="Resize"/> </mousebind> </context> <context name="TRCorner"> <mousebind button="Left" action="Press"> <action name="Focus"/> <action name="Raise"/> <action name="Unshade"/> </mousebind> <mousebind button="Left" action="Drag"> <action name="Resize"/> </mousebind> </context> <context name="Client"> <mousebind button="Left" action="Press"> <action name="Focus"/> <action name="Raise"/> </mousebind> <mousebind button="Middle" action="Press"> <action name="Focus"/> <action name="Raise"/> </mousebind> <mousebind button="Right" action="Press"> <action name="Focus"/> <action name="Raise"/> </mousebind> </context> <context name="Icon"> <mousebind button="Left" action="Press"> <action name="Focus"/> <action name="Raise"/> <action name="Unshade"/> <action name="ShowMenu"> <menu>client-menu</menu> </action> </mousebind> <mousebind button="Right" action="Press"> <action name="Focus"/> <action name="Raise"/> <action name="ShowMenu"> <menu>client-menu</menu> </action> </mousebind> </context> <context name="AllDesktops"> <mousebind button="Left" action="Press"> <action name="Focus"/> <action name="Raise"/> <action name="Unshade"/> </mousebind> <mousebind button="Left" action="Click"> <action name="ToggleOmnipresent"/> </mousebind> </context> <context name="Shade"> <mousebind button="Left" action="Press"> <action name="Focus"/> <action name="Raise"/> </mousebind> <mousebind button="Left" action="Click"> <action name="ToggleShade"/> </mousebind> </context> <context name="Iconify"> <mousebind button="Left" action="Press"> <action name="Focus"/> <action name="Raise"/> </mousebind> <mousebind button="Left" action="Click"> <action name="Iconify"/> </mousebind> </context> <context name="Maximize"> <mousebind button="Left" action="Press"> <action name="Focus"/> <action name="Raise"/> <action name="Unshade"/> </mousebind> <mousebind button="Middle" action="Press"> <action name="Focus"/> <action name="Raise"/> <action name="Unshade"/> </mousebind> <mousebind button="Right" action="Press"> <action name="Focus"/> <action name="Raise"/> <action name="Unshade"/> </mousebind> <mousebind button="Left" action="Click"> <action name="ToggleMaximizeFull"/> </mousebind> <mousebind button="Middle" action="Click"> <action name="ToggleMaximizeVert"/> </mousebind> <mousebind button="Right" action="Click"> <action name="ToggleMaximizeHorz"/> </mousebind> </context> <context name="Close"> <mousebind button="Left" action="Press"> <action name="Focus"/> <action name="Raise"/> <action name="Unshade"/> </mousebind> <mousebind button="Left" action="Click"> <action name="Close"/> </mousebind> </context> <context name="Desktop"> <mousebind button="Up" action="Click"> <action name="DesktopPrevious"/> </mousebind> <mousebind button="Down" action="Click"> <action name="DesktopNext"/> </mousebind> <mousebind button="A-Up" action="Click"> <action name="DesktopPrevious"/> </mousebind> <mousebind button="A-Down" action="Click"> <action name="DesktopNext"/> </mousebind> <mousebind button="C-A-Up" action="Click"> <action name="DesktopPrevious"/> </mousebind> <mousebind button="C-A-Down" action="Click"> <action name="DesktopNext"/> </mousebind> <mousebind button="Left" action="Press"> <action name="Focus"/> <action name="Raise"/> </mousebind> <mousebind button="Right" action="Press"> <action name="Focus"/> <action name="Raise"/> </mousebind> </context> <context name="Root"> <!-- Menus --> <mousebind button="Middle" action="Press"> <action name="ShowMenu"> <menu>client-list-combined-menu</menu> </action> </mousebind> <mousebind button="Right" action="Press"> <action name="ShowMenu"> <menu>root-menu</menu> </action> </mousebind> </context> <context name="MoveResize"> <mousebind button="Up" action="Click"> <action name="DesktopPrevious"/> </mousebind> <mousebind button="Down" action="Click"> <action name="DesktopNext"/> </mousebind> <mousebind button="A-Up" action="Click"> <action name="DesktopPrevious"/> </mousebind> <mousebind button="A-Down" action="Click"> <action name="DesktopNext"/> </mousebind> </context> </mouse> <menu> <!-- You can specify more than one menu file in here and they are all loaded, just don't make menu ids clash or, well, it'll be kind of pointless --> <!-- default menu file (or custom one in $HOME/.config/openbox/) --> <file>menu.xml</file> <hideDelay>200</hideDelay> <!-- if a press-release lasts longer than this setting (in milliseconds), the menu is hidden again --> <middle>no</middle> <!-- center submenus vertically about the parent entry --> <submenuShowDelay>100</submenuShowDelay> <!-- this one is easy, time to delay before showing a submenu after hovering over the parent entry --> <applicationIcons>yes</applicationIcons> <!-- controls if icons appear in the client-list-(combined-)menu --> <manageDesktops>yes</manageDesktops> <!-- show the manage desktops section in the client-list-(combined-)menu --> </menu> <applications> <!-- # this is an example with comments throughout. use these to make your # own rules, but without the comments of course. <application name="first element of window's WM_CLASS property (see xprop)" class="second element of window's WM_CLASS property (see xprop)" role="the window's WM_WINDOW_ROLE property (see xprop)" type="the window's _NET_WM_WINDOW_TYPE (if unspecified, then it is dialog for child windows)"> # the name or the class can be set, or both. this is used to match # windows when they appear. role can optionally be set as well, to # further restrict your matches. # the name, class, and role 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 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). <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> <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 --> </applications> </openbox_config>
Other notes ∞
Since comments don't seem to work the way I expect, I'll add notes here:
run a script, using openbox' hotkeys:
tested and works:
(kdialog)
sh -c 'exec `kdialog --inputbox "Run program"`' sh -c '`kdialog --inputbox "Run program"`'
does not work:
(Xdialog)
sh -c '`Xdialog --inputbox "Run program" 8 20`' fish -c (Xdialog --inputbox "Run program" 8 20)
Footnotes
Last updated 2020-05-18 at 20:30:33
ported