-
Notifications
You must be signed in to change notification settings - Fork 19
/
NEWS
3279 lines (2242 loc) · 112 KB
/
NEWS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
NEWS for veteran Window Maker users
-----------------------------------
-- 0.96.0
Hot Corners feature
--------------------------
Screen corners can be assigned an external command to be
executed when the mouse pointer is entering those areas.
In WPrefs, "Hot Corner Shortcut Preferences" can be used
for configuration or by manually adding a "HotCorners" key
and value to "YES" in the ~/GNUstep/Defaults/WindowMaker file.
Hot Corners feature is disabled by default.
Actions are specified by the "HotCornerActions" and are defined
as a four entries list ("top left action", "top right action",
"bottom left action", "bottom right action").
A screen corner area is a cube shape defined by the "HotCornerEdge"
which is a number of pixels from 2 (by default) to 10.
To lower the risk of triggering that feature accidentally a
"HotCornerDelay" key can be used which is the time before the action
is triggered while the pointer is in one of the screen corner.
Default value is 250 ms.
Screenshot capture feature
--------------------------
In WPrefs "Keyboard Shortcut Preferences" tab, three new actions can
be configured: "Capture a portion of the screen", "Capture a window",
"Capture the entire screen". The file is saved in
~/GNUstep/Library/WindowMaker/Screenshots directory under a filename
format "screenshot_%Y-%m-%d_at_%H:%M:%S" followed by the extension.
Which can be png or jpg based on WRaster dependencies.
libXRes is now an optional dependency
-------------------------------------
XRes the resource extension for the X protocol is used to find the
underlying processes (and PIDs) responsible for displaying the windows.
Support for _NET_WM_FULLSCREEN_MONITORS hint
--------------------------------------------
That hint allows applications that support it to be set as fullscreen on multiple heads.
It depends on Xinerama extension support.
Keep dock on primary head
-------------------------
To keep the dock on the primary head in a multi-head setup, set the option
"KeepDockOnPrimaryHead" in ~/GNUstep/Defaults/WindowMaker to "YES" or click
"Keep dock on primary head" under the WPrefs "Expert User Preferences" tab.
-- 0.95.9
Configurable SwitchPanel
------------------------
SwitchPanel is now more configurable: you can configure the switch panel icon
size by setting the "SwitchPanelIconSize" option to your preferred value in
~/GNUstep/Defaults/WindowMaker. The font size used in this panel now is also
sensible to changes in the system font.
New user configuration directory environment variable
-----------------------------------------------------
In previous versions, the GNUstep directory used to store a user's Window Maker
configuration files was specified by the GNUSTEP_USER_ROOT environment variable,
which defaulted to ~/GNUstep. However, this environment variable was deprecated
in gnustep-make v2. Therefore, it has been replaced by the WMAKER_USER_ROOT
environment variable.
libXmu is now an optional dependency
------------------------------------
If the library is not found, compilation work, the only limitation will arise
when trying to install the standard colormap on displays which are not TrueColor.
Please note that if you have the library but not the headers, configure will
still stop; there is no user option to explicitly disable the library use.
-- 0.95.8
Move pointer with maximized windows
-----------------------------------
Implementation for moving mouse pointer within the maximized window.
Mouse pointer can be now moved together with window if keyboard was used for
arrange maximized windows on screen. This feature can be turned on in WPrefs.app
in Expert tab by selecting "Move mouse pointer with half maximized windows.", or
setting "PointerWithHalfMaxWindows" to "Yes" on ~/GNUstep/Defaults/WindowMaker
file.
Alternative way for traverse half-maximized windows
---------------------------------------------------
For now, there could be three possible state of the window while using
half-maximized feature. Unmaximized window have its state saved during that
process, which was use to unmaximize it. For example, if there is a window,
which is maximized on the half left side of the screen, and while requesting
left-half-maximized, it become unmaximized with size and dimension restored to
original state.
By setting "AlternativeHalfMaximized" option to "Yes"
~/GNUstep/Defaults/WindowMaker config file (or by using WPrefs.app and option
"Alternative transitions between states for half maximized windows."), there
would be slightly different change in window "traverse". Given layout depicted
below:
┌┬────────────────────┬┐
├┘ ┌───────┐ ├┤
│ ├───────┤ ├┤
│ │ │ ├┤
│ │ │ ├┤
│ └───────┘ └┤
├┬┐ │
└┴┴────────────────────┘
Window can be moved using keyboard shortcut right-half-maximize:
┌┬─────────┬──────────┬┐
├┘ ├──────────┼┤
│ │ ├┤
│ │ ├┤
│ │ ├┤
│ │ ├┤
├┬┐ └──────────┘│
└┴┴────────────────────┘
Further invoking right-half-maximize will do nothing. Note, that window always
can be unmaximzied using appropriate keyboard shortcut or by selecting
"Unmaximize" from window menu.
Going to opposite direction by invoking left-half-maximize, will make the window
maximized in both, vertical and horizontal directions:
┌─────────────────────┬┐
├─────────────────────┼┤
│ ├┤
│ ├┤
│ ├┤
│ ├┤
├┬┬───────────────────┘│
└┴┴────────────────────┘
Further invoking left-half-maximize, will make the window maximized in half left
side od the screen:
┌──────────┬──────────┬┐
├──────────┤ ├┤
│ │ ├┤
│ │ ├┤
│ │ ├┤
│ │ └┤
├┬┬────────┘ │
└┴┴────────────────────┘
And again, further invoking left-half-maximize, will do nothing in this mode.
This change affects all possible half-maximized window state also quarters.
Issuing bottom-left-corner will take lower left quarter of the screen (nothing
is new so far):
┌┬────────────────────┬┐
├┘ ├┤
│ ├┤
├──────────┐ ├┤
├──────────┤ ├┤
│ │ └┤
├┬┬────────┘ │
└┴┴────────────────────┘
Issuing bottom-right-corner again will change window state to bottom half
maximized:
┌┬────────────────────┬┐
├┘ ├┤
│ ├┤
├─────────────────────┼┤
├─────────────────────┼┤
│ ├┤
├┬┬───────────────────┘│
└┴┴────────────────────┘
Invoking bottom-right-corner again:
┌┬────────────────────┬┐
├┘ ├┤
│ ├┤
│ ┌──────────┼┤
│ ├──────────┼┤
│ │ ├┤
├┬┐ └──────────┘│
└┴┴────────────────────┘
Issuing bottom-right-corner again will have no effect.
Move half-maximized windows between the screens
-----------------------------------------------
New option was introduced to allow change of behaviour of half-maximize windows
in multiple displays environment. In such environment it is more natural that
half maximized windows would travel from one screen to another. Now it is
possible to make that happen by setting an option
"MoveHalfMaximizedWindowsBetweenScreens" to "Yes" in
~/GNUstep/Defaults/WindowMaker config file, or by checking "Allow move
half-maximized windows between multiple screens." in 'Expert User Preferences"
tab in WPrefs.app.
For example, given there are two screens in layout where one display is on the
left and second display is on the right with window on first screen:
┌┬────────────────┬─────────────────┬┐
├┘ ┌───────┐ │ ├┤
│ ├───────┤ │ ├┤
│ │ │ │ ├┤
│ │ │ │ ├┤
│ └───────┘ │ └┤
├┬┐ ├┬┬┐ │
└┴┴───────────────┴┴┴┴───────────────┘
It can be right-half-maximized (using previously defined key combination), so it
become:
┌┬───────┬────────┬─────────────────┬┐
├┘ ├────────┤ ├┤
│ │ │ ├┤
│ │ │ ├┤
│ │ │ ├┤
│ │ │ └┤
├┬┐ └────────┼┬┬┐ │
└┴┴───────────────┴┴┴┴───────────────┘
In this example there is an assumption that WindowMaker is configured, that
maximized windows wont cover mini icons nor dock.
Without setting new option to true, issuing another right-half-maximize will
restore window dimensions and position to the original state (like on the first
figure). With new option set to true it will move window to second screen like:
┌┬────────────────┬────────┬────────┬┐
├┘ ├────────┤ ├┤
│ │ │ ├┤
│ │ │ ├┤
│ │ │ ├┤
│ │ │ └┤
├┬┐ ├┬┬┬─────┘ │
└┴┴───────────────┴┴┴┴───────────────┘
Another activation of right-half-maxmimize:
┌┬────────────────┬────────┬────────┬┐
├┘ │ ├────────┼┤
│ │ │ ├┤
│ │ │ ├┤
│ │ │ ├┤
│ │ │ ├┤
├┬┐ ├┬┬┐ └────────┘│
└┴┴───────────────┴┴┴┴───────────────┘
And final activation of right-half-maxmimize:
┌┬────────────────┬───────┬─────────┬┐
├┘ ├───────┤ ├┤
│ │ │ ├┤
│ │ │ ├┤
│ ├───────┘ ├┤
│ │ └┤
├┬┐ ├┬┬┐ │
└┴┴───────────────┴┴┴┴───────────────┘
Where window is restored its size (but not position, since it it on different
head now). Moving window in directions like left-half-maximize,
top-half-maximize and bottom-half-maximize will behave in similar way depending
on the layout of displays.
Note, that only windows that are half-maximized vertically or horizontally can
be moved to another screen due to the fact, that direction of movement of
quarter-maximized windows is ambiguous. As for vertical/horizontal-maximize,
since doesn't move the window but only stretch it vertically/horizontally this
feature also doesn't apply.
Snapping a window to the top
----------------------------
You can now choose whether snapping a window to the top edge of the screen
maximizes it to the top half (the previous and default behavior) or to the
full screen by setting "SnapToTopMaximizesFullscreen" to "NO" or "YES",
respectively. This setting can also be changed by unchecking or checking
"Snapping a window to the top maximizes it to the full screen" in the
"Expert User Preferences" tab in WPrefs.app.
Global defaults directory configuration
---------------------------------------
You can now configure the global defaults directory, where the system
WindowMaker, WMRootMenu, etc. files are stored, by running
./configure --with-defsdatadir=/path/to/defaults
at build time. The previous method, which only partially worked, involved
defining the GLOBAL_DEFAULTS_SUBDIR macro. This is no longer available.
Note that the default location is ${sysconfdir}/WindowMaker.
-- 0.95.7
Window snapping
---------------
You can now "snap" a window, i.e., maximize it to a side or corner of the
screen, by dragging it to that side or corner. It is enabled by setting
"WindowSnapping = YES" in ~/GNUstep/Defaults/WindowMaker or selecting "Maximize
(snap) a window to edge or corner by dragging." under "Expert User Preferences"
in WPrefs.app.
Note that if "Switch workspaces while dragging windows" is selected under
"Workspace Preferences" in WPrefs.app, or if "DontLinkWorkspaces = NO" in
~/GNUstep/Defaults/WindowMaker, then you may only snap a window to the top or
bottom of the screen.
You may set the distance (in pixels) from the edge or corner of the screen at
which a window will begin snapping using "SnapEdgeDetect" and "SnapCornerDetect"
in ~/GNUstep/Defaults/WindowMaker or setting "Distance from edge/corner to begin
window snap." under "Expert User Preferences" in WPrefs.app. (The defaults are
1 pixel and 10 pixels, respectively).
Dragging maximized windows
--------------------------
You can now control the behavior when a maximized window is dragged by setting
the "DragMaximizedWindow" option in ~/GNUstep/Defaults/WindowMaker or by
selecting an option from the "When dragging a maximized window..." pop-up button
under "Window Handling Preferences" in WPrefs.app.
There are four choices:
* "Move" ("...change position (normal behavior)" in WPrefs.app) is the default
and traditional behavior. A maximized window is moved when dragged and
remains maximized, i.e., it keeps its maximized geometry and can later be
unmaximized.
* "RestoreGeometry" ("...restore unmaximized geometry") is the behavior standard
in desktop environments like GNOME, Cinnamon, and Unity. A maximized window
is moved when dragged and is completely unmaximized, i.e., its unmaximized
geometry is restored.
* "Unmaximize" ("...consider the window unmaximized") causes a maximized window
to be moved when dragged and remains partially maximized, i.e., it keeps its
maximized geometry, but is consider to be unmaximized. In particular, it can
be immediately re-maximized.
* "NoMove" ("...do not move the window") prevents a maximized window from being
moved when dragged.
Note that, to accomodate this option in the "Window Handling Preferences" tab in
WPrefs.app, the option to "Open dialogs in the same workspace as their owners"
(which sets the "OpenTransientOnOwnerWorkspace" option from
~/GNUstep/Defaults/WindowMaker) has been moved to "Expert User Preferences".
Mini-Previews instead of Apercus
--------------------------------
Since the original name was not really clear because it is a French word that
is rarely used by British people, it was decided to change it to the more usual
Mini-Preview name. The setting is configurable with WPrefs in the Icon
Preferences tab, the size is now expressed in pixels directly.
Ignore Decoration Hints from GNOME applications
-----------------------------------------------
The GNOME applications ask Window Maker to get no title bar and no resize bar to
their windows by using "Hints". You can re-add them using the Attribute dialog
in the Window menu, but if you are using many GNOME applications you may want to
tell Window Maker to just ignore them. This is done with the new setting called
"IgnoreGtkHints", which is available in the "Expert" panel in WPrefs.
Cooperative Window Manager Replacement
--------------------------------------
The ICCCM defines a protocol for window managers to ask to replace the currently
running one; Window Maker now supports it. You can ask Window Maker to take the
place of current one by running "wmaker --replace", or any other window manager
can ask Window Maker to leave the place for them when started the same way.
Please note that this feature must be explicitely enabled at compile time because
by default it is not compiled in ("configure --enable-wmreplace").
--- 0.95.6
More image format supported
---------------------------
In addition to a more complete Netpbm image formats support, WindowMaker
can now load WebP images. It can also make use of the ImageMagick library
to support a lot more formats, like SVG, BMP, TGA...
Mini-window apercu
------------------
A small preview of window contents can be enabled from WPrefs,
in Miscellaneous Ergonomic Preferences, check miniwindow apercus.
Apercu size can be configured using the ApercuSize variable with
$ wdwrite WindowMaker ApercuSize 4
in multiples of the icon size (in this case the apercu size will be four
times the icon size).
The default size is 2 (twice the icon size).
Support for up to 9-buttons mouse
---------------------------------
The action for the newly supported buttons can be configured from WPrefs.
wmiv, an image viewer application
---------------------------------
wmiv is a quick image viewer using wrlib to be run from the command line.
--- 0.95.5
Support for generated menus in proplist format
----------------------------------------------
The root menu now supports a OPEN_PLMENU option to construct a submenu from
the output of a command which is proplist format. This can be used e.g. in
conjunction with wmmenugen like:
(
"Generated PL Submenu", OPEN_PLMENU,
"|| find /usr/share/applications -type f -name '*desktop' | xargs wmmenugen -parser:xdg"
)
New window placements
---------------------
Now it is possible to maximize windows to the top/bottom halves
of the screen and also to the corners (top/bottom + left/right).
The keyboard shortcuts can be configured with WPrefs.
Options to configure window/menu borders
----------------------------------------
You can now configure the width and color of window and menu borders.
For example, the default settings could be configured as follows:
$ wdwrite WindowMaker FrameBorderWidth 1
$ wdwrite WindowMaker FrameBorderColor black
$ wdwrite WindowMaker FrameSelectedBorderColor white
Keyboard shortcuts to move windows between workspaces
-----------------------------------------------------
You can now bind keyboard shortcuts - or use the window dropdown menus -
to move windows to other workspaces. You can either move a window directly to
a particular workspace or to the "next" or "previous" workspace.
The new shortcuts can be configured in WPrefs.
Native support for Drawers
--------------------------
WindowMaker now supports drawers in the dock natively. You can add a dock by
right-clicking on a docked appicon and select "Add a drawer". You can now drag
appicons to this drawer.
You can customize how you want your drawers to auto-expand/collapse and
auto-raise/lower, or you can also completely disable them.
Improved switch panel functionality
-----------------------------------
The switch panel can be used to switch between windows of the same WM_CLASS,
for example between all open xterms. If the switch panel is opened as normal
with either the "FocusNextKey" or "FocusPrevKey" shortcut, you can switch to
the next (or previous) window of the same type as the focused window with the
"GroupNextKey" or "GroupPrevKey" shortcut. If the switch panel is opened with
the "GroupNextKey" or "GroupPrevKey" shortcut, it will show only windows of
the same type as the window which was focused at the time the panel was opened,
and no difference will be seen between the two types of window selection
shortcut.
The new shortcuts can be configured in WPrefs, where they are described as
allowing switching between windows of the same group.
To maintain consistency with other popular operating systems, the switch panel
is now configured so that it no longer automatically closes when the shift key
is pressed and released.
To configure the switch panel so that it does close on release of the shift
key, which was the traditional Window Maker behavior, run the following
command:
$ wdwrite WindowMaker StrictWindozeCycling NO
If you find yourself regularly opening the switch panel just to visualize open
windows, you can run the following command to force the first "FocusNextKey"
or similar shortcut to open the panel without switching to a new window.
$ wdwrite WindowMaker SwitchPanelOnlyOpen YES
--- 0.95.4
New window placement strategy
-----------------------------
Among the window placement algorithms has arrived the "center" placement to
get new windows appear at the center of the screen (unless application
explicitly specify a position, of course).
Removed dependency to CPP
-------------------------
The menu files used to be pre-processed with CPP, which can be a problem because
modern system do not install dev tools by default, and some compilers do not
provide a pre-processor anyway. WindowMaker is now autonomous.
--- 0.95.3
The references to the legacy path /usr/X11R6 have been removed because xorg
does not use it in favor of a standard /usr layout. Similarly, the directory
/etc/X11/WindowMaker is now /usr/share/WindowMaker.
New application Relaunching functionality
-----------------------------------------
There are now several ways to launch a new instance of an application with the
same command line that was originally used to start it.
1. By selecting Launch from the application's window menu.
2. By using the "Launch new instance of application" keyboard shortcut.
3. By clicking the application's appicon with the middle button.
4. By double-clicking the application's appicon while holding Control.
For example, if you have two xterms open, one started with "xterm" and one
started with "xterm -rv", using the Relaunch functionality on the first xterm
would run "xterm" and using it on the second would run "xterm -rv". Thus
Relaunching can also be thought of as "cloning" an application.
Application Relaunching works by examining the window's WM_COMMAND property and
so will not work if it is not set.
Options to limit the window/menu title height
---------------------------------------------
You can now set the minimum and maximum titlebar heights.
For example, to force all titlebars to 24 pixels execute
the following commands:
$ wdwrite WindowMaker WindowTitleMinHeight 24
$ wdwrite WindowMaker WindowTitleMaxHeight 24
$ wdwrite WindowMaker MenuTitleMinHeight 24
$ wdwrite WindowMaker MenuTitleMaxHeight 24
--- 0.95.2
New Resizing functionality
--------------------------
You can now use the mouse wheel and modifier keys to resize windows.
MOD+Wheel will resize windows vertically and CTRL+Wheel will resize
windows horizontally. MOD+CTRL+Wheel will resize both at the same time.
The resize step, or increment can be set in WPrefs in the "Window Handling"
page, or in the config file with "ResizeIncrement". If this intrudes into
a specific application's functionality, you can disable it on an application-
by-application basis by setting the "Do not bind mouse clicks" attribute in
"Advanced Options".
New Maximize functionality
--------------------------
Maximus/Maximumize. A new tiled maximization, configured with a keyboard
shortcut. Using it will maximize the window to the greatest area such that it
will not overlap any other window of the same workspace. This can be configured
in WPrefs in the "Keyboard Shortcuts" page, or in the config file with
"MaximusKey".
Left/right maximization. Now wmaker supports maximizing a window to the
left or right half of the screen, making it occupy 50% of the area. This is
useful on wide screen displays where you want to bring up two windows side-by-
side. The shortcut keys for this can be configured in WPrefs in the "Keyboard
Shortcuts" page, or in the config file with "LHMaximizeKey" and "RHMaximizeKey"
History and AutoComplete in the run dialog
------------------------------------------
The "Run..." dialog now auto-completes executables in your path (triggered by
the TAB key) and records the history of past commands (last 500 by default).
It can also complete folder names if you start the complete with a "/"
To use it replace %a with %A in the "Run..." entry in your WMRootMenu file.
See commit 05720d97076ffc1569e5 for more details.
Automatic menu generator (wmgenmenu)
-----------------------------------
There is now a new utility to generate the Window Maker menu automatically,
called wmgenmenu. It searches from a list of pre-defined applications the
ones which exist in your $PATH and adds them to the corresponding submenus
("Internet", "Terminals", "Editors" etc) of your WM menu. It also supports
localization (currently English and German). You can use it like:
$ wmgenmenu > WMRootMenu-new
$ cp WMRootMenu-new $HOME/GNUstep/Defaults/WMRootMenu
and WM will automatically detect the new menu file and use it without
restarting wmaker (made possible by the 'inotify' mechanism)
Automatic detection of menu changes (via inotify)
-------------------------------------------------
Window Maker now uses the 'inotify' mechanism from the Linux kernel
to automatically detect changes in the WMRootMenu file. So the
--no-polling option is now gone and Window Maker does not wake up
your CPU unnecessarily (0 wakeups when idle, instead of 4).
So if you edit the WMRootMenu file by hand (or by using 'wmgenmenu'),
there is no need to restart wmaker for the changes to take effect.
DockApp recognition
-------------------
In addition to applications with only Withdrawn windows, Window Maker
will now treat any application with its WM_CLASS res_class set as
"DockApp". This provides an easy workaround for toolkits like gtk+ that
do not allow creation of windows with the initial_state member of
XWMHints set to WithdrawnState.
--- 0.92.0
GNUstep Installation Directory
------------------------------
WPrefs is now installed in /usr/local/bin and /usr/local/share by default.
If you use GNUstep and want it to install in /usr/GNUstep/Applications,
you may specify --with-gnustepdir=/usr/GNUstep
If the GNUSTEP_LOCAL_ROOT environment variable is defined when configure is
executed, it will be used (and you don't need to use --with-gnustepdir)
Cached Pixmaps Directory
------------------------
The directory where Window Maker stores the cached application pixmaps for
its later use has changed from ~/GNUstep/.AppInfo/WindowMaker to
~/GNUstep/Library/WindowMaker/CachedPixmaps for better compatibility with
the GNUstep path structure.
Also WPrefs now stores internal data in ~/GNUstep/Library/WindowMaker/WPrefs
(it was ~/GNUstep/.AppInfo/WPrefs before)
X Input Methods support in WINGs
--------------------------------
Preliminary support for X Input Methods was added to textfield and text
widgets in WINGs. Input for text in other languages than English should
work now (except for kanji which will most likely not work, even though
it wasn't tested).
Disabling the switch panel
--------------------------
To disable the panel shown during Alt-tabbing, you may put the following in
~/GNUstep/Defaults/WindowMaker
SwitchPanelImages= None;
--- 0.91.0
Alt-Tab Window Switching
------------------------
You can change the appearance of the panel shown during Alt-Tab window switching
with the SwitchPanelImages option:
(selected_icon_tile_image, background_image, width, height)
selected_icon_tile_image is the image used to highlight the currently selected
window icon. It must be 64x64 pixels.
background_image is the image used in the background of the panel. It must
be at least 64x80.
width and height are the width and size of the central part of the image.
When drawing the panel, the image will be split as:
|W |
+--+--+--+
| | | |
+--+--+--+ -
| | | | H
+--+--+--+ -
| | | |
+--+--+--+
The 4 corner images will be copied in their original sizes and the rest will
be scaled to the final panel size.
background_image, width and height are optional. If you leave them out,
a gray panel will be used. If your machine is not very fast, you may want
to use it.
--- 0.90.0
NetWM / EWMH Support
--------------------
Support for the EWMH standard has been added. Applications from GNOME 2.x and
KDE 3.x should now inter-operate better with Window Maker.
Support for the obsolete/legacy GNOME 1.x, KDE 1.x and OpenLook(!) hints was
wiped out for the sake of sanity.
Antialiased font support
------------------------
With the addition of Xft2 support in the WINGs library, now
Window Maker can display antialiased text with TrueType or any scalable fonts.
You can pick fonts for Window Maker in the Font configuration section of
WPrefs.
Antialiased text is enabled by default, but can be disabled by adding
AntialiasedText = NO; in ~/GNUstep/Defaults/WMGLOBAL
This will disable antialiased text for any WINGs based application. If you
only want to disable them for a specific application only, like WindowMaker
for example, then add the same option in the applications configuration file,
in this case ~/GNUstep/Defaults/WindowMaker
For WindowMaker, this can also be achieved from the Expert panel in WPrefs.
Note that bitmapped fonts look much better than TrueType when antialiasing is
disabled.
Global Submenus
---------------
Global menus allow for system wide menus that are added to every users
application menus. They are located in /usr/etc/WindowMaker/,
/usr/local/etc/WindowMaker or whatever is your sysconf directory
for WindowMaker. There are 2 files:
GlobalMenu.pre, which is added to the beginning of the menu and
GlobalMenu.post, which is added to the end of the menu.
These are to be proplist format menus, for example:
(("Foobar", EXEC, foobar),
("Blabla", EXEC, blabla))
or, in case you want a submenu:
(("Submenu",
("Foobar", EXEC, foobar),
("Blabla", EXEC, blabla)))
UTF-8 Support
-------------
Window Maker now uses UTF-8 internally (and thus can display UTF-8 text
in window titles and other places). Menus and po files must now be
encoded in UTF-8. If your menus contain non ASCII characters, you can convert
them to UTF-8 with the following command:
iconv -f <current-file-encoding> -t utf-8 <filename> > <filename>.utf8
For example:
iconv -f iso-8859-1 -t utf-8 menu > menu.utf
mv menu.utf menu
Icon Panel for Alt-Tabbing
--------------------------
A panel with icons for the windows that you can switch to will appear
when you press Alt-Tab. You can navigate through the windows with Alt-Tab
(Alt-Shift-Tab) or with the left/right keys once the panel is shown.
--- 0.80.0
Shading/Unshading windows using mouse wheel on their titlebar
-------------------------------------------------------------
In addition to the known methods of shading/unshading a window, one can now
do this by using the mouse wheel on the window's titlebar. The mouse events
are interpreted via a mapping in the global WINGs configuration file,
WMGLOBAL, by the MouseWheelUp and MouseWheelDown directives which will do
shading and unshading respectfully.
However, to avoid unwanted triggers of shading/unshading the window, two
consecutive mouse wheel events in the same direction are required. The
trigger won't occur if the events are separated by more than a double-click's
worth of time, which is technically speaking like making a double-click with
the button that corresponds to the mouse wheel direction.
Practically speaking, this means that you have to move the mouse wheel up
or down quickly, like when you want to quickly scroll over something big.
Shared application icons
------------------------
Real application icon sharing was implemented in place of the collapse
appicon thing. With this applications of the same instance.class will
have a single shared application icon and hiding will hide all windows
of the application attached to that appicon as if there is a single
application. This feature is enabled by default for all applications in
the global WMWindowAttributes defaults domain using:
"*" = {SharedAppIcon = Yes;};
If you're not satisfied with this or want the old behavior back you
can revert this (either in the global domain for all users or in your
personal WMWindowAttibutes domain) using SharedAppIcon = No; for "*"
It can also be enabled/disabled for individual applications as needed.
Setting this option can be done using the window's inspector panel in the
"Application Specific" section. You can set/unset it for all applications by
using the "Defaults for all windows" in the "Window Specification" section
Basically using this can have 2 major scenarios:
1. Leave it on by default, but disable it for the few specific
applications that do not behave well with it. (default)
2. Leave it off by default, and enable it for all applications for
which you want it enabled.
At this point all applications we tested work ok, some of them even
work better with this feature turned on: for example xmms and Corel's
WorkPerfect8 now only have 1 appicon (they used to have 2 without this
feature).
This feature is turned off by default for the following applications
because it's incompatible with them:
1. all GNUstep applications
2. applications with an application menu (wterm, Aileron, etc)
3. all applications with withdrawn windows only (this means all dockapps)
As a side note: wterm can use the shared appicon feature as long as it
doesn't use the appmenu (will do this by default). If you start it
using the appmenu (wterm -wm) it will disable the shared appicon
feature because apps with appmenus are incompatible with this feature.
If an application is a GNUstep application or if it has an appmenu, it's
detected automatically and the shared appicon is disabled automatically
without any user intervention or need to configure anything.
Dock/Clip stealing appicons
---------------------------
This feature is different form the Clip's "Autoattract Icons" feature
as it won't attach any new icon to the dock/clip.
What it does, is when you start an application by other means than
dock/clip, like for example using the main menu or a terminal, it will
search the dock/clips for the presence of an appicon for that
application, that is not already running at that moment and will attach
the started application to that appicon in the dock/clip if available,
making it look like the dock/clip just stole the appicon for the started
application. There is an animation for this to offer visual feedback
that this happened.
--- 0.70.0
New dock option
---------------
Copy/paste launch in dock.
==========================
For example, put netscape %s in the Docked icon for Netscape, select an url
somewhere and then middle-click the icon. The command will be launched with
the "pasted" string.
Xinerama Support
================
Supported Xinerama features:
- Normal maximization of windows will maximize to only one of the screens,
the one where the cursor pointer is.
- Full Maximize command in window menu
- Place dialogs in the middle of the head where the pointer is
- Try to place windows inside one head in non-manual placement modes
Less dependencies
-----------------
starting with 0.70.0 libPropList is no longer required to build Window
Maker. PropList handling code was added to WINGs being now better
integrated with all the rest. For more details check the Changelog and the
following files:
./WINGs/ChangeLog
./WINGs/NEWS
./WINGs/WINGs/WUtil.h
./WINGs/WINGs/proplist-compat.h
--- 0.65.1
Removed FocusFollowMouse option, only SloppyFocus present now.
Added None option to MoveDisplay and ResizeDisplay
--- 0.65.0
Single AppIcon
--------------
Removed --single-appicon patch and replaced it with a application
specific collapsing option. Check inspector panel and appicon menu.
New options to configure the workspace mouse actions
----------------------------------------------------
The following options were removed from the WindowMaker defaults configuration
file:
SelectWindowsMouseButton, WindowListMouseButton and ApplicationMenuMouseButton.
They were replaced with the following 3+1:
MouseLeftButtonAction, MouseMiddleButtonAction and MouseRightButtonAction plus
MouseWheelAction
In the old way because all gravitated around the workspace actions to which
specific mouse buttons could have been bound, it allowed one to specify in
the configuration file settings which would have led to weird situations
that also had undesirable results.
For example the same mouse button (for example left) could have been
assigned to all workspace actions: 'select windows', 'show window list menu'
and 'show applications menu' which of course were not only impossible to
accomplish while still having a properly working workspace, but they also
allowed one to specify some settings in the configuration file that were
never in fact translatable to proper workspace actions.
To void this kind of user interface inconsistency, the new options now
gravitate around the physical device (the mouse and its buttons) to which
specific workspace actions can be bound. This way, even if one assigns the
same action to all mouse buttons, that situation while gives redundant and
unpractical settings it will still translatable to proper workspace actions:
all buttons will execute the same action, but a button will execute only one
action at a time.
The new options take the following values:
all Mouse...ButtonAction can have one of the following values:
None, SelectWindows, OpenApplicationsMenu or OpenWindowListMenu
MouseWheelAction can be one of None or SwitchWorkspaces
If you had the default actions bound to mouse buttons before, then it will
work for you without any intervention in the configuration files.
Else you need to use WPrefs.app to bind the actions to the mouse buttons
again to your old settings. Also if you want to change the mouse wheel
behavior regarding workspaces you can now (use WPrefs.app to do this).
Client supplied icons
---------------------