[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: shortcut



Hello Joris !

I am very pleased to have wmaker running solo on my slow box here, and 
therefor tried to investigate the internal customizing. For a friend I I put 
some copied stuff together a few months ago, and I dare to post it here 
though I didn't check it for bugs now. Anyway, my configuration works alright 
here, and I could send you a home_user_GNUstep_Defaults.tar.gz if you like to 
have more examples.
Some rather interesting points i already marked with an 'XXX', but you'll 
have to pick out what you need by yourself. 

the stuff is:

================   Incomplete 'Site map' of WMaker-related Directories and 
files

================    /usr/share/doc/WindowMaker/Debian.README 

================    My /etc/menu/local.windowmaker

================    /etc/X11/WindowMaker/menu

Joris schrieb zu Re: shortcut:
> On Sat, Nov 09, 2002 at 01:33:36AM +0100, Julien Mary wrote:
> > 	I like to define shortcuts for some apps for wmaker.
> > The problem is when i use update-menus, my shortcuts are erased.
> > Where can i define them ?
> > For example i want to launch aterm with ctrl+alt+w.
>
> ~/.menu/
> I don't know exactly what it means (since I just copied an example and
> modified it), but there I have:
> joris@kiwi:~/.menu$ cat rxvt
> ?package(rxvt):needs=x11 section=Apps/Tools    \
>    hints="Clocks"    \
>    longtitle="Rclock: another clock for X"               title=Rclock\
>    command=rclock
> ?package(rxvt):needs=x11 section=XShells      \
>    longtitle="Rxvt: terminal emulator for X"            title=Rxvt\
>    command="rxvt"\
>    shortcut="Control+Shift+x"

It's your locale-definition. See /usr/lib/menu/README ( or one XXX below )
If you put wmaker-shortcuts in /etc/menu/local.windowmaker they're valid for 
other users and root also.

Good luck !

-- Michl.


=====================       the stuff    ==========================


====================== Site map of WMaker-related Directories and files:



Structure is: Underlined ====== directories followed by subdirectories 
beginning with ./ 

XXX: Marker also for proposed changes of original configuration ( michl )


$HOME/
=======

	./GNUstep/Defaults

: Contains all custom config-files about Windows, Appearence, Menus ...

XXX:  Make the file WMRootmenu a link pointing to
/etc/x11/Windowmaker/menu.hook

so it shows the version updated by Debian 'update-menus' 
( this is quite easier than to replace it by hand, as proposed in the docs )
( See: man update-menus and /usr/doc/menu.html ).


	./GNUstep/Library

	./.wmakerconf

	./.xsession    ....starts the Session

	?./.xinitrc ( used by SuSE ? )



etc
===

	./X11/WindowMaker

The defaults for the root-menu and its submenus, and language versions.
Debian 'update-menus' creates the 'menu.hook' from the sources /etc/menu 
( placed there by user )  or /usr/lib/menu ( by packages).


	./GNUstep/Defaults/

XXX: Set the font in WMGlobal to something readable....
There occured some problem to choose a bigger font for the WMaker-menus. I 
miss that feature in 'wprefs'-configurator, but maybe i've just not found it ?
It was possible to edit them with the 'wmakerconf' - program, that AFAICS 
did not support the debian-menu-system, however.


	
	./GNUstep/Defaults/


/etc/menu
=========

XXX: contains the 'locals' = user-customized additions or replacements 
to the root-menu ( = the main-menu you get with right mouse button ).
The README there says:
"In this directory, the system administrator can install menufiles to
override the menu files provided by Debian in /usr/lib/menu and
/usr/lib/menu/default.
The filename should be the name of the package that it is overwriting,
and may contain as many lines and menu entries as necessary.
Please run 'update-menus' after changing or adding files.
For more info, please read /usr/doc/menu/html."


/usr/lib/menu/
============
README:
"In this directory, each individual package should install it's
menu files. Although changing them in this directory to change
the menus on your local system may work, the sysadmin (you?)
is best advised to put the local menufiles in /etc/menu, as, 
otherwise your changes are deleted when you upgrade the corresponding
packages. XXX: Users may override the system-wide defaults by putting
their menuentry files in ~/.menu."

		./wmaker
The menu-definitions provided by Debian-packages. This is also updated
or changed whith dpkg or apt events, so better do not use it for customizing. 


/usr/share/WindowMaker
======================

	./Defaults 

XXX: Make it a symlink pointing to -> etc/GNUstep/Defaults

	./Backgrounds

	./Icons 
XXX:  Make it the _Only _One_ Icon-Archiv for all your desktops 
( I use a link '/IconX' in the root-dir for quick access )


=================  /usr/share/doc/WindowMaker/Debian.README 


Sources for documentation
-----------------------------------------

XXX :  The Window Maker manual

written by Alfredo Kojima
ftp://ftp.windowmaker.org/pub/wmaker/docs/

  Please note the manual documents version 0.10.x of Window Maker, and
  many features/changes have occured since then.  To find out what has
  changed, please read file:/usr/doc/wmaker/NEWS.gz and
  file:/usr/doc/wmaker/changelog.gz.  A new version of this manual is
  being developed.  If you want to contribute to the manual please
  contact wm-user@windowmaker.org


* The Window Maker web site
  http://www.windowmaker.org/
  You can find all sorts of information here. It's kept very up to
  date.

* The Window Maker mailing list
  http://www.windowmaker.org/lists.html

  There's a Window Maker mailing list.  There you can ask questions about
  Window Maker and *related* applications (s/n is _way_ low nowadays
  due to unrelated discussions).

  Please read the archives before asking!

* The Window Maker FAQ
  http://www.dpo.uab.edu/~grapeape/wmfaq.html

  This is NOT file:/usr/doc/wmaker/FAQ.gz, but another document.  It
  contains information about several aspects of Window Maker that are
  not covered on the FAQ included alongside with this Readme.

* The Window Maker Configuration documents
  ftp://ftp.windowmaker.org/pub/wmaker/docs/WindowMaker-*-Config.txt.gz

  This documents the files found on ~/GNUstep/Defaults/. It's kept as
  up to date as possible.


IF YOU ARE UPGRADING FROM 0.17.5 or earlier
-------------------------------------------

    PLEASE NOTE: WPrefs
    is a work in progress.  SAVE YOUR CONFIGURATION. READ THE READMEs.

XXX 
    Please note that WPrefs' Menu Guru REQUIERES a menu in "Property
    List" format to work properly.  It's very likely that you have an
    old format menu.  There's a script called wm-oldmenu2new alongside
    this file that converts your menu to the new format.  It's a hack,
    it won't be installed anywhere else.


XXX Debian specific notes
---------------------

Please note that the /usr/X11R6/include/X11/pixmaps
is not going to be supported in future releases.
Other Window Maker packages should put pixmaps in
/usr/share/WindowMaker/Pixmaps and icons in
/usr/share/WindowMaker/Icons, ONLY.

The structure Window Maker tries to use is like this:

GNUstep
  +.AppInfo
  +Defaults
  +Library
     +WindowMaker
        + Backgrounds [*]
        + IconSets [*]
        + Pixmaps
        + Sounds
        + Styles [*]
        + Themes [*]
     +Icons

Please note Icons are not considered Window Maker-only resources.

[*] these directories are OPEN_MENU'ed WITH the right
application. That means you can put the *file* "Great Debian Theme" on
Themes, it will show up in the menu, and will be opened using
setstyle, which installs it, i.e., sets that theme as the current
theme.

If you don't like the arrangement of the Appearance menu, you can put
a file "appearance.menu" in ~/GNUstep/Library/WindowMaker, and it will
override the default one. Look at /etc/X11/WindowMaker/appearance.menu
for an example.


XXX  Shortcuts
------------------------------------
Thanks to a suggestion, there's support for Shortcuts.  If you want to
have Shift F1 launch an XTerm, you can:

$ cp /usr/lib/menu/xterm /etc/menu
$ sensible-editor /etc/menu/xterm

add:

        shortcut=Shift+F1

and run update-menus.


Changing the menus (or "WPrefs segfaults when I click the cute menu icon")
--------------------------------------------------------------------------

XXX: Very important !

First of all, I have this urge to say that it doesn't segfault for
me.  It gives me a nice warning about being unable to use my current
menu.

The problem is that wmaker now is capable of using a new type of menu,
namely a PropList menu.  It looks something like this:

(
  Applications,
  (Debian, OPEN_MENU, menu.hook),
  (
    WorkSpace,
    (Appearance, OPEN_MENU, appearance.menu),
    (Workspaces, WORKSPACE_MENU),
    ("Arrange Icons", ARRANGE_ICONS),
    ("Hide Others", HIDE_OTHERS),
    ("Show All Windows", SHOW_ALL),
    ("Clear Session", CLEAR_SESSION),
    ("Save Session", EXEC, "")
  ),
  (About..., INFO_PANEL),
  (Exit, SHUTDOWN)
)

That cute looking menu button (let's call it by its name: the Menu
Guru) in WPrefs expects to find a menu in this format.  I considered
changing the menu-method to something that spits out a menu in this
format (it's quite easy) but there's a little tiny problem: see that
line that reads "OPEN_MENU" in the example above... well, it happens
that appearance.menu has to be in the old format.  That means that if
I make the menu method produce a new style menu, that menu has to be
the root menu.  And that is not a good idea (the reason is left as an
exercise to the reader, take into account the people that aren't using
menu.hook as the root menu in the first place).

Still want to use WPrefs to edit you menu? Cut and paste the example
above into ~/GNUstep/Defaults/WMRootMenu, start WPrefs, click the Menu
Guru (the 9th icon, left to right).  Now go read the docs.  That's the
reason they are there.

Marcelo E. Magallon <mmagallo@debian.org>, Thr, 1 Apr 1999 18:47:30 -0600




================   My /etc/menu/local.windowmaker


?package(local.wmaker): needs=wmaker \ 
    section="AAA_local" title="Run..." sort=$ \
    command="SHEXEC" arg="%a(Run,Type command to run:)"\
    shortcut=Control+Mod1+R
?package(local.wmaker):needs=wmaker \
    section="AAA_local" title="Preferences" \
    command="EXEC" arg="WPrefs"
?package(local.wmaker):needs=wmaker \
    section="AAA_local" title="Restart" sort=$ \
    command="RESTART"
?package(local.wmaker):needs=wmaker \
    section="AAA_local" title="Save Session" \
    command="SAVE_SESSION"
?package(local.wmaker):needs=wmaker \
    section="AAA_local" title="Exit" sort=$ \
    command="EXIT"\
    shortcut=Control+Mod1+Escape



======================= /etc/X11/WindowMaker/menu

Look for 'XXX'  I used as marker for interesting points :-)


The root-menu is the main-menu you get with right mouse button


