rm the data dir
This commit is contained in:
parent
c84b844e94
commit
b6b501196e
18 changed files with 0 additions and 906 deletions
|
@ -1,3 +0,0 @@
|
|||
Makefile
|
||||
Makefile.in
|
||||
menu
|
|
@ -1,16 +0,0 @@
|
|||
#SUBDIRS = styles buttons
|
||||
CLEANFILES = menu
|
||||
MAINTAINERCLEANFILES = Makefile.in
|
||||
|
||||
EXTRA_DIST = README.menu menu.in
|
||||
|
||||
data_DATA = menu
|
||||
|
||||
distclean-local:
|
||||
$(RM) *\~ .\#*
|
||||
|
||||
menu: $(srcdir)/menu.in
|
||||
$(SED) -e "s!@datadir@!$(datadir)!" $< > $@
|
||||
|
||||
uninstall-am:
|
||||
$(RM) $(DESTDIR)$(datadir)/menu
|
20
data/README
20
data/README
|
@ -1,20 +0,0 @@
|
|||
The data/ directory holds some menu and style (or theme) examples for Openbox.
|
||||
|
||||
The styles are installed as system defaults, and are ALWAYS overwritten when
|
||||
upgrading or otherwise re-installing Openbox. Changes to them are
|
||||
discouraged, because of this reason.
|
||||
|
||||
In the data/ directory, you will find a directory named `styles.' These are
|
||||
the system defaults that are installed when Openbox is built, and they are
|
||||
intended as examples on how to customize and control the appearance of Openbox.
|
||||
In the event that a user does not have a defined style, Openbox falls back on
|
||||
the example styles included here.
|
||||
|
||||
Also in the data/ directory is a file named `menu'. This is meant as an
|
||||
example but is also installed if make install detects that no menu exists.
|
||||
If openbox is ever started without a valid menu the user will get a backup
|
||||
menu which gives the ability to launch a xterm and exit the window manager.
|
||||
|
||||
For information on creating/editing a menu, see the file README.menu.
|
||||
|
||||
For information on creating/editing a style, see the file README.style.
|
369
data/README.menu
369
data/README.menu
|
@ -1,369 +0,0 @@
|
|||
Creating a user defined menu:
|
||||
-----------------------------
|
||||
Creating a menu for Openbox requires a text editor of some sort. Familiarity
|
||||
with your choice of text editor is assumed, since editor preference differs
|
||||
as much (if not more than) window manager preference.
|
||||
|
||||
First, we need to decide on a location for our custom menu. Your home
|
||||
directory is the most logical solution, since you will most likely not have
|
||||
write access anywhere else. You place the menu file in any directory, and
|
||||
give it any name you choose, as we will later tell Openbox the path or
|
||||
location for this file.
|
||||
|
||||
As an example, let's assume that my home directory is `/home/bhughes' (which it
|
||||
is). I've decided to keep all my Openbox related files in a directory named
|
||||
`openbox.' After creating the directory, I now have two options for creating
|
||||
my new menu. I can either copy the system default (usually in
|
||||
`/usr/local/share/Openbox/menu') to this directory, or I can create a new
|
||||
one from scratch. Let's do the latter, for the sake of completeness.
|
||||
|
||||
I've decided to name the file `rootmenu.' I fire up my favorite text editor
|
||||
and now have a clean file. So let's begin.
|
||||
|
||||
|
||||
Menu syntax:
|
||||
------------
|
||||
The menu syntax is very simple and very effective. There are upto three
|
||||
fields in a menu line. They are of the form:
|
||||
|
||||
[tag] (label or filename) {command or filename}
|
||||
|
||||
The supported tags are as follows:
|
||||
|
||||
[begin] (label for root menu)
|
||||
|
||||
This tells Openbox to start parsing the menu file. This tag is
|
||||
required for Openbox to parse your menu file. If it cannot find it,
|
||||
the system default menu is used instead.
|
||||
|
||||
[end]
|
||||
|
||||
This tells Openbox that it is at the end of a menu. This can either
|
||||
be a submenu or the main root menu. There must be at least one
|
||||
of these tags in your menu to correspond to the required [begin] tag.
|
||||
|
||||
[exec] (label for command) {shell command}
|
||||
|
||||
This tells Openbox to insert a command item into the menu. When you
|
||||
select the menu item from the menu, Openbox runs `shell command.'
|
||||
|
||||
[exit] (label for exit)
|
||||
|
||||
This tells Openbox to insert an item that shuts down and exits
|
||||
Openbox. Any open windows are reparented to the root window before
|
||||
Openbox exits.
|
||||
|
||||
[include] (filename)
|
||||
|
||||
This tells Openbox to parse the file specified by `filename' inline
|
||||
with the current menu. `filename' can be the full path to a file
|
||||
(such as /usr/local/share/Openbox/brueghel/stylesmenu) or it can
|
||||
begin with `~/', which will be expanded into your home directory
|
||||
(e.g. [include] (~/.openbox/stylesmenu) will include
|
||||
/home/bhughes/.openbox/stylesmenu in my menu)
|
||||
|
||||
[nop] (label - optional)
|
||||
|
||||
This tells Openbox to insert a non-operational item into the current
|
||||
menu. This can be used to help format the menu into blocks or sections
|
||||
if so desired (e.g. you could put all your ssh accounts together, add
|
||||
a [nop] and then add all your telnet accounts together). [nop] does
|
||||
accept a label, but it is not required, and a blank item will be used
|
||||
if none is supplied.
|
||||
|
||||
[style] (label) {filename}
|
||||
|
||||
This tells Openbox to read `filename' and apply the new textures,
|
||||
colors and fonts to the current running session. The filename is
|
||||
just like the [include] tag, it can be the full path to the file,
|
||||
or it can be of the form `~/path/from/home/dir.' Openbox also
|
||||
re-reads the entire menu structure from disk, incase the menu has
|
||||
changed.
|
||||
|
||||
[submenu] (label) {title for menu - optional}
|
||||
|
||||
This tells Openbox to create and parse a new menu. This menu is
|
||||
inserted as a submenu into the parent menu. These menus are parsed
|
||||
recursively, so there is no limit to the number of levels or nested
|
||||
submenus you can have. The title for the new menu is optional, if
|
||||
none is supplied, the new menu's title is the same as the item label.
|
||||
|
||||
[reconfig] (label)
|
||||
|
||||
This tells Openbox to reread the current style and menu files and
|
||||
apply any changes. This is useful for creating a new style or theme,
|
||||
as you don't have to constantly restart Openbox every time you save
|
||||
your style.
|
||||
|
||||
[restart] (label) {shell command - optional}
|
||||
|
||||
This tells Openbox to restart. If `shell command' is supplied, it
|
||||
shuts down and runs the command (which is commonly the name of another
|
||||
window manager). If the command is omitted, Openbox restarts itself.
|
||||
|
||||
[workspaces] (label)
|
||||
|
||||
This tells Openbox to insert a "link" to the workspaces menu directly
|
||||
into your menu. This is handy for those users who can't access the
|
||||
workspace menu directly (e.g. if you don't have a 3 button mouse, it's
|
||||
rather hard to middle click to show the workspace menu). This is a
|
||||
"link" to the systems workspace menu, so multiple [workspaces] tags
|
||||
will display the same workspace menu, so expect it to move around if
|
||||
you do so. ;)
|
||||
|
||||
[config] (label)
|
||||
|
||||
This tells Openbox to insert the ConfigMenu into your menu. From
|
||||
this menu you can configure several options stored in your
|
||||
~/.openbox/rc, and the changes take effect immediately.
|
||||
|
||||
Comments may be inserted on any line of the file, as long as the first
|
||||
character on the line is a `#.'
|
||||
|
||||
Also, in the labels/commands/filenames fields, you can escape any character
|
||||
like so:
|
||||
|
||||
[exec] (\(my cool\) \{XTERM\}) {\(xterm -T \\\"cool XTERM\\\"\)}
|
||||
|
||||
Using `\\' inserts a literal back-slash into the label/command/filename field.
|
||||
|
||||
|
||||
Putting it all together:
|
||||
------------------------
|
||||
Alrighty, so let's see if we can understand the arcane incantation above. It
|
||||
says we have to have a [begin] and an [end] tag, which create our menu and
|
||||
give it a title. Let's do that first:
|
||||
|
||||
|
||||
[begin] (Example \[Menu\])
|
||||
|
||||
[end]
|
||||
|
||||
Simple enough. Now let's add some items to the list. We always want to have
|
||||
access to a terminal emulator, be it a regular xterm or something else.
|
||||
So we add the item to our menu, and it now looks like this:
|
||||
|
||||
...
|
||||
[begin] (Example \[Menu\])
|
||||
[exec] (xterm) {xterm -ls}
|
||||
[end]
|
||||
...
|
||||
|
||||
Great! Now let's add us some items to run an irc client, a web browser and
|
||||
some other common programs. This gives up this:
|
||||
|
||||
...
|
||||
[begin] (Example \[Menu\])
|
||||
[exec] (xterm) {xterm -ls}
|
||||
[exec] (efnet irc) {xterm -e irc fnord irc.efnet.net}
|
||||
[exec] (Mozilla Navigator) {mozilla}
|
||||
[exec] (XEmacs) {xemacs}
|
||||
[exec] (The GIMP) {gimp}
|
||||
[exec] (Video Tune) {xvidtune}
|
||||
[end]
|
||||
...
|
||||
|
||||
Whoa, wait a second. This menu file is beginning to look a little cluttered.
|
||||
Not a problem, just like programmers indent and space their code, we can
|
||||
do this with our menu file, so let's clean it up a bit:
|
||||
|
||||
...
|
||||
[begin] (Example \[Menu\])
|
||||
[exec] (xterm) {xterm -ls}
|
||||
[exec] (efnet irc) {xterm -e irc fnord irc.efnet.net}
|
||||
|
||||
[exec] (Mozilla Navigator) {mozilla}
|
||||
[exec] (XEmacs) {xemacs}
|
||||
|
||||
[exec] (Konqueror) {konqueror}
|
||||
[exec] (The GIMP) {gimp}
|
||||
|
||||
[exec] (Video Tune) {xvidtune}
|
||||
[end]
|
||||
...
|
||||
|
||||
Ahh... now that looks a little better. Now we decide that we kind of like the
|
||||
spacing in the file, and decide we want to apply it to the menu itself. Now
|
||||
we take advantage of the [nop] tag:
|
||||
|
||||
...
|
||||
[begin] (Example \[Menu\])
|
||||
[exec] (xterm) {xterm -ls}
|
||||
[exec] (efnet irc) {xterm -e irc fnord irc.efnet.net}
|
||||
|
||||
[nop]
|
||||
|
||||
[exec] (Mozilla Navigator) {mozilla}
|
||||
[exec] (XEmacs) {xemacs}
|
||||
|
||||
[nop]
|
||||
|
||||
[exec] (Konqueror) {konqueror}
|
||||
[exec] (The GIMP) {gimp}
|
||||
|
||||
[nop]
|
||||
|
||||
[exec] (Video Tune) {xvidtune}
|
||||
[end]
|
||||
...
|
||||
|
||||
Now, let's create a submenu to put some items to change between all these
|
||||
themes we downloaded from http://bb.classic.themes.org/. Let's assume we
|
||||
untarred the themes into the ~/.openbox directory like the documentation on
|
||||
the themes.org site recommends.
|
||||
|
||||
...
|
||||
[begin] (Example \[Menu\])
|
||||
[exec] (xterm) {xterm -ls}
|
||||
[exec] (efnet irc) {xterm -e irc fnord irc.efnet.net}
|
||||
|
||||
[nop]
|
||||
|
||||
[exec] (Mozilla Navigator) {mozilla}
|
||||
[exec] (XEmacs) {xemacs}
|
||||
|
||||
[nop]
|
||||
|
||||
[exec] (Konqueror) {konqueror}
|
||||
[exec] (The GIMP) {gimp}
|
||||
|
||||
[nop]
|
||||
|
||||
[exec] (Video Tune) {xvidtune}
|
||||
|
||||
[submenu] (Themes) {Themes from bb.classic.themes.org}
|
||||
[style] (Openbox) {~/.openbox/styles/openbox}
|
||||
[style] (Openbox II) {~/.openbox/styles/openbox2}
|
||||
[style] (Hardware) {~/.openbox/styles/hardware}
|
||||
[style] (Nova) {~/.openbox/styles/nova}
|
||||
[style] (Orbital) {~/.openbox/styles/orbital}
|
||||
[style] (Orbital II) {~/.openbox/styles/orbital2}
|
||||
[style] (Seething) {~/.openbox/styles/seething}
|
||||
[style] (Zero) {~/.openbox/styles/zero}
|
||||
[style] (Cold Fusion) {~/.openbox/styles/coldfusion}
|
||||
[end]
|
||||
[end]
|
||||
...
|
||||
|
||||
Even better. Now hold on a second, if we have our themes and styles in
|
||||
~/.openbox why do we have to have our menu in ~/openbox? Answer: WE DON'T!
|
||||
This is where the choice comes. Do we keep our stuff in two separate
|
||||
directories? Do we put it all in one directory? That is up to you to decide.
|
||||
I personally prefer to keep everything in one directory (but, I use ~/.openbox
|
||||
and have been for a long, long time; long before bb.classic.themes.org was
|
||||
even thought of... and again that is *personal* preference, not a hard-fast
|
||||
rule).
|
||||
|
||||
Now that we've gotten a feel for the menu syntax, we decide to finish off our
|
||||
menu. In addition to the styles we downloaded, we decide we also want to
|
||||
keep a submenu for the default styles that came with Openbox. All we need
|
||||
to do is [include] the styles file from the share directory for Openbox.
|
||||
After putting everything together, we have:
|
||||
|
||||
|
||||
...
|
||||
# custom menu file for Openbox
|
||||
|
||||
[begin] (Example \[Menu\])
|
||||
[exec] (xterm) {xterm -ls}
|
||||
[exec] (efnet irc) {xterm -e irc fnord irc.efnet.net}
|
||||
|
||||
[nop]
|
||||
|
||||
[exec] (Mozilla Browser) {mozilla}
|
||||
[exec] (Konqueror) {konqueror}
|
||||
[exec] (XEmacs) {xemacs}
|
||||
|
||||
[nop]
|
||||
|
||||
[exec] (The GIMP) {gimp}
|
||||
|
||||
[nop]
|
||||
|
||||
[exec] (Video Tune) {xvidtune}
|
||||
|
||||
[nop] (...)
|
||||
|
||||
[submenu] (Themes) {Themes from bb.classic.themes.org}
|
||||
[style] (Openbox) {~/.openbox/styles/openbox}
|
||||
[style] (Openbox II) {~/.openbox/styles/openbox2}
|
||||
[style] (Hardware) {~/.openbox/styles/hardware}
|
||||
[style] (Nova) {~/.openbox/styles/nova}
|
||||
[style] (Orbital) {~/.openbox/styles/orbital}
|
||||
[style] (Orbital II) {~/.openbox/styles/orbital2}
|
||||
[style] (Seething) {~/.openbox/styles/seething}
|
||||
[style] (Zero) {~/.openbox/styles/zero}
|
||||
[style] (Cold Fusion) {~/.openbox/styles/coldfusion}
|
||||
|
||||
# include the default style menu... this is assuming Openbox was installed
|
||||
# into /usr/local
|
||||
|
||||
[nop]
|
||||
|
||||
[include] (/usr/local/share/Openbox/styles/stylesmenu)
|
||||
[end]
|
||||
|
||||
[workspaces] (Workspace list)
|
||||
|
||||
[submenu] (Restart) {Restart which?}
|
||||
[restart] (Openbox)
|
||||
|
||||
# let's also give us access to some other window managers
|
||||
|
||||
[restart] (Window Maker) {wmaker}
|
||||
[restart] (Enlightenment) {enlightenment}
|
||||
[restart] (KWM) {kwm}
|
||||
[restart] (TWM) {twm}
|
||||
[end]
|
||||
|
||||
[nop] (...)
|
||||
|
||||
[reconfig] (Reconfigure)
|
||||
[exit] (Quit!)
|
||||
[end]
|
||||
...
|
||||
|
||||
And voila! our menu file is finished. Now we need to tell Openbox to read
|
||||
this menu file. We do this by editing the file ~/.openbox/rc.
|
||||
|
||||
NOTE: your ~/.openbox/rc is auotmatically updated every time Openbox restarts,
|
||||
reconfigures, changes styles or exits. Changes to dynamic data like workspace
|
||||
count, names, etc. is lost. About the only thing you can change and have it
|
||||
preserved is the menu filename, which is what we are about to change.
|
||||
|
||||
The format of ~/.openbox/rc is in the X resource database format (just like
|
||||
~/.Xdefaults). Since the file is updated automatically, it may be full of
|
||||
stuff or it may not even exist (especially if this is the first time we've
|
||||
ran Openbox). Don't worry if you have to create ~/.openbox/rc, Openbox will
|
||||
see the file the next time it starts.
|
||||
|
||||
What we need to do is change the resource for the menu's filename. This is
|
||||
done by changing (or adding) the line that looks like so:
|
||||
|
||||
...
|
||||
session.menuFile: /path/to/some/file
|
||||
...
|
||||
|
||||
If this resource exists, we change it. If it does not, we add it. Depending
|
||||
on where we put the menu file, our new resource could look like this:
|
||||
|
||||
...
|
||||
session.menuFile: /home/bhughes/.openbox/rootmenu
|
||||
...
|
||||
|
||||
We save ~/.openbox/rc and then restart Openbox (reconfiguring doesn't work,
|
||||
we need Openbox to completely shutdown and reread ALL of it's configuration
|
||||
files, not just the ones that control colors/fonts/etc.)
|
||||
|
||||
If we've done everything correctly, Openbox restarts itself and our new menu
|
||||
is now ready for use. If something doesn't work, read over the above example
|
||||
again to make sure you didn't forget a step or leave out the necessary tags.
|
||||
|
||||
Now that Openbox has been told where to find it's menu, it does a little more.
|
||||
Openbox 0.51.x introduced automagic menu updates. As long as you never
|
||||
change session.menuFile, you will never have to restart or reconfigure Openbox
|
||||
whenever you change your menu. Openbox watches the timestamps on all the
|
||||
files it reads to build your menu. If any of them change, they are reread and
|
||||
your menu updated. This check is done everytime you open the root menu. Like
|
||||
I said... it is a check, it doesn't reread the menu everytime, it just looks
|
||||
at the modification time and rereads when it changes.
|
|
@ -1,326 +0,0 @@
|
|||
Creating a new style (aka "theme"):
|
||||
-----------------------------------
|
||||
After getting Openbox up and running, the next thing you want to do is change
|
||||
the colors/fonts/etc. on the screen. Openbox uses a "style" to read its
|
||||
configuration information. A style in Openbox consists of X resources placed
|
||||
in a file. Just like the menu file (see README.menu), the style file can be
|
||||
put anywhere on the filesystem; as long as you have read access to the file,
|
||||
Openbox can use it.
|
||||
|
||||
First, we need to decide where to put our style file, and what to name it.
|
||||
I recommend using the naming scheme described on http://bb.classic.themes.org/
|
||||
when creating styles.
|
||||
|
||||
Let's get started. Let's put our new style into a file named `results.'
|
||||
Following the themes.org naming scheme, this file will go into
|
||||
.openbox/styles. Same as with the menu file, we use our favorite text editor
|
||||
to create the new style.
|
||||
|
||||
X resources consist of a key and a value. The key is constructed of several
|
||||
smaller keys, delimited by a period (`.'). Keys may also contain a star (`*')
|
||||
to serve as a wildcard, which means that one line of typed text will match
|
||||
several keys. This is useful for styles that are based on one or two colors.
|
||||
|
||||
Openbox allows you to configure it's three main components: the toolbar, the
|
||||
menus and the window decorations. Lets begin by creating a style for our
|
||||
toolbar.
|
||||
|
||||
First we need to define a "texture" for the toolbar and it's components.
|
||||
Textures tell Openbox how to mold or shape the colors we supply.
|
||||
|
||||
A texture is comprised of the following elements:
|
||||
|
||||
Raised / Sunken / Flat give the component a raised, sunken
|
||||
or flat appearance (respectively)
|
||||
|
||||
Solid / Gradient tell Openbox whether to draw a solid
|
||||
or gradiented texture
|
||||
|
||||
Interlaced tells Openbox to interlace a
|
||||
gradient (and gradient ONLY) texture
|
||||
|
||||
Bevel1 / Bevel2 tells Openbox which type of bevel
|
||||
to use.
|
||||
|
||||
NOTE on Bevel1 / Bevel2:
|
||||
|
||||
Bevel1 is the default bevel. The shading is placed on the edge of the image.
|
||||
Bevel2 is an alternative. The shading is placed one pixel in from the edge
|
||||
of the image.
|
||||
|
||||
Now that we understand that, let's define the textures for the toolbar. The
|
||||
toolbar has a main frame, buttons, two labels and a clock label. The buttons
|
||||
have 2 states, so we provide textures for both the normal and the pressed
|
||||
state.
|
||||
|
||||
...
|
||||
toolbar: Raised Diagonal Gradient Bevel1
|
||||
toolbar.button: Raised Diagonal Gradient Bevel1
|
||||
toolbar.button.pressed: Sunken Diagonal Interlaced Gradient Bevel1
|
||||
toolbar.clock: Flat Interlaced Gradient
|
||||
toolbar.label: Flat Interlaced Gradient
|
||||
...
|
||||
|
||||
NOTE: the texture strings don't have to be capitalized like they did in
|
||||
previous versions. They are still placed in capitals here, because things like
|
||||
the bbtools still use the old method.
|
||||
|
||||
Next we define colors for the textures. Colors can be any valid X colorname
|
||||
(from the RGB database) or it can be a color specifier, as described by
|
||||
'man 1 X.'
|
||||
|
||||
Let's see how our file looks after adding colors:
|
||||
|
||||
...
|
||||
toolbar: Raised Diagonal Gradient Bevel1
|
||||
toolbar.button: Raised Diagonal Gradient Bevel1
|
||||
toolbar.button.pressed: Sunken Diagonal Interlaced Gradient Bevel1
|
||||
toolbar.clock: Flat Interlaced Gradient
|
||||
toolbar.label: Flat Interlaced Gradient
|
||||
|
||||
toolbar.color: rgb:8/8/7
|
||||
toolbar.colorTo: grey20
|
||||
toolbar.button.color: grey
|
||||
toolbar.button.colorTo: grey20
|
||||
toolbar.button.pressed.color: rgb:4/4/38
|
||||
toolbar.button.pressed.colorTo: rgb:f/f/d
|
||||
toolbar.clock.color: grey20
|
||||
toolbar.clock.colorTo: rgb:8/8/7
|
||||
toolbar.label.color: grey20
|
||||
toolbar.label.colorTo: rgb:8/8/7
|
||||
toolbar.textColor: grey85
|
||||
...
|
||||
|
||||
As you have noticed, all textures have a color and a colorTo key. These keys
|
||||
are required for gradient images. For solids, only color is needed. You will
|
||||
also notice that we have supplied the color for the text on the toolbar. Not
|
||||
all textures have a text color, just certain base textures.
|
||||
|
||||
Next, let's move onto the menus. Since Openbox was written in C++, all of
|
||||
the menus used in it are subclasses of one generic base class. Openbox reads
|
||||
the style for the configuration for that base class, which applies to all
|
||||
the menus used in Openbox.
|
||||
|
||||
The menu has two main parts, the title and the frame. There is nothing
|
||||
visible under them, so we only configure these two components. The menu frame
|
||||
and menu title BOTH have a configurable text color, and the menu frame has a
|
||||
highlight color and the corresponding highlighted text color key. Let's assign
|
||||
some textures and colors to our menu, and see what our style file looks like
|
||||
so far:
|
||||
|
||||
...
|
||||
toolbar: Raised Diagonal Gradient Bevel1
|
||||
toolbar.button: Raised Diagonal Gradient Bevel1
|
||||
toolbar.button.pressed: Sunken Diagonal Interlaced Gradient Bevel1
|
||||
toolbar.clock: Flat Interlaced Gradient
|
||||
toolbar.label: Flat Interlaced Gradient
|
||||
|
||||
toolbar.color: rgb:8/8/7
|
||||
toolbar.colorTo: grey20
|
||||
toolbar.button.color: grey
|
||||
toolbar.button.colorTo: grey20
|
||||
toolbar.button.pressed.color: rgb:4/4/38
|
||||
toolbar.button.pressed.colorTo: rgb:f/f/d
|
||||
toolbar.clock.color: grey20
|
||||
toolbar.clock.colorTo: rgb:8/8/7
|
||||
toolbar.label.color: grey20
|
||||
toolbar.label.colorTo: rgb:8/8/7
|
||||
toolbar.textColor: grey85
|
||||
|
||||
menu.title: Raised Diagonal Interlaced Gradient Bevel1
|
||||
menu.frame: Raised Diagonal Gradient Bevel1
|
||||
|
||||
menu.title.color: grey20
|
||||
menu.title.colorTo: rgb:8/8/7
|
||||
menu.title.textColor: grey85
|
||||
menu.frame.color: rgb:8/8/7
|
||||
menu.frame.colorTo: grey10
|
||||
menu.frame.textColor: white
|
||||
menu.frame.highlightColor: grey85
|
||||
menu.frame.hiTextColor: grey20
|
||||
...
|
||||
|
||||
Next, we need to configure our windows. Windows are like buttons, they have
|
||||
two states, focused and unfocused. There for we define a separate texture
|
||||
for unfocused windows and focused windows. The buttons on the titlebar
|
||||
are focus dependant also, so we need to configure them as well. The buttons
|
||||
only have one "pressed" state, so we only have to define that once, instead of
|
||||
having a focus.pressed state and an unfocus.pressed state. The window frame
|
||||
is the thin border around the client window. Let's be sure to catch it as well.
|
||||
|
||||
After adding the window config, our style now looks like this:
|
||||
|
||||
...
|
||||
|
||||
toolbar: Raised Diagonal Gradient Bevel1
|
||||
toolbar.button: Raised Diagonal Gradient Bevel1
|
||||
toolbar.button.pressed: Sunken Diagonal Interlaced Gradient Bevel1
|
||||
toolbar.clock: Flat Interlaced Gradient
|
||||
toolbar.label: Flat Interlaced Gradient
|
||||
|
||||
toolbar.color: rgb:8/8/7
|
||||
toolbar.colorTo: grey20
|
||||
toolbar.button.color: grey
|
||||
toolbar.button.colorTo: grey20
|
||||
toolbar.button.pressed.color: rgb:4/4/38
|
||||
toolbar.button.pressed.colorTo: rgb:f/f/d
|
||||
toolbar.clock.color: grey20
|
||||
toolbar.clock.colorTo: rgb:8/8/7
|
||||
toolbar.label.color: grey20
|
||||
toolbar.label.colorTo: rgb:8/8/7
|
||||
toolbar.textColor: grey85
|
||||
|
||||
menu.title: Raised Diagonal Interlaced Gradient Bevel1
|
||||
menu.frame: Raised Diagonal Gradient Bevel1
|
||||
|
||||
menu.title.color: grey20
|
||||
menu.title.colorTo: rgb:8/8/7
|
||||
menu.title.textColor: grey85
|
||||
menu.frame.color: rgb:8/8/7
|
||||
menu.frame.colorTo: grey10
|
||||
menu.frame.textColor: white
|
||||
menu.frame.highlightColor: grey85
|
||||
menu.frame.hiTextColor: grey20
|
||||
|
||||
window.focus: Raised Diagonal Interlaced Gradient Bevel1
|
||||
window.focus.button: Raised Diagonal Gradient Bevel1
|
||||
window.unfocus: Raised Diagonal Gradient Bevel1
|
||||
window.unfocus.button: Sunken Diagonal Gradient Bevel1
|
||||
window.button.pressed: Flat Diagonal Interlaced Gradient
|
||||
window.frame: Raised Solid Bevel1
|
||||
|
||||
window.focus.color: grey
|
||||
window.focus.colorTo: grey20
|
||||
window.focus.textColor: grey85
|
||||
window.focus.button.color: grey
|
||||
window.focus.button.colorTo: grey20
|
||||
window.unfocus.color: rgb:8/8/7
|
||||
window.unfocus.colorTo: grey20
|
||||
window.unfocus.textColor: grey
|
||||
window.unfocus.button.color: grey20
|
||||
window.unfocus.button.colorTo: grey
|
||||
window.button.pressed.color: rgb:4/4/38
|
||||
window.button.pressed.colorTo: rgb:f/f/d
|
||||
window.frame.color: grey85
|
||||
...
|
||||
|
||||
Now all we have to do is finish off the style with a few miscellanous options.
|
||||
These include the title and menu fonts/justification, border color, bevel and
|
||||
handle widths, window move style and the root command.
|
||||
|
||||
Fonts must be a valid X11 font screen, or a valid font alias. Use a utility
|
||||
like `xfontsel' (and others) to preview fonts. Also use the utility
|
||||
`xlsfonts' to spit out all the current X font names and aliases stored in
|
||||
the X server.
|
||||
|
||||
Justification can be one of three things: LeftJustify, CenterJustify or
|
||||
RightJustify.
|
||||
|
||||
The border color is the color applied to the 1 pixel border around the menu
|
||||
frame/title and the window titlebar/buttons/handle/etc. Setting this color
|
||||
can have drastic effects on your style, so don't just leave it set to `black'
|
||||
all the time. ;)
|
||||
|
||||
The bevel and handle widths control the size and spacing of decorations in
|
||||
Openbox. The larger the number, the more space Openbox takes up.
|
||||
|
||||
The window move style tells Openbox how to move windows when you drag them
|
||||
with your mouse. There are two options for it: Opaque or Wire.
|
||||
|
||||
The root command is the command run every time the style is loaded (either at
|
||||
startup or after a reconfigure/style-change). It is used to run a program
|
||||
like xv, Esetroot, wmsetbg, etc. to set an image/color/pattern on the root
|
||||
window. Just supply a command and it will be run.
|
||||
|
||||
Also, as a note, an X resource file can have comments. Precede the line with
|
||||
and exclamation mark `!' and the rest of the line will be ignored.
|
||||
|
||||
Let's finish off the details and take a look at our finished style:
|
||||
|
||||
...
|
||||
! Results - theme for Openbox
|
||||
! by Brad Hughes bhughes@tcac.net
|
||||
|
||||
toolbar: Raised Diagonal Gradient Bevel1
|
||||
toolbar.button: Raised Diagonal Gradient Bevel1
|
||||
toolbar.button.pressed: Sunken Diagonal Interlaced Gradient Bevel1
|
||||
toolbar.clock: Flat Interlaced Gradient
|
||||
toolbar.label: Flat Interlaced Gradient
|
||||
|
||||
! toolbar colors
|
||||
toolbar.color: rgb:8/8/7
|
||||
toolbar.colorTo: grey20
|
||||
toolbar.button.color: grey
|
||||
toolbar.button.colorTo: grey20
|
||||
toolbar.button.pressed.color: rgb:4/4/38
|
||||
toolbar.button.pressed.colorTo: rgb:f/f/d
|
||||
toolbar.clock.color: grey20
|
||||
toolbar.clock.colorTo: rgb:8/8/7
|
||||
toolbar.label.color: grey20
|
||||
toolbar.label.colorTo: rgb:8/8/7
|
||||
toolbar.textColor: grey85
|
||||
|
||||
! menu textures
|
||||
menu.title: Raised Diagonal Interlaced Gradient Bevel1
|
||||
menu.frame: Raised Diagonal Gradient Bevel1
|
||||
|
||||
! menu colors
|
||||
menu.title.color: grey20
|
||||
menu.title.colorTo: rgb:8/8/7
|
||||
menu.title.textColor: grey85
|
||||
menu.frame.color: rgb:8/8/7
|
||||
menu.frame.colorTo: grey10
|
||||
menu.frame.textColor: white
|
||||
menu.frame.highlightColor: grey85
|
||||
menu.frame.hiTextColor: grey20
|
||||
|
||||
! window textures
|
||||
window.focus: Raised Diagonal Interlaced Gradient Bevel1
|
||||
window.focus.button: Raised Diagonal Gradient Bevel1
|
||||
window.unfocus: Raised Diagonal Gradient Bevel1
|
||||
window.unfocus.button: Sunken Diagonal Gradient Bevel1
|
||||
window.button.pressed: Flat Diagonal Interlaced Gradient
|
||||
window.frame: Raised Solid Bevel1
|
||||
|
||||
! window colors
|
||||
window.focus.color: grey
|
||||
window.focus.colorTo: grey20
|
||||
window.focus.textColor: grey85
|
||||
window.focus.button.color: grey
|
||||
window.focus.button.colorTo: grey20
|
||||
window.unfocus.color: rgb:8/8/7
|
||||
window.unfocus.colorTo: grey20
|
||||
window.unfocus.textColor: grey
|
||||
window.unfocus.button.color: grey20
|
||||
window.unfocus.button.colorTo: grey
|
||||
window.button.pressed.color: rgb:4/4/38
|
||||
window.button.pressed.colorTo: rgb:f/f/d
|
||||
window.frame.color: grey85
|
||||
|
||||
! misc...
|
||||
borderColor: rgb:2/2/1c
|
||||
|
||||
moveStyle: Opaque
|
||||
|
||||
menuJustify: CenterJustify
|
||||
titleJustify: CenterJustify
|
||||
|
||||
bevelWidth: 2
|
||||
handleWidth: 4
|
||||
|
||||
menuFont: lucidasans-10
|
||||
titleFont: lucidasans-bold-10
|
||||
|
||||
rootCommand: bsetroot -mod 4 4 -fg rgb:6/6/5c -bg grey20
|
||||
...
|
||||
|
||||
Alright! Our style is finished. Let's see how the sucker looks. First we
|
||||
need to tell Openbox to use the new style. The way to do that is to edit
|
||||
your menu (refer to README.menu for this) and add:
|
||||
|
||||
[style] (Results) {~/.openbox/styles/results}
|
||||
|
||||
somewhere in our menu. Taking advantage of Openbox' automagic menu updates,
|
||||
all we have to do is close and reopen the root menu and our new style entry
|
||||
will be visible. Select it and Openbox will apply the new style we just
|
||||
created.
|
|
@ -1,2 +0,0 @@
|
|||
Makefile
|
||||
Makefile.in
|
|
@ -1,13 +0,0 @@
|
|||
#buttonsdir = $(pkgdatadir)/buttons
|
||||
MAINTAINERCLEANFILES = Makefile.in
|
||||
#buttons_DATA =
|
||||
#fieron-bullet.xbm fieron-bulletl.xbm fieron-close.xbm \
|
||||
#fieron-icon.xbm fieron-max.xbm fieron-stick.xbm \
|
||||
#max.xbm stick.xbm icon.xbm close.xbm
|
||||
|
||||
#EXTRA_DIST = $(buttons_DATA)
|
||||
|
||||
distclean-local:
|
||||
$(RM) *\~ .\#*
|
||||
#uninstall-am:
|
||||
# -rmdir -p $(DESTDIR)$(buttonsdir)
|
|
@ -1,5 +0,0 @@
|
|||
/* Created with The GIMP */
|
||||
#define close_width 8
|
||||
#define close_height 8
|
||||
static unsigned char close_bits[] = {
|
||||
0xc3, 0xe7, 0x7e, 0x3c, 0x3c, 0x7e, 0xe7, 0xc3 };
|
|
@ -1,5 +0,0 @@
|
|||
/* Created with The GIMP */
|
||||
#define bullet_width 8
|
||||
#define bullet_height 8
|
||||
static unsigned char bullet_bits[] = {
|
||||
0x00, 0x18, 0x30, 0x60, 0x60, 0x30, 0x18, 0x00 };
|
|
@ -1,5 +0,0 @@
|
|||
/* Created with The GIMP */
|
||||
#define bulletl_width 8
|
||||
#define bulletl_height 8
|
||||
static unsigned char bulletl_bits[] = {
|
||||
0x00, 0x18, 0x0c, 0x06, 0x06, 0x0c, 0x18, 0x00 };
|
|
@ -1,5 +0,0 @@
|
|||
/* Created with The GIMP */
|
||||
#define close_width 8
|
||||
#define close_height 8
|
||||
static unsigned char close_bits[] = {
|
||||
0x00, 0xc3, 0x66, 0x3c, 0x3c, 0x66, 0xc3, 0x00 };
|
|
@ -1,5 +0,0 @@
|
|||
/* Created with The GIMP */
|
||||
#define icon_width 8
|
||||
#define icon_height 8
|
||||
static unsigned char icon_bits[] = {
|
||||
0x00, 0x00, 0x42, 0x66, 0x3c, 0x18, 0x00, 0x00 };
|
|
@ -1,5 +0,0 @@
|
|||
/* Created with The GIMP */
|
||||
#define max_width 8
|
||||
#define max_height 8
|
||||
static unsigned char max_bits[] = {
|
||||
0x00, 0x00, 0x18, 0x3c, 0x66, 0x42, 0x00, 0x00 };
|
|
@ -1,5 +0,0 @@
|
|||
/* Created with The GIMP */
|
||||
#define stick_width 8
|
||||
#define stick_height 8
|
||||
static unsigned char stick_bits[] = {
|
||||
0x00, 0x66, 0x66, 0x00, 0x00, 0x66, 0x66, 0x00 };
|
|
@ -1,5 +0,0 @@
|
|||
/* Created with The GIMP */
|
||||
#define icon_width 8
|
||||
#define icon_height 8
|
||||
static unsigned char icon_bits[] = {
|
||||
0x00, 0x00, 0xc3, 0xe7, 0x7e, 0x3c, 0x18, 0x00 };
|
|
@ -1,5 +0,0 @@
|
|||
/* Created with The GIMP */
|
||||
#define max_width 8
|
||||
#define max_height 8
|
||||
static unsigned char max_bits[] = {
|
||||
0x7e, 0xff, 0xc3, 0xc3, 0xc3, 0xc3, 0xff, 0x7e };
|
|
@ -1,5 +0,0 @@
|
|||
/* Created with The GIMP */
|
||||
#define stick_width 8
|
||||
#define stick_height 8
|
||||
static unsigned char stick_bits[] = {
|
||||
0x00, 0x00, 0x18, 0x3c, 0x3c, 0x18, 0x00, 0x00 };
|
107
data/menu.in
107
data/menu.in
|
@ -1,107 +0,0 @@
|
|||
# This is the default menu file for Openbox
|
||||
#
|
||||
# Lines beginning with the '#' character are ignored.
|
||||
#
|
||||
# The new syntax is simpler than the old X resource format...
|
||||
# Each menu item consists of 2 or 3 fields:
|
||||
#
|
||||
# [command] (label) {data}
|
||||
#
|
||||
# where [command] is one of:
|
||||
#
|
||||
# [begin] [end] [exec] [exit] [reconfig] [restart]
|
||||
# [submenu] [style] [include] [workspaces] [config]
|
||||
#
|
||||
# [begin] is used for the top level menu
|
||||
# [submenu] is used for submenus
|
||||
# [end] must be used with BOTH [begin] and [submenu] to tell the parser to stop
|
||||
# reading from the file.
|
||||
#
|
||||
# [exec] (label) {string}
|
||||
# This will insert an item that runs a program.
|
||||
#
|
||||
# [exit] (label)
|
||||
# This will insert an item that exits the window manager.
|
||||
#
|
||||
# [reconfig] (label) {string}
|
||||
# This will insert an item that tells Openbox to re-read it's configuration
|
||||
# files. {string} is optional, and if supplied, will execute the string with
|
||||
# /bin/sh -c before the reconfiguration is performed. (this is helpful for
|
||||
# writing multiple config files and switching between them)
|
||||
#
|
||||
# [restart] (label) {string}
|
||||
# This will insert an item to restart the window manager. {string} is
|
||||
# optional, and if omitted, Openbox will restart itself. If {string} is
|
||||
# specified, then a different window manager will be started.
|
||||
#
|
||||
# [style] (filename)
|
||||
# This will insert an item to reconfigure Openbox with the new style. This
|
||||
# change is saved when Openbox exits or restarts.
|
||||
#
|
||||
# [include] (filename)
|
||||
# This will read more menu items from the file "filename". The file cannot
|
||||
# contain a [begin] or [end], except for the [end] needed for submenus.
|
||||
#
|
||||
# [workspaces] (label)
|
||||
# This tells Openbox to insert a "link" to the workspaces menu directly
|
||||
# into your menu.
|
||||
#
|
||||
# [config] (label)
|
||||
# This tells Openbox to insert the ConfigMenu into your menu. The ConfigMenu
|
||||
# allows you to change several options found in your ~/.openbox/rc file on the
|
||||
# fly.
|
||||
#
|
||||
# example:
|
||||
|
||||
[begin] (Openbox)
|
||||
[exec] (xterm) {xterm -ls}
|
||||
[exec] (rxvt) {rxvt}
|
||||
|
||||
[exec] (StarOffice) {soffice}
|
||||
[exec] (XEmacs) {xemacs}
|
||||
[exec] (Acroread) {acroread}
|
||||
|
||||
[submenu] (Graphics)
|
||||
[exec] (The GIMP) {gimp}
|
||||
[exec] (Image Magick) {display}
|
||||
[end]
|
||||
|
||||
[submenu] (Mozilla)
|
||||
[exec] (Mozilla Navigator) {mozilla}
|
||||
[submenu] (More...)
|
||||
[exec] (Mozilla Mail) {mozilla -mail}
|
||||
[exec] (Mozilla News) {mozilla -news}
|
||||
[exec] (Mozilla Composer) {mozilla -edit}
|
||||
[end]
|
||||
[end]
|
||||
|
||||
[submenu] (X Utilities)
|
||||
[exec] (Xfontsel) {xfontsel}
|
||||
[exec] (Xman) {xman}
|
||||
[exec] (Xcalc) {xcalc}
|
||||
[exec] (Xload) {xload}
|
||||
[end]
|
||||
|
||||
[submenu] (Styles) {Choose a style...}
|
||||
[stylesdir] (@datadir@/styles)
|
||||
[end]
|
||||
|
||||
[workspaces] (Workspace List)
|
||||
[config] (Configuration)
|
||||
|
||||
[reconfig] (Reconfigure)
|
||||
[restart] (Restart)
|
||||
[submenu] (Others) {Other Window Managers}
|
||||
[restart] (Start FVWM) {fvwm}
|
||||
[restart] (Start WindowMaker) {wmaker}
|
||||
[restart] (Start Afterstep) {afterstep}
|
||||
[restart] (Start Enlightenment) {enlightenment}
|
||||
[restart] (Start TWM) {twm}
|
||||
[restart] (Start KWM) {kwm}
|
||||
[end]
|
||||
|
||||
[exit] (Exit)
|
||||
[end]
|
||||
|
||||
# End of example menu.
|
||||
|
Loading…
Reference in a new issue