windowmaker-wl/WPrefs.app
Window Maker 5f65867974 wings: introduce wnative.h; phase α.1 (modifier/button masks)
WINGs API surgery, step 1.

New public header WINGs/WINGs/wnative.h declares WINGs-native types
and constants with no X11 header dependency:

  - WMNativePixmap/Atom/Cursor/Keysym/Time/XID/Colormap/Bool typedefs
    (all 'unsigned long' — compatible with the existing wire ABI).
  - WM_MOD_SHIFT/LOCK/CONTROL/MOD{1..5} modifier mask bits.
  - WM_BUTTON{1..5}_MASK pointer button mask bits.
  - WM_ANY_MODIFIER/WM_ANY_BUTTON sentinels.
  - WM_EVMASK_* event-mask bits (forthcoming patches).
  - WM_NOTIFY_* crossing modes/details.
  - WM_PROPERTY_* / WM_MAPPING_* / WM_VISIBILITY_* / WM_GRAB_* /
    WM_REVERT_TO_* / WM_CURRENT_TIME / WM_NATIVE_NONE.

Numeric values intentionally match X11 layout for binary
compatibility with WMEvent fields (which were defined that way
originally).  The architectural property that matters is that NONE
of the symbol *names* below are X11 macros — they belong to WINGs
and are defined without any X11 header.

WMEvent.h, WUtil.h, WINGs.h now #include <WINGs/wnative.h> so every
WINGs consumer picks up the new constants.  X11 headers are still
included from the public WINGs headers; phase ε will drop them.

Phase α.1 — first sed pass:

  ShiftMask     → WM_MOD_SHIFT
  ControlMask   → WM_MOD_CONTROL
  LockMask      → WM_MOD_LOCK
  Mod{1..5}Mask → WM_MOD_MOD{1..5}
  Button{1..5}Mask → WM_BUTTON{1..5}_MASK
  AnyModifier   → WM_ANY_MODIFIER
  AnyButton     → WM_ANY_BUTTON

Applied across WINGs/, src/, WPrefs.app/ via sed with word
boundaries.  Build verified clean; binary identical in size,
re-linked successfully.
2026-05-24 10:42:04 +02:00
..
po gitignore: stop tracking all generated build outputs 2026-03-31 13:36:58 +02:00
tiff gitignore: stop tracking all generated build outputs 2026-03-31 13:36:58 +02:00
xpm gitignore: stop tracking all generated build outputs 2026-03-31 13:36:58 +02:00
Appearance.c WIP: Wayland backend - fix atoms, OR surface compositing, frame/window ops 2026-05-13 07:05:22 +02:00
Configurations.c WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
Docks.c WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
Expert.c WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
Focus.c WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
FontSimple.c WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
HotCornerShortcuts.c WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
Icons.c WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
KeyboardSettings.c WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
KeyboardShortcuts.c wings: introduce wnative.h; phase α.1 (modifier/button masks) 2026-05-24 10:42:04 +02:00
Makefile.am WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
Menu.c WIP: Wayland backend - fix atoms, OR surface compositing, frame/window ops 2026-05-13 07:05:22 +02:00
MenuPreferences.c WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
MouseSettings.c WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
Paths.c WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
Preferences.c WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
README WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
TexturePanel.c WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
TexturePanel.h WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
Themes.c WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
WPrefs.c WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
WPrefs.desktop.in WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
WPrefs.h WIP: Wayland backend - fix atoms, OR surface compositing, frame/window ops 2026-05-13 07:05:22 +02:00
WPrefs.tiff WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
WPrefs.xpm WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
WindowHandling.c WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
Workspace.c WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
double.c WIP: Wayland backend - fix atoms, OR surface compositing, frame/window ops 2026-05-13 07:05:22 +02:00
editmenu.c wings: introduce wnative.h; phase α.1 (modifier/button masks) 2026-05-24 10:42:04 +02:00
editmenu.h WindowMaker 0.96.0 upstream source 2026-03-26 15:38:49 +01:00
main.c WIP: Wayland backend - fix atoms, OR surface compositing, frame/window ops 2026-05-13 07:05:22 +02:00
xmodifier.c wings: introduce wnative.h; phase α.1 (modifier/button masks) 2026-05-24 10:42:04 +02:00

README

			          WPrefs.app
				  ==========

 		  The WindowMaker Prerefences Application


    WPrefs.app is the preferences "editor" for the WindowMaker window
manager. It can be used to set most of the preference options of WindowMaker
and define its applications menu. It also can change some settings
that do not belong to WindowMaker.

    Although WPrefs.app is designed to be easy to use, you should read the
user guide to be fully aware of all available options and other features
of WindowMaker that are not related to configuration.

    To run WPrefs, do not put it in your search path. Instead, run it
with the full path, like /usr/local/GNUstep/Applications/WPrefs.app/WPrefs
Then, dock its application icon. The dock will automatically detect its
icon and use it.

    If you change configuration often, you might want to leave WPrefs
always running, leaving it hidden while not in use. You can also make it
be automatically started with WindowMaker and toggle the Start Hidden
option in the attributes panel for the WPrefs window. Of course, it will
use some memory, but by leaving it hidden it'll probably be swapped out and
stay there until you unhide it.

    WPrefs is still under development. Some of the configuration options are
not yet configurable from WPrefs, notably the appearance related options.
It might contain bugs that can corrupt your configuration files, so backup
the contents of the ~/GNUstep/Defaults directory before using it.



License
-------

    Like Window Maker, WPrefs is distributed with through the General Public
License (as stated in the file COPYING).

Notes
-----

The mouse speed configuration is saved as a call for xset in
~/G/D/L/W/autostart. WindowMaker calls this file when it is started.

If you don't want or can't use the menu definition section, do not
open its section (or if you do open it, do not Save), or WPrefs will
overwrite your ~/G/D/WMRootMenu file.

Only options that have different values than what is found in the
system-wide configuration file is saved.

WPrefs only supports property list menus. If you have a plain text file
menu, it will not be read by WPrefs. You can either recreate the menu from
scratch or not use WPrefs for menu definition. The old menu will not be
overwritten if you recreate it.


Build
-----

WPrefs will be built automatically and installed with the rest of WindowMaker.



Customized Installation
-----------------------

By default, WPrefs.app will be installed in the GNUstep applications directory,
which is /usr/local/GNUstep/Applications. If you want to install it somewhere
else, like in /some_weird_path/Applications, set the GNUSTEP_LOCAL_ROOT
environment variable to some_weird_path before running configure for
WindowMaker. You can also configure Window Maker supplying the --with-gnustepdir
option to configure, like ./configure --with-gnustepdir=/usr/GNUstep/Applications
If you change your mind after installing, you can move the .app directory
to one of the following GNUstep/Applications directories:

/usr/GNUstep/Applications

OR

/usr/local/GNUstep/Applications

OR

~/GNUstep/Applications



Credits
-------

User interface design, programming and a few icons:
    Alfredo K. Kojima <kojima@windowmaker.info>

Additional programming:
    James Thompson <jamest@math.ksu.edu>
    Dan Pascu <dan@windowmaker.info>
    ]d <id@windowmaker.info>

Icon and image artwork:
    Jesse Kaufman <glandix@linuxfreak.com>
    Marco van Hylckama Vlieg <marco@windowmaker.info>
    See details in README in tiff/ directory

WindowMaker
-----------

    If for some weird reason you end up with this preferences program and
don't have Window Maker yet, you can get more information about it at
http://windowmaker.info and download it at ftp://ftp.windowmaker.info


Contact
-------

Send comments and bug reports to kojima@windowmaker.info
Use the WindowMaker BUGFORM to report bugs.