/*
 * Root Menu definition for WindowMaker
 *
 * Syntax is:
 *
 * <Title> [SHORTCUT <Shortcut>] <Command> <Parameters>
 *
 * <Title> is any string to be used as title. Must be enclosed with " if it
 * 	has spaces

 XXX:

 * SHORTCUT specifies a shortcut for that item. <Shortcut> has the
 * same syntax of the shortcuts key options in the 
 * $HOME/GNUstep/Defaults/WindowMaker file, such as RootMenuKey or 
MiniaturizeKey.
 *
 * You can't specify a shortcut for a MENU or OPEN_MENU entry.
 * 
 * <Command> one of the valid commands: 
 *	MENU - starts (sub)menu definition
 *	END  - end (sub)menu definition
 *	OPEN_MENU - opens a menu from a file, pipe or directory(ies) contents
 *		    and eventually precede each with a command.
 *	WORKSPACE_MENU - adds a submenu for workspace operations. Only one
 *		    workspace_menu is allowed. 		
 *	EXEC <program> - executes an external program
 *	SHEXEC <command> - executes a shell command (like gimp > /dev/null)
 *	EXIT - exits the window manager
 *	RESTART [<window manager>] - restarts WindowMaker or start another
 *			window manager
 *	REFRESH - refreshes the desktop
 *	ARRANGE_ICONS - rearranges the icons on the workspace
 *	SHUTDOWN - kills all clients (and close the X window session)
 *	SHOW_ALL - unhides all windows on workspace
 *	HIDE_OTHERS - hides all windows on the workspace, except the
 *		focused one (or the last one that received focus)
 *	SAVE_SESSION - saves the current state of the desktop, which include
 *		       all running applications, all their hints (geometry,
 *		       position on screen, workspace they live on, the dock
 *		       or clip from where they were launched, and
 *		       if minimized, shaded or hidden. Also saves the current
 *		       workspace the user is on. All will be restored on every
 *		       start of windowmaker until another SAVE_SESSION or
 *		       CLEAR_SESSION is used. If SaveSessionOnExit = Yes; in
 *		       WindowMaker domain file, then saving is automatically
 *		       done on every windowmaker exit, overwriting any
 *		       SAVE_SESSION or CLEAR_SESSION (see below).
 *	CLEAR_SESSION - clears any previous saved session. This will not have
 *		       any effect if SaveSessionOnExit is True.
 *	INFO - shows the Info Panel
 *
 * OPEN_MENU syntax:
 *   1. File menu handling.
 *	// opens file.menu which must contain a valid menu file and inserts
 *	// it in current position
 *	OPEN_MENU file.menu
 *   2. Pipe menu handling.
 *	// opens command and uses it's stdout to construct menu.
 *	// Command's output must be a valid menu description.
 *	// The space between '|' and command itself is optional.
 *      // Use '||' instead of '|' if you want the menu to always update
 *	// when opened. It might be slow.
 *	OPEN_MENU | command
 *      OPEN_MENU || command
 *   3. Directory handling.
 *	// Opens one or more directories and construct a menu with all
 *	// the subdirectories and executable files in them sorted
 *	// alphabetically.
 *	OPEN_MENU /some/dir [/some/other/dir ...]
 *   4. Directory handling with command.
 *	// Opens one or more directories and construct menu with all
 *	// subdirectories and readable files in them sorted alphabetically,
 *	// preceding each of them with command.
 *	OPEN_MENU [options] /some/dir [/some/other/dir ...] WITH command -options
 *		Options:
 * 			-noext 	strip whatever is after the last dot in the
 *				file name
 *
 * <Parameters> is the program to execute.
 *
 * ** Options for command line in EXEC:
 * %s - substitute with current selection
 * %a(title[,prompt]) - opens a input box with the specified title and the
 *			optional prompt	and do substitution with what you typed
 * %w - substitute with XID for the current focused window
 * %W - substitute with the number of the current workspace
 * 
 * You can override special characters (as % and ") with the \ character:
 * ex: xterm -T "\"Hello World\""
 *
 * You can also use character escapes, like \n
 *
 * Each MENU statement must have one mathching END statement at the end.
 *
 * Example:
 *
 * "Test" MENU
 *	"XTerm" EXEC xterm
 *		// creates a submenu with the contents of /usr/openwin/bin
 *	"XView apps" OPEN_MENU "/usr/openwin/bin"
 *		// some X11 apps in different directories
 *	"X11 apps" OPEN_MENU /usr/X11/bin $HOME/bin/X11
 *		// set some background images
 *	"Background" OPEN_MENU -noext $HOME/images /usr/share/images WITH wmsetbg 
-u -t
 *		// inserts the style.menu in this entry
 *	"Style" OPEN_MENU style.menu
 * "Test" END
 */




Reply to: