add base debian openbox
This commit is contained in:
commit
1859bab2da
|
@ -0,0 +1,24 @@
|
|||
Openbox authors/contributors:
|
||||
|
||||
Mikael Magnusson (mikachu@icculus.org)
|
||||
- Developer
|
||||
Dana Jansens (danakj@orodu.net)
|
||||
- Lead developer
|
||||
Derek Foreman (manmower@openbox.org)
|
||||
- Rendering code
|
||||
Tore Anderson (tore@linpro.no)
|
||||
- Directional focus, edge moving/growing actions
|
||||
Audun Hove (audun@nlc.no)
|
||||
- Actions code, move window to edge actions
|
||||
Marius Nita (marius@cs.pdx.edu)
|
||||
- Otk prototype code, design ideas.
|
||||
John McKnight (jmcknight@gmail.com)
|
||||
- Clearlooks themes
|
||||
David Barr (david@chalkskeletons.com)
|
||||
- Bear2 theme
|
||||
- Clearlooks theme
|
||||
- Icon
|
||||
Brandon Cash
|
||||
- SplitVertical gradient style
|
||||
Dan Rise
|
||||
- Natura theme
|
|
@ -0,0 +1,78 @@
|
|||
EWMH Compliance Document:
|
||||
==========================
|
||||
|
||||
Listed below are all the NetWM (or EWM) hints decided upon on freedesktop.org
|
||||
and Openbox's current level of compliance with the spec. Beside each hint is
|
||||
the version of the spec which Openbox is compliant up to for the hint.
|
||||
|
||||
(
|
||||
compliance :
|
||||
- = none,
|
||||
/ = partial,
|
||||
+ = complete,
|
||||
* = Openbox is compliant, but something else needs checking
|
||||
? = unknown
|
||||
)
|
||||
|
||||
+ _NET_SUPPORTED (1.3)
|
||||
+ _NET_CLIENT_LIST (1.3)
|
||||
+ _NET_NUMBER_OF_DESKTOPS (1.3)
|
||||
+ _NET_DESKTOP_GEOMETRY (1.3)
|
||||
Openbox doesn't support large desktops so these just match the
|
||||
screen size.
|
||||
+ _NET_DESKTOP_VIEWPORT (1.3)
|
||||
Openbox doesn't support large desktops so these are just (0, 0).
|
||||
+ _NET_CURRENT_DESKTOP (1.3)
|
||||
+ _NET_DESKTOP_NAMES (1.3)
|
||||
+ _NET_ACTIVE_WINDOW (1.3)
|
||||
+ _NET_WORKAREA (1.3)
|
||||
+ _NET_SUPPORTING_WM_CHECK (1.3)
|
||||
+ _NET_VIRTUAL_ROOTS (1.3)
|
||||
Openbox does not use virtual roots, so this is not needed.
|
||||
+ _NET_DESKTOP_LAYOUT (1.3)
|
||||
+ _NET_SHOWING_DESKTOP (1.3)
|
||||
+ _NET_CLOSE_WINDOW (1.3)
|
||||
+ _NET_MOVERESIZE_WINDOW (1.3)
|
||||
+ _NET_WM_MOVERESIZE (1.3)
|
||||
+ _NET_WM_NAME (1.3)
|
||||
+ _NET_WM_VISIBLE_NAME (1.3)
|
||||
+ _NET_WM_ICON_NAME (1.3)
|
||||
+ _NET_WM_VISIBLE_ICON_NAME (1.3)
|
||||
+ _NET_WM_DESKTOP (1.3)
|
||||
+ _NET_WM_WINDOW_TYPE (1.3)
|
||||
Openbox does not let windows change this hint after mapping.
|
||||
+ _NET_WM_STATE (1.3)
|
||||
+ _NET_WM_ALLOWED_ACTIONS (1.3)
|
||||
+ _NET_WM_STRUT (1.3)
|
||||
+ _NET_WM_STRUT_PARTIAL (1.3)
|
||||
Openbox uses these to create per-monitor struts in Xinerama setups.
|
||||
+ _NET_WM_ICON_GEOMETRY (1.3)
|
||||
+ _NET_WM_ICON (1.3)
|
||||
- _NET_WM_PID (1.3)
|
||||
Openbox does not currently kill processes.
|
||||
- _NET_WM_HANDLED_ICONS (1.3)
|
||||
Openbox does not display icons for iconic windows.
|
||||
+ _NET_WM_USER_TIME (1.3)
|
||||
- _NET_WM_USER_TIME_WINDOW (1.4)
|
||||
- _NET_WM_PING (1.3)
|
||||
Openbox doesn't look for hung processes at this time.
|
||||
+ _NET_FRAME_EXTENTS (1.3)
|
||||
+ _NET_WM_STATE_DEMANDS_ATTENTION (1.3)
|
||||
+ _NET_RESTACK_WINDOW (1.3)
|
||||
+ _NET_WM_SYNC_REQUEST (1.3)
|
||||
+ _NET_WM_FULL_PLACEMENT (1.4)
|
||||
+ _NET_WM_MOVERESIZE_CANCEL (1.4)
|
||||
+ _NET_REQUEST_FRAME_EXTENTS (1.3)
|
||||
+ _NET_WM_ACTION_MOVE (1.3)
|
||||
+ _NET_WM_ACTION_RESIZE (1.3)
|
||||
+ _NET_WM_ACTION_MINIMIZE (1.3)
|
||||
+ _NET_WM_ACTION_SHADE (1.3)
|
||||
- _NET_WM_ACTION_STICK (1.3)
|
||||
Openbox does not do large desktops, so no sticky state is needed.
|
||||
+ _NET_WM_ACTION_MAXIMIZE_HORZ (1.3)
|
||||
+ _NET_WM_ACTION_MAXIMIZE_VERT (1.3)
|
||||
+ _NET_WM_ACTION_FULLSCREEN (1.3)
|
||||
+ _NET_WM_ACTION_CHANGE_DESKTOP (1.3)
|
||||
+ _NET_WM_ACTION_CLOSE (1.3)
|
||||
+ _NET_WM_ACTION_ABOVE (1.4?)
|
||||
+ _NET_WM_ACTION_BELOW (1.4?)
|
|
@ -0,0 +1,340 @@
|
|||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
|
@ -0,0 +1,628 @@
|
|||
SUBDIRS = m4 po
|
||||
|
||||
docxbmdir = $(docdir)/xbm
|
||||
themedir = $(datadir)/themes
|
||||
localedir = $(datadir)/locale
|
||||
configdir = $(sysconfdir)/xdg
|
||||
rcdir = $(configdir)/openbox
|
||||
xsessionsdir = $(datadir)/xsessions
|
||||
gnomesessiondir = $(datadir)/gnome-session/sessions
|
||||
gnomewmfilesdir = $(datadir)/gnome/wm-properties
|
||||
pkgconfigdir = $(libdir)/pkgconfig
|
||||
obtpubincludedir= $(includedir)/openbox/@OBT_VERSION@/obt
|
||||
rrpubincludedir = $(includedir)/openbox/@RR_VERSION@/obrender
|
||||
pixmapdir = $(datadir)/pixmaps
|
||||
xsddir = $(datadir)/openbox
|
||||
appsdir = $(datadir)/applications
|
||||
|
||||
theme = Clearlooks
|
||||
|
||||
AUTOMAKE_OPTIONS = subdir-objects foreign
|
||||
|
||||
ACLOCAL_AMFLAGS = -I m4
|
||||
|
||||
INCLUDES = -I.
|
||||
|
||||
check_PROGRAMS = \
|
||||
obrender/rendertest
|
||||
|
||||
lib_LTLIBRARIES = \
|
||||
obt/libobt.la \
|
||||
obrender/libobrender.la
|
||||
|
||||
bin_PROGRAMS = \
|
||||
openbox/openbox \
|
||||
tools/gdm-control/gdm-control \
|
||||
tools/gnome-panel-control/gnome-panel-control \
|
||||
tools/obxprop/obxprop
|
||||
|
||||
noinst_PROGRAMS = \
|
||||
obt/obt_unittests
|
||||
|
||||
nodist_bin_SCRIPTS = \
|
||||
data/xsession/openbox-session \
|
||||
data/xsession/openbox-gnome-session \
|
||||
data/xsession/openbox-kde-session
|
||||
|
||||
dist_rc_SCRIPTS = \
|
||||
data/environment
|
||||
|
||||
nodist_rc_SCRIPTS = \
|
||||
data/autostart/autostart
|
||||
|
||||
dist_libexec_SCRIPTS = \
|
||||
data/autostart/openbox-xdg-autostart
|
||||
|
||||
nodist_libexec_SCRIPTS = \
|
||||
data/autostart/openbox-autostart
|
||||
|
||||
|
||||
## obrender ##
|
||||
|
||||
obrender_rendertest_CPPFLAGS = \
|
||||
$(PANGO_CFLAGS) \
|
||||
$(GLIB_CFLAGS) \
|
||||
-DG_LOG_DOMAIN=\"RenderTest\"
|
||||
obrender_rendertest_LDADD = \
|
||||
obt/libobt.la \
|
||||
obrender/libobrender.la \
|
||||
$(GLIB_LIBS) \
|
||||
$(PANGO_LIBS) \
|
||||
$(XML_LIBS) \
|
||||
$(X_LIBS)
|
||||
obrender_rendertest_SOURCES = obrender/test.c
|
||||
|
||||
obrender_libobrender_la_CPPFLAGS = \
|
||||
$(X_CFLAGS) \
|
||||
$(GLIB_CFLAGS) \
|
||||
$(XML_CFLAGS) \
|
||||
$(PANGO_CFLAGS) \
|
||||
$(IMLIB2_CFLAGS) \
|
||||
$(LIBRSVG_CFLAGS) \
|
||||
-DG_LOG_DOMAIN=\"ObRender\" \
|
||||
-DDEFAULT_THEME=\"$(theme)\"
|
||||
obrender_libobrender_la_LDFLAGS = \
|
||||
-version-info $(RR_CURRENT):$(RR_REVISION):$(RR_AGE)
|
||||
obrender_libobrender_la_LIBADD = \
|
||||
obt/libobt.la \
|
||||
$(X_LIBS) \
|
||||
$(PANGO_LIBS) \
|
||||
$(GLIB_LIBS) \
|
||||
$(IMLIB2_LIBS) \
|
||||
$(LIBRSVG_LIBS) \
|
||||
$(XML_LIBS)
|
||||
obrender_libobrender_la_SOURCES = \
|
||||
gettext.h \
|
||||
obrender/button.c \
|
||||
obrender/color.h \
|
||||
obrender/color.c \
|
||||
obrender/font.h \
|
||||
obrender/font.c \
|
||||
obrender/geom.h \
|
||||
obrender/gradient.h \
|
||||
obrender/gradient.c \
|
||||
obrender/icon.h \
|
||||
obrender/image.h \
|
||||
obrender/image.c \
|
||||
obrender/imagecache.h \
|
||||
obrender/imagecache.c \
|
||||
obrender/instance.h \
|
||||
obrender/instance.c \
|
||||
obrender/mask.h \
|
||||
obrender/mask.c \
|
||||
obrender/render.h \
|
||||
obrender/render.c \
|
||||
obrender/theme.h \
|
||||
obrender/theme.c
|
||||
|
||||
## obt ##
|
||||
|
||||
obt_libobt_la_CPPFLAGS = \
|
||||
$(X_CFLAGS) \
|
||||
$(XINERAMA_CFLAGS) \
|
||||
$(XKB_CFLAGS) \
|
||||
$(XRANDR_CFLAGS) \
|
||||
$(XSHAPE_CFLAGS) \
|
||||
$(XSYNC_CFLAGS) \
|
||||
$(GLIB_CFLAGS) \
|
||||
$(XML_CFLAGS) \
|
||||
-DG_LOG_DOMAIN=\"Obt\" \
|
||||
-DLOCALEDIR=\"$(localedir)\" \
|
||||
-DDATADIR=\"$(datadir)\" \
|
||||
-DCONFIGDIR=\"$(configdir)\"
|
||||
obt_libobt_la_LDFLAGS = \
|
||||
-version-info $(OBT_CURRENT):$(OBT_REVISION):$(OBT_AGE)
|
||||
obt_libobt_la_LIBADD = \
|
||||
$(X_LIBS) \
|
||||
$(XINERAMA_LIBS) \
|
||||
$(XKB_LIBS) \
|
||||
$(XRANDR_LIBS) \
|
||||
$(XSHAPE_LIBS) \
|
||||
$(XSYNC_LIBS) \
|
||||
$(GLIB_LIBS) \
|
||||
$(XML_LIBS)
|
||||
obt_libobt_la_SOURCES = \
|
||||
obt/bsearch.h \
|
||||
obt/display.h \
|
||||
obt/display.c \
|
||||
obt/internal.h \
|
||||
obt/keyboard.h \
|
||||
obt/keyboard.c \
|
||||
obt/xml.h \
|
||||
obt/xml.c \
|
||||
obt/ddparse.h \
|
||||
obt/ddparse.c \
|
||||
obt/link.h \
|
||||
obt/link.c \
|
||||
obt/paths.h \
|
||||
obt/paths.c \
|
||||
obt/prop.h \
|
||||
obt/prop.c \
|
||||
obt/signal.h \
|
||||
obt/signal.c \
|
||||
obt/util.h \
|
||||
obt/xqueue.h \
|
||||
obt/xqueue.c
|
||||
|
||||
## openbox ##
|
||||
|
||||
openbox_openbox_CPPFLAGS = \
|
||||
$(SM_CFLAGS) \
|
||||
$(X_CFLAGS) \
|
||||
$(XCURSOR_CFLAGS) \
|
||||
$(SM_CFLAGS) \
|
||||
$(PANGO_CFLAGS) \
|
||||
$(GLIB_CFLAGS) \
|
||||
$(LIBSN_CFLAGS) \
|
||||
$(XML_CFLAGS) \
|
||||
-DLOCALEDIR=\"$(localedir)\" \
|
||||
-DDATADIR=\"$(datadir)\" \
|
||||
-DCONFIGDIR=\"$(configdir)\" \
|
||||
-DG_LOG_DOMAIN=\"Openbox\"
|
||||
openbox_openbox_LDADD = \
|
||||
$(XINERAMA_LIBS) \
|
||||
$(XRANDR_LIBS) \
|
||||
$(SM_LIBS) \
|
||||
$(GLIB_LIBS) \
|
||||
$(X_LIBS) \
|
||||
$(XCURSOR_LIBS) \
|
||||
$(LIBSN_LIBS) \
|
||||
$(XML_LIBS) \
|
||||
$(EFENCE_LIBS) \
|
||||
$(LIBINTL) \
|
||||
obrender/libobrender.la \
|
||||
obt/libobt.la
|
||||
openbox_openbox_LDFLAGS = -export-dynamic
|
||||
openbox_openbox_SOURCES = \
|
||||
gettext.h \
|
||||
openbox/actions/all.c \
|
||||
openbox/actions/all.h \
|
||||
openbox/actions/addremovedesktop.c \
|
||||
openbox/actions/breakchroot.c \
|
||||
openbox/actions/close.c \
|
||||
openbox/actions/cyclewindows.c \
|
||||
openbox/actions/debug.c \
|
||||
openbox/actions/decorations.c \
|
||||
openbox/actions/desktop.c \
|
||||
openbox/actions/dock.c \
|
||||
openbox/actions/dockautohide.c \
|
||||
openbox/actions/directionalwindows.c \
|
||||
openbox/actions/execute.c \
|
||||
openbox/actions/exit.c \
|
||||
openbox/actions/focus.c \
|
||||
openbox/actions/focustobottom.c \
|
||||
openbox/actions/fullscreen.c \
|
||||
openbox/actions/growtoedge.c \
|
||||
openbox/actions/iconify.c \
|
||||
openbox/actions/if.c \
|
||||
openbox/actions/kill.c \
|
||||
openbox/actions/layer.c \
|
||||
openbox/actions/lower.c \
|
||||
openbox/actions/maximize.c \
|
||||
openbox/actions/move.c \
|
||||
openbox/actions/moverelative.c \
|
||||
openbox/actions/moveresizeto.c \
|
||||
openbox/actions/movetoedge.c \
|
||||
openbox/actions/omnipresent.c \
|
||||
openbox/actions/raise.c \
|
||||
openbox/actions/raiselower.c \
|
||||
openbox/actions/reconfigure.c \
|
||||
openbox/actions/resize.c \
|
||||
openbox/actions/resizerelative.c \
|
||||
openbox/actions/restart.c \
|
||||
openbox/actions/shade.c \
|
||||
openbox/actions/shadelowerraise.c \
|
||||
openbox/actions/showdesktop.c \
|
||||
openbox/actions/showmenu.c \
|
||||
openbox/actions/unfocus.c \
|
||||
openbox/actions.c \
|
||||
openbox/actions.h \
|
||||
openbox/client.c \
|
||||
openbox/client.h \
|
||||
openbox/client_list_menu.c \
|
||||
openbox/client_list_menu.h \
|
||||
openbox/client_list_combined_menu.c \
|
||||
openbox/client_list_combined_menu.h \
|
||||
openbox/client_menu.c \
|
||||
openbox/client_menu.h \
|
||||
openbox/config.c \
|
||||
openbox/config.h \
|
||||
openbox/debug.c \
|
||||
openbox/debug.h \
|
||||
openbox/dock.c \
|
||||
openbox/dock.h \
|
||||
openbox/event.c \
|
||||
openbox/event.h \
|
||||
openbox/focus.c \
|
||||
openbox/focus.h \
|
||||
openbox/focus_cycle.c \
|
||||
openbox/focus_cycle.h \
|
||||
openbox/focus_cycle_indicator.c \
|
||||
openbox/focus_cycle_indicator.h \
|
||||
openbox/focus_cycle_popup.c \
|
||||
openbox/focus_cycle_popup.h \
|
||||
openbox/frame.c \
|
||||
openbox/frame.h \
|
||||
openbox/framerender.c \
|
||||
openbox/framerender.h \
|
||||
openbox/geom.h \
|
||||
openbox/grab.c \
|
||||
openbox/grab.h \
|
||||
openbox/group.c \
|
||||
openbox/group.h \
|
||||
openbox/keyboard.c \
|
||||
openbox/keyboard.h \
|
||||
openbox/keytree.c \
|
||||
openbox/keytree.h \
|
||||
openbox/menuframe.c \
|
||||
openbox/menuframe.h \
|
||||
openbox/menu.c \
|
||||
openbox/menu.h \
|
||||
openbox/misc.h \
|
||||
openbox/mouse.c \
|
||||
openbox/mouse.h \
|
||||
openbox/moveresize.c \
|
||||
openbox/moveresize.h \
|
||||
openbox/mwm.h \
|
||||
openbox/openbox.c \
|
||||
openbox/openbox.h \
|
||||
openbox/ping.c \
|
||||
openbox/ping.h \
|
||||
openbox/place.c \
|
||||
openbox/place.h \
|
||||
openbox/place_overlap.c \
|
||||
openbox/place_overlap.h \
|
||||
openbox/prompt.c \
|
||||
openbox/prompt.h \
|
||||
openbox/popup.c \
|
||||
openbox/popup.h \
|
||||
openbox/resist.c \
|
||||
openbox/resist.h \
|
||||
openbox/screen.c \
|
||||
openbox/screen.h \
|
||||
openbox/session.c \
|
||||
openbox/session.h \
|
||||
openbox/stacking.c \
|
||||
openbox/stacking.h \
|
||||
openbox/startupnotify.c \
|
||||
openbox/startupnotify.h \
|
||||
openbox/translate.c \
|
||||
openbox/translate.h \
|
||||
openbox/window.c \
|
||||
openbox/window.h
|
||||
|
||||
## obt_unittests ##
|
||||
|
||||
obt_obt_unittests_CPPFLAGS = \
|
||||
$(GLIB_CFLAGS) \
|
||||
-DLOCALEDIR=\"$(localedir)\" \
|
||||
-DDATADIR=\"$(datadir)\" \
|
||||
-DCONFIGDIR=\"$(configdir)\" \
|
||||
-DG_LOG_DOMAIN=\"Obt-Unittests\"
|
||||
obt_obt_unittests_LDADD = \
|
||||
$(GLIB_LIBS) \
|
||||
obt/libobt.la
|
||||
obt_obt_unittests_LDFLAGS = -export-dynamic
|
||||
obt_obt_unittests_SOURCES = \
|
||||
obt/unittest_base.h \
|
||||
obt/unittest_base.c \
|
||||
obt/bsearch_unittest.c
|
||||
|
||||
## gnome-panel-control ##
|
||||
|
||||
tools_gnome_panel_control_gnome_panel_control_CPPFLAGS = \
|
||||
$(X_CFLAGS)
|
||||
tools_gnome_panel_control_gnome_panel_control_LDADD = \
|
||||
$(X_LIBS)
|
||||
tools_gnome_panel_control_gnome_panel_control_SOURCES = \
|
||||
tools/gnome-panel-control/gnome-panel-control.c
|
||||
|
||||
## obxprop ##
|
||||
|
||||
tools_obxprop_obxprop_CPPFLAGS = \
|
||||
$(GLIB_CFLAGS) \
|
||||
$(X_CFLAGS)
|
||||
tools_obxprop_obxprop_LDADD = \
|
||||
$(GLIB_LIBS) \
|
||||
$(X_LIBS)
|
||||
tools_obxprop_obxprop_SOURCES = \
|
||||
tools/obxprop/obxprop.c
|
||||
|
||||
## gdm-control ##
|
||||
|
||||
tools_gdm_control_gdm_control_CPPFLAGS = \
|
||||
$(XAUTH_CFLAGS) \
|
||||
$(X_CFLAGS) \
|
||||
$(GLIB_CFLAGS)
|
||||
tools_gdm_control_gdm_control_LDADD = \
|
||||
$(XAUTH_LIBS) \
|
||||
$(X_LIBS) \
|
||||
$(GLIB_LIBS)
|
||||
tools_gdm_control_gdm_control_SOURCES = \
|
||||
tools/gdm-control/gdm-control.c
|
||||
|
||||
|
||||
## default button masks ##
|
||||
dist_docxbm_DATA = \
|
||||
data/xbm/bullet.xbm \
|
||||
data/xbm/close.xbm \
|
||||
data/xbm/desk_toggled.xbm \
|
||||
data/xbm/desk.xbm \
|
||||
data/xbm/iconify.xbm \
|
||||
data/xbm/max_toggled.xbm \
|
||||
data/xbm/max.xbm \
|
||||
data/xbm/shade_toggled.xbm \
|
||||
data/xbm/shade.xbm
|
||||
|
||||
|
||||
## themes ##
|
||||
|
||||
clearlooks_themedir = $(themedir)/Clearlooks/openbox-3
|
||||
dist_clearlooks_theme_DATA= \
|
||||
themes/Clearlooks/openbox-3/themerc
|
||||
|
||||
clearlooks34_themedir = $(themedir)/Clearlooks-3.4/openbox-3
|
||||
dist_clearlooks34_theme_DATA= \
|
||||
themes/Clearlooks-3.4/openbox-3/themerc
|
||||
|
||||
clearlooksolive_themedir = $(themedir)/Clearlooks-Olive/openbox-3
|
||||
dist_clearlooksolive_theme_DATA= \
|
||||
themes/Clearlooks-Olive/openbox-3/themerc
|
||||
|
||||
mikachu_themedir = $(themedir)/Mikachu/openbox-3
|
||||
dist_mikachu_theme_DATA= \
|
||||
themes/Mikachu/openbox-3/bullet.xbm \
|
||||
themes/Mikachu/openbox-3/close.xbm \
|
||||
themes/Mikachu/openbox-3/desk.xbm \
|
||||
themes/Mikachu/openbox-3/iconify.xbm \
|
||||
themes/Mikachu/openbox-3/max.xbm \
|
||||
themes/Mikachu/openbox-3/themerc
|
||||
|
||||
|
||||
natura_themedir = $(themedir)/Natura/openbox-3
|
||||
dist_natura_theme_DATA= \
|
||||
themes/Natura/openbox-3/close_hover.xbm \
|
||||
themes/Natura/openbox-3/close.xbm \
|
||||
themes/Natura/openbox-3/desk_toggled.xbm \
|
||||
themes/Natura/openbox-3/desk_hover.xbm \
|
||||
themes/Natura/openbox-3/desk.xbm \
|
||||
themes/Natura/openbox-3/iconify_hover.xbm \
|
||||
themes/Natura/openbox-3/iconify.xbm \
|
||||
themes/Natura/openbox-3/max_hover.xbm \
|
||||
themes/Natura/openbox-3/max_toggled.xbm \
|
||||
themes/Natura/openbox-3/max.xbm \
|
||||
themes/Natura/openbox-3/shade.xbm \
|
||||
themes/Natura/openbox-3/shade_hover.xbm \
|
||||
themes/Natura/openbox-3/themerc
|
||||
|
||||
artwizboxed_themedir = $(themedir)/Artwiz-boxed/openbox-3
|
||||
dist_artwizboxed_theme_DATA= \
|
||||
themes/Artwiz-boxed/openbox-3/themerc
|
||||
|
||||
bear2_themedir = $(themedir)/Bear2/openbox-3
|
||||
dist_bear2_theme_DATA= \
|
||||
themes/Bear2/openbox-3/close_pressed.xbm \
|
||||
themes/Bear2/openbox-3/close.xbm \
|
||||
themes/Bear2/openbox-3/desk_toggled.xbm \
|
||||
themes/Bear2/openbox-3/desk.xbm \
|
||||
themes/Bear2/openbox-3/iconify_pressed.xbm \
|
||||
themes/Bear2/openbox-3/iconify.xbm \
|
||||
themes/Bear2/openbox-3/max_pressed.xbm \
|
||||
themes/Bear2/openbox-3/max_toggled.xbm \
|
||||
themes/Bear2/openbox-3/max.xbm \
|
||||
themes/Bear2/openbox-3/shade_pressed.xbm \
|
||||
themes/Bear2/openbox-3/shade.xbm \
|
||||
themes/Bear2/openbox-3/themerc
|
||||
|
||||
orang_themedir = $(themedir)/Orang/openbox-3
|
||||
dist_orang_theme_DATA= \
|
||||
themes/Orang/openbox-3/themerc
|
||||
|
||||
onyx_themedir = $(themedir)/Onyx/openbox-3
|
||||
dist_onyx_theme_DATA= \
|
||||
themes/Onyx/openbox-3/themerc
|
||||
|
||||
onyxcitrus_themedir = $(themedir)/Onyx-Citrus/openbox-3
|
||||
dist_onyxcitrus_theme_DATA= \
|
||||
themes/Onyx-Citrus/openbox-3/themerc
|
||||
|
||||
syscrash_themedir = $(themedir)/Syscrash/openbox-3
|
||||
dist_syscrash_theme_DATA= \
|
||||
themes/Syscrash/openbox-3/max_disabled.xbm \
|
||||
themes/Syscrash/openbox-3/max_pressed.xbm \
|
||||
themes/Syscrash/openbox-3/max_toggled.xbm \
|
||||
themes/Syscrash/openbox-3/max.xbm \
|
||||
themes/Syscrash/openbox-3/themerc
|
||||
|
||||
## public headers ##
|
||||
|
||||
rrpubinclude_HEADERS = \
|
||||
obrender/color.h \
|
||||
obrender/font.h \
|
||||
obrender/geom.h \
|
||||
obrender/gradient.h \
|
||||
obrender/image.h \
|
||||
obrender/instance.h \
|
||||
obrender/mask.h \
|
||||
obrender/render.h \
|
||||
obrender/theme.h \
|
||||
obrender/version.h
|
||||
|
||||
obtpubinclude_HEADERS = \
|
||||
obt/link.h \
|
||||
obt/display.h \
|
||||
obt/keyboard.h \
|
||||
obt/xml.h \
|
||||
obt/paths.h \
|
||||
obt/prop.h \
|
||||
obt/signal.h \
|
||||
obt/util.h \
|
||||
obt/version.h \
|
||||
obt/xqueue.h
|
||||
|
||||
nodist_pkgconfig_DATA = \
|
||||
obrender/obrender-3.5.pc \
|
||||
obt/obt-3.5.pc
|
||||
|
||||
## data ##
|
||||
|
||||
dist_apps_DATA = \
|
||||
data/openbox.desktop
|
||||
|
||||
dist_pixmap_DATA = \
|
||||
data/openbox.png
|
||||
|
||||
dist_rc_DATA = \
|
||||
data/rc.xml \
|
||||
data/menu.xml
|
||||
|
||||
edit = $(SED) \
|
||||
-e 's!@version\@!$(VERSION)!' \
|
||||
-e 's!@configdir\@!$(configdir)!' \
|
||||
-e 's!@rcdir\@!$(rcdir)!' \
|
||||
-e 's!@libexecdir\@!$(libexecdir)!' \
|
||||
-e 's!@bindir\@!$(bindir)!'
|
||||
|
||||
data/autostart/autostart: $(top_srcdir)/data/autostart/autostart.in Makefile
|
||||
@echo make: creating $@
|
||||
@test -d $(shell dirname $(top_builddir)/$@) || \
|
||||
mkdir $(shell dirname $(top_builddir)/$@)
|
||||
@$(edit) $< >$(top_builddir)/$@
|
||||
|
||||
data/autostart/openbox-autostart: $(top_srcdir)/data/autostart/openbox-autostart.in Makefile
|
||||
@echo make: creating $@
|
||||
@test -d $(shell dirname $(top_builddir)/$@) || \
|
||||
mkdir $(shell dirname $(top_builddir)/$@)
|
||||
@$(edit) $< >$(top_builddir)/$@
|
||||
|
||||
%.desktop: %.desktop.in Makefile
|
||||
@echo make: creating $@
|
||||
@$(edit) $< >$@
|
||||
|
||||
%-session: %-session.in Makefile
|
||||
@echo make: creating $@
|
||||
@$(edit) $< >$@
|
||||
|
||||
%.1.in: %.1.sgml
|
||||
@echo make: creating $@
|
||||
@docbook-to-man $< >$@
|
||||
|
||||
%.1: %.1.in Makefile
|
||||
@echo make: creating $@
|
||||
@$(edit) $< >$@
|
||||
|
||||
dist_gnomewmfiles_DATA = \
|
||||
data/gnome-wm-properties/openbox.desktop
|
||||
|
||||
nodist_xsessions_DATA = \
|
||||
data/xsession/openbox.desktop \
|
||||
data/xsession/openbox-gnome.desktop \
|
||||
data/xsession/openbox-kde.desktop
|
||||
|
||||
dist_gnomesession_DATA = \
|
||||
data/gnome-session/openbox-gnome.session \
|
||||
data/gnome-session/openbox-gnome-fallback.session
|
||||
|
||||
dist_noinst_DATA = \
|
||||
data/rc.xsd \
|
||||
data/menu.xsd \
|
||||
data/autostart/autostart.in \
|
||||
data/autostart/openbox-autostart.in \
|
||||
data/xsession/openbox.desktop.in \
|
||||
data/xsession/openbox-gnome.desktop.in \
|
||||
data/xsession/openbox-kde.desktop.in \
|
||||
data/xsession/openbox-session.in \
|
||||
data/xsession/openbox-gnome-session.in \
|
||||
data/xsession/openbox-kde-session.in \
|
||||
doc/openbox.1.sgml \
|
||||
doc/openbox.1.in \
|
||||
doc/openbox-session.1.sgml \
|
||||
doc/openbox-session.1.in \
|
||||
doc/openbox-gnome-session.1.sgml \
|
||||
doc/openbox-gnome-session.1.in \
|
||||
doc/openbox-kde-session.1.sgml \
|
||||
doc/openbox-kde-session.1.in \
|
||||
doc/obxprop.1.sgml \
|
||||
doc/obxprop.1.in \
|
||||
obrender/version.h.in \
|
||||
obrender/obrender-3.5.pc.in \
|
||||
obt/obt-3.5.pc.in \
|
||||
obt/version.h.in \
|
||||
tools/themeupdate/themeupdate.py \
|
||||
tests/hideshow.py \
|
||||
tests/Makefile \
|
||||
tests/aspect.c \
|
||||
tests/fullscreen.c \
|
||||
tests/grav.c \
|
||||
tests/grouptran.c \
|
||||
tests/icons.c \
|
||||
tests/modal2.c \
|
||||
tests/modal3.c \
|
||||
tests/modal.c \
|
||||
tests/noresize.c \
|
||||
tests/override.c \
|
||||
tests/positioned.c \
|
||||
tests/strut.c \
|
||||
tests/title.c \
|
||||
tests/urgent.c
|
||||
|
||||
dist_doc_DATA = \
|
||||
COMPLIANCE \
|
||||
README \
|
||||
AUTHORS \
|
||||
CHANGELOG \
|
||||
COPYING \
|
||||
data/rc.xsd \
|
||||
data/menu.xsd \
|
||||
doc/rc-mouse-focus.xml
|
||||
|
||||
nodist_man_MANS = \
|
||||
doc/openbox.1 \
|
||||
doc/openbox-session.1 \
|
||||
doc/openbox-gnome-session.1 \
|
||||
doc/openbox-kde-session.1 \
|
||||
doc/obxprop.1
|
||||
|
||||
EXTRA_DIST = \
|
||||
config.rpath
|
||||
|
||||
# make clean doesn't delete these for some reason, even though they are
|
||||
# built by make
|
||||
CLEANFILES = \
|
||||
$(nodist_man_MANS) \
|
||||
$(nodist_bin_SCRIPTS) \
|
||||
$(nodist_xsessions_DATA) \
|
||||
$(nodist_rc_SCRIPTS) \
|
||||
$(nodist_libexec_SCRIPTS)
|
||||
|
||||
#doc:
|
||||
# $(MAKE) -$(MAKEFLAGS) -C doc/doxygen doc
|
||||
|
||||
distclean-local:
|
||||
for d in . m4 po obrender parser obt openbox; do \
|
||||
for p in core core.* gmon.out *\~ *.orig *.rej .\#*; do \
|
||||
rm -f "$$d/$$p"; \
|
||||
done \
|
||||
done
|
||||
|
||||
.PHONY: doc
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,23 @@
|
|||
Openbox
|
||||
Copyright (C) 2004 Mikael Magnusson
|
||||
Copyright (C) 2002 Dana Jansens
|
||||
|
||||
----
|
||||
|
||||
This software is OSI Certified Open Source Software.
|
||||
OSI Certified is a certification mark of the Open Source Initiative.
|
||||
|
||||
----
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
See the COPYING file for a copy of the GNU General Public License.
|
||||
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,343 @@
|
|||
#! /bin/sh
|
||||
# Wrapper for compilers which do not understand '-c -o'.
|
||||
|
||||
scriptversion=2012-03-05.13; # UTC
|
||||
|
||||
# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009, 2010, 2012 Free
|
||||
# Software Foundation, Inc.
|
||||
# Written by Tom Tromey <tromey@cygnus.com>.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
# This file is maintained in Automake, please report
|
||||
# bugs to <bug-automake@gnu.org> or send patches to
|
||||
# <automake-patches@gnu.org>.
|
||||
|
||||
nl='
|
||||
'
|
||||
|
||||
# We need space, tab and new line, in precisely that order. Quoting is
|
||||
# there to prevent tools from complaining about whitespace usage.
|
||||
IFS=" "" $nl"
|
||||
|
||||
file_conv=
|
||||
|
||||
# func_file_conv build_file lazy
|
||||
# Convert a $build file to $host form and store it in $file
|
||||
# Currently only supports Windows hosts. If the determined conversion
|
||||
# type is listed in (the comma separated) LAZY, no conversion will
|
||||
# take place.
|
||||
func_file_conv ()
|
||||
{
|
||||
file=$1
|
||||
case $file in
|
||||
/ | /[!/]*) # absolute file, and not a UNC file
|
||||
if test -z "$file_conv"; then
|
||||
# lazily determine how to convert abs files
|
||||
case `uname -s` in
|
||||
MINGW*)
|
||||
file_conv=mingw
|
||||
;;
|
||||
CYGWIN*)
|
||||
file_conv=cygwin
|
||||
;;
|
||||
*)
|
||||
file_conv=wine
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
case $file_conv/,$2, in
|
||||
*,$file_conv,*)
|
||||
;;
|
||||
mingw/*)
|
||||
file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
|
||||
;;
|
||||
cygwin/*)
|
||||
file=`cygpath -m "$file" || echo "$file"`
|
||||
;;
|
||||
wine/*)
|
||||
file=`winepath -w "$file" || echo "$file"`
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
# func_cl_dashL linkdir
|
||||
# Make cl look for libraries in LINKDIR
|
||||
func_cl_dashL ()
|
||||
{
|
||||
func_file_conv "$1"
|
||||
if test -z "$lib_path"; then
|
||||
lib_path=$file
|
||||
else
|
||||
lib_path="$lib_path;$file"
|
||||
fi
|
||||
linker_opts="$linker_opts -LIBPATH:$file"
|
||||
}
|
||||
|
||||
# func_cl_dashl library
|
||||
# Do a library search-path lookup for cl
|
||||
func_cl_dashl ()
|
||||
{
|
||||
lib=$1
|
||||
found=no
|
||||
save_IFS=$IFS
|
||||
IFS=';'
|
||||
for dir in $lib_path $LIB
|
||||
do
|
||||
IFS=$save_IFS
|
||||
if $shared && test -f "$dir/$lib.dll.lib"; then
|
||||
found=yes
|
||||
lib=$dir/$lib.dll.lib
|
||||
break
|
||||
fi
|
||||
if test -f "$dir/$lib.lib"; then
|
||||
found=yes
|
||||
lib=$dir/$lib.lib
|
||||
break
|
||||
fi
|
||||
done
|
||||
IFS=$save_IFS
|
||||
|
||||
if test "$found" != yes; then
|
||||
lib=$lib.lib
|
||||
fi
|
||||
}
|
||||
|
||||
# func_cl_wrapper cl arg...
|
||||
# Adjust compile command to suit cl
|
||||
func_cl_wrapper ()
|
||||
{
|
||||
# Assume a capable shell
|
||||
lib_path=
|
||||
shared=:
|
||||
linker_opts=
|
||||
for arg
|
||||
do
|
||||
if test -n "$eat"; then
|
||||
eat=
|
||||
else
|
||||
case $1 in
|
||||
-o)
|
||||
# configure might choose to run compile as 'compile cc -o foo foo.c'.
|
||||
eat=1
|
||||
case $2 in
|
||||
*.o | *.[oO][bB][jJ])
|
||||
func_file_conv "$2"
|
||||
set x "$@" -Fo"$file"
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
func_file_conv "$2"
|
||||
set x "$@" -Fe"$file"
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
-I)
|
||||
eat=1
|
||||
func_file_conv "$2" mingw
|
||||
set x "$@" -I"$file"
|
||||
shift
|
||||
;;
|
||||
-I*)
|
||||
func_file_conv "${1#-I}" mingw
|
||||
set x "$@" -I"$file"
|
||||
shift
|
||||
;;
|
||||
-l)
|
||||
eat=1
|
||||
func_cl_dashl "$2"
|
||||
set x "$@" "$lib"
|
||||
shift
|
||||
;;
|
||||
-l*)
|
||||
func_cl_dashl "${1#-l}"
|
||||
set x "$@" "$lib"
|
||||
shift
|
||||
;;
|
||||
-L)
|
||||
eat=1
|
||||
func_cl_dashL "$2"
|
||||
;;
|
||||
-L*)
|
||||
func_cl_dashL "${1#-L}"
|
||||
;;
|
||||
-static)
|
||||
shared=false
|
||||
;;
|
||||
-Wl,*)
|
||||
arg=${1#-Wl,}
|
||||
save_ifs="$IFS"; IFS=','
|
||||
for flag in $arg; do
|
||||
IFS="$save_ifs"
|
||||
linker_opts="$linker_opts $flag"
|
||||
done
|
||||
IFS="$save_ifs"
|
||||
;;
|
||||
-Xlinker)
|
||||
eat=1
|
||||
linker_opts="$linker_opts $2"
|
||||
;;
|
||||
-*)
|
||||
set x "$@" "$1"
|
||||
shift
|
||||
;;
|
||||
*.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
|
||||
func_file_conv "$1"
|
||||
set x "$@" -Tp"$file"
|
||||
shift
|
||||
;;
|
||||
*.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
|
||||
func_file_conv "$1" mingw
|
||||
set x "$@" "$file"
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
set x "$@" "$1"
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
shift
|
||||
done
|
||||
if test -n "$linker_opts"; then
|
||||
linker_opts="-link$linker_opts"
|
||||
fi
|
||||
exec "$@" $linker_opts
|
||||
exit 1
|
||||
}
|
||||
|
||||
eat=
|
||||
|
||||
case $1 in
|
||||
'')
|
||||
echo "$0: No command. Try '$0 --help' for more information." 1>&2
|
||||
exit 1;
|
||||
;;
|
||||
-h | --h*)
|
||||
cat <<\EOF
|
||||
Usage: compile [--help] [--version] PROGRAM [ARGS]
|
||||
|
||||
Wrapper for compilers which do not understand '-c -o'.
|
||||
Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
|
||||
arguments, and rename the output as expected.
|
||||
|
||||
If you are trying to build a whole package this is not the
|
||||
right script to run: please start by reading the file 'INSTALL'.
|
||||
|
||||
Report bugs to <bug-automake@gnu.org>.
|
||||
EOF
|
||||
exit $?
|
||||
;;
|
||||
-v | --v*)
|
||||
echo "compile $scriptversion"
|
||||
exit $?
|
||||
;;
|
||||
cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
|
||||
func_cl_wrapper "$@" # Doesn't return...
|
||||
;;
|
||||
esac
|
||||
|
||||
ofile=
|
||||
cfile=
|
||||
|
||||
for arg
|
||||
do
|
||||
if test -n "$eat"; then
|
||||
eat=
|
||||
else
|
||||
case $1 in
|
||||
-o)
|
||||
# configure might choose to run compile as 'compile cc -o foo foo.c'.
|
||||
# So we strip '-o arg' only if arg is an object.
|
||||
eat=1
|
||||
case $2 in
|
||||
*.o | *.obj)
|
||||
ofile=$2
|
||||
;;
|
||||
*)
|
||||
set x "$@" -o "$2"
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*.c)
|
||||
cfile=$1
|
||||
set x "$@" "$1"
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
set x "$@" "$1"
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
shift
|
||||
done
|
||||
|
||||
if test -z "$ofile" || test -z "$cfile"; then
|
||||
# If no '-o' option was seen then we might have been invoked from a
|
||||
# pattern rule where we don't need one. That is ok -- this is a
|
||||
# normal compilation that the losing compiler can handle. If no
|
||||
# '.c' file was seen then we are probably linking. That is also
|
||||
# ok.
|
||||
exec "$@"
|
||||
fi
|
||||
|
||||
# Name of file we expect compiler to create.
|
||||
cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
|
||||
|
||||
# Create the lock directory.
|
||||
# Note: use '[/\\:.-]' here to ensure that we don't use the same name
|
||||
# that we are using for the .o file. Also, base the name on the expected
|
||||
# object file name, since that is what matters with a parallel build.
|
||||
lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
|
||||
while true; do
|
||||
if mkdir "$lockdir" >/dev/null 2>&1; then
|
||||
break
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
# FIXME: race condition here if user kills between mkdir and trap.
|
||||
trap "rmdir '$lockdir'; exit 1" 1 2 15
|
||||
|
||||
# Run the compile.
|
||||
"$@"
|
||||
ret=$?
|
||||
|
||||
if test -f "$cofile"; then
|
||||
test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
|
||||
elif test -f "${cofile}bj"; then
|
||||
test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
|
||||
fi
|
||||
|
||||
rmdir "$lockdir"
|
||||
exit $ret
|
||||
|
||||
# Local Variables:
|
||||
# mode: shell-script
|
||||
# sh-indentation: 2
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-time-zone: "UTC"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,614 @@
|
|||
#! /bin/sh
|
||||
# Output a system dependent set of variables, describing how to set the
|
||||
# run time search path of shared libraries in an executable.
|
||||
#
|
||||
# Copyright 1996-2006 Free Software Foundation, Inc.
|
||||
# Taken from GNU libtool, 2001
|
||||
# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
|
||||
#
|
||||
# This file is free software; the Free Software Foundation gives
|
||||
# unlimited permission to copy and/or distribute it, with or without
|
||||
# modifications, as long as this notice is preserved.
|
||||
#
|
||||
# The first argument passed to this file is the canonical host specification,
|
||||
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
|
||||
# or
|
||||
# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
|
||||
# The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld
|
||||
# should be set by the caller.
|
||||
#
|
||||
# The set of defined variables is at the end of this script.
|
||||
|
||||
# Known limitations:
|
||||
# - On IRIX 6.5 with CC="cc", the run time search patch must not be longer
|
||||
# than 256 bytes, otherwise the compiler driver will dump core. The only
|
||||
# known workaround is to choose shorter directory names for the build
|
||||
# directory and/or the installation directory.
|
||||
|
||||
# All known linkers require a `.a' archive for static linking (except MSVC,
|
||||
# which needs '.lib').
|
||||
libext=a
|
||||
shrext=.so
|
||||
|
||||
host="$1"
|
||||
host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
|
||||
host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
|
||||
host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
|
||||
|
||||
# Code taken from libtool.m4's _LT_CC_BASENAME.
|
||||
|
||||
for cc_temp in $CC""; do
|
||||
case $cc_temp in
|
||||
compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
|
||||
distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
|
||||
\-*) ;;
|
||||
*) break;;
|
||||
esac
|
||||
done
|
||||
cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'`
|
||||
|
||||
# Code taken from libtool.m4's AC_LIBTOOL_PROG_COMPILER_PIC.
|
||||
|
||||
wl=
|
||||
if test "$GCC" = yes; then
|
||||
wl='-Wl,'
|
||||
else
|
||||
case "$host_os" in
|
||||
aix*)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
darwin*)
|
||||
case $cc_basename in
|
||||
xlc*)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
mingw* | pw32* | os2*)
|
||||
;;
|
||||
hpux9* | hpux10* | hpux11*)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
irix5* | irix6* | nonstopux*)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
newsos6)
|
||||
;;
|
||||
linux*)
|
||||
case $cc_basename in
|
||||
icc* | ecc*)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
pgcc | pgf77 | pgf90)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
ccc*)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
como)
|
||||
wl='-lopt='
|
||||
;;
|
||||
*)
|
||||
case `$CC -V 2>&1 | sed 5q` in
|
||||
*Sun\ C*)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
osf3* | osf4* | osf5*)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
sco3.2v5*)
|
||||
;;
|
||||
solaris*)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
sunos4*)
|
||||
wl='-Qoption ld '
|
||||
;;
|
||||
sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
sysv4*MP*)
|
||||
;;
|
||||
unicos*)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
uts4*)
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
# Code taken from libtool.m4's AC_LIBTOOL_PROG_LD_SHLIBS.
|
||||
|
||||
hardcode_libdir_flag_spec=
|
||||
hardcode_libdir_separator=
|
||||
hardcode_direct=no
|
||||
hardcode_minus_L=no
|
||||
|
||||
case "$host_os" in
|
||||
cygwin* | mingw* | pw32*)
|
||||
# FIXME: the MSVC++ port hasn't been tested in a loooong time
|
||||
# When not using gcc, we currently assume that we are using
|
||||
# Microsoft Visual C++.
|
||||
if test "$GCC" != yes; then
|
||||
with_gnu_ld=no
|
||||
fi
|
||||
;;
|
||||
interix*)
|
||||
# we just hope/assume this is gcc and not c89 (= MSVC++)
|
||||
with_gnu_ld=yes
|
||||
;;
|
||||
openbsd*)
|
||||
with_gnu_ld=no
|
||||
;;
|
||||
esac
|
||||
|
||||
ld_shlibs=yes
|
||||
if test "$with_gnu_ld" = yes; then
|
||||
# Set some defaults for GNU ld with shared library support. These
|
||||
# are reset later if shared libraries are not supported. Putting them
|
||||
# here allows them to be overridden if necessary.
|
||||
# Unlike libtool, we use -rpath here, not --rpath, since the documented
|
||||
# option of GNU ld is called -rpath, not --rpath.
|
||||
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
|
||||
case "$host_os" in
|
||||
aix3* | aix4* | aix5*)
|
||||
# On AIX/PPC, the GNU linker is very broken
|
||||
if test "$host_cpu" != ia64; then
|
||||
ld_shlibs=no
|
||||
fi
|
||||
;;
|
||||
amigaos*)
|
||||
hardcode_libdir_flag_spec='-L$libdir'
|
||||
hardcode_minus_L=yes
|
||||
# Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
|
||||
# that the semantics of dynamic libraries on AmigaOS, at least up
|
||||
# to version 4, is to share data among multiple programs linked
|
||||
# with the same dynamic library. Since this doesn't match the
|
||||
# behavior of shared libraries on other platforms, we cannot use
|
||||
# them.
|
||||
ld_shlibs=no
|
||||
;;
|
||||
beos*)
|
||||
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
|
||||
:
|
||||
else
|
||||
ld_shlibs=no
|
||||
fi
|
||||
;;
|
||||
cygwin* | mingw* | pw32*)
|
||||
# hardcode_libdir_flag_spec is actually meaningless, as there is
|
||||
# no search path for DLLs.
|
||||
hardcode_libdir_flag_spec='-L$libdir'
|
||||
if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
|
||||
:
|
||||
else
|
||||
ld_shlibs=no
|
||||
fi
|
||||
;;
|
||||
interix3*)
|
||||
hardcode_direct=no
|
||||
hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
|
||||
;;
|
||||
linux*)
|
||||
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
|
||||
:
|
||||
else
|
||||
ld_shlibs=no
|
||||
fi
|
||||
;;
|
||||
netbsd*)
|
||||
;;
|
||||
solaris*)
|
||||
if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
|
||||
ld_shlibs=no
|
||||
elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
|
||||
:
|
||||
else
|
||||
ld_shlibs=no
|
||||
fi
|
||||
;;
|
||||
sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
|
||||
case `$LD -v 2>&1` in
|
||||
*\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
|
||||
ld_shlibs=no
|
||||
;;
|
||||
*)
|
||||
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
|
||||
hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`'
|
||||
else
|
||||
ld_shlibs=no
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
sunos4*)
|
||||
hardcode_direct=yes
|
||||
;;
|
||||
*)
|
||||
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
|
||||
:
|
||||
else
|
||||
ld_shlibs=no
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
if test "$ld_shlibs" = no; then
|
||||
hardcode_libdir_flag_spec=
|
||||
fi
|
||||
else
|
||||
case "$host_os" in
|
||||
aix3*)
|
||||
# Note: this linker hardcodes the directories in LIBPATH if there
|
||||
# are no directories specified by -L.
|
||||
hardcode_minus_L=yes
|
||||
if test "$GCC" = yes; then
|
||||
# Neither direct hardcoding nor static linking is supported with a
|
||||
# broken collect2.
|
||||
hardcode_direct=unsupported
|
||||
fi
|
||||
;;
|
||||
aix4* | aix5*)
|
||||
if test "$host_cpu" = ia64; then
|
||||
# On IA64, the linker does run time linking by default, so we don't
|
||||
# have to do anything special.
|
||||
aix_use_runtimelinking=no
|
||||
else
|
||||
aix_use_runtimelinking=no
|
||||
# Test if we are trying to use run time linking or normal
|
||||
# AIX style linking. If -brtl is somewhere in LDFLAGS, we
|
||||
# need to do runtime linking.
|
||||
case $host_os in aix4.[23]|aix4.[23].*|aix5*)
|
||||
for ld_flag in $LDFLAGS; do
|
||||
if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
|
||||
aix_use_runtimelinking=yes
|
||||
break
|
||||
fi
|
||||
done
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
hardcode_direct=yes
|
||||
hardcode_libdir_separator=':'
|
||||
if test "$GCC" = yes; then
|
||||
case $host_os in aix4.[012]|aix4.[012].*)
|
||||
collect2name=`${CC} -print-prog-name=collect2`
|
||||
if test -f "$collect2name" && \
|
||||
strings "$collect2name" | grep resolve_lib_name >/dev/null
|
||||
then
|
||||
# We have reworked collect2
|
||||
hardcode_direct=yes
|
||||
else
|
||||
# We have old collect2
|
||||
hardcode_direct=unsupported
|
||||
hardcode_minus_L=yes
|
||||
hardcode_libdir_flag_spec='-L$libdir'
|
||||
hardcode_libdir_separator=
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
# Begin _LT_AC_SYS_LIBPATH_AIX.
|
||||
echo 'int main () { return 0; }' > conftest.c
|
||||
${CC} ${LDFLAGS} conftest.c -o conftest
|
||||
aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
|
||||
}'`
|
||||
if test -z "$aix_libpath"; then
|
||||
aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
|
||||
}'`
|
||||
fi
|
||||
if test -z "$aix_libpath"; then
|
||||
aix_libpath="/usr/lib:/lib"
|
||||
fi
|
||||
rm -f conftest.c conftest
|
||||
# End _LT_AC_SYS_LIBPATH_AIX.
|
||||
if test "$aix_use_runtimelinking" = yes; then
|
||||
hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
|
||||
else
|
||||
if test "$host_cpu" = ia64; then
|
||||
hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
|
||||
else
|
||||
hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
amigaos*)
|
||||
hardcode_libdir_flag_spec='-L$libdir'
|
||||
hardcode_minus_L=yes
|
||||
# see comment about different semantics on the GNU ld section
|
||||
ld_shlibs=no
|
||||
;;
|
||||
bsdi[45]*)
|
||||
;;
|
||||
cygwin* | mingw* | pw32*)
|
||||
# When not using gcc, we currently assume that we are using
|
||||
# Microsoft Visual C++.
|
||||
# hardcode_libdir_flag_spec is actually meaningless, as there is
|
||||
# no search path for DLLs.
|
||||
hardcode_libdir_flag_spec=' '
|
||||
libext=lib
|
||||
;;
|
||||
darwin* | rhapsody*)
|
||||
hardcode_direct=no
|
||||
if test "$GCC" = yes ; then
|
||||
:
|
||||
else
|
||||
case $cc_basename in
|
||||
xlc*)
|
||||
;;
|
||||
*)
|
||||
ld_shlibs=no
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
;;
|
||||
dgux*)
|
||||
hardcode_libdir_flag_spec='-L$libdir'
|
||||
;;
|
||||
freebsd1*)
|
||||
ld_shlibs=no
|
||||
;;
|
||||
freebsd2.2*)
|
||||
hardcode_libdir_flag_spec='-R$libdir'
|
||||
hardcode_direct=yes
|
||||
;;
|
||||
freebsd2*)
|
||||
hardcode_direct=yes
|
||||
hardcode_minus_L=yes
|
||||
;;
|
||||
freebsd* | kfreebsd*-gnu | dragonfly*)
|
||||
hardcode_libdir_flag_spec='-R$libdir'
|
||||
hardcode_direct=yes
|
||||
;;
|
||||
hpux9*)
|
||||
hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
|
||||
hardcode_libdir_separator=:
|
||||
hardcode_direct=yes
|
||||
# hardcode_minus_L: Not really in the search PATH,
|
||||
# but as the default location of the library.
|
||||
hardcode_minus_L=yes
|
||||
;;
|
||||
hpux10*)
|
||||
if test "$with_gnu_ld" = no; then
|
||||
hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
|
||||
hardcode_libdir_separator=:
|
||||
hardcode_direct=yes
|
||||
# hardcode_minus_L: Not really in the search PATH,
|
||||
# but as the default location of the library.
|
||||
hardcode_minus_L=yes
|
||||
fi
|
||||
;;
|
||||
hpux11*)
|
||||
if test "$with_gnu_ld" = no; then
|
||||
hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
|
||||
hardcode_libdir_separator=:
|
||||
case $host_cpu in
|
||||
hppa*64*|ia64*)
|
||||
hardcode_direct=no
|
||||
;;
|
||||
*)
|
||||
hardcode_direct=yes
|
||||
# hardcode_minus_L: Not really in the search PATH,
|
||||
# but as the default location of the library.
|
||||
hardcode_minus_L=yes
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
;;
|
||||
irix5* | irix6* | nonstopux*)
|
||||
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
|
||||
hardcode_libdir_separator=:
|
||||
;;
|
||||
netbsd*)
|
||||
hardcode_libdir_flag_spec='-R$libdir'
|
||||
hardcode_direct=yes
|
||||
;;
|
||||
newsos6)
|
||||
hardcode_direct=yes
|
||||
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
|
||||
hardcode_libdir_separator=:
|
||||
;;
|
||||
openbsd*)
|
||||
hardcode_direct=yes
|
||||
if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
|
||||
hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
|
||||
else
|
||||
case "$host_os" in
|
||||
openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
|
||||
hardcode_libdir_flag_spec='-R$libdir'
|
||||
;;
|
||||
*)
|
||||
hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
;;
|
||||
os2*)
|
||||
hardcode_libdir_flag_spec='-L$libdir'
|
||||
hardcode_minus_L=yes
|
||||
;;
|
||||
osf3*)
|
||||
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
|
||||
hardcode_libdir_separator=:
|
||||
;;
|
||||
osf4* | osf5*)
|
||||
if test "$GCC" = yes; then
|
||||
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
|
||||
else
|
||||
# Both cc and cxx compiler support -rpath directly
|
||||
hardcode_libdir_flag_spec='-rpath $libdir'
|
||||
fi
|
||||
hardcode_libdir_separator=:
|
||||
;;
|
||||
solaris*)
|
||||
hardcode_libdir_flag_spec='-R$libdir'
|
||||
;;
|
||||
sunos4*)
|
||||
hardcode_libdir_flag_spec='-L$libdir'
|
||||
hardcode_direct=yes
|
||||
hardcode_minus_L=yes
|
||||
;;
|
||||
sysv4)
|
||||
case $host_vendor in
|
||||
sni)
|
||||
hardcode_direct=yes # is this really true???
|
||||
;;
|
||||
siemens)
|
||||
hardcode_direct=no
|
||||
;;
|
||||
motorola)
|
||||
hardcode_direct=no #Motorola manual says yes, but my tests say they lie
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
sysv4.3*)
|
||||
;;
|
||||
sysv4*MP*)
|
||||
if test -d /usr/nec; then
|
||||
ld_shlibs=yes
|
||||
fi
|
||||
;;
|
||||
sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*)
|
||||
;;
|
||||
sysv5* | sco3.2v5* | sco5v6*)
|
||||
hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
|
||||
hardcode_libdir_separator=':'
|
||||
;;
|
||||
uts4*)
|
||||
hardcode_libdir_flag_spec='-L$libdir'
|
||||
;;
|
||||
*)
|
||||
ld_shlibs=no
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
# Check dynamic linker characteristics
|
||||
# Code taken from libtool.m4's AC_LIBTOOL_SYS_DYNAMIC_LINKER.
|
||||
libname_spec='lib$name'
|
||||
case "$host_os" in
|
||||
aix3*)
|
||||
;;
|
||||
aix4* | aix5*)
|
||||
;;
|
||||
amigaos*)
|
||||
;;
|
||||
beos*)
|
||||
;;
|
||||
bsdi[45]*)
|
||||
;;
|
||||
cygwin* | mingw* | pw32*)
|
||||
shrext=.dll
|
||||
;;
|
||||
darwin* | rhapsody*)
|
||||
shrext=.dylib
|
||||
;;
|
||||
dgux*)
|
||||
;;
|
||||
freebsd1*)
|
||||
;;
|
||||
kfreebsd*-gnu)
|
||||
;;
|
||||
freebsd* | dragonfly*)
|
||||
;;
|
||||
gnu*)
|
||||
;;
|
||||
hpux9* | hpux10* | hpux11*)
|
||||
case $host_cpu in
|
||||
ia64*)
|
||||
shrext=.so
|
||||
;;
|
||||
hppa*64*)
|
||||
shrext=.sl
|
||||
;;
|
||||
*)
|
||||
shrext=.sl
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
interix3*)
|
||||
;;
|
||||
irix5* | irix6* | nonstopux*)
|
||||
case "$host_os" in
|
||||
irix5* | nonstopux*)
|
||||
libsuff= shlibsuff=
|
||||
;;
|
||||
*)
|
||||
case $LD in
|
||||
*-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;;
|
||||
*-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;;
|
||||
*-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;;
|
||||
*) libsuff= shlibsuff= ;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
linux*oldld* | linux*aout* | linux*coff*)
|
||||
;;
|
||||
linux*)
|
||||
;;
|
||||
knetbsd*-gnu)
|
||||
;;
|
||||
netbsd*)
|
||||
;;
|
||||
newsos6)
|
||||
;;
|
||||
nto-qnx*)
|
||||
;;
|
||||
openbsd*)
|
||||
;;
|
||||
os2*)
|
||||
libname_spec='$name'
|
||||
shrext=.dll
|
||||
;;
|
||||
osf3* | osf4* | osf5*)
|
||||
;;
|
||||
solaris*)
|
||||
;;
|
||||
sunos4*)
|
||||
;;
|
||||
sysv4 | sysv4.3*)
|
||||
;;
|
||||
sysv4*MP*)
|
||||
;;
|
||||
sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
|
||||
;;
|
||||
uts4*)
|
||||
;;
|
||||
esac
|
||||
|
||||
sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
|
||||
escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"`
|
||||
shlibext=`echo "$shrext" | sed -e 's,^\.,,'`
|
||||
escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
|
||||
|
||||
LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF
|
||||
|
||||
# How to pass a linker flag through the compiler.
|
||||
wl="$escaped_wl"
|
||||
|
||||
# Static library suffix (normally "a").
|
||||
libext="$libext"
|
||||
|
||||
# Shared library suffix (normally "so").
|
||||
shlibext="$shlibext"
|
||||
|
||||
# Flag to hardcode \$libdir into a binary during linking.
|
||||
# This must work even if \$libdir does not exist.
|
||||
hardcode_libdir_flag_spec="$escaped_hardcode_libdir_flag_spec"
|
||||
|
||||
# Whether we need a single -rpath flag with a separated argument.
|
||||
hardcode_libdir_separator="$hardcode_libdir_separator"
|
||||
|
||||
# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
|
||||
# resulting binary.
|
||||
hardcode_direct="$hardcode_direct"
|
||||
|
||||
# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
|
||||
# resulting binary.
|
||||
hardcode_minus_L="$hardcode_minus_L"
|
||||
|
||||
EOF
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,279 @@
|
|||
AC_PREREQ([2.54])
|
||||
AC_INIT([openbox], [3.6.1], [http://bugzilla.icculus.org])
|
||||
AC_CONFIG_SRCDIR([openbox/openbox.c])
|
||||
|
||||
AM_INIT_AUTOMAKE([foreign])
|
||||
AM_SILENT_RULES([yes])
|
||||
|
||||
OB_VERSION=$PACKAGE_VERSION
|
||||
AC_SUBST(OB_VERSION)
|
||||
|
||||
dnl Making releases:
|
||||
dnl RR_ is for obrender, OBT_ is for obt, keep major/minor in sync,
|
||||
dnl treat the rest separately.
|
||||
dnl
|
||||
dnl if MAJOR or MINOR version changes, be sure to change AC_INIT above to match.
|
||||
dnl the other variables aren't related to the user visible versions, but are used
|
||||
dnl to version the .so files.
|
||||
dnl if no backward compat is broken, it's just a preference if you want to bump
|
||||
dnl the AC_INIT micro version or minor version. if the AC_INIT micro version is
|
||||
dnl 0, don't write it out.
|
||||
dnl
|
||||
dnl How to process .so versioning,
|
||||
dnl RR_MICRO_VERSION += 1;
|
||||
dnl RR_INTERFACE_AGE += 1;
|
||||
dnl RR_BINARY_AGE += 1;
|
||||
dnl if any functions have been added, set RR_INTERFACE_AGE to 0.
|
||||
dnl if backwards compatibility has been broken,
|
||||
dnl set RR_BINARY_AGE and RR_INTERFACE_AGE to 0.
|
||||
dnl if you set anything to 0, you should also bump the MINOR version.
|
||||
dnl
|
||||
RR_MAJOR_VERSION=3
|
||||
RR_MINOR_VERSION=6
|
||||
RR_MICRO_VERSION=32
|
||||
RR_INTERFACE_AGE=0
|
||||
RR_BINARY_AGE=0
|
||||
RR_VERSION=$RR_MAJOR_VERSION.$RR_MINOR_VERSION
|
||||
|
||||
OBT_MAJOR_VERSION=3
|
||||
OBT_MINOR_VERSION=6
|
||||
OBT_MICRO_VERSION=4
|
||||
OBT_INTERFACE_AGE=2
|
||||
OBT_BINARY_AGE=2
|
||||
OBT_VERSION=$OBT_MAJOR_VERSION.$OBT_MINOR_VERSION
|
||||
|
||||
AC_SUBST(RR_MAJOR_VERSION)
|
||||
AC_SUBST(RR_MINOR_VERSION)
|
||||
AC_SUBST(RR_MICRO_VERSION)
|
||||
AC_SUBST(RR_INTERFACE_AGE)
|
||||
AC_SUBST(RR_BINARY_AGE)
|
||||
AC_SUBST(RR_VERSION)
|
||||
AC_SUBST(OBT_MAJOR_VERSION)
|
||||
AC_SUBST(OBT_MINOR_VERSION)
|
||||
AC_SUBST(OBT_MICRO_VERSION)
|
||||
AC_SUBST(OBT_INTERFACE_AGE)
|
||||
AC_SUBST(OBT_BINARY_AGE)
|
||||
AC_SUBST(OBT_VERSION)
|
||||
|
||||
dnl Libtool versioning
|
||||
RR_RELEASE=$RR_MAJOR_VERSION.$RR_MINOR_VERSION
|
||||
RR_CURRENT=`expr $RR_MICRO_VERSION - $RR_INTERFACE_AGE`
|
||||
RR_REVISION=$RR_INTERFACE_AGE
|
||||
RR_AGE=`expr $RR_BINARY_AGE - $RR_INTERFACE_AGE`
|
||||
RR_CURRENT_MINUS_AGE=`expr $RR_CURRENT - $RR_AGE`
|
||||
|
||||
OBT_RELEASE=$OBT_MAJOR_VERSION.$OBT_MINOR_VERSION
|
||||
OBT_CURRENT=`expr $OBT_MICRO_VERSION - $OBT_INTERFACE_AGE`
|
||||
OBT_REVISION=$OBT_INTERFACE_AGE
|
||||
OBT_AGE=`expr $OBT_BINARY_AGE - $OBT_INTERFACE_AGE`
|
||||
OBT_CURRENT_MINUS_AGE=`expr $OBT_CURRENT - $OBT_AGE`
|
||||
|
||||
AC_SUBST(RR_RELEASE)
|
||||
AC_SUBST(RR_CURRENT)
|
||||
AC_SUBST(RR_REVISION)
|
||||
AC_SUBST(RR_AGE)
|
||||
AC_SUBST(RR_CURRENT_MINUS_AGE)
|
||||
AC_SUBST(OBT_RELEASE)
|
||||
AC_SUBST(OBT_CURRENT)
|
||||
AC_SUBST(OBT_REVISION)
|
||||
AC_SUBST(OBT_AGE)
|
||||
AC_SUBST(OBT_CURRENT_MINUS_AGE)
|
||||
|
||||
AC_PREFIX_DEFAULT([/usr/local])
|
||||
test "$prefix" = "NONE" && prefix=$ac_default_prefix
|
||||
|
||||
dnl Determine build target
|
||||
OB_DEBUG
|
||||
dnl Pick compiler specific/build target flags, and set $CVS
|
||||
AM_PROG_CC_C_O
|
||||
OB_COMPILER_FLAGS
|
||||
AC_C_CONST
|
||||
AC_C_INLINE
|
||||
|
||||
AC_PROG_LIBTOOL
|
||||
AC_SUBST(LIBTOOL_DEPS)
|
||||
LIBTOOL="$LIBTOOL --silent"
|
||||
|
||||
AC_PROG_INSTALL
|
||||
|
||||
AM_GNU_GETTEXT_VERSION(0.15)
|
||||
AM_GNU_GETTEXT([external])
|
||||
|
||||
AC_CHECK_HEADERS(ctype.h dirent.h errno.h fcntl.h grp.h locale.h pwd.h)
|
||||
AC_CHECK_HEADERS(signal.h string.h stdio.h stdlib.h unistd.h sys/stat.h)
|
||||
AC_CHECK_HEADERS(sys/select.h sys/socket.h sys/time.h sys/types.h sys/wait.h)
|
||||
|
||||
AC_PATH_PROG([SED], [sed], [no])
|
||||
if test "$SED" = "no"; then
|
||||
AC_MSG_ERROR([The program "sed" is not available. This program is required to build Openbox.])
|
||||
fi
|
||||
|
||||
AC_PATH_PROG([DIRNAME], [dirname], [no])
|
||||
if test "$DIRNAME" = "no"; then
|
||||
AC_MSG_ERROR([The program "dirname" is not available. This program is required to build Openbox.])
|
||||
fi
|
||||
|
||||
PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.14.0])
|
||||
AC_SUBST(GLIB_CFLAGS)
|
||||
AC_SUBST(GLIB_LIBS)
|
||||
|
||||
PKG_CHECK_MODULES(PANGO, [pango >= 1.8.0 pangoxft >= 1.8.0])
|
||||
AC_SUBST(PANGO_CFLAGS)
|
||||
AC_SUBST(PANGO_LIBS)
|
||||
|
||||
PKG_CHECK_MODULES(XML, [libxml-2.0 >= 2.6.0])
|
||||
AC_SUBST(XML_CFLAGS)
|
||||
AC_SUBST(XML_LIBS)
|
||||
|
||||
AC_ARG_ENABLE(startup-notification,
|
||||
AC_HELP_STRING(
|
||||
[--disable-startup-notification],
|
||||
[disable the startup notification library. [default=enabled]]
|
||||
),
|
||||
[enable_sn=$enableval],
|
||||
[enable_sn=yes]
|
||||
)
|
||||
|
||||
if test "$enable_sn" = yes; then
|
||||
PKG_CHECK_MODULES(LIBSN, [libstartup-notification-1.0 >= 0.8],
|
||||
[
|
||||
AC_DEFINE(USE_LIBSN, [1], [Use startup-notification])
|
||||
AC_SUBST(LIBSN_CFLAGS)
|
||||
AC_SUBST(LIBSN_LIBS)
|
||||
sn_found=yes
|
||||
],
|
||||
[
|
||||
sn_found=no
|
||||
]
|
||||
)
|
||||
else
|
||||
sn_found=no
|
||||
fi
|
||||
|
||||
AC_ARG_ENABLE(xcursor,
|
||||
AC_HELP_STRING(
|
||||
[--disable-xcursor],
|
||||
[disable use of the X Cursor library. [default=enabled]]
|
||||
),
|
||||
[enable_xcursor=$enableval],
|
||||
[enable_xcursor=yes]
|
||||
)
|
||||
|
||||
if test "$enable_xcursor" = yes; then
|
||||
PKG_CHECK_MODULES(XCURSOR, [xcursor],
|
||||
[
|
||||
AC_DEFINE(USE_XCURSOR, [1], [Use X Cursor library])
|
||||
AC_SUBST(XCURSOR_CFLAGS)
|
||||
AC_SUBST(XCURSOR_LIBS)
|
||||
xcursor_found=yes
|
||||
],
|
||||
[
|
||||
xcursor_found=no
|
||||
]
|
||||
)
|
||||
else
|
||||
xcursor_found=no
|
||||
fi
|
||||
|
||||
AC_ARG_ENABLE(imlib2,
|
||||
AC_HELP_STRING(
|
||||
[--disable-imlib2],
|
||||
[disable use of Imlib2 image library for loading icons. [default=enabled]]
|
||||
),
|
||||
[enable_imlib2=$enableval],
|
||||
[enable_imlib2=yes]
|
||||
)
|
||||
|
||||
if test "$enable_imlib2" = yes; then
|
||||
PKG_CHECK_MODULES(IMLIB2, [imlib2],
|
||||
[
|
||||
AC_DEFINE(USE_IMLIB2, [1], [Use Imlib2 image library])
|
||||
AC_SUBST(IMLIB2_CFLAGS)
|
||||
AC_SUBST(IMLIB2_LIBS)
|
||||
# export it for the pkg-config file
|
||||
PKG_CONFIG_IMLIB=imlib2
|
||||
AC_SUBST(PKG_CONFIG_IMLIB)
|
||||
imlib2_found=yes
|
||||
],
|
||||
[
|
||||
imlib2_found=no
|
||||
]
|
||||
)
|
||||
else
|
||||
imlib2_found=no
|
||||
fi
|
||||
|
||||
AM_CONDITIONAL(USE_IMLIB2, [test $imlib2_found = yes])
|
||||
|
||||
AC_ARG_ENABLE(librsvg,
|
||||
AC_HELP_STRING(
|
||||
[--disable-librsvg],
|
||||
[disable use of SVG image files for loading icons. [default=enabled]]
|
||||
),
|
||||
[enable_librsvg=$enableval],
|
||||
[enable_librsvg=yes]
|
||||
)
|
||||
|
||||
if test "$enable_librsvg" = yes; then
|
||||
PKG_CHECK_MODULES(LIBRSVG, [librsvg-2.0],
|
||||
[
|
||||
AC_DEFINE(USE_LIBRSVG, [1], [Use SVG image files])
|
||||
AC_SUBST(LIBRSVG_CFLAGS)
|
||||
AC_SUBST(LIBRSVG_LIBS)
|
||||
# export it for the pkg-config file
|
||||
PKG_CONFIG_LIBRSVG=librsvg-2.0
|
||||
AC_SUBST(PKG_CONFIG_LIBRSVG)
|
||||
librsvg_found=yes
|
||||
],
|
||||
[
|
||||
librsvg_found=no
|
||||
]
|
||||
)
|
||||
else
|
||||
librsvg_found=no
|
||||
fi
|
||||
|
||||
AM_CONDITIONAL(USE_LIBRSVG, [test $librsvg_found = yes])
|
||||
|
||||
dnl Check for session management
|
||||
X11_SM
|
||||
|
||||
#EFENCE_LIBS=-lefence
|
||||
EFENCE_LIBS=""
|
||||
AC_SUBST(EFENCE_LIBS)
|
||||
|
||||
dnl Check for X11 extensions
|
||||
X11_EXT_XKB
|
||||
X11_EXT_XRANDR
|
||||
X11_EXT_SHAPE
|
||||
X11_EXT_XINERAMA
|
||||
X11_EXT_SYNC
|
||||
X11_EXT_AUTH
|
||||
|
||||
AC_CONFIG_FILES([
|
||||
Makefile
|
||||
m4/Makefile
|
||||
po/Makefile.in
|
||||
obrender/obrender-3.5.pc
|
||||
obt/obt-3.5.pc
|
||||
obrender/version.h
|
||||
obt/version.h
|
||||
version.h
|
||||
])
|
||||
AC_CONFIG_COMMANDS([doc],
|
||||
[test -d doc || mkdir doc])
|
||||
AC_CONFIG_COMMANDS([data],
|
||||
[test -d data || mkdir data])
|
||||
AC_CONFIG_COMMANDS([data/xsession],
|
||||
[test -d data/xsession || mkdir data/xsession])
|
||||
AC_OUTPUT
|
||||
|
||||
AC_MSG_RESULT
|
||||
AC_MSG_RESULT([Compiling with these options:
|
||||
Startup Notification... $sn_found
|
||||
X Cursor Library... $xcursor_found
|
||||
Session Management... $SM
|
||||
Imlib2 Library... $imlib2_found
|
||||
SVG Support (librsvg)... $librsvg_found
|
||||
])
|
||||
AC_MSG_RESULT([configure complete, now type "make"])
|
|
@ -0,0 +1,17 @@
|
|||
#
|
||||
# These things are run when an Openbox X Session is started.
|
||||
# You may place a similar script in $HOME/.config/openbox/autostart
|
||||
# to run user-specific things.
|
||||
#
|
||||
|
||||
# If you want to use GNOME config tools...
|
||||
#
|
||||
#if test -x @libexecdir@/gnome-settings-daemon >/dev/null; then
|
||||
# @libexecdir@/gnome-settings-daemon &
|
||||
#elif which gnome-settings-daemon >/dev/null; then
|
||||
# gnome-settings-daemon &
|
||||
#fi
|
||||
|
||||
# If you want to use XFCE config tools...
|
||||
#
|
||||
#xfce-mcs-manager &
|
|
@ -0,0 +1,34 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Set a background color
|
||||
BG=""
|
||||
if which hsetroot >/dev/null 2>/dev/null; then
|
||||
BG=hsetroot
|
||||
elif which esetroot >/dev/null 2>/dev/null; then
|
||||
BG=esetroot
|
||||
elif which xsetroot >/dev/null 2>/dev/null; then
|
||||
BG=xsetroot
|
||||
fi
|
||||
test -z $BG || $BG -solid "#303030"
|
||||
|
||||
GLOBALAUTOSTART="@rcdir@/autostart"
|
||||
AUTOSTART="${XDG_CONFIG_HOME:-"$HOME/.config"}/openbox/autostart"
|
||||
|
||||
# Run the global openbox autostart script
|
||||
if test -f $GLOBALAUTOSTART; then
|
||||
sh $GLOBALAUTOSTART
|
||||
elif test -f $GLOBALAUTOSTART.sh; then
|
||||
sh $GLOBALAUTOSTART.sh
|
||||
fi
|
||||
|
||||
# Run the user openbox autostart script
|
||||
if test -f $AUTOSTART; then
|
||||
sh $AUTOSTART
|
||||
elif test -f $AUTOSTART.sh; then
|
||||
sh $AUTOSTART.sh
|
||||
fi
|
||||
|
||||
# Run the XDG autostart stuff. These are found in /etc/xdg/autostart and
|
||||
# in $HOME/.config/autostart. This requires PyXDG to be installed.
|
||||
# See openbox-xdg-autostart --help for more details.
|
||||
@libexecdir@/openbox-xdg-autostart "$@"
|
|
@ -0,0 +1,198 @@
|
|||
#!/usr/bin/env python
|
||||
|
||||
# openbox-xdg-autostart runs things based on the XDG autostart specification
|
||||
# Copyright (C) 2008 Dana Jansens
|
||||
#
|
||||
# XDG autostart specification can be found here:
|
||||
# http://standards.freedesktop.org/autostart-spec/
|
||||
#
|
||||
#
|
||||
#
|
||||
# LICENSE:
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
ME="openbox-xdg-autostart"
|
||||
VERSION="1.1"
|
||||
|
||||
import os, glob, sys
|
||||
try:
|
||||
from xdg import BaseDirectory
|
||||
from xdg.DesktopEntry import DesktopEntry
|
||||
from xdg.Exceptions import ParsingError
|
||||
except ImportError:
|
||||
print
|
||||
print >>sys.stderr, "ERROR:", ME, "requires PyXDG to be installed"
|
||||
print
|
||||
sys.exit(1)
|
||||
|
||||
def main(argv=sys.argv):
|
||||
if "--help" in argv[1:]:
|
||||
show_help()
|
||||
return 0
|
||||
if "--version" in argv[1:]:
|
||||
show_version()
|
||||
return 0
|
||||
|
||||
# get the autostart directories
|
||||
autodirs = BaseDirectory.load_config_paths("autostart")
|
||||
|
||||
# find all the autostart files
|
||||
files = []
|
||||
for dir in autodirs:
|
||||
for path in glob.glob(os.path.join(dir, '*.desktop')):
|
||||
try:
|
||||
autofile = AutostartFile(path)
|
||||
except ParsingError:
|
||||
print "Invalid .desktop file: " + path
|
||||
else:
|
||||
if not autofile in files:
|
||||
files.append(autofile)
|
||||
|
||||
list = False
|
||||
if "--list" in argv[1:]:
|
||||
list = True
|
||||
argv.remove("--list")
|
||||
|
||||
# run them !
|
||||
environments = argv[1:]
|
||||
for autofile in files:
|
||||
if list: autofile.display(environments)
|
||||
else: autofile.run(environments)
|
||||
|
||||
class AutostartFile:
|
||||
def __init__(self, path):
|
||||
self.path = path
|
||||
self.filename = os.path.basename(path)
|
||||
self.dirname = os.path.dirname(path)
|
||||
self.de = DesktopEntry(path)
|
||||
|
||||
def __eq__(self, other):
|
||||
return self.filename == other.filename
|
||||
|
||||
def __str__(self):
|
||||
return self.path + " : " + self.de.getName()
|
||||
|
||||
def _isexecfile(self, path):
|
||||
return os.access(path, os.X_OK)
|
||||
|
||||
def _findFile(self, path, search, match_func):
|
||||
# check empty path
|
||||
if not path: return None
|
||||
# check absolute path
|
||||
if path[0] == '/':
|
||||
if match_func(path): return path
|
||||
else: return None
|
||||
else:
|
||||
# check relative path
|
||||
for dirname in search.split(os.pathsep):
|
||||
if dirname != "":
|
||||
candidate = os.path.join(dirname, path)
|
||||
if (match_func(candidate)): return candidate
|
||||
|
||||
def _alert(self, str, info=False):
|
||||
if info:
|
||||
print "\t ", str
|
||||
else:
|
||||
print "\t*", str
|
||||
|
||||
def _showInEnvironment(self, envs, verbose=False):
|
||||
default = not self.de.getOnlyShowIn()
|
||||
noshow = False
|
||||
force = False
|
||||
for i in self.de.getOnlyShowIn():
|
||||
if i in envs: force = True
|
||||
for i in self.de.getNotShowIn():
|
||||
if i in envs: noshow = True
|
||||
|
||||
if verbose:
|
||||
if not default and not force:
|
||||
s = ""
|
||||
for i in self.de.getOnlyShowIn():
|
||||
if s: s += ", "
|
||||
s += i
|
||||
self._alert("Excluded by: OnlyShowIn (" + s + ")")
|
||||
if default and noshow and not force:
|
||||
s = ""
|
||||
for i in self.de.getNotShowIn():
|
||||
if s: s += ", "
|
||||
s += i
|
||||
self._alert("Excluded by: NotShowIn (" + s + ")")
|
||||
return (default and not noshow) or force
|
||||
|
||||
def _shouldRun(self, envs, verbose=False):
|
||||
if not self.de.getExec():
|
||||
if verbose: self._alert("Excluded by: Missing Exec field")
|
||||
return False
|
||||
if self.de.getHidden():
|
||||
if verbose: self._alert("Excluded by: Hidden")
|
||||
return False
|
||||
if self.de.getTryExec():
|
||||
if not self._findFile(self.de.getTryExec(), os.getenv("PATH"),
|
||||
self._isexecfile):
|
||||
if verbose: self._alert("Excluded by: TryExec (" +
|
||||
self.de.getTryExec() + ")")
|
||||
return False
|
||||
if not self._showInEnvironment(envs, verbose):
|
||||
return False
|
||||
return True
|
||||
|
||||
def display(self, envs):
|
||||
if self._shouldRun(envs):
|
||||
print "[*] " + self.de.getName()
|
||||
else:
|
||||
print "[ ] " + self.de.getName()
|
||||
self._alert("File: " + self.path, info=True)
|
||||
if self.de.getExec():
|
||||
self._alert("Executes: " + self.de.getExec(), info=True)
|
||||
self._shouldRun(envs, True)
|
||||
print
|
||||
|
||||
def run(self, envs):
|
||||
here = os.getcwd()
|
||||
if self.de.getPath():
|
||||
os.chdir(self.de.getPath())
|
||||
if self._shouldRun(envs):
|
||||
args = ["/bin/sh", "-c", "exec " + self.de.getExec()]
|
||||
os.spawnv(os.P_NOWAIT, args[0], args);
|
||||
os.chdir(here)
|
||||
|
||||
def show_help():
|
||||
print "Usage:", ME, "[OPTION]... [ENVIRONMENT]..."
|
||||
print
|
||||
print "This tool will run xdg autostart .desktop files"
|
||||
print
|
||||
print "OPTIONS"
|
||||
print " --list Show a list of the files which would be run"
|
||||
print " Files which would be run are marked with an asterix"
|
||||
print " symbol [*]. For files which would not be run,"
|
||||
print " information is given for why they are excluded"
|
||||
print " --help Show this help and exit"
|
||||
print " --version Show version and copyright information"
|
||||
print
|
||||
print "ENVIRONMENT specifies a list of environments for which to run autostart"
|
||||
print "applications. If none are specified, only applications which do not "
|
||||
print "limit themselves to certain environments will be run."
|
||||
print
|
||||
print "ENVIRONMENT can be one or more of:"
|
||||
print " GNOME Gnome Desktop"
|
||||
print " KDE KDE Desktop"
|
||||
print " ROX ROX Desktop"
|
||||
print " XFCE XFCE Desktop"
|
||||
print " Old Legacy systems"
|
||||
print
|
||||
|
||||
def show_version():
|
||||
print ME, VERSION
|
||||
print "Copyright (c) 2008 Dana Jansens"
|
||||
print
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main())
|
|
@ -0,0 +1,10 @@
|
|||
#
|
||||
# Set system-wide environment variables here for Openbox
|
||||
# User-specific variables should be placed in $HOME/.config/openbox/environment
|
||||
#
|
||||
|
||||
# To set your language for displaying messages and time/date formats, use the following:
|
||||
#LANG=en_CA.UTF8
|
||||
|
||||
# To set your keyboard layout, you need to modify your X config:
|
||||
# http://www.google.com/search?q=how+to+set+keyboard+layout+xorg
|
|
@ -0,0 +1,4 @@
|
|||
[GNOME Session]
|
||||
Name=GNOME/Openbox fallback (Safe Mode)
|
||||
RequiredComponents=openbox;gnome-settings-daemon
|
||||
DesktopName=GNOME
|
|
@ -0,0 +1,4 @@
|
|||
[GNOME Session]
|
||||
Name=GNOME/Openbox
|
||||
RequiredComponents=openbox;gnome-settings-daemon;gnome-panel;nautilus-classic;gnome-flashback-services
|
||||
DesktopName=GNOME
|
|
@ -0,0 +1,13 @@
|
|||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Openbox
|
||||
Exec=openbox
|
||||
|
||||
# name we put on the WM spec check window
|
||||
X-GNOME-WMName=Openbox
|
||||
|
||||
# our config tool
|
||||
ConfigExec=obconf
|
||||
|
||||
[Window Manager]
|
||||
SessionManaged=true
|
|
@ -0,0 +1,394 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<openbox_menu xmlns="http://openbox.org/3.4/menu">
|
||||
|
||||
<menu id="apps-accessories-menu" label="Accessories">
|
||||
<item label="Calculator">
|
||||
<action name="Execute">
|
||||
<command>gnome-calculator</command>
|
||||
<startupnotify>
|
||||
<enabled>yes</enabled>
|
||||
</startupnotify>
|
||||
</action>
|
||||
</item>
|
||||
<item label="Character Map">
|
||||
<action name="Execute">
|
||||
<command>gnome-character-map</command>
|
||||
<startupnotify>
|
||||
<enabled>yes</enabled>
|
||||
</startupnotify>
|
||||
</action>
|
||||
</item>
|
||||
<item label="Ark File Archiver">
|
||||
<action name="Execute">
|
||||
<command>ark</command>
|
||||
<startupnotify>
|
||||
<enabled>yes</enabled>
|
||||
</startupnotify>
|
||||
</action>
|
||||
</item>
|
||||
</menu>
|
||||
|
||||
<menu id="apps-editors-menu" label="Editors">
|
||||
<item label="GVim">
|
||||
<action name="Execute">
|
||||
<command>gvim</command>
|
||||
<startupnotify>
|
||||
<enabled>yes</enabled>
|
||||
<wmclass>GVim</wmclass>
|
||||
</startupnotify>
|
||||
</action>
|
||||
</item>
|
||||
<item label="Emacs">
|
||||
<action name="Execute">
|
||||
<command>emacs</command>
|
||||
<startupnotify>
|
||||
<enabled>yes</enabled>
|
||||
<wmclass>Emacs</wmclass>
|
||||
</startupnotify>
|
||||
</action>
|
||||
</item>
|
||||
<item label="GEdit">
|
||||
<action name="Execute">
|
||||
<command>gedit</command>
|
||||
<startupnotify>
|
||||
<enabled>yes</enabled>
|
||||
</startupnotify>
|
||||
</action>
|
||||
</item>
|
||||
<item label="Kate">
|
||||
<action name="Execute">
|
||||
<command>kate</command>
|
||||
<startupnotify>
|
||||
<enabled>yes</enabled>
|
||||
</startupnotify>
|
||||
</action>
|
||||
</item>
|
||||
<item label="Kwrite">
|
||||
<action name="Execute">
|
||||
<command>kwrite</command>
|
||||
<startupnotify>
|
||||
<enabled>yes</enabled>
|
||||
</startupnotify>
|
||||
</action>
|
||||
</item>
|
||||
</menu>
|
||||
|
||||
<menu id="apps-term-menu" label="Terminals">
|
||||
<item label="Rxvt Unicode">
|
||||
<action name="Execute">
|
||||
<command>urxvt</command>
|
||||
</action>
|
||||
</item>
|
||||
<item label="Gnome Terminal">
|
||||
<action name="Execute">
|
||||
<command>gnome-terminal</command>
|
||||
<startupnotify>
|
||||
<enabled>yes</enabled>
|
||||
</startupnotify>
|
||||
</action>
|
||||
</item>
|
||||
<item label="Xfce Terminal">
|
||||
<action name="Execute">
|
||||
<command>xfce4-terminal</command>
|
||||
<startupnotify>
|
||||
<enabled>yes</enabled>
|
||||
</startupnotify>
|
||||
</action>
|
||||
</item>
|
||||
<item label="Konsole">
|
||||
<action name="Execute">
|
||||
<command>konsole</command>
|
||||
<startupnotify>
|
||||
<enabled>yes</enabled>
|
||||
</startupnotify>
|
||||
</action>
|
||||
</item>
|
||||
<item label="Xterm">
|
||||
<action name="Execute"><command>xterm</command></action>
|
||||
</item>
|
||||
</menu>
|
||||
|
||||
<menu id="apps-net-menu" label="Internet">
|
||||
<item label="Firefox">
|
||||
<action name="Execute">
|
||||
<command>firefox</command>
|
||||
<startupnotify>
|
||||
<enabled>yes</enabled>
|
||||
<wmclass>Firefox</wmclass>
|
||||
</startupnotify>
|
||||
</action>
|
||||
</item>
|
||||
<item label="Opera">
|
||||
<action name="Execute">
|
||||
<command>opera</command>
|
||||
<startupnotify>
|
||||
<enabled>yes</enabled>
|
||||
<wmclass>Opera</wmclass>
|
||||
</startupnotify>
|
||||
</action>
|
||||
</item>
|
||||
<item label="Konqueror">
|
||||
<action name="Execute">
|
||||
<command>konqueror</command>
|
||||
<startupnotify>
|
||||
<enabled>yes</enabled>
|
||||
</startupnotify>
|
||||
</action>
|
||||
</item>
|
||||
<item label="Epiphany">
|
||||
<action name="Execute">
|
||||
<command>epiphany</command>
|
||||
<startupnotify>
|
||||
<enabled>yes</enabled>
|
||||
</startupnotify>
|
||||
</action>
|
||||
</item>
|
||||
<item label="Pidgin Instant Messenger">
|
||||
<action name="Execute">
|
||||
<command>pidgin</command>
|
||||
<startupnotify>
|
||||
<enabled>yes</enabled>
|
||||
</startupnotify>
|
||||
</action>
|
||||
</item>
|
||||
<item label="Kopete Instant Messenger">
|
||||
<action name="Execute">
|
||||
<command>kopete</command>
|
||||
<startupnotify>
|
||||
<enabled>yes</enabled>
|
||||
</startupnotify>
|
||||
</action>
|
||||
</item>
|
||||
<item label="XChat">
|
||||
<action name="Execute">
|
||||
<command>xchat</command>
|
||||
<startupnotify>
|
||||
<enabled>yes</enabled>
|
||||
</startupnotify>
|
||||
</action>
|
||||
</item>
|
||||
</menu>
|
||||
|
||||
<menu id="apps-office-menu" label="Office">
|
||||
<item label="OpenOffice Base">
|
||||
<action name="Execute">
|
||||
<command>ooffice -base</command>
|
||||
</action>
|
||||
</item>
|
||||
<item label="OpenOffice Calc">
|
||||
<action name="Execute">
|
||||
<command>ooffice -calc</command>
|
||||
</action>
|
||||
</item>
|
||||
<item label="OpenOffice Draw">
|
||||
<action name="Execute">
|
||||
<command>ooffice -draw</command>
|
||||
</action>
|
||||
</item>
|
||||
<item label="OpenOffice Impress">
|
||||
<action name="Execute">
|
||||
<command>ooffice -impress</command>
|
||||
</action>
|
||||
</item>
|
||||
<item label="OpenOffice Math">
|
||||
<action name="Execute">
|
||||
<command>ooffice -math</command>
|
||||
</action>
|
||||
</item>
|
||||
<item label="OpenOffice Printer Administration">
|
||||
<action name="Execute">
|
||||
<command>ooffice-printeradmin</command>
|
||||
</action>
|
||||
</item>
|
||||
<item label="OpenOffice Writer">
|
||||
<action name="Execute">
|
||||
<command>ooffice -writer</command>
|
||||
</action>
|
||||
</item>
|
||||
</menu>
|
||||
|
||||
<menu id="apps-multimedia-menu" label="Multimedia">
|
||||
<item label="Amarok">
|
||||
<action name="Execute">
|
||||
<command>amarok</command>
|
||||
<startupnotify>
|
||||
<enabled>yes</enabled>
|
||||
</startupnotify>
|
||||
</action>
|
||||
</item>
|
||||
<item label="Rhythmbox">
|
||||
<action name="Execute">
|
||||
<command>rhythmbox</command>
|
||||
<startupnotify>
|
||||
<enabled>yes</enabled>
|
||||
</startupnotify>
|
||||
</action>
|
||||
</item>
|
||||
<item label="K3b">
|
||||
<action name="Execute">
|
||||
<command>k3b</command>
|
||||
<startupnotify>
|
||||
<enabled>yes</enabled>
|
||||
</startupnotify>
|
||||
</action>
|
||||
</item>
|
||||
<item label="MPlayer">
|
||||
<action name="Execute">
|
||||
<command>gmplayer</command>
|
||||
<startupnotify>
|
||||
<enabled>yes</enabled>
|
||||
<wmclass>MPlayer</wmclass>
|
||||
</startupnotify>
|
||||
</action>
|
||||
</item>
|
||||
<item label="Totem">
|
||||
<action name="Execute">
|
||||
<command>totem</command>
|
||||
<startupnotify>
|
||||
<enabled>yes</enabled>
|
||||
</startupnotify>
|
||||
</action>
|
||||
</item>
|
||||
</menu>
|
||||
|
||||
<menu id="apps-fileman-menu" label="File Managers">
|
||||
<item label="Nautilus">
|
||||
<action name="Execute">
|
||||
<command>nautilus --no-desktop --browser</command>
|
||||
<startupnotify>
|
||||
<enabled>yes</enabled>
|
||||
</startupnotify>
|
||||
</action>
|
||||
</item>
|
||||
<item label="Thunar">
|
||||
<action name="Execute">
|
||||
<command>Thunar</command>
|
||||
<startupnotify>
|
||||
<enabled>yes</enabled>
|
||||
</startupnotify>
|
||||
</action>
|
||||
</item>
|
||||
<item label="KDE File Manager">
|
||||
<action name="Execute">
|
||||
<command>kfmclient openURL ~</command>
|
||||
<startupnotify>
|
||||
<enabled>yes</enabled>
|
||||
</startupnotify>
|
||||
</action>
|
||||
</item>
|
||||
<item label="Rox">
|
||||
<action name="Execute">
|
||||
<command>rox</command>
|
||||
<startupnotify>
|
||||
<enabled>yes</enabled>
|
||||
<wmclass>ROX-Filer</wmclass>
|
||||
</startupnotify>
|
||||
</action>
|
||||
</item>
|
||||
<item label="PCMan File Manager">
|
||||
<action name="Execute">
|
||||
<command>pcmanfm</command>
|
||||
<startupnotify>
|
||||
<enabled>yes</enabled>
|
||||
</startupnotify>
|
||||
</action>
|
||||
</item>
|
||||
</menu>
|
||||
|
||||
<menu id="apps-graphics-menu" label="Graphics">
|
||||
<item label="Gimp">
|
||||
<action name="Execute">
|
||||
<command>gimp</command>
|
||||
<startupnotify>
|
||||
<enabled>yes</enabled>
|
||||
</startupnotify>
|
||||
</action>
|
||||
</item>
|
||||
<item label="Gwenview">
|
||||
<action name="Execute">
|
||||
<command>gwenview</command>
|
||||
<startupnotify>
|
||||
<enabled>yes</enabled>
|
||||
</startupnotify>
|
||||
</action>
|
||||
</item>
|
||||
<item label="Dia Diagram Editor">
|
||||
<action name="Execute">
|
||||
<command>dia</command>
|
||||
<startupnotify>
|
||||
<enabled>yes</enabled>
|
||||
</startupnotify>
|
||||
</action>
|
||||
</item>
|
||||
<item label="Inkscape">
|
||||
<action name="Execute">
|
||||
<command>inkscape</command>
|
||||
<startupnotify>
|
||||
<enabled>yes</enabled>
|
||||
</startupnotify>
|
||||
</action>
|
||||
</item>
|
||||
</menu>
|
||||
|
||||
<menu id="system-menu" label="System">
|
||||
<item label="Openbox Configuration Manager">
|
||||
<action name="Execute">
|
||||
<command>obconf</command>
|
||||
<startupnotify><enabled>yes</enabled></startupnotify>
|
||||
</action>
|
||||
</item>
|
||||
<item label="Gnome Control Center">
|
||||
<action name="Execute">
|
||||
<command>gnome-control-center</command>
|
||||
<startupnotify><enabled>yes</enabled></startupnotify>
|
||||
</action>
|
||||
</item>
|
||||
<item label="KDE Control Center">
|
||||
<action name="Execute">
|
||||
<command>kcontrol</command>
|
||||
<startupnotify><enabled>yes</enabled></startupnotify>
|
||||
</action>
|
||||
</item>
|
||||
<item label="Xfce Settings">
|
||||
<action name="Execute">
|
||||
<command>xfce-setting-show</command>
|
||||
<startupnotify><enabled>yes</enabled></startupnotify>
|
||||
</action>
|
||||
</item>
|
||||
<item label="Manage Cups Printers">
|
||||
<action name="Execute">
|
||||
<command>xdg-open http://localhost:631/</command>
|
||||
<startupnotify>
|
||||
<enabled>no</enabled>
|
||||
<icon>cups</icon>
|
||||
</startupnotify>
|
||||
</action>
|
||||
</item>
|
||||
<separator />
|
||||
<item label="Reconfigure Openbox">
|
||||
<action name="Reconfigure" />
|
||||
</item>
|
||||
</menu>
|
||||
|
||||
<menu id="root-menu" label="Openbox 3">
|
||||
<separator label="Applications" />
|
||||
<menu id="apps-accessories-menu"/>
|
||||
<menu id="apps-editors-menu"/>
|
||||
<menu id="apps-graphics-menu"/>
|
||||
<menu id="apps-net-menu"/>
|
||||
<menu id="apps-office-menu"/>
|
||||
<menu id="apps-multimedia-menu"/>
|
||||
<menu id="apps-term-menu"/>
|
||||
<menu id="apps-fileman-menu"/>
|
||||
<separator label="System" />
|
||||
<menu id="system-menu"/>
|
||||
<separator />
|
||||
<item label="Log Out">
|
||||
<action name="Exit">
|
||||
<prompt>yes</prompt>
|
||||
</action>
|
||||
</item>
|
||||
</menu>
|
||||
|
||||
</openbox_menu>
|
|
@ -0,0 +1,215 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!-- XML Schema for the Openbox window manager menu file -->
|
||||
|
||||
<!DOCTYPE schema PUBLIC "-//W3C//DTD XMLSCHEMA 200102//EN"
|
||||
"http://www.w3.org/2001/XMLSchema.dtd" [
|
||||
<!ATTLIST schema xmlns:ob CDATA #IMPLIED>
|
||||
<!ENTITY % p "xsd:">
|
||||
<!ENTITY % s ":xsd">
|
||||
]>
|
||||
|
||||
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
targetNamespace="http://openbox.org/3.4/menu"
|
||||
xmlns:ob="http://openbox.org/3.4/menu"
|
||||
elementFormDefault="qualified"
|
||||
attributeFormDefault="unqualified">
|
||||
<!--
|
||||
root node
|
||||
-->
|
||||
<xsd:element name="openbox_menu">
|
||||
<xsd:complexType mixed="false">
|
||||
<xsd:sequence maxOccurs="unbounded" minOccurs="1">
|
||||
<xsd:element name="menu" type="ob:menu"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<!--
|
||||
complex types
|
||||
-->
|
||||
<!-- menu -->
|
||||
<xsd:complexType name="menu">
|
||||
<xsd:choice maxOccurs="unbounded" minOccurs="0">
|
||||
<xsd:element name="menu" type="ob:menu"/>
|
||||
<xsd:element name="item" type="ob:item"/>
|
||||
<xsd:element name="separator" type="ob:separator"/>
|
||||
</xsd:choice>
|
||||
<xsd:attribute name="label" type="xsd:string" use="optional"/>
|
||||
<xsd:attribute name="execute" type="xsd:string" use="optional"/>
|
||||
<xsd:attribute name="id" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
|
||||
<!-- separator -->
|
||||
<xsd:complexType name="separator">
|
||||
<xsd:attribute name="label" type="xsd:string" use="optional"/>
|
||||
</xsd:complexType>
|
||||
|
||||
<!-- empty -->
|
||||
<xsd:complexType name="empty">
|
||||
<xsd:complexContent>
|
||||
<xsd:restriction base="xsd:anyType"/>
|
||||
</xsd:complexContent>
|
||||
</xsd:complexType>
|
||||
|
||||
<!-- item -->
|
||||
<xsd:complexType name="item">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="action">
|
||||
<xsd:complexType>
|
||||
<xsd:all>
|
||||
<xsd:element minOccurs="0" name="execute" type="xsd:string"/>
|
||||
<xsd:element minOccurs="0" name="startupnotify" type="ob:notify"/>
|
||||
<xsd:element minOccurs="0" name="command" type="xsd:string"/>
|
||||
<xsd:element minOccurs="0" name="allDesktops" type="ob:bool"/>
|
||||
<xsd:element minOccurs="0" name="menu" type="xsd:string"/>
|
||||
<xsd:element minOccurs="0" name="delta" type="xsd:integer"/>
|
||||
<xsd:element minOccurs="0" name="x" type="xsd:integer"/>
|
||||
<xsd:element minOccurs="0" name="y" type="xsd:integer"/>
|
||||
<xsd:element minOccurs="0" name="left" type="xsd:integer"/>
|
||||
<xsd:element minOccurs="0" name="right" type="xsd:integer"/>
|
||||
<xsd:element minOccurs="0" name="up" type="xsd:integer"/>
|
||||
<xsd:element minOccurs="0" name="down" type="xsd:integer"/>
|
||||
<xsd:element minOccurs="0" name="desktop">
|
||||
<xsd:simpleType>
|
||||
<xsd:union memberTypes="xsd:integer ob:bool"/>
|
||||
</xsd:simpleType>
|
||||
</xsd:element>
|
||||
<xsd:element minOccurs="0" name="edge" type="xsd:string"/>
|
||||
<xsd:element minOccurs="0" name="wrap" type="ob:bool"/>
|
||||
<xsd:element minOccurs="0" name="follow" type="ob:bool"/>
|
||||
<xsd:element minOccurs="0" name="dialog" type="ob:bool"/>
|
||||
<xsd:element minOccurs="0" name="panels" type="ob:bool"/>
|
||||
<xsd:element minOccurs="0" name="here" type="ob:bool"/>
|
||||
<xsd:element minOccurs="0" name="linear" type="ob:bool"/>
|
||||
<xsd:element minOccurs="0" name="group" type="ob:bool"/>
|
||||
</xsd:all>
|
||||
<xsd:attribute name="name" type="ob:actionname" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="label" type="xsd:string" use="required"/>
|
||||
</xsd:complexType>
|
||||
|
||||
<!-- startupnotify -->
|
||||
<xsd:complexType name="startupnotify">
|
||||
<xsd:all>
|
||||
<xsd:element minOccurs="1" name="enabled" type="xsd:string"/>
|
||||
<xsd:element minOccurs="0" name="icon" type="xsd:string"/>
|
||||
<xsd:element minOccurs="0" name="wmclass" type="xsd:string"/>
|
||||
</xsd:all>
|
||||
</xsd:complexType>
|
||||
<xsd:simpleType name="bool">
|
||||
<!-- this is copied to maximization. Keep that in sync. -->
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:enumeration value="yes"/>
|
||||
<xsd:enumeration value="no"/>
|
||||
<xsd:enumeration value="true"/>
|
||||
<xsd:enumeration value="false"/>
|
||||
<xsd:enumeration value="on"/>
|
||||
<xsd:enumeration value="off"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
<xsd:complexType name="notify">
|
||||
<xsd:all>
|
||||
<xsd:element minOccurs="0" name="enabled" type="ob:bool"/>
|
||||
<xsd:element minOccurs="0" name="name" type="xsd:string"/>
|
||||
<xsd:element minOccurs="0" name="icon" type="xsd:string"/>
|
||||
</xsd:all>
|
||||
</xsd:complexType>
|
||||
<!--
|
||||
simple types / restrictions
|
||||
-->
|
||||
<xsd:simpleType name="actionname">
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:pattern value="[Aa][Cc][Tt][Ii][Vv][Aa][Tt][Ee]"/>
|
||||
<xsd:pattern value="[Bb][Rr][Ee][Aa][Kk][Cc][Hh][Rr][Oo][Oo][Tt]"/>
|
||||
<xsd:pattern value="[Cc][Ll][Oo][Ss][Ee]"/>
|
||||
<xsd:pattern value="[Dd][Ee][Ss][Kk][Tt][Oo][Pp]"/>
|
||||
<xsd:pattern value="[Dd][Ee][Ss][Kk][Tt][Oo][Pp][Dd][Oo][Ww][Nn]"/>
|
||||
<xsd:pattern value="[Dd][Ee][Ss][Kk][Tt][Oo][Pp][Ll][Aa][Ss][Tt]"/>
|
||||
<xsd:pattern value="[Dd][Ee][Ss][Kk][Tt][Oo][Pp][Ll][Ee][Ff][Tt]"/>
|
||||
<xsd:pattern value="[Dd][Ee][Ss][Kk][Tt][Oo][Pp][Nn][Ee][Xx][Tt]"/>
|
||||
<xsd:pattern value="[Dd][Ee][Ss][Kk][Tt][Oo][Pp][Pp][Rr][Ee][Vv][Ii][Oo][Uu][Ss]"/>
|
||||
<xsd:pattern value="[Dd][Ee][Ss][Kk][Tt][Oo][Pp][Rr][Ii][Gg][Hh][Tt]"/>
|
||||
<xsd:pattern value="[Dd][Ee][Ss][Kk][Tt][Oo][Pp][Uu][Pp]"/>
|
||||
<xsd:pattern value="[Dd][Ii][Rr][Ee][Cc][Tt][Ii][Oo][Nn][Aa][Ll][Ff][Oo][Cc][Uu][Ss][Ee][Aa][Ss][Tt]"/>
|
||||
<xsd:pattern value="[Dd][Ii][Rr][Ee][Cc][Tt][Ii][Oo][Nn][Aa][Ll][Ff][Oo][Cc][Uu][Ss][Nn][Oo][Rr][Tt][Hh]"/>
|
||||
<xsd:pattern value="[Dd][Ii][Rr][Ee][Cc][Tt][Ii][Oo][Nn][Aa][Ll][Ff][Oo][Cc][Uu][Ss][Nn][Oo][Rr][Tt][Hh][Ee][Aa][Ss][Tt]"/>
|
||||
<xsd:pattern value="[Dd][Ii][Rr][Ee][Cc][Tt][Ii][Oo][Nn][Aa][Ll][Ff][Oo][Cc][Uu][Ss][Nn][Oo][Rr][Tt][Hh][Ww][Ee][Ss][Tt]"/>
|
||||
<xsd:pattern value="[Dd][Ii][Rr][Ee][Cc][Tt][Ii][Oo][Nn][Aa][Ll][Ff][Oo][Cc][Uu][Ss][Ss][Oo][Uu][Tt][Hh]"/>
|
||||
<xsd:pattern value="[Dd][Ii][Rr][Ee][Cc][Tt][Ii][Oo][Nn][Aa][Ll][Ff][Oo][Cc][Uu][Ss][Ss][Oo][Uu][Tt][Hh][Ee][Aa][Ss][Tt]"/>
|
||||
<xsd:pattern value="[Dd][Ii][Rr][Ee][Cc][Tt][Ii][Oo][Nn][Aa][Ll][Ff][Oo][Cc][Uu][Ss][Ss][Oo][Uu][Tt][Hh][Ww][Ee][Ss][Tt]"/>
|
||||
<xsd:pattern value="[Dd][Ii][Rr][Ee][Cc][Tt][Ii][Oo][Nn][Aa][Ll][Ff][Oo][Cc][Uu][Ss][Ww][Ee][Ss][Tt]"/>
|
||||
<xsd:pattern value="[Ee][Xx][Ee][Cc][Uu][Tt][Ee]"/>
|
||||
<xsd:pattern value="[Ee][Xx][Ii][Tt]"/>
|
||||
<xsd:pattern value="[Ss][Ee][Ss][Ss][Ii][Oo][Nn][Ll][Oo][Gg][Oo][Uu][Tt]"/>
|
||||
<xsd:pattern value="[Ff][Oo][Cc][Uu][Ss]"/>
|
||||
<xsd:pattern value="[Ff][Oo][Cc][Uu][Ss][Tt][Oo][Bb][Oo][Tt][Tt][Oo][Mm]"/>
|
||||
<xsd:pattern value="[Gg][Rr][Oo][Ww][Tt][Oo][Ee][Dd][Gg][Ee][Ee][Aa][Ss][Tt]"/>
|
||||
<xsd:pattern value="[Gg][Rr][Oo][Ww][Tt][Oo][Ee][Dd][Gg][Ee][Nn][Oo][Rr][Tt][Hh]"/>
|
||||
<xsd:pattern value="[Gg][Rr][Oo][Ww][Tt][Oo][Ee][Dd][Gg][Ee][Ss][Oo][Uu][Tt][Hh]"/>
|
||||
<xsd:pattern value="[Gg][Rr][Oo][Ww][Tt][Oo][Ee][Dd][Gg][Ee][Ww][Ee][Ss][Tt]"/>
|
||||
<xsd:pattern value="[Ii][Cc][Oo][Nn][Ii][Ff][Yy]"/>
|
||||
<xsd:pattern value="[Kk][Ii][Ll][Ll]"/>
|
||||
<xsd:pattern value="[Ll][Oo][Ww][Ee][Rr]"/>
|
||||
<xsd:pattern value="[Mm][Aa][Xx][Ii][Mm][Ii][Zz][Ee][Ff][Uu][Ll][Ll]"/>
|
||||
<xsd:pattern value="[Mm][Aa][Xx][Ii][Mm][Ii][Zz][Ee][Hh][Oo][Rr][Zz]"/>
|
||||
<xsd:pattern value="[Mm][Aa][Xx][Ii][Mm][Ii][Zz][Ee][Vv][Ee][Rr][Tt]"/>
|
||||
<xsd:pattern value="[Mm][Oo][Vv][Ee]"/>
|
||||
<xsd:pattern value="[Mm][Oo][Vv][Ee][Rr][Ee][Ll][Aa][Tt][Ii][Vv][Ee]"/>
|
||||
<xsd:pattern value="[Mm][Oo][Vv][Ee][Rr][Ee][Ll][Aa][Tt][Ii][Vv][Ee][Hh][Oo][Rr][Zz]"/>
|
||||
<xsd:pattern value="[Mm][Oo][Vv][Ee][Rr][Ee][Ll][Aa][Tt][Ii][Vv][Ee][Vv][Ee][Rr][Tt]"/>
|
||||
<xsd:pattern value="[Mm][Oo][Vv][Ee][Tt][Oo][Cc][Ee][Nn][Tt][Ee][Rr]"/>
|
||||
<xsd:pattern value="[Mm][Oo][Vv][Ee][Ff][Rr][Oo][Mm][Ee][Dd][Gg][Ee][Ee][Aa][Ss][Tt]"/>
|
||||
<xsd:pattern value="[Mm][Oo][Vv][Ee][Ff][Rr][Oo][Mm][Ee][Dd][Gg][Ee][Nn][Oo][Rr][Tt][Hh]"/>
|
||||
<xsd:pattern value="[Mm][Oo][Vv][Ee][Ff][Rr][Oo][Mm][Ee][Dd][Gg][Ee][Ss][Oo][Uu][Tt][Hh]"/>
|
||||
<xsd:pattern value="[Mm][Oo][Vv][Ee][Ff][Rr][Oo][Mm][Ee][Dd][Gg][Ee][Ww][Ee][Ss][Tt]"/>
|
||||
<xsd:pattern value="[Mm][Oo][Vv][Ee][Tt][Oo][Ee][Dd][Gg][Ee][Ee][Aa][Ss][Tt]"/>
|
||||
<xsd:pattern value="[Mm][Oo][Vv][Ee][Tt][Oo][Ee][Dd][Gg][Ee][Nn][Oo][Rr][Tt][Hh]"/>
|
||||
<xsd:pattern value="[Mm][Oo][Vv][Ee][Tt][Oo][Ee][Dd][Gg][Ee][Ss][Oo][Uu][Tt][Hh]"/>
|
||||
<xsd:pattern value="[Mm][Oo][Vv][Ee][Tt][Oo][Ee][Dd][Gg][Ee][Ww][Ee][Ss][Tt]"/>
|
||||
<xsd:pattern value="[Nn][Ee][Xx][Tt][Ww][Ii][Nn][Dd][Oo][Ww]"/>
|
||||
<xsd:pattern value="[Pp][Rr][Ee][Vv][Ii][Oo][Uu][Ss][Ww][Ii][Nn][Dd][Oo][Ww]"/>
|
||||
<xsd:pattern value="[Rr][Aa][Ii][Ss][Ee]"/>
|
||||
<xsd:pattern value="[Rr][Aa][Ii][Ss][Ee][Ll][Oo][Ww][Ee][Rr]"/>
|
||||
<xsd:pattern value="[Rr][Ee][Cc][Oo][Nn][Ff][Ii][Gg][Uu][Rr][Ee]"/>
|
||||
<xsd:pattern value="[Rr][Ee][Ss][Ii][Zz][Ee]"/>
|
||||
<xsd:pattern value="[Rr][Ee][Ss][Ii][Zz][Ee][Rr][Ee][Ll][Aa][Tt][Ii][Vv][Ee]"/>
|
||||
<xsd:pattern value="[Rr][Ee][Ss][Ii][Zz][Ee][Rr][Ee][Ll][Aa][Tt][Ii][Vv][Ee][Hh][Oo][Rr][Zz]"/>
|
||||
<xsd:pattern value="[Rr][Ee][Ss][Ii][Zz][Ee][Rr][Ee][Ll][Aa][Tt][Ii][Vv][Ee][Vv][Ee][Rr][Tt]"/>
|
||||
<xsd:pattern value="[Rr][Ee][Ss][Tt][Aa][Rr][Tt]"/>
|
||||
<xsd:pattern value="[Ss][Ee][Nn][Dd][Tt][Oo][Bb][Oo][Tt][Tt][Oo][Mm][Ll][Aa][Yy][Ee][Rr]"/>
|
||||
<xsd:pattern value="[Ss][Ee][Nn][Dd][Tt][Oo][Dd][Ee][Ss][Kk][Tt][Oo][Pp]"/>
|
||||
<xsd:pattern value="[Ss][Ee][Nn][Dd][Tt][Oo][Dd][Ee][Ss][Kk][Tt][Oo][Pp][Dd][Oo][Ww][Nn]"/>
|
||||
<xsd:pattern value="[Ss][Ee][Nn][Dd][Tt][Oo][Dd][Ee][Ss][Kk][Tt][Oo][Pp][Ll][Ee][Ff][Tt]"/>
|
||||
<xsd:pattern value="[Ss][Ee][Nn][Dd][Tt][Oo][Dd][Ee][Ss][Kk][Tt][Oo][Pp][Nn][Ee][Xx][Tt]"/>
|
||||
<xsd:pattern value="[Ss][Ee][Nn][Dd][Tt][Oo][Dd][Ee][Ss][Kk][Tt][Oo][Pp][Pp][Rr][Ee][Vv][Ii][Oo][Uu][Ss]"/>
|
||||
<xsd:pattern value="[Ss][Ee][Nn][Dd][Tt][Oo][Dd][Ee][Ss][Kk][Tt][Oo][Pp][Rr][Ii][Gg][Hh][Tt]"/>
|
||||
<xsd:pattern value="[Ss][Ee][Nn][Dd][Tt][Oo][Dd][Ee][Ss][Kk][Tt][Oo][Pp][Uu][Pp]"/>
|
||||
<xsd:pattern value="[Ss][Ee][Nn][Dd][Tt][Oo][Nn][Oo][Rr][Mm][Aa][Ll][Ll][Aa][Yy][Ee][Rr]"/>
|
||||
<xsd:pattern value="[Ss][Ee][Nn][Dd][Tt][Oo][Tt][Oo][Pp][Ll][Aa][Yy][Ee][Rr]"/>
|
||||
<xsd:pattern value="[Ss][Hh][Aa][Dd][Ee]"/>
|
||||
<xsd:pattern value="[Ss][Hh][Aa][Dd][Ee][Ll][Oo][Ww][Ee][Rr]"/>
|
||||
<xsd:pattern value="[Ss][Hh][Oo][Ww][Dd][Ee][Ss][Kk][Tt][Oo][Pp]"/>
|
||||
<xsd:pattern value="[Ss][Hh][Oo][Ww][Mm][Ee][Nn][Uu]"/>
|
||||
<xsd:pattern value="[Tt][Oo][Gg][Gg][Ll][Ee][Aa][Ll][Ww][Aa][Yy][Ss][Oo][Nn][Bb][Oo][Tt][Tt][Oo][Mm]"/>
|
||||
<xsd:pattern value="[Tt][Oo][Gg][Gg][Ll][Ee][Aa][Ll][Ww][Aa][Yy][Ss][Oo][Nn][Tt][Oo][Pp]"/>
|
||||
<xsd:pattern value="[Tt][Oo][Gg][Gg][Ll][Ee][Dd][Ee][Cc][Oo][Rr][Aa][Tt][Ii][Oo][Nn][Ss]"/>
|
||||
<xsd:pattern value="[Tt][Oo][Gg][Gg][Ll][Ee][Dd][Oo][Cc][Kk][Aa][Uu][Tt][Oo][Hh][Ii][Dd][Ee]"/>
|
||||
<xsd:pattern value="[Tt][Oo][Gg][Gg][Ll][Ee][Ff][Uu][Ll][Ll][Ss][Cc][Rr][Ee][Ee][Nn]"/>
|
||||
<xsd:pattern value="[Tt][Oo][Gg][Gg][Ll][Ee][Mm][Aa][Xx][Ii][Mm][Ii][Zz][Ee][Ff][Uu][Ll][Ll]"/>
|
||||
<xsd:pattern value="[Tt][Oo][Gg][Gg][Ll][Ee][Mm][Aa][Xx][Ii][Mm][Ii][Zz][Ee][Hh][Oo][Rr][Zz]"/>
|
||||
<xsd:pattern value="[Tt][Oo][Gg][Gg][Ll][Ee][Mm][Aa][Xx][Ii][Mm][Ii][Zz][Ee][Vv][Ee][Rr][Tt]"/>
|
||||
<xsd:pattern value="[Tt][Oo][Gg][Gg][Ll][Ee][Oo][Mm][Nn][Ii][Pp][Rr][Ee][Ss][Ee][Nn][Tt]"/>
|
||||
<xsd:pattern value="[Tt][Oo][Gg][Gg][Ll][Ee][Ss][Hh][Aa][Dd][Ee]"/>
|
||||
<xsd:pattern value="[Tt][Oo][Gg][Gg][Ll][Ee][Ss][Hh][Oo][Ww][Dd][Ee][Ss][Kk][Tt][Oo][Pp]"/>
|
||||
<xsd:pattern value="[Uu][Nn][Ff][Oo][Cc][Uu][Ss]"/>
|
||||
<xsd:pattern value="[Uu][Nn][Mm][Aa][Xx][Ii][Mm][Ii][Zz][Ee][Ff][Uu][Ll][Ll]"/>
|
||||
<xsd:pattern value="[Uu][Nn][Mm][Aa][Xx][Ii][Mm][Ii][Zz][Ee][Hh][Oo][Rr][Zz]"/>
|
||||
<xsd:pattern value="[Uu][Nn][Mm][Aa][Xx][Ii][Mm][Ii][Zz][Ee][Vv][Ee][Rr][Tt]"/>
|
||||
<xsd:pattern value="[Uu][Nn][Ss][Hh][Aa][Dd][Ee]"/>
|
||||
<xsd:pattern value="[Uu][Nn][Ss][Hh][Aa][Dd][Ee][Rr][Aa][Ii][Ss][Ee]"/>
|
||||
<xsd:pattern value="[Uu][Nn][Ss][Hh][Oo][Ww][Dd][Ee][Ss][Kk][Tt][Oo][Pp]"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
</xsd:schema>
|
|
@ -0,0 +1,15 @@
|
|||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Openbox
|
||||
Exec=openbox
|
||||
Icon=openbox
|
||||
NoDisplay=true
|
||||
# name we put on the WM spec check window
|
||||
X-GNOME-WMName=Openbox
|
||||
# gnome-session autostart
|
||||
X-GNOME-Autostart-Phase=WindowManager
|
||||
X-GNOME-Provides=windowmanager
|
||||
# Ubuntu stuff
|
||||
X-Ubuntu-Gettext-Domain=openbox
|
||||
# back compat
|
||||
X-GNOME-Autostart-Notify=true
|
Binary file not shown.
After Width: | Height: | Size: 1.5 KiB |
|
@ -0,0 +1,743 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!-- Do not edit this file, it will be overwritten on install.
|
||||
Copy the file to $HOME/.config/openbox/ instead. -->
|
||||
|
||||
<openbox_config xmlns="http://openbox.org/3.4/rc"
|
||||
xmlns:xi="http://www.w3.org/2001/XInclude">
|
||||
|
||||
<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>Primary</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, 'Primary' - only on the primary monitor -->
|
||||
<primaryMonitor>1</primaryMonitor>
|
||||
<!-- The monitor where Openbox should place popup dialogs such as the
|
||||
focus cycling popup, or the desktop switch popup. It can be an index
|
||||
from 1, specifying a particular monitor. Or it can be one of the
|
||||
following: 'Mouse' - where the mouse is, or
|
||||
'Active' - where the active window is -->
|
||||
</placement>
|
||||
|
||||
<theme>
|
||||
<name>Clearlooks</name>
|
||||
<titleLayout>NLIMC</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>yes</animateIconify>
|
||||
<font place="ActiveWindow">
|
||||
<name>sans</name>
|
||||
<size>8</size>
|
||||
<!-- font size in points -->
|
||||
<weight>bold</weight>
|
||||
<!-- 'bold' or 'normal' -->
|
||||
<slant>normal</slant>
|
||||
<!-- 'italic' or 'normal' -->
|
||||
</font>
|
||||
<font place="InactiveWindow">
|
||||
<name>sans</name>
|
||||
<size>8</size>
|
||||
<!-- font size in points -->
|
||||
<weight>bold</weight>
|
||||
<!-- 'bold' or 'normal' -->
|
||||
<slant>normal</slant>
|
||||
<!-- 'italic' or 'normal' -->
|
||||
</font>
|
||||
<font place="MenuHeader">
|
||||
<name>sans</name>
|
||||
<size>9</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>9</size>
|
||||
<!-- font size in points -->
|
||||
<weight>normal</weight>
|
||||
<!-- 'bold' or 'normal' -->
|
||||
<slant>normal</slant>
|
||||
<!-- 'italic' or 'normal' -->
|
||||
</font>
|
||||
<font place="ActiveOnScreenDisplay">
|
||||
<name>sans</name>
|
||||
<size>9</size>
|
||||
<!-- font size in points -->
|
||||
<weight>bold</weight>
|
||||
<!-- 'bold' or 'normal' -->
|
||||
<slant>normal</slant>
|
||||
<!-- 'italic' or 'normal' -->
|
||||
</font>
|
||||
<font place="InactiveOnScreenDisplay">
|
||||
<name>sans</name>
|
||||
<size>9</size>
|
||||
<!-- font size in points -->
|
||||
<weight>bold</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>
|
||||
<!-- set names up here if you want to, like this:
|
||||
<name>desktop 1</name>
|
||||
<name>desktop 2</name>
|
||||
-->
|
||||
</names>
|
||||
<popupTime>875</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>Vertical</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 -->
|
||||
<keybind key="C-A-Left">
|
||||
<action name="GoToDesktop"><to>left</to><wrap>no</wrap></action>
|
||||
</keybind>
|
||||
<keybind key="C-A-Right">
|
||||
<action name="GoToDesktop"><to>right</to><wrap>no</wrap></action>
|
||||
</keybind>
|
||||
<keybind key="C-A-Up">
|
||||
<action name="GoToDesktop"><to>up</to><wrap>no</wrap></action>
|
||||
</keybind>
|
||||
<keybind key="C-A-Down">
|
||||
<action name="GoToDesktop"><to>down</to><wrap>no</wrap></action>
|
||||
</keybind>
|
||||
<keybind key="S-A-Left">
|
||||
<action name="SendToDesktop"><to>left</to><wrap>no</wrap></action>
|
||||
</keybind>
|
||||
<keybind key="S-A-Right">
|
||||
<action name="SendToDesktop"><to>right</to><wrap>no</wrap></action>
|
||||
</keybind>
|
||||
<keybind key="S-A-Up">
|
||||
<action name="SendToDesktop"><to>up</to><wrap>no</wrap></action>
|
||||
</keybind>
|
||||
<keybind key="S-A-Down">
|
||||
<action name="SendToDesktop"><to>down</to><wrap>no</wrap></action>
|
||||
</keybind>
|
||||
<keybind key="W-F1">
|
||||
<action name="GoToDesktop"><to>1</to></action>
|
||||
</keybind>
|
||||
<keybind key="W-F2">
|
||||
<action name="GoToDesktop"><to>2</to></action>
|
||||
</keybind>
|
||||
<keybind key="W-F3">
|
||||
<action name="GoToDesktop"><to>3</to></action>
|
||||
</keybind>
|
||||
<keybind key="W-F4">
|
||||
<action name="GoToDesktop"><to>4</to></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">
|
||||
<finalactions>
|
||||
<action name="Focus"/>
|
||||
<action name="Raise"/>
|
||||
<action name="Unshade"/>
|
||||
</finalactions>
|
||||
</action>
|
||||
</keybind>
|
||||
<keybind key="A-S-Tab">
|
||||
<action name="PreviousWindow">
|
||||
<finalactions>
|
||||
<action name="Focus"/>
|
||||
<action name="Raise"/>
|
||||
<action name="Unshade"/>
|
||||
</finalactions>
|
||||
</action>
|
||||
</keybind>
|
||||
<keybind key="C-A-Tab">
|
||||
<action name="NextWindow">
|
||||
<panels>yes</panels><desktop>yes</desktop>
|
||||
<finalactions>
|
||||
<action name="Focus"/>
|
||||
<action name="Raise"/>
|
||||
<action name="Unshade"/>
|
||||
</finalactions>
|
||||
</action>
|
||||
</keybind>
|
||||
|
||||
<!-- Keybindings for window switching with the arrow keys -->
|
||||
<keybind key="W-S-Right">
|
||||
<action name="DirectionalCycleWindows">
|
||||
<direction>right</direction>
|
||||
</action>
|
||||
</keybind>
|
||||
<keybind key="W-S-Left">
|
||||
<action name="DirectionalCycleWindows">
|
||||
<direction>left</direction>
|
||||
</action>
|
||||
</keybind>
|
||||
<keybind key="W-S-Up">
|
||||
<action name="DirectionalCycleWindows">
|
||||
<direction>up</direction>
|
||||
</action>
|
||||
</keybind>
|
||||
<keybind key="W-S-Down">
|
||||
<action name="DirectionalCycleWindows">
|
||||
<direction>down</direction>
|
||||
</action>
|
||||
</keybind>
|
||||
|
||||
<!-- Keybindings for running applications -->
|
||||
<keybind key="W-e">
|
||||
<action name="Execute">
|
||||
<startupnotify>
|
||||
<enabled>true</enabled>
|
||||
<name>Konqueror</name>
|
||||
</startupnotify>
|
||||
<command>kfmclient openProfile filemanagement</command>
|
||||
</action>
|
||||
</keybind>
|
||||
</keyboard>
|
||||
|
||||
<mouse>
|
||||
<dragThreshold>1</dragThreshold>
|
||||
<!-- number of pixels the mouse must move before a drag begins -->
|
||||
<doubleClickTime>500</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 -->
|
||||
<screenEdgeWarpMouse>false</screenEdgeWarpMouse>
|
||||
<!-- Set this to TRUE to move the mouse pointer across the desktop when
|
||||
switching due to hitting the edge of the screen -->
|
||||
|
||||
<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="GoToDesktop"><to>previous</to></action>
|
||||
</mousebind>
|
||||
<mousebind button="A-Down" action="Click">
|
||||
<action name="GoToDesktop"><to>next</to></action>
|
||||
</mousebind>
|
||||
<mousebind button="C-A-Up" action="Click">
|
||||
<action name="GoToDesktop"><to>previous</to></action>
|
||||
</mousebind>
|
||||
<mousebind button="C-A-Down" action="Click">
|
||||
<action name="GoToDesktop"><to>next</to></action>
|
||||
</mousebind>
|
||||
<mousebind button="A-S-Up" action="Click">
|
||||
<action name="SendToDesktop"><to>previous</to></action>
|
||||
</mousebind>
|
||||
<mousebind button="A-S-Down" action="Click">
|
||||
<action name="SendToDesktop"><to>next</to></action>
|
||||
</mousebind>
|
||||
</context>
|
||||
|
||||
<context name="Titlebar">
|
||||
<mousebind button="Left" action="Drag">
|
||||
<action name="Move"/>
|
||||
</mousebind>
|
||||
<mousebind button="Left" action="DoubleClick">
|
||||
<action name="ToggleMaximize"/>
|
||||
</mousebind>
|
||||
|
||||
<mousebind button="Up" action="Click">
|
||||
<action name="if">
|
||||
<shaded>no</shaded>
|
||||
<then>
|
||||
<action name="Shade"/>
|
||||
<action name="FocusToBottom"/>
|
||||
<action name="Unfocus"/>
|
||||
<action name="Lower"/>
|
||||
</then>
|
||||
</action>
|
||||
</mousebind>
|
||||
<mousebind button="Down" action="Click">
|
||||
<action name="if">
|
||||
<shaded>yes</shaded>
|
||||
<then>
|
||||
<action name="Unshade"/>
|
||||
<action name="Raise"/>
|
||||
</then>
|
||||
</action>
|
||||
</mousebind>
|
||||
</context>
|
||||
|
||||
<context name="Titlebar Top Right Bottom Left TLCorner TRCorner BRCorner BLCorner">
|
||||
<mousebind button="Left" action="Press">
|
||||
<action name="Focus"/>
|
||||
<action name="Raise"/>
|
||||
<action name="Unshade"/>
|
||||
</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="Top">
|
||||
<mousebind button="Left" action="Drag">
|
||||
<action name="Resize"><edge>top</edge></action>
|
||||
</mousebind>
|
||||
</context>
|
||||
|
||||
<context name="Left">
|
||||
<mousebind button="Left" action="Drag">
|
||||
<action name="Resize"><edge>left</edge></action>
|
||||
</mousebind>
|
||||
</context>
|
||||
|
||||
<context name="Right">
|
||||
<mousebind button="Left" action="Drag">
|
||||
<action name="Resize"><edge>right</edge></action>
|
||||
</mousebind>
|
||||
</context>
|
||||
|
||||
<context name="Bottom">
|
||||
<mousebind button="Left" action="Drag">
|
||||
<action name="Resize"><edge>bottom</edge></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="TRCorner BRCorner TLCorner BLCorner">
|
||||
<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="ToggleMaximize"/>
|
||||
</mousebind>
|
||||
<mousebind button="Middle" action="Click">
|
||||
<action name="ToggleMaximize"><direction>vertical</direction></action>
|
||||
</mousebind>
|
||||
<mousebind button="Right" action="Click">
|
||||
<action name="ToggleMaximize"><direction>horizontal</direction></action>
|
||||
</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="GoToDesktop"><to>previous</to></action>
|
||||
</mousebind>
|
||||
<mousebind button="Down" action="Click">
|
||||
<action name="GoToDesktop"><to>next</to></action>
|
||||
</mousebind>
|
||||
|
||||
<mousebind button="A-Up" action="Click">
|
||||
<action name="GoToDesktop"><to>previous</to></action>
|
||||
</mousebind>
|
||||
<mousebind button="A-Down" action="Click">
|
||||
<action name="GoToDesktop"><to>next</to></action>
|
||||
</mousebind>
|
||||
<mousebind button="C-A-Up" action="Click">
|
||||
<action name="GoToDesktop"><to>previous</to></action>
|
||||
</mousebind>
|
||||
<mousebind button="C-A-Down" action="Click">
|
||||
<action name="GoToDesktop"><to>next</to></action>
|
||||
</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="GoToDesktop"><to>previous</to></action>
|
||||
</mousebind>
|
||||
<mousebind button="Down" action="Click">
|
||||
<action name="GoToDesktop"><to>next</to></action>
|
||||
</mousebind>
|
||||
<mousebind button="A-Up" action="Click">
|
||||
<action name="GoToDesktop"><to>previous</to></action>
|
||||
</mousebind>
|
||||
<mousebind button="A-Down" action="Click">
|
||||
<action name="GoToDesktop"><to>next</to></action>
|
||||
</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>
|
||||
<!-- time to delay before showing a submenu after hovering over the parent
|
||||
entry.
|
||||
if this is a negative value, then the delay is infinite and the
|
||||
submenu will not be shown until it is clicked on -->
|
||||
<submenuHideDelay>400</submenuHideDelay>
|
||||
<!-- time to delay before hiding a submenu when selecting another
|
||||
entry in parent menu
|
||||
if this is a negative value, then the delay is infinite and the
|
||||
submenu will not be hidden until a different submenu is opened -->
|
||||
<showIcons>yes</showIcons>
|
||||
<!-- 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 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
|
||||
-->
|
||||
</applications>
|
||||
|
||||
</openbox_config>
|
|
@ -0,0 +1,565 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?> <!-- -*- nxml -*- -->
|
||||
|
||||
<!-- XML Schema for the Openbox window manager configuration file -->
|
||||
|
||||
<!DOCTYPE schema PUBLIC "-//W3C//DTD XMLSCHEMA 200102//EN"
|
||||
"http://www.w3.org/2001/XMLSchema.dtd" [
|
||||
<!ATTLIST schema xmlns:ob CDATA #IMPLIED>
|
||||
<!ENTITY % p "xsd:">
|
||||
<!ENTITY % s ":xsd">
|
||||
]>
|
||||
|
||||
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
targetNamespace="http://openbox.org/4.0/rc"
|
||||
xmlns:ob="http://openbox.org/4.0/rc"
|
||||
elementFormDefault="qualified"
|
||||
attributeFormDefault="unqualified">
|
||||
<!--
|
||||
root node
|
||||
-->
|
||||
<xsd:element name="openbox_config">
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>all these elements are expected in a openbox config file</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
<xsd:complexType>
|
||||
<xsd:all>
|
||||
<xsd:element name="resistance" type="ob:resistance"/>
|
||||
<xsd:element name="focus" type="ob:focus"/>
|
||||
<xsd:element name="placement" type="ob:placement"/>
|
||||
<xsd:element name="theme" type="ob:theme"/>
|
||||
<xsd:element name="desktops" type="ob:desktops"/>
|
||||
<xsd:element name="resize" type="ob:resize"/>
|
||||
<xsd:element minOccurs="0" name="margins" type="ob:margins"/>
|
||||
<xsd:element name="dock" type="ob:dock"/>
|
||||
<xsd:element name="keyboard" type="ob:keyboard"/>
|
||||
<xsd:element name="mouse" type="ob:mouse"/>
|
||||
<xsd:element name="menu" type="ob:menu"/>
|
||||
<xsd:element name="applications" type="ob:applications"/>
|
||||
</xsd:all>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<!--
|
||||
complex types
|
||||
-->
|
||||
<xsd:complexType name="resistance">
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>defines behaviour of windows when close to each other or the screen edge</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
<xsd:all>
|
||||
<xsd:element minOccurs="0" name="strength" type="xsd:integer"/>
|
||||
<xsd:element minOccurs="0" name="screen_edge_strength" type="xsd:integer"/>
|
||||
</xsd:all>
|
||||
</xsd:complexType>
|
||||
<xsd:complexType name="focus">
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>defines aspects of window focus</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
<xsd:all>
|
||||
<xsd:element minOccurs="0" name="focusNew" type="ob:bool"/>
|
||||
<xsd:element minOccurs="0" name="focusLast" type="ob:bool"/>
|
||||
<xsd:element minOccurs="0" name="followMouse" type="ob:bool"/>
|
||||
<xsd:element minOccurs="0" name="underMouse" type="ob:bool"/>
|
||||
<xsd:element minOccurs="0" name="focusDelay" type="xsd:integer"/>
|
||||
<xsd:element minOccurs="0" name="raiseOnFocus" type="ob:bool"/>
|
||||
<xsd:element minOccurs="0" name="unfocusOnLeave" type="ob:bool"/>
|
||||
</xsd:all>
|
||||
</xsd:complexType>
|
||||
<xsd:complexType name="placement">
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>defines how new windows are placed</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
<xsd:sequence>
|
||||
<xsd:element minOccurs="0" name="policy" type="ob:placementpolicy"/>
|
||||
<xsd:element minOccurs="0" name="center" type="ob:bool"/>
|
||||
<xsd:element minOccurs="0" name="monitor" type="ob:placementmonitor"/>
|
||||
<xsd:element minOccurs="0" name="primaryMonitor" type="ob:primarymonitor"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
<xsd:complexType name="margins">
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>defines desktop margins</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
<xsd:all>
|
||||
<xsd:element minOccurs="0" name="top" type="xsd:integer"/>
|
||||
<xsd:element minOccurs="0" name="left" type="xsd:integer"/>
|
||||
<xsd:element minOccurs="0" name="right" type="xsd:integer"/>
|
||||
<xsd:element minOccurs="0" name="bottom" type="xsd:integer"/>
|
||||
</xsd:all>
|
||||
</xsd:complexType>
|
||||
<xsd:complexType name="theme">
|
||||
<xsd:sequence>
|
||||
<xsd:element minOccurs="0" name="name" type="xsd:string"/>
|
||||
<xsd:element minOccurs="0" name="titleLayout" type="xsd:string"/>
|
||||
<xsd:element minOccurs="0" name="keepBorder" type="ob:bool"/>
|
||||
<xsd:element minOccurs="0" name="animateIconify" type="ob:bool"/>
|
||||
<xsd:element minOccurs="0" maxOccurs="unbounded" name="font" type="ob:font"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
<xsd:complexType name="font">
|
||||
<xsd:all>
|
||||
<xsd:element minOccurs="0" name="name" type="xsd:string"/>
|
||||
<xsd:element minOccurs="0" name="size" type="xsd:integer"/>
|
||||
<xsd:element minOccurs="0" name="weight" type="ob:fontweight"/>
|
||||
<xsd:element minOccurs="0" name="slant" type="ob:fontslant"/>
|
||||
</xsd:all>
|
||||
<xsd:attribute name="place" type="ob:fontplace" use="required"/>
|
||||
</xsd:complexType>
|
||||
<xsd:complexType name="desktops">
|
||||
<xsd:annotation>
|
||||
<xsd:documentation>defines the number and names of desktops</xsd:documentation>
|
||||
</xsd:annotation>
|
||||
<xsd:all>
|
||||
<xsd:element minOccurs="0" name="number" type="xsd:integer"/>
|
||||
<xsd:element minOccurs="0" name="firstdesk" type="xsd:integer"/>
|
||||
<xsd:element minOccurs="0" name="names">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element minOccurs="0" maxOccurs="unbounded" name="name" type="xsd:string"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element minOccurs="0" name="popupTime" type="xsd:integer"/>
|
||||
</xsd:all>
|
||||
</xsd:complexType>
|
||||
<xsd:complexType name="resize">
|
||||
<xsd:all>
|
||||
<xsd:element minOccurs="0" name="drawContents" type="ob:bool"/>
|
||||
<xsd:element minOccurs="0" name="popupShow" type="ob:popupshow"/>
|
||||
<xsd:element minOccurs="0" name="popupPosition" type="ob:popupposition"/>
|
||||
<xsd:element minOccurs="0" name="popupFixedPosition" type="ob:popupfixedposition"/>
|
||||
</xsd:all>
|
||||
</xsd:complexType>
|
||||
<xsd:complexType name="popupfixedposition">
|
||||
<xsd:all>
|
||||
<xsd:element minOccurs="0" name="x" type="ob:center_or_int"/>
|
||||
<xsd:element minOccurs="0" name="y" type="ob:center_or_int"/>
|
||||
</xsd:all>
|
||||
</xsd:complexType>
|
||||
<xsd:complexType name="dock">
|
||||
<xsd:all>
|
||||
<xsd:element minOccurs="0" name="position" type="ob:dock_position"/>
|
||||
<xsd:element minOccurs="0" name="floatingX" type="xsd:integer"/>
|
||||
<xsd:element minOccurs="0" name="floatingY" type="xsd:integer"/>
|
||||
<xsd:element minOccurs="0" name="noStrut" type="ob:bool"/>
|
||||
<xsd:element minOccurs="0" name="stacking" type="ob:layer"/>
|
||||
<xsd:element minOccurs="0" name="direction" type="ob:direction"/>
|
||||
<xsd:element minOccurs="0" name="autoHide" type="ob:bool"/>
|
||||
<xsd:element minOccurs="0" name="hideDelay" type="xsd:integer"/>
|
||||
<xsd:element minOccurs="0" name="showDelay" type="xsd:integer"/>
|
||||
<xsd:element minOccurs="0" name="moveButton" type="ob:button"/>
|
||||
</xsd:all>
|
||||
</xsd:complexType>
|
||||
<xsd:complexType name="action">
|
||||
<xsd:all>
|
||||
<xsd:element minOccurs="0" name="execute" type="xsd:string"/>
|
||||
<xsd:element minOccurs="0" name="startupnotify" type="ob:notify"/>
|
||||
<xsd:element minOccurs="0" name="command" type="xsd:string"/>
|
||||
<xsd:element minOccurs="0" name="allDesktops" type="ob:bool"/>
|
||||
<xsd:element minOccurs="0" name="menu" type="xsd:string"/>
|
||||
<xsd:element minOccurs="0" name="delta" type="xsd:integer"/>
|
||||
<xsd:element minOccurs="0" name="x" type="xsd:integer"/>
|
||||
<xsd:element minOccurs="0" name="y" type="xsd:integer"/>
|
||||
<xsd:element minOccurs="0" name="left" type="xsd:integer"/>
|
||||
<xsd:element minOccurs="0" name="right" type="xsd:integer"/>
|
||||
<xsd:element minOccurs="0" name="up" type="xsd:integer"/>
|
||||
<xsd:element minOccurs="0" name="down" type="xsd:integer"/>
|
||||
<xsd:element minOccurs="0" name="desktop">
|
||||
<xsd:simpleType>
|
||||
<xsd:union memberTypes="xsd:integer ob:bool"/>
|
||||
</xsd:simpleType>
|
||||
</xsd:element>
|
||||
<xsd:element minOccurs="0" name="edge" type="xsd:string"/>
|
||||
<xsd:element minOccurs="0" name="wrap" type="ob:bool"/>
|
||||
<xsd:element minOccurs="0" name="follow" type="ob:bool"/>
|
||||
<xsd:element minOccurs="0" name="dialog" type="ob:dialogtype"/>
|
||||
<xsd:element minOccurs="0" name="panels" type="ob:bool"/>
|
||||
<xsd:element minOccurs="0" name="here" type="ob:bool"/>
|
||||
<xsd:element minOccurs="0" name="linear" type="ob:bool"/>
|
||||
<xsd:element minOccurs="0" name="group" type="ob:bool"/>
|
||||
<xsd:element minOccurs="0" name="strict" type="ob:bool"/>
|
||||
</xsd:all>
|
||||
<xsd:attribute name="name" type="ob:actionname" use="required"/>
|
||||
</xsd:complexType>
|
||||
<xsd:complexType name="keybind">
|
||||
<xsd:choice>
|
||||
<xsd:element maxOccurs="unbounded" name="action" type="ob:action"/>
|
||||
<xsd:element maxOccurs="unbounded" name="keybind" type="ob:keybind"/>
|
||||
</xsd:choice>
|
||||
<xsd:attribute name="chroot" type="ob:bool"/>
|
||||
<xsd:attribute name="key" type="ob:keyname" use="required"/>
|
||||
</xsd:complexType>
|
||||
<xsd:complexType name="keyboard">
|
||||
<xsd:sequence>
|
||||
<xsd:element minOccurs="0" name="chainQuitKey" type="ob:keyname"/>
|
||||
<xsd:element maxOccurs="unbounded" name="keybind" type="ob:keybind"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
<xsd:complexType name="mousebind">
|
||||
<xsd:sequence>
|
||||
<xsd:element maxOccurs="unbounded" name="action" type="ob:action"/>
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="action" type="ob:mouseaction" use="required"/>
|
||||
<xsd:attribute name="button" type="ob:button" use="required"/>
|
||||
</xsd:complexType>
|
||||
<xsd:complexType name="context">
|
||||
<xsd:sequence>
|
||||
<xsd:element maxOccurs="unbounded" name="mousebind" type="ob:mousebind"/>
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="ob:contextname" use="required"/>
|
||||
</xsd:complexType>
|
||||
<xsd:complexType name="mouse">
|
||||
<xsd:sequence>
|
||||
<xsd:element minOccurs="0" name="dragThreshold" type="xsd:integer"/>
|
||||
<xsd:element minOccurs="0" name="doubleClickTime" type="xsd:integer"/>
|
||||
<xsd:element minOccurs="0" name="screenEdgeWarpTime" type="xsd:integer"/>
|
||||
<xsd:element minOccurs="0" name="screenEdgeWarpMouse" type="ob:bool"/>
|
||||
<xsd:element maxOccurs="unbounded" name="context" type="ob:context"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
<xsd:complexType name="menu">
|
||||
<xsd:sequence>
|
||||
<xsd:element maxOccurs="unbounded" name="file" type="xsd:string"/>
|
||||
<xsd:element minOccurs="0" name="hideDelay" type="xsd:integer"/>
|
||||
<xsd:element minOccurs="0" name="middle" type="ob:bool"/>
|
||||
<xsd:element minOccurs="0" name="submenuShowDelay" type="xsd:integer"/>
|
||||
<xsd:element minOccurs="0" name="showIcons" type="ob:bool"/>
|
||||
<xsd:element minOccurs="0" name="manageDesktops" type="ob:bool"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
<xsd:complexType name="window_position">
|
||||
<xsd:all>
|
||||
<xsd:element name="x" type="ob:center_or_int"/>
|
||||
<xsd:element name="y" type="ob:center_or_int"/>
|
||||
<xsd:element minOccurs="0" name="monitor" type="ob:mouse_or_int"/>
|
||||
<xsd:element minOccurs="0" name="head" type="xsd:string"/>
|
||||
</xsd:all>
|
||||
<xsd:attribute name="force" type="ob:bool"/>
|
||||
</xsd:complexType>
|
||||
<xsd:complexType name="window_size">
|
||||
<xsd:all>
|
||||
<xsd:element name="width" type="ob:size_value"/>
|
||||
<xsd:element name="height" type="ob:size_value"/>
|
||||
</xsd:all>
|
||||
</xsd:complexType>
|
||||
<xsd:complexType name="application">
|
||||
<xsd:all>
|
||||
<xsd:element minOccurs="0" name="decor" type="ob:bool"/>
|
||||
<xsd:element minOccurs="0" name="shade" type="ob:bool"/>
|
||||
<xsd:element minOccurs="0" name="position" type="ob:window_position"/>
|
||||
<xsd:element minOccurs="0" name="size" type="ob:window_size"/>
|
||||
<xsd:element minOccurs="0" name="focus" type="xsd:string"/>
|
||||
<xsd:element minOccurs="0" name="desktop" type="xsd:integer"/>
|
||||
<xsd:element minOccurs="0" name="layer" type="ob:layer"/>
|
||||
<xsd:element minOccurs="0" name="iconic" type="ob:bool"/>
|
||||
<xsd:element minOccurs="0" name="skip_pager" type="ob:bool"/>
|
||||
<xsd:element minOccurs="0" name="skip_taskbar" type="ob:bool"/>
|
||||
<xsd:element minOccurs="0" name="fullscreen" type="ob:bool"/>
|
||||
<xsd:element minOccurs="0" name="maximized" type="ob:maximization"/>
|
||||
</xsd:all>
|
||||
<!-- at least one of these must be present -->
|
||||
<xsd:attribute name="role" type="xsd:string"/>
|
||||
<xsd:attribute name="title" type="xsd:string"/>
|
||||
<xsd:attribute name="type" type="ob:clienttype"/>
|
||||
<xsd:attribute name="name" type="xsd:string"/>
|
||||
<xsd:attribute name="class" type="xsd:string"/>
|
||||
</xsd:complexType>
|
||||
<xsd:complexType name="applications">
|
||||
<xsd:sequence>
|
||||
<xsd:element minOccurs="0" maxOccurs="unbounded" name="application" type="ob:application"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
<xsd:complexType name="notify">
|
||||
<xsd:all>
|
||||
<xsd:element minOccurs="0" name="enabled" type="ob:bool"/>
|
||||
<xsd:element minOccurs="0" name="name" type="xsd:string"/>
|
||||
<xsd:element minOccurs="0" name="icon" type="xsd:string"/>
|
||||
</xsd:all>
|
||||
</xsd:complexType>
|
||||
<!--
|
||||
simple types / restrictions
|
||||
-->
|
||||
<xsd:simpleType name="actionname">
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:pattern value="[Ii][Ff]"/>
|
||||
<xsd:pattern value="[Aa][Cc][Tt][Ii][Vv][Aa][Tt][Ee]"/>
|
||||
<xsd:pattern value="[Bb][Rr][Ee][Aa][Kk][Cc][Hh][Rr][Oo][Oo][Tt]"/>
|
||||
<xsd:pattern value="[Cc][Ll][Oo][Ss][Ee]"/>
|
||||
<xsd:pattern value="[Dd][Ee][Ss][Kk][Tt][Oo][Pp]"/>
|
||||
<xsd:pattern value="[Dd][Ee][Ss][Kk][Tt][Oo][Pp][Dd][Oo][Ww][Nn]"/>
|
||||
<xsd:pattern value="[Dd][Ee][Ss][Kk][Tt][Oo][Pp][Ll][Aa][Ss][Tt]"/>
|
||||
<xsd:pattern value="[Dd][Ee][Ss][Kk][Tt][Oo][Pp][Ll][Ee][Ff][Tt]"/>
|
||||
<xsd:pattern value="[Dd][Ee][Ss][Kk][Tt][Oo][Pp][Nn][Ee][Xx][Tt]"/>
|
||||
<xsd:pattern value="[Dd][Ee][Ss][Kk][Tt][Oo][Pp][Pp][Rr][Ee][Vv][Ii][Oo][Uu][Ss]"/>
|
||||
<xsd:pattern value="[Dd][Ee][Ss][Kk][Tt][Oo][Pp][Rr][Ii][Gg][Hh][Tt]"/>
|
||||
<xsd:pattern value="[Dd][Ee][Ss][Kk][Tt][Oo][Pp][Uu][Pp]"/>
|
||||
<xsd:pattern value="[Dd][Ii][Rr][Ee][Cc][Tt][Ii][Oo][Nn][Aa][Ll][Ff][Oo][Cc][Uu][Ss][Ee][Aa][Ss][Tt]"/>
|
||||
<xsd:pattern value="[Dd][Ii][Rr][Ee][Cc][Tt][Ii][Oo][Nn][Aa][Ll][Ff][Oo][Cc][Uu][Ss][Nn][Oo][Rr][Tt][Hh]"/>
|
||||
<xsd:pattern value="[Dd][Ii][Rr][Ee][Cc][Tt][Ii][Oo][Nn][Aa][Ll][Ff][Oo][Cc][Uu][Ss][Nn][Oo][Rr][Tt][Hh][Ee][Aa][Ss][Tt]"/>
|
||||
<xsd:pattern value="[Dd][Ii][Rr][Ee][Cc][Tt][Ii][Oo][Nn][Aa][Ll][Ff][Oo][Cc][Uu][Ss][Nn][Oo][Rr][Tt][Hh][Ww][Ee][Ss][Tt]"/>
|
||||
<xsd:pattern value="[Dd][Ii][Rr][Ee][Cc][Tt][Ii][Oo][Nn][Aa][Ll][Ff][Oo][Cc][Uu][Ss][Ss][Oo][Uu][Tt][Hh]"/>
|
||||
<xsd:pattern value="[Dd][Ii][Rr][Ee][Cc][Tt][Ii][Oo][Nn][Aa][Ll][Ff][Oo][Cc][Uu][Ss][Ss][Oo][Uu][Tt][Hh][Ee][Aa][Ss][Tt]"/>
|
||||
<xsd:pattern value="[Dd][Ii][Rr][Ee][Cc][Tt][Ii][Oo][Nn][Aa][Ll][Ff][Oo][Cc][Uu][Ss][Ss][Oo][Uu][Tt][Hh][Ww][Ee][Ss][Tt]"/>
|
||||
<xsd:pattern value="[Dd][Ii][Rr][Ee][Cc][Tt][Ii][Oo][Nn][Aa][Ll][Ff][Oo][Cc][Uu][Ss][Ww][Ee][Ss][Tt]"/>
|
||||
<xsd:pattern value="[Ee][Xx][Ee][Cc][Uu][Tt][Ee]"/>
|
||||
<xsd:pattern value="[Ee][Xx][Ii][Tt]"/>
|
||||
<xsd:pattern value="[Ss][Ee][Ss][Ss][Ii][Oo][Nn][Ll][Oo][Gg][Oo][Uu][Tt]"/>
|
||||
<xsd:pattern value="[Ff][Oo][Cc][Uu][Ss]"/>
|
||||
<xsd:pattern value="[Ff][Oo][Cc][Uu][Ss][Tt][Oo][Bb][Oo][Tt][Tt][Oo][Mm]"/>
|
||||
<xsd:pattern value="[Gg][Rr][Oo][Ww][Tt][Oo][Ee][Dd][Gg][Ee][Ee][Aa][Ss][Tt]"/>
|
||||
<xsd:pattern value="[Gg][Rr][Oo][Ww][Tt][Oo][Ee][Dd][Gg][Ee][Nn][Oo][Rr][Tt][Hh]"/>
|
||||
<xsd:pattern value="[Gg][Rr][Oo][Ww][Tt][Oo][Ee][Dd][Gg][Ee][Ss][Oo][Uu][Tt][Hh]"/>
|
||||
<xsd:pattern value="[Gg][Rr][Oo][Ww][Tt][Oo][Ee][Dd][Gg][Ee][Ww][Ee][Ss][Tt]"/>
|
||||
<xsd:pattern value="[Ii][Cc][Oo][Nn][Ii][Ff][Yy]"/>
|
||||
<xsd:pattern value="[Kk][Ii][Ll][Ll]"/>
|
||||
<xsd:pattern value="[Ll][Oo][Ww][Ee][Rr]"/>
|
||||
<xsd:pattern value="[Mm][Aa][Xx][Ii][Mm][Ii][Zz][Ee][Ff][Uu][Ll][Ll]"/>
|
||||
<xsd:pattern value="[Mm][Aa][Xx][Ii][Mm][Ii][Zz][Ee][Hh][Oo][Rr][Zz]"/>
|
||||
<xsd:pattern value="[Mm][Aa][Xx][Ii][Mm][Ii][Zz][Ee][Vv][Ee][Rr][Tt]"/>
|
||||
<xsd:pattern value="[Mm][Oo][Vv][Ee]"/>
|
||||
<xsd:pattern value="[Mm][Oo][Vv][Ee][Rr][Ee][Ll][Aa][Tt][Ii][Vv][Ee]"/>
|
||||
<xsd:pattern value="[Mm][Oo][Vv][Ee][Rr][Ee][Ll][Aa][Tt][Ii][Vv][Ee][Hh][Oo][Rr][Zz]"/>
|
||||
<xsd:pattern value="[Mm][Oo][Vv][Ee][Rr][Ee][Ll][Aa][Tt][Ii][Vv][Ee][Vv][Ee][Rr][Tt]"/>
|
||||
<xsd:pattern value="[Mm][Oo][Vv][Ee][Tt][Oo][Cc][Ee][Nn][Tt][Ee][Rr]"/>
|
||||
<xsd:pattern value="[Mm][Oo][Vv][Ee][Ff][Rr][Oo][Mm][Ee][Dd][Gg][Ee][Ee][Aa][Ss][Tt]"/>
|
||||
<xsd:pattern value="[Mm][Oo][Vv][Ee][Ff][Rr][Oo][Mm][Ee][Dd][Gg][Ee][Nn][Oo][Rr][Tt][Hh]"/>
|
||||
<xsd:pattern value="[Mm][Oo][Vv][Ee][Ff][Rr][Oo][Mm][Ee][Dd][Gg][Ee][Ss][Oo][Uu][Tt][Hh]"/>
|
||||
<xsd:pattern value="[Mm][Oo][Vv][Ee][Ff][Rr][Oo][Mm][Ee][Dd][Gg][Ee][Ww][Ee][Ss][Tt]"/>
|
||||
<xsd:pattern value="[Mm][Oo][Vv][Ee][Tt][Oo][Ee][Dd][Gg][Ee][Ee][Aa][Ss][Tt]"/>
|
||||
<xsd:pattern value="[Mm][Oo][Vv][Ee][Tt][Oo][Ee][Dd][Gg][Ee][Nn][Oo][Rr][Tt][Hh]"/>
|
||||
<xsd:pattern value="[Mm][Oo][Vv][Ee][Tt][Oo][Ee][Dd][Gg][Ee][Ss][Oo][Uu][Tt][Hh]"/>
|
||||
<xsd:pattern value="[Mm][Oo][Vv][Ee][Tt][Oo][Ee][Dd][Gg][Ee][Ww][Ee][Ss][Tt]"/>
|
||||
<xsd:pattern value="[Nn][Ee][Xx][Tt][Ww][Ii][Nn][Dd][Oo][Ww]"/>
|
||||
<xsd:pattern value="[Pp][Rr][Ee][Vv][Ii][Oo][Uu][Ss][Ww][Ii][Nn][Dd][Oo][Ww]"/>
|
||||
<xsd:pattern value="[Rr][Aa][Ii][Ss][Ee]"/>
|
||||
<xsd:pattern value="[Rr][Aa][Ii][Ss][Ee][Ll][Oo][Ww][Ee][Rr]"/>
|
||||
<xsd:pattern value="[Rr][Ee][Cc][Oo][Nn][Ff][Ii][Gg][Uu][Rr][Ee]"/>
|
||||
<xsd:pattern value="[Rr][Ee][Ss][Ii][Zz][Ee]"/>
|
||||
<xsd:pattern value="[Rr][Ee][Ss][Ii][Zz][Ee][Rr][Ee][Ll][Aa][Tt][Ii][Vv][Ee]"/>
|
||||
<xsd:pattern value="[Rr][Ee][Ss][Ii][Zz][Ee][Rr][Ee][Ll][Aa][Tt][Ii][Vv][Ee][Hh][Oo][Rr][Zz]"/>
|
||||
<xsd:pattern value="[Rr][Ee][Ss][Ii][Zz][Ee][Rr][Ee][Ll][Aa][Tt][Ii][Vv][Ee][Vv][Ee][Rr][Tt]"/>
|
||||
<xsd:pattern value="[Rr][Ee][Ss][Tt][Aa][Rr][Tt]"/>
|
||||
<xsd:pattern value="[Ss][Ee][Nn][Dd][Tt][Oo][Bb][Oo][Tt][Tt][Oo][Mm][Ll][Aa][Yy][Ee][Rr]"/>
|
||||
<xsd:pattern value="[Ss][Ee][Nn][Dd][Tt][Oo][Dd][Ee][Ss][Kk][Tt][Oo][Pp]"/>
|
||||
<xsd:pattern value="[Ss][Ee][Nn][Dd][Tt][Oo][Dd][Ee][Ss][Kk][Tt][Oo][Pp][Dd][Oo][Ww][Nn]"/>
|
||||
<xsd:pattern value="[Ss][Ee][Nn][Dd][Tt][Oo][Dd][Ee][Ss][Kk][Tt][Oo][Pp][Ll][Ee][Ff][Tt]"/>
|
||||
<xsd:pattern value="[Ss][Ee][Nn][Dd][Tt][Oo][Dd][Ee][Ss][Kk][Tt][Oo][Pp][Nn][Ee][Xx][Tt]"/>
|
||||
<xsd:pattern value="[Ss][Ee][Nn][Dd][Tt][Oo][Dd][Ee][Ss][Kk][Tt][Oo][Pp][Pp][Rr][Ee][Vv][Ii][Oo][Uu][Ss]"/>
|
||||
<xsd:pattern value="[Ss][Ee][Nn][Dd][Tt][Oo][Dd][Ee][Ss][Kk][Tt][Oo][Pp][Rr][Ii][Gg][Hh][Tt]"/>
|
||||
<xsd:pattern value="[Ss][Ee][Nn][Dd][Tt][Oo][Dd][Ee][Ss][Kk][Tt][Oo][Pp][Uu][Pp]"/>
|
||||
<xsd:pattern value="[Ss][Ee][Nn][Dd][Tt][Oo][Nn][Oo][Rr][Mm][Aa][Ll][Ll][Aa][Yy][Ee][Rr]"/>
|
||||
<xsd:pattern value="[Ss][Ee][Nn][Dd][Tt][Oo][Tt][Oo][Pp][Ll][Aa][Yy][Ee][Rr]"/>
|
||||
<xsd:pattern value="[Ss][Hh][Aa][Dd][Ee]"/>
|
||||
<xsd:pattern value="[Ss][Hh][Aa][Dd][Ee][Ll][Oo][Ww][Ee][Rr]"/>
|
||||
<xsd:pattern value="[Ss][Hh][Oo][Ww][Dd][Ee][Ss][Kk][Tt][Oo][Pp]"/>
|
||||
<xsd:pattern value="[Ss][Hh][Oo][Ww][Mm][Ee][Nn][Uu]"/>
|
||||
<xsd:pattern value="[Tt][Oo][Gg][Gg][Ll][Ee][Aa][Ll][Ww][Aa][Yy][Ss][Oo][Nn][Bb][Oo][Tt][Tt][Oo][Mm]"/>
|
||||
<xsd:pattern value="[Tt][Oo][Gg][Gg][Ll][Ee][Aa][Ll][Ww][Aa][Yy][Ss][Oo][Nn][Tt][Oo][Pp]"/>
|
||||
<xsd:pattern value="[Tt][Oo][Gg][Gg][Ll][Ee][Dd][Ee][Cc][Oo][Rr][Aa][Tt][Ii][Oo][Nn][Ss]"/>
|
||||
<xsd:pattern value="[Tt][Oo][Gg][Gg][Ll][Ee][Dd][Oo][Cc][Kk][Aa][Uu][Tt][Oo][Hh][Ii][Dd][Ee]"/>
|
||||
<xsd:pattern value="[Tt][Oo][Gg][Gg][Ll][Ee][Ff][Uu][Ll][Ll][Ss][Cc][Rr][Ee][Ee][Nn]"/>
|
||||
<xsd:pattern value="[Tt][Oo][Gg][Gg][Ll][Ee][Mm][Aa][Xx][Ii][Mm][Ii][Zz][Ee][Ff][Uu][Ll][Ll]"/>
|
||||
<xsd:pattern value="[Tt][Oo][Gg][Gg][Ll][Ee][Mm][Aa][Xx][Ii][Mm][Ii][Zz][Ee][Hh][Oo][Rr][Zz]"/>
|
||||
<xsd:pattern value="[Tt][Oo][Gg][Gg][Ll][Ee][Mm][Aa][Xx][Ii][Mm][Ii][Zz][Ee][Vv][Ee][Rr][Tt]"/>
|
||||
<xsd:pattern value="[Tt][Oo][Gg][Gg][Ll][Ee][Oo][Mm][Nn][Ii][Pp][Rr][Ee][Ss][Ee][Nn][Tt]"/>
|
||||
<xsd:pattern value="[Tt][Oo][Gg][Gg][Ll][Ee][Ss][Hh][Aa][Dd][Ee]"/>
|
||||
<xsd:pattern value="[Tt][Oo][Gg][Gg][Ll][Ee][Ss][Hh][Oo][Ww][Dd][Ee][Ss][Kk][Tt][Oo][Pp]"/>
|
||||
<xsd:pattern value="[Uu][Nn][Ff][Oo][Cc][Uu][Ss]"/>
|
||||
<xsd:pattern value="[Uu][Nn][Mm][Aa][Xx][Ii][Mm][Ii][Zz][Ee][Ff][Uu][Ll][Ll]"/>
|
||||
<xsd:pattern value="[Uu][Nn][Mm][Aa][Xx][Ii][Mm][Ii][Zz][Ee][Hh][Oo][Rr][Zz]"/>
|
||||
<xsd:pattern value="[Uu][Nn][Mm][Aa][Xx][Ii][Mm][Ii][Zz][Ee][Vv][Ee][Rr][Tt]"/>
|
||||
<xsd:pattern value="[Uu][Nn][Ss][Hh][Aa][Dd][Ee]"/>
|
||||
<xsd:pattern value="[Uu][Nn][Ss][Hh][Aa][Dd][Ee][Rr][Aa][Ii][Ss][Ee]"/>
|
||||
<xsd:pattern value="[Uu][Nn][Ss][Hh][Oo][Ww][Dd][Ee][Ss][Kk][Tt][Oo][Pp]"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
<xsd:simpleType name="clienttype">
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:enumeration value="desktop"/>
|
||||
<xsd:enumeration value="dock"/>
|
||||
<xsd:enumeration value="toolbar"/>
|
||||
<xsd:enumeration value="menu"/>
|
||||
<xsd:enumeration value="splash"/>
|
||||
<xsd:enumeration value="utility"/>
|
||||
<xsd:enumeration value="dialog"/>
|
||||
<xsd:enumeration value="normal"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
<xsd:simpleType name="bool">
|
||||
<!-- this is copied to maximization. Keep that in sync. -->
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:enumeration value="yes"/>
|
||||
<xsd:enumeration value="no"/>
|
||||
<xsd:enumeration value="true"/>
|
||||
<xsd:enumeration value="false"/>
|
||||
<xsd:enumeration value="on"/>
|
||||
<xsd:enumeration value="off"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
<xsd:simpleType name="fontplace">
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:enumeration value="ActiveWindow"/>
|
||||
<xsd:enumeration value="InactiveWindow"/>
|
||||
<xsd:enumeration value="MenuHeader"/>
|
||||
<xsd:enumeration value="MenuItem"/>
|
||||
<xsd:enumeration value="ActiveOnScreenDisplay"/>
|
||||
<xsd:enumeration value="InactiveOnScreenDisplay"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
<xsd:simpleType name="fontweight">
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:enumeration value="normal"/>
|
||||
<xsd:enumeration value="bold"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
<xsd:simpleType name="fontslant">
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:enumeration value="normal"/>
|
||||
<xsd:enumeration value="italic"/>
|
||||
<xsd:enumeration value="opaque"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
<xsd:simpleType name="button">
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:pattern value="(([ACMSW]|Mod[1-5])-){,5}(Left|Middle|Right|Up|Down|Button[0-9]+)"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
<xsd:simpleType name="center_or_int">
|
||||
<xsd:restriction base="xsd:string">
|
||||
<!-- ob: atoi($_) unless $_ eq 'center'; -->
|
||||
<!-- I think the regexp DTRT WRT atoi. -->
|
||||
<xsd:pattern value="default|center|-?(0|[1-9][0-9]*)(|%|/[1-9][0-9]*)"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
<xsd:simpleType name="size_value">
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:pattern value="default|([1-9][0-9]*)(|%|/[1-9][0-9]*)"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
<xsd:simpleType name="mouse_or_int">
|
||||
<xsd:restriction base="xsd:string">
|
||||
<!-- ob: atoi($_) unless $_ eq 'center'; -->
|
||||
<!-- I think the regexp DTRT WRT atoi. -->
|
||||
<xsd:pattern value="mouse|0|[1-9][0-9]*"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
<xsd:simpleType name="contextname">
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:enumeration value="Desktop"/>
|
||||
<xsd:enumeration value="Root"/>
|
||||
<xsd:enumeration value="Client"/>
|
||||
<xsd:enumeration value="Titlebar"/>
|
||||
<xsd:enumeration value="Frame"/>
|
||||
<xsd:enumeration value="TLCorner"/>
|
||||
<xsd:enumeration value="TRCorner"/>
|
||||
<xsd:enumeration value="BLCorner"/>
|
||||
<xsd:enumeration value="BRCorner"/>
|
||||
<xsd:enumeration value="Top"/>
|
||||
<xsd:enumeration value="Left"/>
|
||||
<xsd:enumeration value="Right"/>
|
||||
<xsd:enumeration value="Bottom"/>
|
||||
<xsd:enumeration value="Maximize"/>
|
||||
<xsd:enumeration value="AllDesktops"/>
|
||||
<xsd:enumeration value="Shade"/>
|
||||
<xsd:enumeration value="Iconify"/>
|
||||
<xsd:enumeration value="Icon"/>
|
||||
<xsd:enumeration value="Close"/>
|
||||
<xsd:enumeration value="MoveResize"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
<xsd:simpleType name="direction">
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:enumeration value="Horizontal"/>
|
||||
<xsd:enumeration value="Vertical"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
<xsd:simpleType name="dock_position">
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:enumeration value="TopLeft"/>
|
||||
<xsd:enumeration value="Top"/>
|
||||
<xsd:enumeration value="TopRight"/>
|
||||
<xsd:enumeration value="Right"/>
|
||||
<xsd:enumeration value="BottomRight"/>
|
||||
<xsd:enumeration value="Bottom"/>
|
||||
<xsd:enumeration value="BottomLeft"/>
|
||||
<xsd:enumeration value="Left"/>
|
||||
<xsd:enumeration value="Floating"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
<xsd:simpleType name="keyname">
|
||||
<xsd:restriction base="xsd:string">
|
||||
<!-- FIXME: M, Mod2, Mod5 in addition to S, A, C -->
|
||||
<!-- how do we do all substrings and permutations? -->
|
||||
<xsd:pattern value="(([ACMSW]|Mod[1-5])-){,5}[a-zA-Z0-9]*"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
<xsd:simpleType name="layer">
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:pattern value="[Aa][Bb][Oo][Vv][Ee]"/>
|
||||
<xsd:pattern value="[Nn][Oo][Rr][Mm][Aa][Ll]"/>
|
||||
<xsd:pattern value="[Bb][Ee][Ll][Oo][Ww]"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
<xsd:simpleType name="maximization">
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:enumeration value="Horizontal"/>
|
||||
<xsd:enumeration value="Vertical"/>
|
||||
<!-- this is a copy of ob:bool. Keep it in sync. -->
|
||||
<xsd:enumeration value="yes"/>
|
||||
<xsd:enumeration value="no"/>
|
||||
<xsd:enumeration value="true"/>
|
||||
<xsd:enumeration value="false"/>
|
||||
<xsd:enumeration value="on"/>
|
||||
<xsd:enumeration value="off"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
<xsd:simpleType name="mouseaction">
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:enumeration value="Click"/>
|
||||
<xsd:enumeration value="DoubleClick"/>
|
||||
<xsd:enumeration value="Drag"/>
|
||||
<xsd:enumeration value="Press"/>
|
||||
<xsd:enumeration value="Release"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
<xsd:simpleType name="placementpolicy">
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:enumeration value="Smart"/>
|
||||
<xsd:enumeration value="UnderMouse"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
<xsd:simpleType name="placementmonitor">
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:enumeration value="Any"/>
|
||||
<xsd:enumeration value="Mouse"/>
|
||||
<xsd:enumeration value="Active"/>
|
||||
<xsd:enumeration value="Primary"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
<xsd:simpleType name="primarymonitor">
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:enumeration value="Mouse"/>
|
||||
<xsd:enumeration value="Active"/>
|
||||
<xsd:pattern value="[0-9][0-9][0-9][0-9][0-9]"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
<xsd:simpleType name="popupposition">
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:enumeration value="Top"/>
|
||||
<xsd:enumeration value="Center"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
<xsd:simpleType name="popupshow">
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:enumeration value="Always"/>
|
||||
<xsd:enumeration value="Never"/>
|
||||
<xsd:enumeration value="Nonpixel"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
<xsd:simpleType name="dialogtype">
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:enumeration value="None"/>
|
||||
<xsd:enumeration value="Icons"/>
|
||||
<xsd:enumeration value="List"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
</xsd:schema>
|
|
@ -0,0 +1,4 @@
|
|||
#define bullet_width 4
|
||||
#define bullet_height 7
|
||||
static unsigned char bullet_bits[] = {
|
||||
0x01, 0x03, 0x07, 0x0f, 0x07, 0x03, 0x01 };
|
|
@ -0,0 +1,4 @@
|
|||
#define close_width 6
|
||||
#define close_height 6
|
||||
static unsigned char close_bits[] = {
|
||||
0x33, 0x3f, 0x1e, 0x1e, 0x3f, 0x33 };
|
|
@ -0,0 +1,4 @@
|
|||
#define desk_width 6
|
||||
#define desk_height 6
|
||||
static unsigned char desk_bits[] = {
|
||||
0x33, 0x33, 0x00, 0x00, 0x33, 0x33 };
|
|
@ -0,0 +1,4 @@
|
|||
#define desk_toggle_width 6
|
||||
#define desk_toggle_height 6
|
||||
static unsigned char desk_toggle_bits[] = {
|
||||
0x00, 0x1e, 0x1a, 0x16, 0x1e, 0x00 };
|
|
@ -0,0 +1,4 @@
|
|||
#define iconify_width 6
|
||||
#define iconify_height 6
|
||||
static unsigned char iconify_bits[] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x3f, 0x3f };
|
|
@ -0,0 +1,4 @@
|
|||
#define max_width 6
|
||||
#define max_height 6
|
||||
static unsigned char max_bits[] = {
|
||||
0x3f, 0x3f, 0x21, 0x21, 0x21, 0x3f };
|
|
@ -0,0 +1,4 @@
|
|||
#define max_width 6
|
||||
#define max_height 6
|
||||
static unsigned char max_bits[] = {
|
||||
0x3e, 0x22, 0x2f, 0x29, 0x39, 0x0f };
|
|
@ -0,0 +1,4 @@
|
|||
#define iconify_width 6
|
||||
#define iconify_height 6
|
||||
static unsigned char iconify_bits[] = {
|
||||
0x3f, 0x3f, 0x00, 0x00, 0x00, 0x00 };
|
|
@ -0,0 +1,4 @@
|
|||
#define iconify_width 6
|
||||
#define iconify_height 6
|
||||
static unsigned char iconify_bits[] = {
|
||||
0x3f, 0x3f, 0x00, 0x00, 0x00, 0x00 };
|
|
@ -0,0 +1,66 @@
|
|||
#!/bin/sh
|
||||
|
||||
if test -n "$1"; then
|
||||
echo "Syntax: openbox-gnome-session"
|
||||
echo
|
||||
echo "See the openbox-gnome-session(1) manpage for help."
|
||||
exit
|
||||
fi
|
||||
|
||||
# Clean up after GDM
|
||||
xprop -root -remove _NET_NUMBER_OF_DESKTOPS \
|
||||
-remove _NET_DESKTOP_NAMES \
|
||||
-remove _NET_CURRENT_DESKTOP 2> /dev/null
|
||||
|
||||
VER=$(gnome-session --version 2>/dev/null | \
|
||||
sed -e 's/[^0-9.]*\([0-9.]\+\)/\1/')
|
||||
|
||||
MAJOR=$(echo $VER | cut -d . -f 1)
|
||||
MINOR=$(echo $VER | cut -d . -f 2)
|
||||
|
||||
# run GNOME with Openbox as its window manager
|
||||
|
||||
if test $MAJOR -lt 2 || (test $MAJOR = 2 && test $MINOR -le 22); then
|
||||
# older gnome-session was easy to work with
|
||||
export WINDOW_MANAGER="@bindir@/openbox"
|
||||
exec gnome-session --choose-session=openbox-session "$@"
|
||||
elif test $MAJOR -lt 3; then
|
||||
# old gnome-session requires openbox to be set in gconf and an
|
||||
# openbox.desktop to be installed in the applications directory
|
||||
|
||||
SPATH=/desktop/gnome/session
|
||||
|
||||
# get the current default session
|
||||
SESSION=$(gconftool-2 -g $SPATH/default_session 2> /dev/null)
|
||||
|
||||
# make sure openbox is going to be run
|
||||
if test -z "$SESSION"; then
|
||||
# if its empty then just run openbox
|
||||
SESSION="[openbox]"
|
||||
elif ! echo "$SESSION" | grep -q openbox; then
|
||||
# if openbox isn't in the session then append it
|
||||
SESSION="${SESSION%]},openbox]"
|
||||
fi
|
||||
|
||||
# get the current GNOME/Openbox session
|
||||
OB_SESSION=$(gconftool-2 -g $SPATH/openbox_session 2> /dev/null)
|
||||
|
||||
# update the GNOME/Openbox session if needed
|
||||
if test x$OB_SESSION != x$SESSION; then
|
||||
# the default session changed or we didn't run GNOME/Openbox before
|
||||
gconftool-2 -t list --list-type=strings -s $SPATH/openbox_session \
|
||||
"$SESSION" 2> /dev/null
|
||||
fi
|
||||
|
||||
# run GNOME/Openbox
|
||||
exec gnome-session --default-session-key $SPATH/openbox_session "$@"
|
||||
else
|
||||
# new gnome-session requires session file installed in
|
||||
# /usr/share/gnome-session/sessions as well as openbox.desktop to be
|
||||
# installed in the applications directory
|
||||
|
||||
exec gnome-session --session=openbox-gnome
|
||||
fi
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
[Desktop Entry]
|
||||
Name=GNOME/Openbox
|
||||
Comment=Use the Openbox window manager inside of the GNOME desktop environment
|
||||
Exec=@bindir@/openbox-gnome-session
|
||||
TryExec=gnome-session
|
||||
Icon=openbox
|
||||
Type=Application
|
|
@ -0,0 +1,20 @@
|
|||
#!/bin/sh
|
||||
|
||||
if test -n "$1"; then
|
||||
echo "Syntax: openbox-kde-session"
|
||||
echo
|
||||
echo "See the openbox-kde-session(1) manpage for help."
|
||||
exit
|
||||
fi
|
||||
|
||||
# Set the prefix for the menu layout to use
|
||||
export XDG_MENU_PREFIX="kde-4-"
|
||||
|
||||
# Clean up after GDM
|
||||
xprop -root -remove _NET_NUMBER_OF_DESKTOPS \
|
||||
-remove _NET_DESKTOP_NAMES \
|
||||
-remove _NET_CURRENT_DESKTOP 2> /dev/null
|
||||
|
||||
# Run KDE with Openbox as its window manager
|
||||
export KDEWM="@bindir@/openbox"
|
||||
exec startkde "$@"
|
|
@ -0,0 +1,7 @@
|
|||
[Desktop Entry]
|
||||
Name=KDE/Openbox
|
||||
Comment=Use the Openbox window manager inside of the K Desktop Environment
|
||||
Exec=@bindir@/openbox-kde-session
|
||||
TryExec=startkde
|
||||
Icon=openbox
|
||||
Type=Application
|
|
@ -0,0 +1,22 @@
|
|||
#!/bin/sh
|
||||
|
||||
if test -n "$1"; then
|
||||
echo "Syntax: openbox-session"
|
||||
echo
|
||||
echo "See the openbox-session(1) manpage for help."
|
||||
exit
|
||||
fi
|
||||
|
||||
# Clean up after GDM
|
||||
xprop -root -remove _NET_NUMBER_OF_DESKTOPS \
|
||||
-remove _NET_DESKTOP_NAMES \
|
||||
-remove _NET_CURRENT_DESKTOP 2> /dev/null
|
||||
|
||||
# Set up the environment
|
||||
A="@configdir@/openbox/environment"
|
||||
test -r $A && . $A
|
||||
A="${XDG_CONFIG_HOME:-"$HOME/.config"}/openbox/environment"
|
||||
test -r $A && . $A
|
||||
|
||||
# Run Openbox, and have it run the autostart stuff
|
||||
exec @bindir@/openbox --startup "@libexecdir@/openbox-autostart OPENBOX" "$@"
|
|
@ -0,0 +1,7 @@
|
|||
[Desktop Entry]
|
||||
Name=Openbox
|
||||
Comment=Log in using the Openbox window manager (without a session manager)
|
||||
Exec=@bindir@/openbox-session
|
||||
TryExec=@bindir@/openbox-session
|
||||
Icon=openbox
|
||||
Type=Application
|
|
@ -0,0 +1,57 @@
|
|||
openbox (3.5.2-5) unstable; urgency=low
|
||||
|
||||
- Make new binary packages openbox-gnome-session and openbox-kde-session to
|
||||
separate Gnome and KDE SC sessions from Openbox package
|
||||
|
||||
-- Mateusz Łukasik <mati75@linuxmint.pl> Tue, 05 Nov 2013 13:45:12 +0100
|
||||
|
||||
openbox (3.5.2-1) unstable; urgency=low
|
||||
|
||||
- The 3.5.2 release has SVG icon support and correctly
|
||||
interfaces with the latest gnome-session for Gnome/Openbox X
|
||||
sessions.
|
||||
|
||||
-- Mateusz Łukasik <mati75@linuxmint.pl> Thu, 15 Aug 2013 22:15:10 +0200
|
||||
|
||||
openbox (3.5.0-1) unstable; urgency=low
|
||||
|
||||
Be aware of the following changes when upgrading to openbox 3.5
|
||||
or later:
|
||||
|
||||
- There is a new config file called environment that you should
|
||||
copy from /etc/xdg/openbox to ~/.config/openbox
|
||||
- The config file previously called autostart.sh is now just called
|
||||
autostart. You should rename yours to remove the .sh from the end
|
||||
of the name.
|
||||
- Some of the configuration grammar in rc.xml has changed. While Openbox
|
||||
appears to understand the old options, it would be wise to compare
|
||||
your configuration to the one in /etc/xdg/openbox and look for changes
|
||||
that affect you.
|
||||
|
||||
-- Nico Golde <nion@debian.org> Sun, 31 Oct 2011 23:41:20 +0200
|
||||
|
||||
openbox (3.4.2-1) unstable; urgency=low
|
||||
|
||||
- The 3.4.x release introduced quite a few changes and improvements
|
||||
for users. Make sure to read:
|
||||
http://icculus.org/openbox/index.php/Help:Upgrading_to_3.4
|
||||
to take advantage of them.
|
||||
|
||||
-- Nico Golde <nion@debian.org> Sun, 15 Jul 2007 23:17:28 +0200
|
||||
|
||||
openbox (3.0-1) unstable; urgency=low
|
||||
|
||||
- Openbox 3 is rewritten from scratch in C, and is now licenced under the
|
||||
GNU General Public Licence. Prior versions of Openbox was written in
|
||||
C++, and based on Blackbox 0.65.0 codebase.
|
||||
|
||||
The format for configuration files, menu files, and theme files has
|
||||
been changed, so if you're upgrading from Openbox 2, you will have to
|
||||
convert your existing setup to the new formats. The included script
|
||||
/usr/share/openbox/themeupdate.py may be helpful when converting themes,
|
||||
while configuration and menu files must be done manually.
|
||||
|
||||
You might want to postpone upgrading this package (or downgrade it
|
||||
if you already have), if you do not want to do the conversion now.
|
||||
|
||||
-- Tore Anderson <tore@debian.org> Tue, 18 Nov 2003 19:46:48 +0100
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1 @@
|
|||
10
|
|
@ -0,0 +1,153 @@
|
|||
Source: openbox
|
||||
Section: x11
|
||||
Priority: optional
|
||||
Maintainer: Mateusz Łukasik <mati75@linuxmint.pl>
|
||||
Build-Depends: debhelper (>= 10), gettext, libstartup-notification0-dev,
|
||||
libxrender-dev, pkg-config, libglib2.0-dev, libxml2-dev (>= 2.6.0), perl,
|
||||
libxt-dev, libxinerama-dev, libxrandr-dev, libpango1.0-dev, libx11-dev,
|
||||
autoconf, automake (>= 1:1.11), libimlib2-dev, libxcursor-dev,
|
||||
autopoint, librsvg2-dev, libxi-dev
|
||||
Standards-Version: 3.9.8
|
||||
Homepage: http://www.openbox.org
|
||||
Vcs-Browser: https://github.com/mati75/openbox-debian
|
||||
Vcs-Git: https://github.com/mati75/openbox-debian.git
|
||||
|
||||
Package: openbox
|
||||
Architecture: any
|
||||
Provides: x-window-manager, x-session-manager
|
||||
Pre-Depends: ${misc:Pre-Depends}
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}
|
||||
Recommends: obconf, python-xdg | obsession, scrot
|
||||
Suggests: menu, fonts-dejavu, python, libxml2-dev, tint2, openbox-menu,
|
||||
openbox-gnome-session (= ${binary:Version}), openbox-kde-session (= ${binary:Version})
|
||||
Breaks: menu (<< 2.1.12)
|
||||
Description: standards-compliant, fast, light-weight and extensible window manager
|
||||
Openbox works with your applications, and makes your desktop easier to manage.
|
||||
This is because the approach to its development was the opposite of what seems
|
||||
to be the general case for window managers. Openbox was written first to
|
||||
comply with standards and to work properly. Only when that was in place did
|
||||
the team turn to the visual interface.
|
||||
.
|
||||
Openbox is fully functional as a stand-alone working environment, or can be
|
||||
used as a drop-in replacement for the default window manager in the GNOME or
|
||||
KDE desktop environments.
|
||||
.
|
||||
Openbox 3 is a completely new breed of window manager. It is not based upon
|
||||
any existing code base, although the visual appearance has been based upon
|
||||
that of Blackbox. Openbox 2 was based on the Blackbox 0.65.0 codebase.
|
||||
.
|
||||
Some of the things to look for in Openbox are:
|
||||
.
|
||||
* ICCCM and EWMH compliance!
|
||||
* Very fast
|
||||
* Chainable key bindings
|
||||
* Customizable mouse actions
|
||||
* Window resistance
|
||||
* Multi-head Xinerama support!
|
||||
* Pipe menus
|
||||
|
||||
Package: libobt2v5
|
||||
Section: libs
|
||||
Architecture: any
|
||||
Conflicts: libobparser15, libobparser16, libobt2
|
||||
Replaces: libobparser15, libobparser16, libobt2
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}
|
||||
Description: parsing library for openbox
|
||||
Openbox works with your applications, and makes your desktop easier to manage.
|
||||
This is because the approach to its development was the opposite of what seems
|
||||
to be the general case for window managers. Openbox was written first to
|
||||
comply with standards and to work properly. Only when that was in place did
|
||||
the team turn to the visual interface.
|
||||
.
|
||||
Openbox is fully functional as a stand-alone working environment, or can be
|
||||
used as a drop-in replacement for the default window manager in the GNOME or
|
||||
KDE desktop environments.
|
||||
.
|
||||
Openbox 3 is a completely new breed of window manager. It is not based upon
|
||||
any existing code base, although the visual appearance has been based upon
|
||||
that of Blackbox. Openbox 2 was based on the Blackbox 0.65.0 codebase.
|
||||
.
|
||||
This package contains the libobt library files used by openbox
|
||||
to load and parse configuration and theme files of openbox.
|
||||
|
||||
Package: libobrender32v5
|
||||
Section: libs
|
||||
Architecture: any
|
||||
Conflicts: libobrender15, libobrender16, libobrender32
|
||||
Replaces: libobrender15, libobrender16, libobrender32
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}
|
||||
Description: rendering library for openbox themes
|
||||
Openbox works with your applications, and makes your desktop easier to manage.
|
||||
This is because the approach to its development was the opposite of what seems
|
||||
to be the general case for window managers. Openbox was written first to
|
||||
comply with standards and to work properly. Only when that was in place did
|
||||
the team turn to the visual interface.
|
||||
.
|
||||
Openbox is fully functional as a stand-alone working environment, or can be
|
||||
used as a drop-in replacement for the default window manager in the GNOME or
|
||||
KDE desktop environments.
|
||||
.
|
||||
Openbox 3 is a completely new breed of window manager. It is not based upon
|
||||
any existing code base, although the visual appearance has been based upon
|
||||
that of Blackbox. Openbox 2 was based on the Blackbox 0.65.0 codebase.
|
||||
.
|
||||
This package contains the libobrender library files used by openbox
|
||||
for theme rendering.
|
||||
|
||||
Package: openbox-dev
|
||||
Section: libdevel
|
||||
Architecture: any
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}, libobrender32v5 (= ${binary:Version}),
|
||||
libobt2v5 (= ${binary:Version}), libxml2-dev, libglib2.0-dev, libpango1.0-dev,
|
||||
libimlib2-dev, librsvg2-dev, libxcursor-dev
|
||||
Description: development files for the openbox window manager
|
||||
Openbox works with your applications, and makes your desktop easier to manage.
|
||||
This is because the approach to its development was the opposite of what seems
|
||||
to be the general case for window managers. Openbox was written first to
|
||||
comply with standards and to work properly. Only when that was in place did
|
||||
the team turn to the visual interface.
|
||||
.
|
||||
Openbox is fully functional as a stand-alone working environment, or can be
|
||||
used as a drop-in replacement for the default window manager in the GNOME or
|
||||
KDE desktop environments.
|
||||
.
|
||||
Openbox 3 is a completely new breed of window manager. It is not based upon
|
||||
any existing code base, although the visual appearance has been based upon
|
||||
that of Blackbox. Openbox 2 was based on the Blackbox 0.65.0 codebase.
|
||||
.
|
||||
This package contains the development headers for building openbox stuff.
|
||||
|
||||
Package: gnome-panel-control
|
||||
Architecture: any
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}
|
||||
Replaces: openbox (<< 3.4.11.2)
|
||||
Breaks: openbox (<< 3.4.11.2)
|
||||
Description: command line utility to invoke GNOME panel run dialog/menu
|
||||
gnome-panel-control can be used to invoke the GNOME panel run or main
|
||||
menu from the command line. This is originally a helper utility of openbox
|
||||
since gnome-panel is no longer managing its own key bindings.
|
||||
|
||||
Package: openbox-gnome-session
|
||||
Architecture: all
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}, openbox (>= ${source:Version}),
|
||||
gnome-session-bin, gconf2, x11-utils
|
||||
Enhances: gnome-session
|
||||
Replaces: openbox (<< 3.5.2-5)
|
||||
Breaks: openbox (<< 3.5.2-5)
|
||||
Description: command line utility to run Openbox as GNOME session
|
||||
openbox-gnome-session can provide GNOME session with openbox as
|
||||
a default window manager. It can replace the original window manager
|
||||
in GNOME Shell and GNOME Fallback sessions.
|
||||
|
||||
Package: openbox-kde-session
|
||||
Architecture: all
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}, openbox (>= ${source:Version}),
|
||||
x11-utils, plasma-workspace
|
||||
Enhances: kde-workspace
|
||||
Replaces: openbox (<< 3.5.2-5)
|
||||
Breaks: openbox (<< 3.5.2-5)
|
||||
Description: command line utility to run Openbox as KDE SC session
|
||||
openbox-kde-session can provide KDE SC session with openbox as
|
||||
a default window manager. Can replace the original window manager
|
||||
called KWin.
|
||||
|
|
@ -0,0 +1,68 @@
|
|||
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||
Upstream-Name: openbox
|
||||
Upstream-Contact: Dana Jansens <danakj@orodu.net>
|
||||
Source: http://openbox.org/wiki/Openbox:Download
|
||||
|
||||
Files: *
|
||||
Copyright: 2003, Ben Jansens
|
||||
2003, Derek Foreman <manmower@openbox.org>
|
||||
2006-2011, Mikael Magnusson <mikachu@comhem.se>
|
||||
2003-2011, Dana Jansens <danakj@orodu.net>
|
||||
License: GPL-2+
|
||||
|
||||
Files: debian/*
|
||||
Copyright: 2002, Kyle McMartin <kyle@debian.org>
|
||||
2003-2004, Tore Anderson <tore@debian.org>
|
||||
2007-2009, Nico Golde <nion@debian.org>, Anibal Avelar (Fixxxer) <aavelar@cofradia.org>
|
||||
2013-2014, Mateusz Łukasik <mati75@linuxmint.pl>
|
||||
License: BSD-3-clause
|
||||
These scripts are placed under the BSD license:
|
||||
Copyright (c) The Regents of the University of California.
|
||||
All rights reserved.
|
||||
.
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
3. Neither the name of the University nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
.
|
||||
THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGE.
|
||||
|
||||
Files: debian/themes/Nightmare*
|
||||
Copyright: 2014, maxim2
|
||||
Source: http://box-look.org/content/show.php/Nightmare+?content=165646
|
||||
License: GPL-2+
|
||||
|
||||
License: GPL-2+
|
||||
This package is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; version 2 dated June, 1991.
|
||||
.
|
||||
This package is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
.
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this package; if not, write to the Free Software Foundation,
|
||||
Inc., 51 Franklin St, Fifth Floor, Boston,
|
||||
MA 02110-1301, USA.
|
||||
.
|
||||
On Debian GNU/Linux systems, the complete text of the GNU General
|
||||
Public License can be found in `/usr/share/common-licenses/GPL-2'.
|
|
@ -0,0 +1,152 @@
|
|||
<a href="toc.html">Table of Contents</a>
|
||||
|
||||
<h1>Building Openbox</h1>
|
||||
|
||||
<h2><a name="compile"></a>Compiling</h2>
|
||||
|
||||
<p>
|
||||
The following is what you will need to compile Openbox:
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<ul>
|
||||
<li>C compiler (such as <a href="http://gcc.gnu.org">GCC</a>).</li>
|
||||
<li>Xlib headers and libraries (development package), distributed with
|
||||
<a href="http://xfree86.org">XFree86</a>.</li>
|
||||
<li><a href="http://fontconfig.org">Fontconfig</a> headers and libraries
|
||||
(development package).</li>
|
||||
<li><a href="http://www.gtk.org">Glib 2</a> headers and libraries
|
||||
(development package)</li>
|
||||
<li><em>Optional:</em> The FreeDesktop.org
|
||||
<a href="http://www.freedesktop.org/software/startup-notification/">
|
||||
Startup-Notification</a> library.</li>
|
||||
</ul>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Once you have the above dependancies installed, you are ready to build
|
||||
Openbox. Untar the Openbox archive and from inside the source tree, run:
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<blockquote>
|
||||
% <b>./configure</b><br>
|
||||
...configure detects the build evironment...<br>
|
||||
% <b>make</b><br>
|
||||
...openbox builds...<br>
|
||||
% <b>make install</b><br>
|
||||
...openbox installs...<br>
|
||||
</blockquote>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
If the configure command fails and the reason is not obvious, you should
|
||||
look in the <b>config.log</b> file to discover the cause of the problem.
|
||||
</p>
|
||||
|
||||
<h2><a name="install"></a>Installing</h2>
|
||||
|
||||
<p>
|
||||
You can install Openbox by <a href="#compile">compiling from source</a> or via
|
||||
binary packages. It is recommended that you get a package from your
|
||||
distribution if possible.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Once you have Openbox on your system, you will need to set things up to use it.
|
||||
What to set up depends on how you run X.
|
||||
</p>
|
||||
|
||||
<h3><a name="install-gnome"></a>
|
||||
If you run the GNOME desktop environment:</h3>
|
||||
|
||||
<p>
|
||||
The default window manager for the GNOME environment is <b>metacity</b>. To
|
||||
switch from metacity to Openbox, do the following:
|
||||
</p>
|
||||
|
||||
<blockquote>
|
||||
% <b>openbox --replace</b>
|
||||
</blockquote>
|
||||
|
||||
<p>
|
||||
Choose to save your session the next time you log out so that Openbox will be
|
||||
started for you when you log in again.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<b>Note:</b> As of GNOME 2.4, gnome-panel no longer manages its own key bindings, and requires that the window manager provide its own key bindings for showing the Main Menu and Run dialog. Openbox does this through the bundled <b>gnome-panel-control</b> tool, which can be used in keybindings to access the gnome-panel. Use the <b>--main-menu</b> option to display gnome-panel's menu, and the <b>--run-dialog</b> to display its Run dialog.
|
||||
</p>
|
||||
|
||||
<h3><a name="install-kde"></a>
|
||||
If you run the K desktop environment:</h3>
|
||||
|
||||
<p>
|
||||
The default window manager for the KDE environment is <b>kwin</b>. To switch
|
||||
from kwin to Openbox, set the following environment variable in your startup
|
||||
scripts:
|
||||
</p>
|
||||
|
||||
<blockquote>
|
||||
% <b>export KDEWM=openbox</b>
|
||||
</blockquote>
|
||||
|
||||
<p>
|
||||
When the <b>KDEWM</b> environment variable is set, Openbox will be used in
|
||||
place of kwin.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<b>Note:</b> The current release of KDE is still using a non-standard,
|
||||
deprecated protocol for its system tray. This protocol requires interaction
|
||||
from the window manager. In place of that, Openbox includes the
|
||||
<b>kdetrayproxy</b> application. Once you run it, KDE system tray apps will
|
||||
work with window managers that don't support the legacy protocol, like Openbox.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
To run <b>kdetrayproxy</b> before running KDE, and if you are using the KDE
|
||||
login manager, it may be easiest to use the
|
||||
<a href="#install-xdm">display manager</a> method, and make a startup script
|
||||
something like:
|
||||
</p>
|
||||
|
||||
<blockquote>
|
||||
# Startup stuff for X<br />
|
||||
<br />
|
||||
# Make openbox the KDE window manager<br />
|
||||
export KDEWM=openbox<br />
|
||||
<br />
|
||||
# Make KDE system tray apps work<br />
|
||||
kdetrayproxy &<br />
|
||||
<br />
|
||||
# Start the KDE environment<br />
|
||||
startkde
|
||||
</blockquote>
|
||||
|
||||
<h3><a name="install-startx"></a>
|
||||
If you run X via the <b>startx</b> command:</h3>
|
||||
|
||||
<p>
|
||||
You need to edit your <b>$HOME/.xinitrc</b> file. This file is simply
|
||||
a shell script, so to lauch Openbox just make a file something like this:
|
||||
</p>
|
||||
|
||||
<blockquote>
|
||||
# Startup stuff for X<br />
|
||||
<br />
|
||||
exec openbox<br />
|
||||
</blockquote>
|
||||
|
||||
<h3><a name="install-xdm"></a>
|
||||
If you run X via a <b>display manager</b> (xdm, gdm, kdm, ...):</h3>
|
||||
|
||||
<p>
|
||||
You may consult the documentation for your specific display manager regarding
|
||||
adding entries to it. Alternately, you can edit a <b>$HOME/.xsession</b> file.
|
||||
The file is a shell script and can be made identical to the <b>.xinitrc</b>
|
||||
example above. With this method, you would choose <b>default</b> as the login
|
||||
target in your display manager.
|
||||
</p>
|
||||
|
||||
<a href="toc.html">Table of Contents</a>
|
|
@ -0,0 +1,161 @@
|
|||
<a href="toc.html">Table of Contents</a>
|
||||
|
||||
<h1>Configuring Openbox</h1>
|
||||
|
||||
<h2><a name="locations"></a>File locations</h2>
|
||||
|
||||
<p>
|
||||
When looking for its configuration files (<b>rc.xml</b>, <b>menu.xml</b>), Openbox follows the <a href="http://www.freedesktop.org/standards/basedir-spec/">freedesktop.org base-dir specification</a>. You can read the short specification for all the details. However, the end default result will be as follows.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
First Openbox will try for your config files in <b>$HOME/.config/openbox/</b>. If it is unable to find them there, then it will try the system configuration dir (use <b>./configure --sysconfdir</b> to modify this when configuring the Openbox build. If you installed Openbox from a distribution package, then it will most likely be looking in <b>/etc/xdg/openbox/</b>. If you built Openbox yourself and do not specify --sysconfdir, then it will be looking in <b>/usr/local/etc/xdg/openbox</b>.
|
||||
</p>
|
||||
|
||||
<h2><a name="options"></a>Options</h2>
|
||||
|
||||
<p>
|
||||
Most users will want to use the ObConf tool to configure Openbox. You can
|
||||
launch the tool by running:
|
||||
</p>
|
||||
|
||||
<blockquote>
|
||||
% <b>obconf</b>
|
||||
</blockquote>
|
||||
|
||||
<p>
|
||||
See <a href="http://openbox.org/obconf">the ObConf webpage</a> to get this handy tool.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
If you don't want/have ObConf, you can edit the configuration by hand. The
|
||||
recommended procedure for this is to copy the system config to
|
||||
<b>$HOME/.config/openbox/</b> and edit that to your liking.
|
||||
</p>
|
||||
|
||||
<h2><a name="menus"></a>Menus</h2>
|
||||
|
||||
<p>
|
||||
Menus are searched for in the directories given in the <a href="#locations">File locations</a> section.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
You can specify the names of the menu files to load in the <b>rc.xml</b>'s <b>menu</b> section. Absolute paths can also be used to look outside of the default search paths. For example:
|
||||
</p>
|
||||
|
||||
<blockquote>
|
||||
<menu><br />
|
||||
<file>mymenu.xml</file><br />
|
||||
<file>myothermenu.xml</file><br />
|
||||
<file>/etc/system/openboxmenu.xml</file><br />
|
||||
</menu>
|
||||
</blockquote>
|
||||
|
||||
<p>
|
||||
If no menus are specified in the <b>rc.xml</b>, Openbox will look for <b>menu.xml</b>.
|
||||
</p>
|
||||
|
||||
<h2><a name="themes"></a>Themes</h2>
|
||||
|
||||
<p>
|
||||
First off, the theme format is not backwards compatible with Openbox2/Blackbox/Fluxbox themes. The <b>themeupdate.py</b> script included in the Openbox distribution can be used to aid in porting Openbox2/Blackbox/Fluxbox themes over.
|
||||
</p>
|
||||
|
||||
<h3>Paths</h3>
|
||||
|
||||
<p>
|
||||
Themes are searched for in the data directories specified in the <b>base-dir spec</b> mentioned in the <a href="#locations">File locations</a> section. In addition to these paths, Openbox also looks in <b>$HOME/.themes/</b> for backwards compatibility with existing applications. This means, by default, the following directories will be searched in order: <b>$HOME/.themes/</b>, <b>$HOME/.local/share/themes/</b>, <b>$PREFIX/share/themes/</b>. This means that Openbox themes can now be bundled with other themes (such as GTK+ themes).
|
||||
</p>
|
||||
|
||||
<h3>Structure</h3>
|
||||
|
||||
<p>
|
||||
Each theme is self-contained within its own directory. The theme file itself is a file named <b>themerc</b> inside the theme's <b>openbox-3</b> directory. So for a theme named "Foo", its directory layout might look like this:
|
||||
</p>
|
||||
<blockquote>
|
||||
<b>Foo/openbox-3/themerc</b><br />
|
||||
Foo/openbox-3/max.xbm<br />
|
||||
Foo/openbox-3/close.xbm
|
||||
</blockquote>
|
||||
<p>
|
||||
We'll get to the xbms later.
|
||||
</p>
|
||||
|
||||
<h3>Fonts</h3>
|
||||
|
||||
<p>
|
||||
Fonts are each specified through a single .font property. Different fonts can be specified for focused and unfocused windows. The available font properties are:
|
||||
</p>
|
||||
<ul>
|
||||
<li>window.label.focus.font</li>
|
||||
<li>window.label.unfocus.font</li>
|
||||
<li>menu.title.font</li>
|
||||
<li>menu.items.font</li>
|
||||
</ul>
|
||||
<p>
|
||||
This property is an Xft/Fontconfig font string. It is highly recommended that when specifying this, you specify the size of the font by pixelsize, not by pointsize. Some details on building the required font string can be found in this <a href="http://keithp.com/~keithp/render/Xft.tutorial">Xft tutorial</a>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
There are a couple extensions to the font string's options for openbox:
|
||||
</p>
|
||||
<ul>
|
||||
<li>shadow [boolean] (defaults to off)</li>
|
||||
<li>shadowoffset [integer] (defaults to 1)</li>
|
||||
<li>shadowtint [integer] (defaults to 25%)</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
Example:
|
||||
</p>
|
||||
<blockquote>
|
||||
window.focus.font: arial,sans:bold:pixelsize=12:shadow=y
|
||||
</blockquote>
|
||||
|
||||
<h3>Titlebar Button Bitmaps</h3>
|
||||
|
||||
<p>
|
||||
A number of X Bitmap (xbm) files are used to specify the look of the titlebar buttons. These buttons are all found
|
||||
under the <b>Theme/openbox-3/</b> directory. The following names are looked for:
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>max.xbm - maximized button</li>
|
||||
<li>max_toggled.xbm - maximized button toggled</li>
|
||||
<li>max_disabled.xbm - maximized button disabled</li>
|
||||
<li>max_hover.xbm - maximized button while being hovered over</li>
|
||||
<li>max_pressed.xbm - maximized button while being pressed</li>
|
||||
<li>iconify.xbm - iconify button</li>
|
||||
<li>iconify_disabled.xbm - iconify button disabled</li>
|
||||
<li>iconify_hover.xbm - iconify button while being hovered over</li>
|
||||
<li>iconify_pressed.xbm - iconify button while being pressed</li>
|
||||
<li>desk.xbm - all-desktops button</li>
|
||||
<li>desk_toggled.xbm - all-desktops button toggled</li>
|
||||
<li>desk_disabled.xbm - all-desktops button disabled</li>
|
||||
<li>desk_hover.xbm - all-desktops button while being hovered over</li>
|
||||
<li>desk_pressed.xbm - all-desktops button while being pressed</li>
|
||||
<li>shade.xbm - shade button</li>
|
||||
<li>shade_toggled.xbm - shade button toggled</li>
|
||||
<li>shade_disabled.xbm - shade button disabled</li>
|
||||
<li>shade_hover.xbm - shade button while being hovered over</li>
|
||||
<li>shade_pressed.xbm - shade button while being pressed</li>
|
||||
<li>close.xbm - close button</li>
|
||||
<li>close_disabled.xbm - close button disabled</li>
|
||||
<li>close_hover.xbm - close button while being hovered over</li>
|
||||
<li>close_pressed.xbm - close button while being pressed</li>
|
||||
<li>bullet.xbm - submenu bullet in menus</li>
|
||||
</ul>
|
||||
|
||||
<h3>Background</h3>
|
||||
|
||||
<p>
|
||||
Themes do not provide a means for setting the background. There are many tools around for setting the root image (xsetroot, Esetroot, Rox, Gnome, Kde, etc!) so there is no point in rewriting those for Openbox.
|
||||
</p>
|
||||
|
||||
<h3>Etc</h3>
|
||||
|
||||
<p>
|
||||
A more detailed description and list of all the theme elements will be forthcoming. In the meantime, examples found in the distribution can be used for documentation.
|
||||
</p>
|
||||
|
||||
<a href="toc.html">Table of Contents</a>
|
|
@ -0,0 +1,962 @@
|
|||
<a href="toc.html">Table of Contents</a>
|
||||
|
||||
<h1>Details of the Config Files</h1>
|
||||
|
||||
<h2><a name="keybindings"></a>Key Bindings</h2>
|
||||
|
||||
<h3>Introduction</h3>
|
||||
|
||||
<p>
|
||||
Key bindings are used to bind <a href="#actions">actions</a> to key
|
||||
combinations. Whenever the combination is pressed, the actions bound to it will
|
||||
be executed.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Key bindings are found in the <b>keyboard</b> section of the <b>rc.xml</b>
|
||||
file. Any key bindings outside of the keyboard section will be ignored.
|
||||
</p>
|
||||
|
||||
<h3>Syntax</h3>
|
||||
|
||||
<p>
|
||||
Key bindings are specified using the following:
|
||||
</p>
|
||||
|
||||
<blockquote>
|
||||
<keybind key="KEY COMBO"><br />
|
||||
ACTIONS<br />
|
||||
</keybind>
|
||||
</blockquote>
|
||||
|
||||
<p>
|
||||
Any number of <a href="#actions">actions</a> may appear in a keybind.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<b>KEY COMBO</b> is the key combination to be bound. The key combo has the
|
||||
following syntax: <b>Modifier-Modifier-Key</b>. Any number of modifiers can
|
||||
be specified, following each one with a '-'. The available modifiers are:
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li><b>S</b> - the Shift key</li>
|
||||
<li><b>C</b> - the Control key</li>
|
||||
<li><b>A</b> - the Alt key</li>
|
||||
<li><b>W</b> - the Windows keys</li>
|
||||
<li><b>M</b> - Mod3, not set by default i think</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
Mod1 though Mod5 may also be used as modifiers. The xmodmap tool is used to
|
||||
set these up. The A and W modifiers are merely aliases for Mod1 and Mod4.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The Key is the name of the key, such as 'a' or 'F1' or '4'. You can find the
|
||||
name of a key by running <b>xev</b> in a terminal, pressing the key, and
|
||||
watching the output from xev in the terminal.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<b>ACTIONS</b> is any number of <a href="#actions">actions</a> which will be
|
||||
executed when the key combination is pressed.
|
||||
</p>
|
||||
|
||||
<h3>Chaining</h3>
|
||||
|
||||
<p>
|
||||
Key-chains, as first seen in Emacs, are possible by simply nesting the key bindings. For example:
|
||||
</p>
|
||||
|
||||
<blockquote>
|
||||
<keybind key="C-f"><br />
|
||||
<keybind key="x"><br />
|
||||
ACTIONS<br />
|
||||
</keybind><br />
|
||||
</keybind>
|
||||
</blockquote>
|
||||
|
||||
<p>
|
||||
The actions bound in this example would be fired by first pressing "C-f" (Hold Control - Press f), and then releasing everything and pressing "x".
|
||||
</p>
|
||||
|
||||
<p>
|
||||
If you begin a key-chain, you will be unable to type in your applications until you complete the chain. After a short wait the chain will time out, and be cancelled. You may also cancel out of a chain by using the "C-g" (Hold Control - Press g) key sequence (the same as is used in Emacs). The cancelling key sequence is configurable if desired.
|
||||
</p>
|
||||
|
||||
<h2><a name="mousebindings"></a>Mouse Bindings</h2>
|
||||
|
||||
<h3>Introduction</h3>
|
||||
|
||||
<p>
|
||||
Mouse bindings are used to bind <a href="#actions">actions</a> to mouse interactions. These control most of Openbox's behavior, from what happens when you click the Close button in a window's titlebar to how you drag windows to move them around the screen.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Mouse bindings are found in the <b>mouse</b> section of the <b>rc.xml</b> file. Any mouse bindings outside of the mouse section will be ignored.
|
||||
</p>
|
||||
|
||||
<h3>Syntax</h3>
|
||||
|
||||
<p>
|
||||
Mouse bindings are specified using the following:
|
||||
</p>
|
||||
|
||||
<blockquote>
|
||||
<context name="CONTEXT"><br />
|
||||
<mousebind button="BUTTON" action="INTERACTION"><br />
|
||||
ACTIONS<br />
|
||||
</mousebind><br />
|
||||
</context>
|
||||
</blockquote>
|
||||
|
||||
<p>
|
||||
Any number of mousebinds may appear in a context, and any number of <a href="#actions">actions</a> may appear in a mousebind.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
First, some definitions:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<b>Decorations</b> - The decorations drawn by Openbox around your applications. This includes the
|
||||
<b>Titlebar</b> displayed on the top of each window, with the title, and some buttons in it. It also includes
|
||||
the <b>Handle</b> displayed on the bottom of each window.
|
||||
</li>
|
||||
<li>
|
||||
<b>Client area</b> - The applications themselves. This is the section of the window inside the
|
||||
<b>Decorations</b>.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
<b>CONTEXT</b> is the context in which the mouse interaction is taking place. The possible contexts are:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<b>Frame</b> - Includes the entirety of all windows. This includes on their decorations <i>and</i> in their
|
||||
<b>Client area</b>. <b>Note:</b> When a button is bound in this context, the clicks <b>will not</b> be
|
||||
passed through to the application. Use with care.
|
||||
</li>
|
||||
<li>
|
||||
<b>Client</b> - The <b>Client area</b> of all windows. <b>Notes:</b> When a button is bound in this
|
||||
context, the clicks <b>will</b> be passed through to the application. Because of how these are handled,
|
||||
<b>Press</b> interactions are the only useful interactions for this context.
|
||||
</li>
|
||||
<li>
|
||||
<b>Desktop</b> - The desktop or background. This works even when you are running a file manager such
|
||||
as Nautilus.
|
||||
</li>
|
||||
<li>
|
||||
<b>Titlebar</b> - The <b>Decorations</b> on the top of each window, containing the window's title.
|
||||
</li>
|
||||
<li>
|
||||
<b>Handle</b> - The <b>Decorations</b> on the bottom of each window.
|
||||
</li>
|
||||
<li>
|
||||
<b>TLCorner</b> - The top-left corner of the window's titlebar (the mouse cursor changes while over
|
||||
this). Generally this is only used for resizing windows.
|
||||
</li>
|
||||
<li>
|
||||
<b>TRCorner</b> - The top-right corner of the window's titlebar (the mouse cursor changes while over
|
||||
this). Generally this is only used for resizing windows.
|
||||
</li>
|
||||
<li>
|
||||
<b>BLCorner</b> - The bottom-left corner of the window's handle (the mouse cursor changes while over
|
||||
this). Generally this is only used for resizing windows.
|
||||
</li>
|
||||
<li>
|
||||
<b>BRCorner</b> - The bottom-right corner of the window's handle (the mouse cursor changes while over
|
||||
this). Generally this is only used for resizing windows.
|
||||
</li>
|
||||
<li>
|
||||
<b>Icon</b> - The window's icon in all window's titlebars.
|
||||
</li>
|
||||
<li>
|
||||
<b>AllDesktops</b> - The All-Desktops (Omnipresent) button in all window's titlebars. This button is not
|
||||
visible in the default settings. It is called the All-Desktop button because its default bindings toggle
|
||||
omnipresence on the window.
|
||||
</li>
|
||||
<li>
|
||||
<b>Shade</b> - The Shade button in all window's titlebars. This button is not visible in the default settings. It
|
||||
is called the Shade button because its default bindings toggle shading on the window.
|
||||
</li>
|
||||
<li>
|
||||
<b>Iconify</b> - The Iconify button in all window's titlebars. It is called the Iconify button because its default
|
||||
bindings iconify the window.
|
||||
</li>
|
||||
<li>
|
||||
<b>Maximize</b> - The Maximize button in all window's titlebars. It is called the Maximize button because its
|
||||
default bindings maximize the window.
|
||||
</li>
|
||||
<li>
|
||||
<b>Close</b> - The Close button in all window's titlebars. It is called the Close button because its
|
||||
default bindings close the window.
|
||||
</li>
|
||||
<li>
|
||||
<b>MoveResize</b> - Bindings under this context are available while moving or resizing a window.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
<b>BUTTON</b> is the mouse button and keyboard modifiers being bound. The button has the following syntax: <b>Modifier-Modifier-Button</b>. Any number of modifiers can be specified, following each one with a '-'. The available modifiers are listed <a href=docs.php?page=details.html#keybindings>here</a><!--:
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li><b>S</b> - the Shift key</li>
|
||||
<li><b>C</b> - the Control key</li>
|
||||
<li><b>A</b> - the Alt key</li>
|
||||
<li><b>W</b> - the Windows keys</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
Mod1 though Mod5 may also be used as modifiers. The xmodmap tool is used to
|
||||
set these up. The A and W modifiers are merely aliases for Mod1 and Mod4.
|
||||
-->
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The Button can be the button's number, such as <b>1</b> or <b>3</b>, or it can be a name. The available names are <b>Left</b>, <b>Middle</b>, <b>Right</b>, <b>Up</b>, and <b>Down</b>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<b>INTERACTION</b> specifies what you are doing with your mouse for the binding. It can be one of the following:
|
||||
</p>
|
||||
<ul>
|
||||
<li><b>Press</b> - A mouse button is pressed.</li>
|
||||
<li><b>Release</b> - A mouse button is released.</li>
|
||||
<li><b>Click</b> - A mouse button is pressed and released.</li>
|
||||
<li>
|
||||
<b>DoubleClick</b> - A mouse button is pressed and released twice, quickly. The time delay in which
|
||||
both clicks must occur is configurable.
|
||||
</li>
|
||||
<li><b>Drag</b> - A mouse button is pressed, and the mouse is moved while holding the button down.</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
<b>ACTIONS</b> is any number of <a href="#actions">actions</a> which will be executed when the mouse interaction occurs in the given context.
|
||||
</p>
|
||||
|
||||
<h3>Examples</h3>
|
||||
|
||||
<blockquote>
|
||||
<context name="Close"><br />
|
||||
<mousebind button="Left" action="Press"><br />
|
||||
ACTIONS<br />
|
||||
</mousebind><br />
|
||||
</context><br />
|
||||
<context name="Titlebar"><br />
|
||||
<mousebind button="Left" action="Press"><br />
|
||||
ACTIONS<br />
|
||||
</mousebind><br />
|
||||
<mousebind button="Left" action="Click"><br />
|
||||
ACTIONS<br />
|
||||
</mousebind><br />
|
||||
<mousebind button="Left" action="Drag"><br />
|
||||
ACTIONS<br />
|
||||
</mousebind><br />
|
||||
<mousebind button="Right" action="Press"><br />
|
||||
ACTIONS<br />
|
||||
</mousebind><br />
|
||||
</context>
|
||||
</blockquote>
|
||||
|
||||
<h2><a name="menus"></a>Menus</h2>
|
||||
|
||||
<h3>Introduction</h3>
|
||||
|
||||
<p>
|
||||
Menus are not read out of the <b>rc.xml</b> file, but rather out of files specified in the <b>rc.xml</b>. By default, the <b>menu.xml</b> file is read to build the menus.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Each menu is given an <b>ID</b> which is used in the bindings to specify which menu is being shown.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Openbox provides a few default menus:
|
||||
</p>
|
||||
<ul>
|
||||
<li><b>client-menu</b> - A menu for controlling a window.</li>
|
||||
<li><b>client-send-to-menu</b> - A menu for sending windows to desktops.</li>
|
||||
<li><b>client-layer-menu</b> - A menu for selecting stacking layers for windows (Always on top, etc).</li>
|
||||
<li><b>client-list-menu</b> - A menu for selecting a window or desktop to use.</li>
|
||||
</ul>
|
||||
|
||||
<h3>Syntax</h3>
|
||||
|
||||
<p>
|
||||
A menu file must be entirely enclosed within:
|
||||
</p>
|
||||
|
||||
<blockquote>
|
||||
<openbox_menu><br />
|
||||
...<br />
|
||||
</openbox_menu><br />
|
||||
</blockquote>
|
||||
|
||||
<p>
|
||||
Inside these, menus are specified as follows:
|
||||
</p>
|
||||
|
||||
<blockquote>
|
||||
<menu id="ID" label="TITLE"><br />
|
||||
<br />
|
||||
<item label="LABEL"><br />
|
||||
ACTIONS<br />
|
||||
</item><br />
|
||||
<br />
|
||||
<separator /><br />
|
||||
<br />
|
||||
<menu id="ID" /><br />
|
||||
<br />
|
||||
<separator /><br />
|
||||
<br />
|
||||
<menu id="ID" label="TITLE" /><br />
|
||||
<item label="LABEL"><br />
|
||||
ACTIONS<br />
|
||||
</item><br />
|
||||
</menu><br />
|
||||
<br />
|
||||
<separator /><br />
|
||||
<br />
|
||||
<item label="LABEL"><br />
|
||||
ACTIONS<br />
|
||||
</item><br />
|
||||
<br />
|
||||
</menu><br />
|
||||
</blockquote>
|
||||
|
||||
<p>
|
||||
The syntax example above shows how to put entries into a menu (items) and two methods to add submenus to a menu. It also shows how to put separators into the menu to group items visibly.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Submenus can be simply referenced, and defined outside the parent menu (as the first submenu in the example would be). Submenus can also be nested directly into the containing menu, and still be referenced elsewhere.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<b>ID</b> is a unique identifier used to reference the menu. The value of the ID can be used in a <b>ShowMenu</b> <a href="#actions">action</a> to use the menu.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<b>TITLE</b> is the title displayed on the menu.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<b>LABEL</b> is the text displayed in the menu item
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<b>ACTIONS</b> is any number of <a href="#actions">actions</a> which will be executed when the menu item is selected.
|
||||
</p>
|
||||
|
||||
<h3>Pipe menus</h3>
|
||||
|
||||
<p>
|
||||
Openbox allows for dynamic menus, built on-the-fly from scripts. These are referred to as "Pipe menus" since the script's output is piped back to Openbox and used for the menu.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
A Pipe menu can be created by placing the following into a menu file:
|
||||
</p>
|
||||
|
||||
<blockquote>
|
||||
<menu id="ID" label="TITLE" execute="COMMAND" /><br />
|
||||
</blockquote>
|
||||
|
||||
<p>
|
||||
The generated Pipe menu can be referenced just like any other menu.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<b>COMMAND</b> is a command which is executed. The output from this command is parsed and turned into the menu. The output from the script should be a menu, something like:
|
||||
</p>
|
||||
|
||||
<blockquote>
|
||||
<openbox_pipe_menu><br />
|
||||
<item label="LABEL"><br />
|
||||
ACTIONS<br />
|
||||
</item><br />
|
||||
</openbox_pipe_menu><br />
|
||||
</blockquote>
|
||||
|
||||
<h2><a name="actions"></a>Actions</h2>
|
||||
|
||||
<h3>Introduction</h3>
|
||||
|
||||
<p>
|
||||
Actions are used to specify the behavior of Openbox. Any place where
|
||||
you can use actions, you can place more than one in a row to cause them all
|
||||
to execute one after the other.
|
||||
</p>
|
||||
|
||||
<h3>Syntax</h3>
|
||||
|
||||
<h4>Basic Syntax</h4>
|
||||
|
||||
<p>
|
||||
Actions are specified using the following:
|
||||
</p>
|
||||
|
||||
<blockquote>
|
||||
<action name="NAME">PARAMETERS</action>
|
||||
</blockquote
|
||||
|
||||
<p>
|
||||
<b>NAME</b> is the name of the action, specifying which action to execute.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<b>PARAMETERS</b> is any possible inner tags to change how the action
|
||||
will behave. For example, the <b>Execute</b> action has an inner execute
|
||||
parameter specifying what will be run:
|
||||
</p>
|
||||
|
||||
<blockquote>
|
||||
<action name="Execute"><execute>xterm</execute></action>
|
||||
</blockquote>
|
||||
|
||||
<p>
|
||||
As another example, the <b>DesktopRight</b> action has an inner wrap parameter
|
||||
which specifies if the action should wrap around to the beginning when trying
|
||||
to go past the end:
|
||||
</p>
|
||||
|
||||
<blockquote>
|
||||
<action name="DesktopRight"><wrap>no</wrap></action>
|
||||
</blockquote>
|
||||
|
||||
<h4>Syntax of Parameters</h4>
|
||||
|
||||
<p>
|
||||
There are 3 types of parameters:
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>Strings</li>
|
||||
<li>Numbers</li>
|
||||
<li>Booleans (True/False)</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
The format of Strings and Numbers is pretty obvious. <b>foo</b> would be a valid
|
||||
String, and <b>23</b> would be a valid Number.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Booleans can be specied with one of: <b>true</b>, <b>false</b>, <b>yes</b>,
|
||||
<b>no</b>, <b>on</b>, or <b>off</b>.
|
||||
</p>
|
||||
|
||||
<h4>Actions on Windows</h4>
|
||||
|
||||
<p>
|
||||
Some actions will be performed globally, but some must be associated with a
|
||||
window, and cause the action to be applied to that window. When binding
|
||||
actions to mouse clicks, the window clicked on will have all the bound actions
|
||||
performed on it as applicable. When binding actions to keys, the actions will
|
||||
be associated with the currently focused window.
|
||||
</p>
|
||||
|
||||
<h3>Available actions</h3>
|
||||
|
||||
<h4>Global Actions</h4>
|
||||
|
||||
<table class="docs">
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Parameters (default value in brackets)</th>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>Execute</b> - run an executable</td>
|
||||
<td><b>command</b> () - specifies the executable to be run along with any
|
||||
arguments to pass it. The tilde ('~') character will be expanded in this
|
||||
string to your home directory, but no other shell expansions or
|
||||
scripting syntax can be used in the command.
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>DirectionalFocusNorth</b> - cycles focus to the window north of the
|
||||
currently focused window.</td>
|
||||
<td><b>dialog</b> (yes) - display the focus cycling dialog while switching focus.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>DirectionalFocusEast</b> - cycles focus to the window east of the
|
||||
currently focused window.</td>
|
||||
<td><b>dialog</b> (yes) - display the focus cycling dialog while switching focus.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>DirectionalFocusSouth</b> - cycles focus to the window south of the
|
||||
currently focused window.</td>
|
||||
<td><b>dialog</b> (yes) - display the focus cycling dialog while switching focus.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>DirectionalFocusWest</b> - cycles focus to the window west of the
|
||||
currently focused window.</td>
|
||||
<td><b>dialog</b> (yes) - display the focus cycling dialog while switching focus.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>DirectionalFocusNorthEast</b> - cycles focus to the window northeast
|
||||
of the currently focused window.</td>
|
||||
<td><b>dialog</b> (yes) - display the focus cycling dialog while switching focus.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>DirectionalFocusSouthEast</b> - cycles focus to the window southeast
|
||||
of the currently focused window.</td>
|
||||
<td><b>dialog</b> (yes) - display the focus cycling dialog while switching focus.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>DirectionalFocusSouthWest</b> - cycles focus to the window southwest
|
||||
of the currently focused window.</td>
|
||||
<td><b>dialog</b> (yes) - display the focus cycling dialog while switching focus.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>DirectionalFocusNorthWest</b> - cycles focus to the window northwest
|
||||
of the currently focused window.</td>
|
||||
<td><b>dialog</b> (yes) - display the focus cycling dialog while switching focus.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>NextWindow</b> - cycles focus to the next window.</td>
|
||||
<td><b>linear</b> (no) - when true, windows are always cycled in the order
|
||||
in which they appeared; otherwise, they are cycled in order of
|
||||
recent use.
|
||||
<b>dialog</b> (yes) - display the focus cycling dialog while switching focus.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>PreviousWindow</b> - cycles focus to the previous window.</td>
|
||||
<td><b>linear</b> (no) - when true, windows are always cycled in the order
|
||||
in which they appeared; otherwise, they are cycled in order of
|
||||
recent use.
|
||||
<b>dialog</b> (yes) - display the focus cycling dialog while switching focus.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>Desktop</b> - changes the currently visible desktop.</td>
|
||||
<td><b>desktop</b> (1) - the number of the desktop (starting at 1) to make
|
||||
visible.
|
||||
<b>dialog</b> (no) - display the desktop dialog (with pager) while switching desktops. This will only
|
||||
work in keyboard bindings; otherwise, it is disabled.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>AddDesktopLast</b> - Adds a new desktop at the end of the list of current desktops.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>RemoveDesktopLast</b> - Removes the last of the current desktops.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>AddDesktopCurrent</b> - Adds a new desktop at the current location in the list of desktops.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>RemoveDesktopCurrent</b> - Removes the current desktop.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>DesktopNext</b> - makes the next desktop visible.</td>
|
||||
<td><b>wrap</b> (yes) - whether to wrap around to the first desktop when
|
||||
going past the last.<br />
|
||||
<b>dialog</b> (yes) - display the desktop dialog (with pager) while switching desktops. This will only
|
||||
work in keyboard bindings; otherwise, it is disabled.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>DesktopPrevious</b> - makes the previous desktop visible.</td>
|
||||
<td><b>wrap</b> (yes) - whether to wrap around to the last desktop when
|
||||
going past the first.<br />
|
||||
<b>dialog</b> (yes) - display the desktop dialog (with pager) while switching desktops. This will only
|
||||
work in keyboard bindings; otherwise, it is disabled.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>DesktopRight</b> - makes visible the desktop to the right of the
|
||||
currrently visible desktop.</td>
|
||||
<td><b>wrap</b> (yes) - whether to wrap around to the first desktop when
|
||||
going past the last.<br />
|
||||
<b>dialog</b> (yes) - display the desktop dialog (with pager) while switching desktops. This will only
|
||||
work in keyboard bindings; otherwise, it is disabled.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>DesktopLeft</b> - makes visible the desktop to the left of the
|
||||
currently visible desktop.</td>
|
||||
<td><b>wrap</b> (yes) - whether to wrap around to the last desktop when
|
||||
going past the first.<br />
|
||||
<b>dialog</b> (yes) - display the desktop dialog (with pager) while switching desktops. This will only
|
||||
work in keyboard bindings; otherwise, it is disabled.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>DesktopDown</b> - makes visible the desktop beneath the currently
|
||||
visible desktop.</td>
|
||||
<td><b>wrap</b> (yes) - whether to wrap around to the first desktop when
|
||||
going past the last.<br />
|
||||
<b>dialog</b> (yes) - display the desktop dialog (with pager) while switching desktops. This will only
|
||||
work in keyboard bindings; otherwise, it is disabled.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>DesktopUp</b> - makes visible the desktop above the currently
|
||||
visible desktop.</td>
|
||||
<td><b>wrap</b> (yes) - whether to wrap around to the last desktop when
|
||||
going past the first.<br />
|
||||
<b>dialog</b> (yes) - display the desktop dialog (with pager) while switching desktops. This will only
|
||||
work in keyboard bindings; otherwise, it is disabled.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>ToggleShowDesktop</b> - toggles between <a>ShowDesktop</a> and
|
||||
<a>UnshowDesktop</a>.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>DesktopLast</b> - makes the most recently visible desktop visible
|
||||
again. Only one desktop is remembered, so using this twice will simply
|
||||
flip between two desktops.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>ShowMenu</b> - shows a menu by name</td>
|
||||
<td><b>menu</b> () - the name of the menu to show. The names of menus are
|
||||
specified in the <b>id</b> attribute of their <b>menu</b> tag.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>Reconfigure</b> - reloads the config file, menu, and theme.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>Restart</b> - restarts Openbox. This starts a new copy of Openbox,
|
||||
and can be used to upgrade to a newly installed version.</td>
|
||||
<td><b>command</b> () - when this is used, the executable specified within
|
||||
will be run instead of Openbox. This can be used to switch to another
|
||||
window manager if desired.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>Exit</b> - exits Openbox.</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
|
||||
<h4>Actions for Windows</h4>
|
||||
|
||||
<table class="docs">
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Parameters (default value in brackets)</th>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>Activate</b> - activates the window. This is the same process that
|
||||
occurs when focus cycling to a window, or selecting it in the
|
||||
client-list-menu.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>Focus</b> - give focus to the window.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>Unfocus</b> - remove focus from the window.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>Iconify</b> - iconify the window. This causes the window to
|
||||
not be shown on screen. The window can be found again with focus cycling
|
||||
or with the client-list-menu.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>RaiseLower</b> - raise the window to the forefront if it is obscured
|
||||
behind anything; lower it to the back if it is already at the front.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>Raise</b> - raise the window to the forefront.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>Lower</b> - lower the window to the back.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>Close</b> - request the window to close.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>Kill</b> - forcibly disconnect the window's application from the
|
||||
X server.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>ShadeLower</b> - <a>Shade</a> the window; if the window is already
|
||||
shaded, then <a>Lower</a> it.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>UnshadeRaise</b> - <a>Unshade</a> the window; if the window is
|
||||
already unshaded, then <a>Raise</a> it.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>Shade</b> - shade the window. This hides everything of the window
|
||||
except the titlebar. This concept has also been known as "rolling up" the
|
||||
window into the titlebar.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>Unshade</b> - unshade the window. This shows the entire window if it
|
||||
was previously shaded.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>ToggleShade</b> - toggles the shaded state of the window, firing the
|
||||
<a>Shade</a> and <a>Unshade</a> actions appropriately.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>ToggleOmnipresent</b> - toggles between moving the client to all
|
||||
desktops (omnipresent) and to the currently visible desktop.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>MoveRelative</b> - moves the window</td>
|
||||
<td><b>x</b> (0) - the number of pixels to move the window horizontally. A positive
|
||||
value moves to the right, a negative value moves to the left.<br/>
|
||||
<b>y</b> (0) - the number of pixels to move the window vertically. A positive
|
||||
value moves down, a negative value moves up.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>ResizeRelative</b> - resizes the window</td>
|
||||
<td><b>top</b> or <b>up</b> (0) - the amount to move the top edge of the window. A positive
|
||||
value makes the window taller, a negative value makes it shorter.<br/>
|
||||
<b>bottom</b> or <b>down</b> (0) - the amount to move the bottom edge of the window. A positive
|
||||
value makes the window taller, a negative value makes it shorter.<br/>
|
||||
<b>left</b> (0) - the amount to move the left edge of the window. A positive
|
||||
value makes the window wider, a negative value makes it narrower.<br/>
|
||||
<b>right</b> (0) - the amount to move the right edge of the window. A positive
|
||||
value makes the window wider, a negative value makes it narrower.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>MaximizeFull</b> - maximizes a window to fill the entire screen.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>UnmaximizeFull</b> - restores a window to its original size.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>ToggleMaximizeFull</b> - toggles between <a>MaximizeFull</a> and
|
||||
<a>UnmaximizeFull</a>.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>MaximizeHorz</b> - maximizes a window to fill the entire screen
|
||||
horizontally, but not vertically.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>UnmaximizeHorz</b> - restores a window to its original size.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>ToggleMaximizeHorz</b> - toggles between <a>MaximizeHorz</a> and
|
||||
<a>UnmaximizeHorz</a>.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>MaximizeVert</b> - maximizes a window to fill the entire screen
|
||||
vertically, but not horizontally.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>UnmaximizeVert</b> - restores a window to its original size.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>ToggleMaximizeVert</b> - toggles between <a>MaximizeHorz</a> and
|
||||
<a>UnmaximizeVert</a>.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>SendToDesktop</b> - sends the window to the specified desktop</td>
|
||||
<td><b>desktop</b> (1) - the number of the desktop (starting at 1) to
|
||||
send the window to.<br />
|
||||
<b>follow</b> (yes) - whether to change to the desktop while moving
|
||||
the window.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>SendToDesktopNext</b> - sends the window to the next desktop.</td>
|
||||
<td><b>wrap</b> (yes) - whether to wrap around to the first desktop when
|
||||
going past the last.<br />
|
||||
<b>follow</b> (yes) - whether to change to the desktop while moving
|
||||
the window.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>SendToDesktopPrevious</b> - sends the window to the previous
|
||||
desktop.</td>
|
||||
<td><b>wrap</b> (yes) - whether to wrap around to the last desktop when
|
||||
going past the first.<br />
|
||||
<b>follow</b> (yes) - whether to change to the desktop while moving
|
||||
the window.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>SendToDesktopRight</b> - sends the window to the desktop to the
|
||||
right of the currently visible desktop.</td>
|
||||
<td><b>wrap</b> (yes) - whether to wrap around to the first desktop when
|
||||
going past the last.<br />
|
||||
<b>follow</b> (yes) - whether to change to the desktop while moving
|
||||
the window.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>SendToDesktopLeft</b> - sends the window to the desktop to the
|
||||
left of the currently visible desktop.</td>
|
||||
<td><b>wrap</b> (yes) - whether to wrap around to the last desktop when
|
||||
going past the first.<br />
|
||||
<b>follow</b> (yes) - whether to change to the desktop while moving
|
||||
the window.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>SendToDesktopDown</b> - sends the window to the desktop beneath the
|
||||
currently visible desktop.</td>
|
||||
<td><b>wrap</b> (yes) - whether to wrap around to the first desktop when
|
||||
going past the last.<br />
|
||||
<b>follow</b> (yes) - whether to change to the desktop while moving
|
||||
the window.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>SendToDesktopUp</b> - sends the window to the desktop above the
|
||||
currently visible desktops.</td>
|
||||
<td><b>wrap</b> (yes) - whether to wrap around to the last desktop when
|
||||
going past the first.<br />
|
||||
<b>follow</b> (yes) - whether to change to the desktop while moving
|
||||
the window.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>ToggleDecorations</b> - toggles if the window is given decorations.
|
||||
Decorations are the the titlebar and handle that are shown around most
|
||||
windows.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>Move</b> - begins an interactive move. The move will complete when the
|
||||
mouse button is released, if it is bound to one. The Enter key will also
|
||||
complete the move, and the Escape key will cancel it.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>Resize</b> - begins an interactive resize. The resize will complete
|
||||
when the mouse button is released, if it is bound to one. The Enter
|
||||
key will also complete the resize, and the Escape key will cancel
|
||||
it.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>SendToTopLayer</b> - makes the window always-on-top.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>SendToNormalLayer</b> - make the window not always-on-top or
|
||||
always-on-bottom.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>SendToBottomLayer</b> - makes the window always-on-bottom.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>ToggleAlwaysOnTop</b> - toggles between <a>SendToTopLayer</a> and
|
||||
<a>SendToNormalLayer</a>.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>ToggleAlwaysOnBottom</b> - toggles between <a>SendToBottomLayer</a>
|
||||
and <a>SendToNormalLayer</a>.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>MoveToEdgeNorth</b> - moves the window to the nearest edge to
|
||||
the north of it.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>MoveToEdgeSouth</b> - moves the window to the nearest edge to
|
||||
the south of it.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>MoveToEdgeEast</b> - moves the window to the nearest edge to
|
||||
the east of it.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>MoveToEdgeWest</b> - moves the window to the nearest edge to
|
||||
the west of it.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>GrowToEdgeNorth</b> - resizes the window up to the nearest edge to
|
||||
the north of it.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>GrowToEdgeSouth</b> - resizes the window up to the nearest edge to
|
||||
the south of it.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>GrowToEdgeEast</b> - resizes the window up to the nearest edge to
|
||||
the east of it.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><b>GrowToEdgeWest</b> - resizes the window up to the nearest edge to
|
||||
the west of it.</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
|
||||
<h3>Examples</h3>
|
||||
|
||||
<blockquote>
|
||||
<action name="Raise"/><br />
|
||||
<action name="Focus"/>
|
||||
</blockquote>
|
||||
|
||||
<blockquote>
|
||||
<action name="ShowMenu"><menu>root-menu</menu></action>
|
||||
</blockquote>
|
||||
|
||||
<blockquote>
|
||||
<action name="MoveRelativeVert"><delta>5</delta></action>
|
||||
</blockquote>
|
||||
|
||||
<blockquote>
|
||||
<action name="SendToDesktopNext"><br />
|
||||
<wrap>no</wrap><br />
|
||||
<follow>no</follow><br />
|
||||
</action>
|
||||
</blockquote>
|
||||
|
||||
<a href="toc.html">Table of Contents</a>
|
|
@ -0,0 +1,38 @@
|
|||
<h1>Openbox</h1>
|
||||
|
||||
<ol class="toc">
|
||||
<li><a href="build.html">Building Openbox</a></li>
|
||||
|
||||
<ol class="toc">
|
||||
<li><a href="build.html#compile">Compiling</a></li>
|
||||
<li><a href="build.html#install">Installing</a></li>
|
||||
<ol class="toc">
|
||||
<li><a href="build.html#install-gnome">
|
||||
Using with GNOME</a></li>
|
||||
<li><a href="build.html#install-kde">
|
||||
Using with KDE</a></li>
|
||||
<li><a href="build.html#install-startx">
|
||||
Using with startx</a></li>
|
||||
<li><a href="build.html#install-xdm">
|
||||
Using with xdm/xgm/kdm</a></li>
|
||||
</ol>
|
||||
</ol>
|
||||
|
||||
<li><a href="config.html">Configuring Openbox</a></li>
|
||||
|
||||
<ol class="toc">
|
||||
<li><a href="config.html#locations">File locations</a></li>
|
||||
<li><a href="config.html#options">Options</a></li>
|
||||
<li><a href="config.html#menus">Menus</a></li>
|
||||
<li><a href="config.html#themes">Themes</a></li>
|
||||
</ol>
|
||||
|
||||
<li><a href="details.html">Details of the Config Files</a></li>
|
||||
|
||||
<ol class="toc">
|
||||
<li><a href="details.html#keybindings">Key Bindings</a></li>
|
||||
<li><a href="details.html#mousebindings">Mouse Bindings</a></li>
|
||||
<li><a href="details.html#menus">Menus</a></li>
|
||||
<li><a href="details.html#actions">Actions</a></li>
|
||||
</ol>
|
||||
</ol>
|
|
@ -0,0 +1,64 @@
|
|||
=head1 NAME
|
||||
|
||||
Openbox - standards compliant, fast, light-weight, extensible window manager.
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
gdm-control <option>
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
gdm-control lets you control gdm from within an X session.
|
||||
It enables you to change GDM's behaviour for when you end the current sesson.
|
||||
For instance, you can tell GDM to reboot, and then immediately log out
|
||||
of the current session, and the computer will be rebooted.
|
||||
|
||||
=head1 OPTIONS
|
||||
|
||||
=over 5
|
||||
|
||||
=item B<< --help >>
|
||||
|
||||
Display some help and exit.
|
||||
|
||||
=item B<< --none >>
|
||||
|
||||
Do nothing special when the current session ends.
|
||||
|
||||
=item B<< --shutdown >>
|
||||
|
||||
Shutdown the computer when the current session ends.
|
||||
|
||||
=item B<< --reboot >>
|
||||
|
||||
eboot the computer when the current session ends.
|
||||
|
||||
=item B<< --suspend >>
|
||||
|
||||
Suspend the computer when the current session ends.
|
||||
|
||||
=item B<< --switch-user >>
|
||||
|
||||
Log in as a new user (this works immediately).
|
||||
|
||||
=back
|
||||
|
||||
=head1 AUTHORS
|
||||
|
||||
Openbox was written by Mikael Magnusson <mangosoft@comhem.se> and Dana Jansens
|
||||
<danakj@orodu.net>, aided by several contributors; for a full list read the
|
||||
file AUTHORS.
|
||||
|
||||
This manual page was written by Nico Golde <nion@debian.org>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by the
|
||||
Free Software Foundation; either version 2, or (at your option) any
|
||||
later version.
|
||||
|
||||
On Debian GNU/Linux systems, the complete text of the GNU General
|
||||
Public License can be found in `/usr/share/common-licenses/GPL'.
|
||||
|
||||
=cut
|
|
@ -0,0 +1 @@
|
|||
usr/bin/gnome-panel-control
|
|
@ -0,0 +1 @@
|
|||
gnome-panel-control.1
|
|
@ -0,0 +1,54 @@
|
|||
=head1 NAME
|
||||
|
||||
Openbox - standards compliant, fast, light-weight, extensible window manager.
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
gnome-panel-control <option>
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
As of GNOME 2.4, gnome-panel no longer manages its own key bindings, and
|
||||
requires that the window manager provide its own key bindings for showing the
|
||||
Main Menu and Run dialog. Openbox does this through the bundled
|
||||
B<< gnome-panel-control >> tool, which can be used in keybindings to access the
|
||||
gnome-panel. Use the B<< --main-menu >> option to display gnome-panel's menu,
|
||||
and the B<< --run-dialog >> to display its Run dialog.
|
||||
|
||||
=head1 OPTIONS
|
||||
|
||||
=over 5
|
||||
|
||||
=item B<< --help >>
|
||||
|
||||
Display some help and exit.
|
||||
|
||||
=item B<< --main-menu >>
|
||||
|
||||
Show the main menu.
|
||||
|
||||
=item B<< --run-dialog >>
|
||||
|
||||
Show the run dialog.
|
||||
|
||||
=back
|
||||
|
||||
=head1 AUTHORS
|
||||
|
||||
Openbox was written by Mikael Magnusson <mangosoft@comhem.se> and Ben Jansens
|
||||
<ben@openbox.org>, aided by several contributors; for a full list read the
|
||||
file AUTHORS.
|
||||
|
||||
This manual page was written by Tore Anderson <tore@debian.org>.
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by the
|
||||
Free Software Foundation; either version 2, or (at your option) any
|
||||
later version.
|
||||
|
||||
On Debian GNU/Linux systems, the complete text of the GNU General
|
||||
Public License can be found in `/usr/share/common-licenses/GPL'.
|
||||
|
||||
=cut
|
|
@ -0,0 +1,35 @@
|
|||
=head1 NAME
|
||||
|
||||
Openbox - standards compliant, fast, light-weight, extensible window manager.
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
kdetrayproxy &
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
The current release of KDE is still using a non-standard, deprecated protocol
|
||||
for its system tray. This protocol requires interaction from the window
|
||||
manager. In place of that, Openbox includes the B<< kdetrayproxy >>
|
||||
application. Once you run it, KDE system tray apps will work with window
|
||||
managers that don't support the legacy protocol, like Openbox.
|
||||
|
||||
=head1 AUTHORS
|
||||
|
||||
Openbox was written by Mikael Magnusson <mangosoft@comhem.se> and Ben Jansens
|
||||
<ben@openbox.org>, aided by several contributors; for a full list read the
|
||||
file AUTHORS.
|
||||
|
||||
This manual page was written by Tore Anderson <tore@debian.org>.
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by the
|
||||
Free Software Foundation; either version 2, or (at your option) any
|
||||
later version.
|
||||
|
||||
On Debian GNU/Linux systems, the complete text of the GNU General
|
||||
Public License can be found in `/usr/share/common-licenses/GPL'.
|
||||
|
||||
=cut
|
|
@ -0,0 +1,2 @@
|
|||
AUTHORS
|
||||
README
|
|
@ -0,0 +1,2 @@
|
|||
usr/lib/*/libobrender.so.32.0.0
|
||||
usr/lib/*/libobrender.so.32
|
|
@ -0,0 +1,82 @@
|
|||
libobrender.so.32 libobrender32v5 #MINVER#
|
||||
DestroyImlibLoader@Base 3.6.0
|
||||
DestroyRsvgLoader@Base 3.6.0
|
||||
DrawRGBA@Base 3.6.0
|
||||
LoadWithImlib@Base 3.6.0
|
||||
LoadWithRsvg@Base 3.6.0
|
||||
RrAppearanceAddTextures@Base 3.6.0
|
||||
RrAppearanceClearTextures@Base 3.6.0
|
||||
RrAppearanceCopy@Base 3.6.0
|
||||
RrAppearanceFree@Base 3.6.0
|
||||
RrAppearanceNew@Base 3.6.0
|
||||
RrAppearanceRemoveTextures@Base 3.6.0
|
||||
RrBlueMask@Base 3.6.0
|
||||
RrBlueOffset@Base 3.6.0
|
||||
RrBlueShift@Base 3.6.0
|
||||
RrButtonFree@Base 3.6.0
|
||||
RrButtonNew@Base 3.6.0
|
||||
RrColorAllocateGC@Base 3.6.0
|
||||
RrColorBlue@Base 3.6.0
|
||||
RrColorCopy@Base 3.6.0
|
||||
RrColorFree@Base 3.6.0
|
||||
RrColorGC@Base 3.6.0
|
||||
RrColorGreen@Base 3.6.0
|
||||
RrColorHash@Base 3.6.0
|
||||
RrColorNew@Base 3.6.0
|
||||
RrColorParse@Base 3.6.0
|
||||
RrColorPixel@Base 3.6.0
|
||||
RrColorRed@Base 3.6.0
|
||||
RrColormap@Base 3.6.0
|
||||
RrDepth@Base 3.6.0
|
||||
RrDisplay@Base 3.6.0
|
||||
RrFontClose@Base 3.6.0
|
||||
RrFontDraw@Base 3.6.0
|
||||
RrFontHeight@Base 3.6.0
|
||||
RrFontMeasureString@Base 3.6.0
|
||||
RrFontOpen@Base 3.6.0
|
||||
RrFontOpenDefault@Base 3.6.0
|
||||
RrFontRef@Base 3.6.0
|
||||
RrGreenMask@Base 3.6.0
|
||||
RrGreenOffset@Base 3.6.0
|
||||
RrGreenShift@Base 3.6.0
|
||||
RrImageAddFromData@Base 3.6.0
|
||||
RrImageCacheNew@Base 3.6.0
|
||||
RrImageCacheRef@Base 3.6.0
|
||||
RrImageCacheUnref@Base 3.6.0
|
||||
RrImageDrawImage@Base 3.6.0
|
||||
RrImageDrawRGBA@Base 3.6.0
|
||||
RrImageNewFromData@Base 3.6.0
|
||||
RrImageNewFromName@Base 3.6.0
|
||||
RrImagePicHash@Base 3.6.0
|
||||
RrImageRef@Base 3.6.0
|
||||
RrImageSetDestroyFunc@Base 3.6.0
|
||||
RrImageSetMergeSets@Base 3.6.0
|
||||
RrImageUnref@Base 3.6.0
|
||||
RrIncreaseDepth@Base 3.6.0
|
||||
RrInstanceFree@Base 3.6.0
|
||||
RrInstanceNew@Base 3.6.0
|
||||
RrMargins@Base 3.6.0
|
||||
RrMinHeight@Base 3.6.0
|
||||
RrMinSize@Base 3.6.0
|
||||
RrMinWidth@Base 3.6.0
|
||||
RrPaint@Base 3.6.0
|
||||
RrPaintPixmap@Base 3.6.0
|
||||
RrPickColor@Base 3.6.0
|
||||
RrPixmapMaskCopy@Base 3.6.0
|
||||
RrPixmapMaskDraw@Base 3.6.0
|
||||
RrPixmapMaskFree@Base 3.6.0
|
||||
RrPixmapMaskNew@Base 3.6.0
|
||||
RrPixmapToRGBA@Base 3.6.0
|
||||
RrPseudoBPC@Base 3.6.0
|
||||
RrPseudoColors@Base 3.6.0
|
||||
RrRedMask@Base 3.6.0
|
||||
RrRedOffset@Base 3.6.0
|
||||
RrRedShift@Base 3.6.0
|
||||
RrReduceDepth@Base 3.6.0
|
||||
RrRender@Base 3.6.0
|
||||
RrRootWindow@Base 3.6.0
|
||||
RrScreen@Base 3.6.0
|
||||
RrThemeFree@Base 3.6.0
|
||||
RrThemeNew@Base 3.6.0
|
||||
RrVisual@Base 3.6.0
|
||||
hashword@Base 3.6.0
|
|
@ -0,0 +1,2 @@
|
|||
AUTHORS
|
||||
README
|
|
@ -0,0 +1,2 @@
|
|||
usr/lib/*/libobt.so.2.0.2
|
||||
usr/lib/*/libobt.so.2
|
|
@ -0,0 +1,117 @@
|
|||
libobt.so.2 libobt2v5 #MINVER#
|
||||
callbacks@Base 3.6.0
|
||||
gid_cmp@Base 3.6.0
|
||||
obt_ddparse_file@Base 3.6.0
|
||||
obt_ddparse_group_keys@Base 3.6.0
|
||||
obt_display@Base 3.6.0
|
||||
obt_display_close@Base 3.6.0
|
||||
obt_display_error_occured@Base 3.6.0
|
||||
obt_display_extension_randr@Base 3.6.0
|
||||
obt_display_extension_randr_basep@Base 3.6.0
|
||||
obt_display_extension_shape@Base 3.6.0
|
||||
obt_display_extension_shape_basep@Base 3.6.0
|
||||
obt_display_extension_sync@Base 3.6.0
|
||||
obt_display_extension_sync_basep@Base 3.6.0
|
||||
obt_display_extension_xinerama@Base 3.6.0
|
||||
obt_display_extension_xinerama_basep@Base 3.6.0
|
||||
obt_display_extension_xkb@Base 3.6.0
|
||||
obt_display_extension_xkb_basep@Base 3.6.0
|
||||
obt_display_ignore_errors@Base 3.6.0
|
||||
obt_display_open@Base 3.6.0
|
||||
obt_keyboard_context_new@Base 3.6.0
|
||||
obt_keyboard_context_ref@Base 3.6.0
|
||||
obt_keyboard_context_renew@Base 3.6.0
|
||||
obt_keyboard_context_unref@Base 3.6.0
|
||||
obt_keyboard_keyevent_to_modmask@Base 3.6.0
|
||||
obt_keyboard_keypress_to_keysym@Base 3.6.0
|
||||
obt_keyboard_keypress_to_unichar@Base 3.6.0
|
||||
obt_keyboard_keysym_to_keycode@Base 3.6.0
|
||||
obt_keyboard_modkey_to_modmask@Base 3.6.0
|
||||
obt_keyboard_only_modmasks@Base 3.6.0
|
||||
obt_keyboard_reload@Base 3.6.0
|
||||
obt_keyboard_shutdown@Base 3.6.0
|
||||
obt_link_app_categories@Base 3.6.0
|
||||
obt_link_from_ddfile@Base 3.6.0
|
||||
obt_link_ref@Base 3.6.0
|
||||
obt_link_unref@Base 3.6.0
|
||||
obt_paths_autostart_dirs@Base 3.6.0
|
||||
obt_paths_cache_home@Base 3.6.0
|
||||
obt_paths_config_dirs@Base 3.6.0
|
||||
obt_paths_config_home@Base 3.6.0
|
||||
obt_paths_data_dirs@Base 3.6.0
|
||||
obt_paths_data_home@Base 3.6.0
|
||||
obt_paths_expand_tilde@Base 3.6.0
|
||||
obt_paths_mkdir@Base 3.6.0
|
||||
obt_paths_mkdir_path@Base 3.6.0
|
||||
obt_paths_new@Base 3.6.0
|
||||
obt_paths_ref@Base 3.6.0
|
||||
obt_paths_try_exec@Base 3.6.0
|
||||
obt_paths_unref@Base 3.6.0
|
||||
obt_prop_atom@Base 3.6.0
|
||||
obt_prop_erase@Base 3.6.0
|
||||
obt_prop_get32@Base 3.6.0
|
||||
obt_prop_get_array32@Base 3.6.0
|
||||
obt_prop_get_array_text@Base 3.6.0
|
||||
obt_prop_get_text@Base 3.6.0
|
||||
obt_prop_message@Base 3.6.0
|
||||
obt_prop_message_to@Base 3.6.0
|
||||
obt_prop_set32@Base 3.6.0
|
||||
obt_prop_set_array32@Base 3.6.0
|
||||
obt_prop_set_array_text@Base 3.6.0
|
||||
obt_prop_set_text@Base 3.6.0
|
||||
obt_prop_startup@Base 3.6.0
|
||||
obt_signal_add_callback@Base 3.6.0
|
||||
obt_signal_listen@Base 3.6.0
|
||||
obt_signal_remove_callback@Base 3.6.0
|
||||
obt_signal_stop@Base 3.6.0
|
||||
obt_xml_attr_bool@Base 3.6.0
|
||||
obt_xml_attr_contains@Base 3.6.0
|
||||
obt_xml_attr_int@Base 3.6.0
|
||||
obt_xml_attr_string@Base 3.6.0
|
||||
obt_xml_attr_string_unstripped@Base 3.6.0
|
||||
obt_xml_close@Base 3.6.0
|
||||
obt_xml_doc@Base 3.6.0
|
||||
obt_xml_find_node@Base 3.6.0
|
||||
obt_xml_instance_new@Base 3.6.0
|
||||
obt_xml_instance_ref@Base 3.6.0
|
||||
obt_xml_instance_unref@Base 3.6.0
|
||||
obt_xml_last_error@Base 3.6.0
|
||||
obt_xml_last_error_file@Base 3.6.0
|
||||
obt_xml_last_error_line@Base 3.6.0
|
||||
obt_xml_last_error_message@Base 3.6.0
|
||||
obt_xml_load_config_file@Base 3.6.0
|
||||
obt_xml_load_data_file@Base 3.6.0
|
||||
obt_xml_load_file@Base 3.6.0
|
||||
obt_xml_load_mem@Base 3.6.0
|
||||
obt_xml_load_theme_file@Base 3.6.0
|
||||
obt_xml_node_bool@Base 3.6.0
|
||||
obt_xml_node_contains@Base 3.6.0
|
||||
obt_xml_node_int@Base 3.6.0
|
||||
obt_xml_node_string@Base 3.6.0
|
||||
obt_xml_node_string_unstripped@Base 3.6.0
|
||||
obt_xml_register@Base 3.6.0
|
||||
obt_xml_root@Base 3.6.0
|
||||
obt_xml_save_file@Base 3.6.0
|
||||
obt_xml_tree@Base 3.6.0
|
||||
obt_xml_tree_from_root@Base 3.6.0
|
||||
obt_xml_unregister@Base 3.6.0
|
||||
prop_atoms@Base 3.6.0
|
||||
prop_started@Base 3.6.0
|
||||
signals_fired@Base 3.6.0
|
||||
xqueue_add_callback@Base 3.6.0
|
||||
xqueue_destroy@Base 3.6.0
|
||||
xqueue_exists@Base 3.6.0
|
||||
xqueue_exists_local@Base 3.6.0
|
||||
xqueue_init@Base 3.6.0
|
||||
xqueue_listen@Base 3.6.0
|
||||
xqueue_match_type@Base 3.6.0
|
||||
xqueue_match_window@Base 3.6.0
|
||||
xqueue_match_window_message@Base 3.6.0
|
||||
xqueue_match_window_type@Base 3.6.0
|
||||
xqueue_next@Base 3.6.0
|
||||
xqueue_next_local@Base 3.6.0
|
||||
xqueue_peek@Base 3.6.0
|
||||
xqueue_peek_local@Base 3.6.0
|
||||
xqueue_pending_local@Base 3.6.0
|
||||
xqueue_remove_callback@Base 3.6.0
|
||||
xqueue_remove_local@Base 3.6.0
|
|
@ -0,0 +1,35 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<openbox_menu xmlns="http://openbox.org/"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://openbox.org/
|
||||
file:///usr/share/openbox/menu.xsd">
|
||||
|
||||
<menu id="root-menu" label="Openbox 3">
|
||||
<item label="Terminal emulator">
|
||||
<action name="Execute"><execute>x-terminal-emulator</execute></action>
|
||||
</item>
|
||||
<item label="Web browser">
|
||||
<action name="Execute"><execute>x-www-browser</execute></action>
|
||||
</item>
|
||||
<!-- This requires the presence of the 'menu' package to work -->
|
||||
<menu id="/Debian" />
|
||||
<separator />
|
||||
<menu id="client-list-menu" />
|
||||
<separator />
|
||||
<item label="ObConf">
|
||||
<action name="Execute"><execute>obconf</execute></action>
|
||||
</item>
|
||||
<item label="Reconfigure">
|
||||
<action name="Reconfigure" />
|
||||
</item>
|
||||
<item label="Restart">
|
||||
<action name="Restart" />
|
||||
</item>
|
||||
<separator />
|
||||
<item label="Exit">
|
||||
<action name="Exit" />
|
||||
</item>
|
||||
</menu>
|
||||
|
||||
</openbox_menu>
|
|
@ -0,0 +1 @@
|
|||
usr/include
|
|
@ -0,0 +1,2 @@
|
|||
AUTHORS
|
||||
README
|
|
@ -0,0 +1,7 @@
|
|||
usr/lib/*/libobt.a
|
||||
usr/lib/*/libobrender.a
|
||||
usr/lib/*/pkgconfig/obrender-3.5.pc
|
||||
usr/lib/*/pkgconfig/obt-3.5.pc
|
||||
usr/include/openbox/3.6/*
|
||||
usr/lib/*/libobt.so
|
||||
usr/lib/*/libobrender.so
|
|
@ -0,0 +1,6 @@
|
|||
usr/bin/openbox-gnome-session
|
||||
usr/share/gnome/wm-properties/openbox.desktop
|
||||
usr/share/gnome-session/sessions/openbox-gnome.session
|
||||
usr/share/gnome-session/sessions/openbox-gnome-fallback.session
|
||||
usr/share/man/man1/openbox-gnome-session.1
|
||||
usr/share/xsessions/openbox-gnome.desktop
|
|
@ -0,0 +1 @@
|
|||
openbox-gnome-session: desktop-entry-lacks-keywords-entry usr/share/xsessions/openbox-gnome.desktop
|
|
@ -0,0 +1,3 @@
|
|||
usr/share/man/man1/openbox-kde-session.1
|
||||
usr/share/xsessions/openbox-kde.desktop
|
||||
usr/bin/openbox-kde-session
|
|
@ -0,0 +1 @@
|
|||
openbox-kde-session: desktop-entry-lacks-keywords-entry usr/share/xsessions/openbox-kde.desktop
|
|
@ -0,0 +1,2 @@
|
|||
usr/share/pixmaps
|
||||
var/lib/openbox
|
|
@ -0,0 +1,7 @@
|
|||
Document: openbox
|
||||
Title: Openbox
|
||||
Section: Window Managers
|
||||
|
||||
Format: HTML
|
||||
Index: /usr/share/doc/openbox/toc.html
|
||||
Files: /usr/share/doc/openbox/*.html
|
|
@ -0,0 +1,5 @@
|
|||
AUTHORS
|
||||
COMPLIANCE
|
||||
README
|
||||
debian/NEWS.Debian
|
||||
debian/docs/*
|
|
@ -0,0 +1,32 @@
|
|||
usr/share/pixmaps/openbox.png
|
||||
usr/share/locale/
|
||||
usr/share/themes/
|
||||
usr/share/doc/openbox/menu.xsd
|
||||
usr/share/doc/openbox/xbm/bullet.xbm
|
||||
usr/share/doc/openbox/xbm/close.xbm
|
||||
usr/share/doc/openbox/xbm/desk_toggled.xbm
|
||||
usr/share/doc/openbox/xbm/desk.xbm
|
||||
usr/share/doc/openbox/xbm/iconify.xbm
|
||||
usr/share/doc/openbox/xbm/max_toggled.xbm
|
||||
usr/share/doc/openbox/xbm/max.xbm
|
||||
usr/share/doc/openbox/xbm/shade_toggled.xbm
|
||||
usr/share/doc/openbox/xbm/shade.xbm
|
||||
usr/share/doc/openbox/rc.xsd
|
||||
usr/share/doc/openbox/rc-mouse-focus.xml
|
||||
usr/share/man/man1/openbox.1
|
||||
usr/share/man/man1/obxprop.1
|
||||
usr/share/man/man1/openbox-session.1
|
||||
usr/share/xsessions/openbox.desktop
|
||||
usr/bin/openbox
|
||||
usr/bin/obxprop
|
||||
usr/bin/openbox-session
|
||||
usr/bin/gdm-control
|
||||
etc/xdg/openbox/rc.xml
|
||||
etc/xdg/openbox/menu.xml
|
||||
etc/xdg/openbox/autostart
|
||||
etc/xdg/openbox/environment
|
||||
usr/lib/*/openbox-xdg-autostart
|
||||
usr/lib/*/openbox-autostart
|
||||
|
||||
debian/menu.xml etc/xdg/openbox
|
||||
debian/themes/ usr/share
|
|
@ -0,0 +1 @@
|
|||
etc/xdg/openbox etc/X11/openbox
|
|
@ -0,0 +1,4 @@
|
|||
openbox: executable-not-elf-or-script etc/xdg/openbox/autostart
|
||||
openbox: executable-not-elf-or-script etc/xdg/openbox/environment
|
||||
openbox: duplicate-files usr/share/doc/openbox/xbm/shade.xbm usr/share/doc/openbox/xbm/shade_toggled.xbm
|
||||
openbox: desktop-entry-lacks-keywords-entry usr/share/xsessions/openbox.desktop
|
|
@ -0,0 +1 @@
|
|||
rm_conffile /etc/xdg/openbox/autostart.sh 3.5.0-1
|
|
@ -0,0 +1,2 @@
|
|||
doc/openbox.1
|
||||
gdm-control.1
|
|
@ -0,0 +1,36 @@
|
|||
#!/usr/bin/install-menu
|
||||
|
||||
!include menu.h
|
||||
|
||||
compat="menu-1"
|
||||
|
||||
outputencoding="UTF-8"
|
||||
genmenu="debian-menu.xml"
|
||||
rootprefix="/var/lib/openbox/"
|
||||
userprefix=".config/openbox/"
|
||||
treewalk="(M)"
|
||||
|
||||
function xml_escape($s) = replace(replace(replace(replace(replace($s, \
|
||||
"&", "&"), \
|
||||
">", ">"), \
|
||||
"<", "<"), \
|
||||
"'", "'"), \
|
||||
"\"", """)
|
||||
|
||||
supported
|
||||
x11= nstring(level(), " ") "<item label='" xml_escape(title()) "'" ifnempty(icon(), " icon='" xml_escape(icon()) "'") ">\n" \
|
||||
nstring(level(), " ") " <action name='Execute'><execute>" xml_escape($command) "</execute></action>\n" \
|
||||
nstring(level(), " ") "</item>\n"
|
||||
text= nstring(level(), " ") "<item label='" xml_escape(title()) "'" ifnempty(icon(), " icon='" xml_escape(icon()) "'") ">\n" \
|
||||
nstring(level(), " ") " <action name='Execute'><execute>" xml_escape(term()) "</execute></action>\n" \
|
||||
nstring(level(), " ") "</item>\n"
|
||||
wm= nstring(level(), " ") "<item label='" xml_escape(title()) "'" ifnempty(icon(), " icon='" xml_escape(icon()) "'") ">\n" \
|
||||
nstring(level(), " ") " <action name='Restart'><execute>" xml_escape($command) "</execute></action>\n" \
|
||||
nstring(level(), " ") "</item>\n"
|
||||
endsupported
|
||||
|
||||
startmenu= nstring(level(), " ") "<menu id='" xml_escape($section) "' label='" xml_escape(title()) "'>\n"
|
||||
endmenu= nstring(level(), " ") "</menu>\n"
|
||||
|
||||
preoutput= "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!-- Automatically generated file. Do not edit (see /usr/share/doc/menu/html) -->\n\n<openbox_menu xmlns=\"http://openbox.org/\"\n xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n xsi:schemaLocation=\"http://openbox.org/\n file:///usr/share/openbox/menu.xsd\">\n\n"
|
||||
postoutput= "\n</openbox_menu>\n"
|
|
@ -0,0 +1,22 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
case "$1" in
|
||||
configure)
|
||||
update-alternatives --install /usr/bin/x-window-manager \
|
||||
x-window-manager /usr/bin/openbox 90 --slave \
|
||||
/usr/share/man/man1/x-window-manager.1.gz \
|
||||
x-window-manager.1.gz /usr/share/man/man1/openbox.1.gz
|
||||
update-alternatives --install /usr/bin/x-session-manager \
|
||||
x-session-manager /usr/bin/openbox-session 40 --slave \
|
||||
/usr/share/man/man1/x-session-manager.1.gz \
|
||||
x-session-manager.1.gz /usr/share/man/man1/openbox-session.1.gz
|
||||
|
||||
if which update-menus >/dev/null 2>&1; then
|
||||
update-menus;
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
#DEBHELPER#
|
|
@ -0,0 +1,24 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
# workaround for bug #198522
|
||||
delete_dir_if_empty() {
|
||||
if [ ! -d "$1" ]; then
|
||||
return 0;
|
||||
fi
|
||||
rmdir --ignore-fail-on-non-empty $1;
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
purge)
|
||||
delete_dir_if_empty /etc/xdg/openbox
|
||||
delete_dir_if_empty /etc/xdg
|
||||
;;
|
||||
esac
|
||||
|
||||
if which update-menus >/dev/null 2>&1; then
|
||||
update-menus ;
|
||||
fi
|
||||
|
||||
#DEBHELPER#
|
|
@ -0,0 +1,11 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
if [ "$1" = upgrade ]; then
|
||||
update-alternatives --remove x-window-manager /usr/bin/openbox-session
|
||||
fi
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
exit 0
|
|
@ -0,0 +1,13 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
case "$1" in
|
||||
remove)
|
||||
update-alternatives --remove x-window-manager /usr/bin/openbox
|
||||
update-alternatives --remove x-session-manager /usr/bin/openbox-session
|
||||
rm -f /var/lib/openbox/debian-menu.xml
|
||||
;;
|
||||
esac
|
||||
|
||||
#DEBHELPER#
|
|
@ -0,0 +1,40 @@
|
|||
by Nico Golde <nion@debian.org>
|
||||
updated for 3.5.0 by Eugenio Paolantonio <me@medesimo.eu>
|
||||
|
||||
add screenshot support using gnome-screenshot;
|
||||
ensure that the Debian system menu is listed in <menu>
|
||||
Index: openbox-3.4.11.1/data/rc.xml
|
||||
===================================================================
|
||||
--- a/data/rc.xml
|
||||
+++ b/data/rc.xml
|
||||
@@ -245,6 +245,10 @@
|
||||
<keybind key="A-space">
|
||||
<action name="ShowMenu"><menu>client-menu</menu></action>
|
||||
</keybind>
|
||||
+ <!-- Take a screenshot of the current window with gnome-screenshot when Alt+Print are pressed -->
|
||||
+ <keybind key="A-Print">
|
||||
+ <action name="Execute"><command>gnome-screenshot -w</command></action>
|
||||
+ </keybind>
|
||||
|
||||
<!-- Keybindings for window switching -->
|
||||
<keybind key="A-Tab">
|
||||
@@ -308,6 +312,10 @@
|
||||
<command>kfmclient openProfile filemanagement</command>
|
||||
</action>
|
||||
</keybind>
|
||||
+ <!-- Launch gnome-screenshot when Print is pressed -->
|
||||
+ <keybind key="Print">
|
||||
+ <action name="Execute"><command>gnome-screenshot</command></action>
|
||||
+ </keybind>
|
||||
</keyboard>
|
||||
|
||||
<mouse>
|
||||
@@ -621,6 +629,8 @@
|
||||
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/) -->
|
||||
+ <!-- system menu files on Debian systems -->
|
||||
+ <file>/var/lib/openbox/debian-menu.xml</file>
|
||||
<file>menu.xml</file>
|
||||
<hideDelay>200</hideDelay>
|
||||
<!-- if a press-release lasts longer than this setting (in milliseconds), the
|
|
@ -0,0 +1,23 @@
|
|||
by Nico Golde <nion@debian.org>
|
||||
the freedesktop standard requires some additional attributes in the desktop files
|
||||
which are added here to fix #533126, #531580
|
||||
Index: openbox-3.4.11.1/data/gnome-wm-properties/openbox.desktop
|
||||
===================================================================
|
||||
--- openbox-3.4.11.1.orig/data/gnome-wm-properties/openbox.desktop 2010-04-23 16:47:53.000000000 +0200
|
||||
+++ openbox-3.4.11.1/data/gnome-wm-properties/openbox.desktop 2010-04-23 16:48:08.000000000 +0200
|
||||
@@ -2,10 +2,15 @@
|
||||
Type=Application
|
||||
Name=Openbox
|
||||
Exec=openbox
|
||||
+Type=Application
|
||||
+Categories=System;
|
||||
|
||||
# name we put on the WM spec check window
|
||||
X-GNOME-WMName=Openbox
|
||||
|
||||
+X-GNOME-Provides=windowmanager
|
||||
+NoDisplay=true
|
||||
+
|
||||
# our config tool
|
||||
ConfigExec=obconf
|
||||
|
|
@ -0,0 +1,111 @@
|
|||
patch by Marc Brockschmidt to allow placing windows in certain screen
|
||||
quadrants using key bindings - #544538
|
||||
Index: openbox-3.4.11.1/data/rc.xsd
|
||||
===================================================================
|
||||
--- openbox-3.4.11.1.orig/data/rc.xsd 2010-04-23 16:49:08.000000000 +0200
|
||||
+++ openbox-3.4.11.1/data/rc.xsd 2010-04-23 16:49:56.000000000 +0200
|
||||
@@ -171,8 +171,8 @@
|
||||
<xsd:element minOccurs="0" name="manageDesktops" type="ob:bool"/>
|
||||
</xsd:complexType>
|
||||
<xsd:complexType name="window_position">
|
||||
- <xsd:element name="x" type="ob:center_or_int"/>
|
||||
- <xsd:element name="y" type="ob:center_or_int"/>
|
||||
+ <xsd:element name="x" type="ob:horizontal_center_or_int"/>
|
||||
+ <xsd:element name="y" type="ob:vertical_center_or_int"/>
|
||||
<xsd:element name="monitor" type="ob:mouse_or_int"/>
|
||||
<xsd:element minOccurs="0" name="head" type="xsd:string"/>
|
||||
<xsd:attribute name="force" type="ob:bool"/>
|
||||
@@ -365,6 +365,20 @@
|
||||
<xsd:pattern value="center|0|[1-9][0-9]*"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
+ <xsd:simpleType name="horizontal_center_or_int">
|
||||
+ <xsd:restriction base="xsd:string">
|
||||
+ <!-- ob: atoi($_) unless $_ eq 'center'; -->
|
||||
+ <!-- I think the regexp DTRT WRT atoi. -->
|
||||
+ <xsd:pattern value="(Below|Above)?center|0|[1-9][0-9]*"/>
|
||||
+ </xsd:restriction>
|
||||
+ </xsd:simpleType>
|
||||
+ <xsd:simpleType name="vertical_center_or_int">
|
||||
+ <xsd:restriction base="xsd:string">
|
||||
+ <!-- ob: atoi($_) unless $_ eq 'center'; -->
|
||||
+ <!-- I think the regexp DTRT WRT atoi. -->
|
||||
+ <xsd:pattern value="(LeftOf|RightOf)?center|0|[1-9][0-9]*"/>
|
||||
+ </xsd:restriction>
|
||||
+ </xsd:simpleType>
|
||||
<xsd:simpleType name="mouse_or_int">
|
||||
<xsd:restriction base="xsd:string">
|
||||
<!-- ob: atoi($_) unless $_ eq 'center'; -->
|
||||
Index: openbox-3.4.11.1/openbox/actions/moveresizeto.c
|
||||
===================================================================
|
||||
--- openbox-3.4.11.1.orig/openbox/actions/moveresizeto.c 2010-04-23 16:49:24.000000000 +0200
|
||||
+++ openbox-3.4.11.1/openbox/actions/moveresizeto.c 2010-04-23 16:49:56.000000000 +0200
|
||||
@@ -14,6 +14,10 @@
|
||||
typedef struct {
|
||||
gboolean xcenter;
|
||||
gboolean ycenter;
|
||||
+ gboolean rightofcenter;
|
||||
+ gboolean leftofcenter;
|
||||
+ gboolean abovecenter;
|
||||
+ gboolean belowcenter;
|
||||
gboolean xopposite;
|
||||
gboolean yopposite;
|
||||
gint x;
|
||||
@@ -44,12 +48,22 @@
|
||||
}
|
||||
|
||||
static void parse_coord(xmlDocPtr doc, xmlNodePtr n, gint *pos,
|
||||
- gboolean *opposite, gboolean *center)
|
||||
+ gboolean *opposite, gboolean *rightofcenter,
|
||||
+ gboolean *leftofcenter, gboolean *abovecenter,
|
||||
+ gboolean *belowcenter, gboolean *center)
|
||||
{
|
||||
gchar *s = parse_string(doc, n);
|
||||
if (g_ascii_strcasecmp(s, "current") != 0) {
|
||||
if (!g_ascii_strcasecmp(s, "center"))
|
||||
*center = TRUE;
|
||||
+ else if (!g_ascii_strcasecmp(s, "rightofcenter"))
|
||||
+ *rightofcenter = TRUE;
|
||||
+ else if (!g_ascii_strcasecmp(s, "leftofcenter"))
|
||||
+ *leftofcenter = TRUE;
|
||||
+ else if (!g_ascii_strcasecmp(s, "belowcenter"))
|
||||
+ *belowcenter = TRUE;
|
||||
+ else if (!g_ascii_strcasecmp(s, "abovecenter"))
|
||||
+ *abovecenter = TRUE;
|
||||
else {
|
||||
if (s[0] == '-')
|
||||
*opposite = TRUE;
|
||||
@@ -75,10 +89,14 @@
|
||||
o->monitor = CURRENT_MONITOR;
|
||||
|
||||
if ((n = parse_find_node("x", node)))
|
||||
- parse_coord(doc, n, &o->x, &o->xopposite, &o->xcenter);
|
||||
+ parse_coord(doc, n, &o->x, &o->xopposite,
|
||||
+ &o->rightofcenter, &o->leftofcenter,
|
||||
+ &o->abovecenter, &o->belowcenter, &o->xcenter);
|
||||
|
||||
if ((n = parse_find_node("y", node)))
|
||||
- parse_coord(doc, n, &o->y, &o->yopposite, &o->ycenter);
|
||||
+ parse_coord(doc, n, &o->y, &o->yopposite,
|
||||
+ &o->rightofcenter, &o->leftofcenter,
|
||||
+ &o->abovecenter, &o->belowcenter, &o->ycenter);
|
||||
|
||||
if ((n = parse_find_node("width", node))) {
|
||||
gchar *s = parse_string(doc, n);
|
||||
@@ -182,12 +200,16 @@
|
||||
|
||||
x = o->x;
|
||||
if (o->xcenter) x = (area->width - w) / 2;
|
||||
+ else if (o->leftofcenter) x = (area->width / 2) - w;
|
||||
+ else if (o->rightofcenter) x = area->width / 2;
|
||||
else if (x == G_MININT) x = c->frame->area.x - carea->x;
|
||||
else if (o->xopposite) x = area->width - w - x;
|
||||
x += area->x;
|
||||
|
||||
y = o->y;
|
||||
if (o->ycenter) y = (area->height - h) / 2;
|
||||
+ else if (o->abovecenter) y = (area->height / 2) - h;
|
||||
+ else if (o->belowcenter) y = area->height / 2;
|
||||
else if (y == G_MININT) y = c->frame->area.y - carea->y;
|
||||
else if (o->yopposite) y = area->height - h - y;
|
||||
y += area->y;
|
|
@ -0,0 +1,25 @@
|
|||
by Nico Golde <nion@debian.org>, slightly modified version
|
||||
from Eugenio Paolantonio <me@medesimo.eu>
|
||||
Do not build filename if a working full path is given.
|
||||
Fixes #644756.
|
||||
Index: openbox-3.5.0/obt/xml.c
|
||||
===================================================================
|
||||
--- openbox-3.5.0.orig/obt/xml.c 2011-10-30 14:13:07.000000000 +0100
|
||||
+++ openbox-3.5.0/obt/xml.c 2011-10-30 14:13:10.000000000 +0100
|
||||
@@ -127,10 +127,13 @@
|
||||
gchar *path;
|
||||
struct stat s;
|
||||
|
||||
- if (!domain && !filename) /* given a full path to the file */
|
||||
+ if (!domain && !filename){ /* given a full path to the file */
|
||||
path = g_strdup(it->data);
|
||||
- else
|
||||
+ } else if(filename && filename[0] == '/' && stat(filename, &s) >= 0) {
|
||||
+ path = g_strdup(filename);
|
||||
+ } else {
|
||||
path = g_build_filename(it->data, domain, filename, NULL);
|
||||
+ }
|
||||
|
||||
if (stat(path, &s) >= 0) {
|
||||
/* XML_PARSE_BLANKS is needed apparently, or the tree can end up
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
Description: Upstream patch to fix title on java applications
|
||||
--- openbox-3.5.0/openbox/client.c 2011-08-01 22:14:58.000000000 +0200
|
||||
+++ openbox-3.5.0/openbox/client.c 2011-10-22 14:59:56.000000000 +0200
|
||||
@@ -883,7 +883,7 @@
|
||||
!g_pattern_match(app->role,
|
||||
strlen(self->role), self->role, NULL))
|
||||
match = FALSE;
|
||||
- else if (app->title &&
|
||||
+ else if (app->title && self->title &&
|
||||
!g_pattern_match(app->title,
|
||||
strlen(self->title), self->title, NULL))
|
||||
match = FALSE;
|
|
@ -0,0 +1,14 @@
|
|||
Description: Fixed load gnome 3 applications
|
||||
Index: openbox-3.5.0/data/autostart/autostart.in
|
||||
===================================================================
|
||||
--- openbox-3.5.0.orig/data/autostart/autostart.in 2013-07-17 17:09:45.000000000 +0200
|
||||
+++ openbox-3.5.0/data/autostart/autostart.in 2013-07-17 18:32:23.000000000 +0200
|
||||
@@ -8,7 +8,7 @@
|
||||
#
|
||||
#if test -x @libexecdir@/gnome-settings-daemon >/dev/null; then
|
||||
# @libexecdir@/gnome-settings-daemon &
|
||||
-#elif which gnome-settings-daemon >/dev/null; then
|
||||
+#elif which gnome-settings-daemon >/dev/null 2>&1; then
|
||||
# gnome-settings-daemon &
|
||||
#fi
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
Description: Add keywords to desktop file.
|
||||
Author: Mateusz Łukasik <mati75@linuxmint.pl>
|
||||
|
||||
--- a/data/openbox.desktop
|
||||
+++ b/data/openbox.desktop
|
||||
@@ -13,3 +13,4 @@ X-GNOME-Provides=windowmanager
|
||||
X-Ubuntu-Gettext-Domain=openbox
|
||||
# back compat
|
||||
X-GNOME-Autostart-Notify=true
|
||||
+_Keywords=wm;windowmanager;window;manager;gnome;
|
|
@ -0,0 +1,16 @@
|
|||
Description: Add compatibility to obsession when the pyxdg is not running
|
||||
Author: Mateusz Łukasik <mati75@linuxmint.pl>
|
||||
|
||||
--- a/data/autostart/openbox-autostart.in
|
||||
+++ b/data/autostart/openbox-autostart.in
|
||||
@@ -31,4 +31,9 @@ fi
|
||||
# Run the XDG autostart stuff. These are found in /etc/xdg/autostart and
|
||||
# in $HOME/.config/autostart. This requires PyXDG to be installed.
|
||||
# See openbox-xdg-autostart --help for more details.
|
||||
-@libexecdir@/openbox-xdg-autostart "$@"
|
||||
+if which xdg-autostart >/dev/null 2>/dev/null; then
|
||||
+ CMD=xdg-autostart
|
||||
+else
|
||||
+ CMD=@libexecdir@/openbox-xdg-autostart
|
||||
+fi
|
||||
+exec $CMD "$@"
|
|
@ -0,0 +1,51 @@
|
|||
commit c94992179e99f4088f3a1cb8e304a9fb6035170d
|
||||
Author: John Vogel <jvogel4@stny.rr.com>
|
||||
Date: Sat Mar 17 12:33:24 2012 -0400
|
||||
|
||||
Update manpage to current version. (Fix bug 5444)
|
||||
|
||||
--- a/doc/openbox-session.1.in
|
||||
+++ b/doc/openbox-session.1.in
|
||||
@@ -12,8 +12,8 @@ to save your state from one log in to th
|
||||
arguments.
|
||||
.PP
|
||||
On log in, \fBopenbox-session\fR will run the
|
||||
-~/.config/openbox/autostart.sh script if it exists, and will run the
|
||||
-system-wide script @configdir@/openbox/autostart.sh otherwise. You may
|
||||
+~/.config/openbox/autostart script if it exists, and will run the
|
||||
+system-wide script @configdir@/openbox/autostart otherwise. You may
|
||||
place anything you want to run automatically in those files, for example:
|
||||
|
||||
.PP
|
||||
@@ -27,7 +27,7 @@ gnome-settings-daemon &
|
||||
.PP
|
||||
Make sure that each line is followed by a "&" or else the script will
|
||||
stop there and further commands will not be executed. You can use the
|
||||
-@configdir@/openbox/autostart.sh file as an example for creating your
|
||||
+@configdir@/openbox/autostart file as an example for creating your
|
||||
own.
|
||||
.SH "SEE ALSO"
|
||||
.PP
|
||||
--- a/doc/openbox-session.1.sgml
|
||||
+++ b/doc/openbox-session.1.sgml
|
||||
@@ -44,8 +44,8 @@ manpage.1: manpage.sgml
|
||||
arguments.</para>
|
||||
|
||||
<para>On log in, <command>&dhpackage;</command> will run the
|
||||
- ~/.config/openbox/autostart.sh script if it exists, and will run the
|
||||
- system-wide script @configdir@/openbox/autostart.sh otherwise. You may
|
||||
+ ~/.config/openbox/autostart script if it exists, and will run the
|
||||
+ system-wide script @configdir@/openbox/autostart otherwise. You may
|
||||
place anything you want to run automatically in those files, for example:
|
||||
</para>
|
||||
|
||||
@@ -55,7 +55,7 @@ manpage.1: manpage.sgml
|
||||
|
||||
<para>Make sure that each line is followed by a "&" or else the script will
|
||||
stop there and further commands will not be executed. You can use the
|
||||
- @configdir@/openbox/autostart.sh file as an example for creating your
|
||||
+ @configdir@/openbox/autostart file as an example for creating your
|
||||
own.</para>
|
||||
|
||||
</refsect1>
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
Description: Fix showing startup notification
|
||||
Author: Andrej N. Gritsenko <andrej@rep.kiev.ua>
|
||||
Bug-Debian: http://bugs.debian.org/719620
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index a183309..5d55c56 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -125,7 +125,7 @@ AC_ARG_ENABLE(startup-notification,
|
||||
)
|
||||
|
||||
if test "$enable_sn" = yes; then
|
||||
-PKG_CHECK_MODULES(LIBSN, [libstartup-notification-1.0 >= 0.8],
|
||||
+PKG_CHECK_MODULES(LIBSN, [libstartup-notification-1.0 >= 0.8 xi],
|
||||
[
|
||||
AC_DEFINE(USE_LIBSN, [1], [Use startup-notification])
|
||||
AC_SUBST(LIBSN_CFLAGS)
|
||||
diff --git a/openbox/screen.c b/openbox/screen.c
|
||||
index 33acb4a..ed57f22 100644
|
||||
--- a/openbox/screen.c
|
||||
+++ b/openbox/screen.c
|
||||
@@ -40,6 +40,7 @@
|
||||
#include "obt/prop.h"
|
||||
|
||||
#include <X11/Xlib.h>
|
||||
+#include <X11/extensions/XInput2.h>
|
||||
#ifdef HAVE_UNISTD_H
|
||||
# include <sys/types.h>
|
||||
# include <unistd.h>
|
||||
@@ -1844,12 +1845,15 @@ const Rect* screen_physical_area_primary(gboolean fixed)
|
||||
|
||||
void screen_set_root_cursor(void)
|
||||
{
|
||||
+ int pointer_id;
|
||||
+ if (!XIGetClientPointer(obt_display, None, &pointer_id))
|
||||
+ return;
|
||||
if (sn_app_starting())
|
||||
- XDefineCursor(obt_display, obt_root(ob_screen),
|
||||
- ob_cursor(OB_CURSOR_BUSYPOINTER));
|
||||
+ XIDefineCursor(obt_display, pointer_id, obt_root(ob_screen),
|
||||
+ ob_cursor(OB_CURSOR_BUSYPOINTER));
|
||||
else
|
||||
- XDefineCursor(obt_display, obt_root(ob_screen),
|
||||
- ob_cursor(OB_CURSOR_POINTER));
|
||||
+ XIDefineCursor(obt_display, pointer_id, obt_root(ob_screen),
|
||||
+ ob_cursor(OB_CURSOR_POINTER));
|
||||
}
|
||||
|
||||
guint screen_find_monitor_point(guint x, guint y)
|
|
@ -0,0 +1,30 @@
|
|||
Description: Use scrot for taking a screenshots
|
||||
Author: Mateusz Łukasik <mati75@linuxmint.pl>
|
||||
Bug-Debian: http://bugs.debian.org/754207
|
||||
|
||||
--- a/data/rc.xml
|
||||
+++ b/data/rc.xml
|
||||
@@ -245,9 +245,9 @@
|
||||
<keybind key="A-space">
|
||||
<action name="ShowMenu"><menu>client-menu</menu></action>
|
||||
</keybind>
|
||||
- <!-- Take a screenshot of the current window with gnome-screenshot when Alt+Print are pressed -->
|
||||
+ <!-- Take a screenshot of the current window with scrot when Alt+Print are pressed -->
|
||||
<keybind key="A-Print">
|
||||
- <action name="Execute"><command>gnome-screenshot -w</command></action>
|
||||
+ <action name="Execute"><command>scrot -s</command></action>
|
||||
</keybind>
|
||||
|
||||
<!-- Keybindings for window switching -->
|
||||
@@ -312,9 +312,9 @@
|
||||
<command>kfmclient openProfile filemanagement</command>
|
||||
</action>
|
||||
</keybind>
|
||||
- <!-- Launch gnome-screenshot when Print is pressed -->
|
||||
+ <!-- Launch scrot when Print is pressed -->
|
||||
<keybind key="Print">
|
||||
- <action name="Execute"><command>gnome-screenshot</command></action>
|
||||
+ <action name="Execute"><command>scrot</command></action>
|
||||
</keybind>
|
||||
</keyboard>
|
||||
|
|
@ -0,0 +1,63 @@
|
|||
>From e0cb404f53c9b21a521ea2f14c8cd66fdfb68ea7 Mon Sep 17 00:00:00 2001
|
||||
From: Simon <simondobbss@gmail.com>
|
||||
Date: Tue, 15 Dec 2015 15:46:18 +0100
|
||||
Subject: [PATCH] Replace getgrent with getgroups. Fixes #5978.
|
||||
|
||||
---
|
||||
obt/paths.c | 34 +++++++++++++++++++++-------------
|
||||
1 file changed, 21 insertions(+), 13 deletions(-)
|
||||
|
||||
diff --git a/obt/paths.c b/obt/paths.c
|
||||
index 25cb6b0..d526936 100644
|
||||
--- a/obt/paths.c
|
||||
+++ b/obt/paths.c
|
||||
@@ -108,25 +108,33 @@ static void find_uid_gid(uid_t *u, gid_t **g, guint *n)
|
||||
const gchar *name;
|
||||
struct group *gr;
|
||||
|
||||
+ gid_t gmain;
|
||||
+ unsigned int maininc;
|
||||
+ int i;
|
||||
+
|
||||
*u = getuid();
|
||||
pw = getpwuid(*u);
|
||||
name = pw->pw_name;
|
||||
|
||||
- *g = g_new(gid_t, *n=1);
|
||||
- (*g)[0] = getgid();
|
||||
-
|
||||
- while ((gr = getgrent())) {
|
||||
- if (gr->gr_gid != (*g)[0]) { /* skip the main group */
|
||||
- gchar **c;
|
||||
- for (c = gr->gr_mem; *c; ++c)
|
||||
- if (strcmp(*c, name) == 0) {
|
||||
- *g = g_renew(gid_t, *g, ++(*n)); /* save the group */
|
||||
- (*g)[*n-1] = gr->gr_gid;
|
||||
- break;
|
||||
- }
|
||||
+ gmain = getgid();
|
||||
+
|
||||
+ *n = getgroups(0, *g);
|
||||
+ *g = g_new(gid_t, *n);
|
||||
+ *n = getgroups(*n, *g);
|
||||
+
|
||||
+ /* Check if the effective group ID of the calling process is already
|
||||
+ included in the returned list. Add it otherwise. */
|
||||
+ maininc = 0;
|
||||
+ for (i = 0; i < *n; i++) {
|
||||
+ if ( (*g)[i] == gmain ) {
|
||||
+ maininc = 1;
|
||||
+ break;
|
||||
}
|
||||
}
|
||||
- endgrent();
|
||||
+ if (!maininc) {
|
||||
+ *g = g_renew(gid_t, *g, ++(*n));
|
||||
+ (*g)[*n-1] = gmain;
|
||||
+ }
|
||||
|
||||
qsort(*g, *n, sizeof(gid_t), gid_cmp);
|
||||
}
|
||||
--
|
||||
2.1.4
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
From d9a405e9b3b0e9bfe5686c6df456138b443d1e35 Mon Sep 17 00:00:00 2001
|
||||
From: Mikael Magnusson <mikachu@gmail.com>
|
||||
Date: Mon, 7 Sep 2015 00:24:03 +0200
|
||||
Subject: [PATCH] Add 'last' as a desktop target for if/foreach
|
||||
|
||||
---
|
||||
openbox/actions/if.c | 7 ++++++-
|
||||
1 file changed, 6 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/openbox/actions/if.c b/openbox/actions/if.c
|
||||
index a9c4094..c76fb71 100644
|
||||
--- a/openbox/actions/if.c
|
||||
+++ b/openbox/actions/if.c
|
||||
@@ -68,6 +68,7 @@ typedef struct {
|
||||
gboolean omnipresent_off;
|
||||
gboolean desktop_current;
|
||||
gboolean desktop_other;
|
||||
+ gboolean desktop_last;
|
||||
guint desktop_number;
|
||||
guint screendesktop_number;
|
||||
guint client_monitor;
|
||||
@@ -192,8 +193,10 @@ static void setup_query(Options* o, xmlNodePtr node, QueryTarget target) {
|
||||
if ((s = obt_xml_node_string(n))) {
|
||||
if (!g_ascii_strcasecmp(s, "current"))
|
||||
q->desktop_current = TRUE;
|
||||
- if (!g_ascii_strcasecmp(s, "other"))
|
||||
+ else if (!g_ascii_strcasecmp(s, "other"))
|
||||
q->desktop_other = TRUE;
|
||||
+ else if (!g_ascii_strcasecmp(s, "last"))
|
||||
+ q->desktop_last = TRUE;
|
||||
else
|
||||
q->desktop_number = atoi(s);
|
||||
g_free(s);
|
||||
@@ -392,6 +395,8 @@ static gboolean run_func_if(ObActionsData *data, gpointer options)
|
||||
is_true &= is_on_current_desktop;
|
||||
if (q->desktop_other)
|
||||
is_true &= !is_on_current_desktop;
|
||||
+ if (q->desktop_last)
|
||||
+ is_true &= query_target->desktop == screen_last_desktop;
|
||||
|
||||
if (q->desktop_number) {
|
||||
gboolean is_on_desktop =
|
||||
--
|
||||
1.9.1
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
Description: Fix spelling-error-in-binary
|
||||
Author: Mateusz Łukasik <mati75@linuxmint.pl>
|
||||
Last-Update: 2016-11-23
|
||||
|
||||
--- a/openbox/openbox.c
|
||||
+++ b/openbox/openbox.c
|
||||
@@ -602,7 +602,7 @@ static void parse_env(void)
|
||||
if (ob_sm_id) g_free(ob_sm_id);
|
||||
ob_sm_id = g_strdup(id);
|
||||
ob_debug_type(OB_DEBUG_SM,
|
||||
- "DESKTOP_AUTOSTART_ID %s supercedes --sm-client-id\n",
|
||||
+ "DESKTOP_AUTOSTART_ID %s supersedes --sm-client-id\n",
|
||||
ob_sm_id);
|
||||
}
|
||||
}
|
||||
--- a/openbox/session.c
|
||||
+++ b/openbox/session.c
|
||||
@@ -442,7 +442,7 @@ static void sm_save_yourself(SmcConn con
|
||||
free(vendor);
|
||||
|
||||
if (!SmcRequestSaveYourselfPhase2(conn, sm_save_yourself_2, savedata)) {
|
||||
- ob_debug_type(OB_DEBUG_SM, "Requst for phase 2 failed");
|
||||
+ ob_debug_type(OB_DEBUG_SM, "Request for phase 2 failed");
|
||||
g_slice_free(ObSMSaveData, savedata);
|
||||
SmcSaveYourselfDone(conn, FALSE);
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
#03_place_windows_in_quadrants.patch ## Needs to be ported on 3.5.2
|
||||
01_rc.xml.patch
|
||||
02_fix_freedesktop_compliance.patch
|
||||
04_fix_xml_load_file.patch
|
||||
05_openbox-3.5.0-title-matching.patch
|
||||
06_openbox-3.5.0-which-2.20.patch
|
||||
07_update_desktop.patch
|
||||
08_autostart-fix.patch
|
||||
704724_fix_refers-to-autostart.sh.patch
|
||||
719620_fix_show_startup_notification.patch
|
||||
754207_use-scrot.patch
|
||||
808138_Replace-getgrent-with-getgroups.patch
|
||||
d9a405e9.patch
|
||||
fix-spelling-error-in-binary.patch
|
|
@ -0,0 +1,43 @@
|
|||
#!/usr/bin/make -f
|
||||
|
||||
export DEB_LDFLAGS_MAINT_APPEND=-Wl,--as-needed -Wl,-O1 -Wl,-z,defs
|
||||
export DEB_BUILD_MAINT_OPTIONS=hardening=+all
|
||||
|
||||
CFLAGS +=-Wall -g -fPIC
|
||||
CPPFLAGS:=$(shell dpkg-buildflags --get CPPFLAGS)
|
||||
|
||||
ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
|
||||
CFLAGS += -O0
|
||||
else
|
||||
CFLAGS += -O2
|
||||
endif
|
||||
|
||||
VERSION=$(shell awk '/^PACKAGE_VERSION/ { print $$2 }' "FS='" configure)
|
||||
|
||||
%:
|
||||
dh $@
|
||||
|
||||
override_dh_auto_configure:
|
||||
dh_auto_configure -- --enable-librsvg --disable-silent-rules
|
||||
|
||||
override_dh_auto_build:
|
||||
#pod2man --section=1 --release=$(VERSION) --center \
|
||||
# "Openbox documentation" debian/kdetrayproxy.pod > kdetrayproxy.1
|
||||
pod2man --section=1 --release=$(VERSION) --center \
|
||||
"Openbox documentation" debian/gnome-panel-control.pod > \
|
||||
gnome-panel-control.1
|
||||
pod2man --section=1 --release=$(VERSION) --center \
|
||||
"Openbox documentation" debian/gdm-control.pod > \
|
||||
gdm-control.1
|
||||
dh_auto_build
|
||||
|
||||
override_dh_install:
|
||||
dh_install --list-missing
|
||||
find debian/tmp/usr/lib*/ -name "*.la" -delete
|
||||
|
||||
override_dh_auto_clean:
|
||||
rm -f openbox.1
|
||||
#rm -f kdetrayproxy.1
|
||||
rm -f gnome-panel-control.1
|
||||
rm -f gdm-control.1
|
||||
dh_auto_clean
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue