TinyWM is a tiny window manager created as an exercise in minimalism. It is
also maybe helpful in learning some of the very basics of creating a window
manager. It is only around 50 lines of C.
It lets you do four basic things:
- Move windows interactively with Alt+Button1 drag
- Resize windows interactively with Alt+Button3 drag
- Raise windows with Alt+F1
- Focus windows with the mouse pointer
# From 0.9.9 to 0.9.10
## Additions
- New node descriptor: `first_ancestor`.
- New node modifiers: `horizontal`, `vertical`.
## Changes
- The node descriptors `next` and `prev` might now return any node. The previous behavior can be emulated by appending `.!hidden.window`.
- The node descriptors `pointed`, `biggest` and `smallest` now return leaves (in particular `pointed` will now return the *id* of a pointed receptacle). The previous behavior can be emulated by appending `.window`.
- The *query* command now handles all the possible descriptor-free constraints (for example, `query -N -d .active` now works as expected).
- The rules can now match against the window's names (`WM_NAME`).
- The configuration script now receives an argument to indicate whether is was executed after a restart or not.
- The *intermediate consequences* passed to the external rules command are now in resolved form to avoid unwanted code execution.
This release addresses the following:
New Features:
Add support for infostore in EnvIsSet Test case #240 (ThomasAdam)
Add variable/parameter which indicates the state of the FVWM3 logging #239 (NsCDE)
Support for setting default mouse cursor on all FvwmScript widgets #222 (NsCDE)
Add support for triangle indicator in/out sub options #221 (NsCDE)
Add WindowName option to FvwmButtons #219 (NsCDE)
Build problems:
compilation fails on openbsd-current due to safemalloc.h (va_list) #231
"version of go" misinterpreted by configure script? #202
Unable to build 1.0, bson.h not found [FreeBSD 12.1] #200
Bug-fixes:
_NET_WM_STATE was not updated for maximized windows #203
EwmhBaseStruts calculations don't use monitor's #241
DesktopConfiguration global inherits behaviour from per-monitor mode #236
FvwmEvent: missing monitor\_focus event #228
perllib: doesn't understand MX_MONITOR_* events #226
FvwmButtons subpanels not popped out on primary monitor when desk is > 0 #224
PositionPlacement Center: fix to use current screen #211
EwmhBaseStruts missing screen info from manpage #208
EwmhBaseStrut: fix calculations for per-monitor #242 (ThomasAdam)
Fix window locations in Global mode #237 (ThomasAdam)
Release 0.9.0 on 2020-10-31
---------------------------
* When an application fails to focus itself (because
focus_stealing_prevention is active), then the window is marked as urgent.
* New optional argument for the 'split' command for splitting non-leaf frames
* Frame objects: the frame layout can be introspected via the 'tiling' object
present in each tag, e.g.: 'tags.focus.tiling'.
* New command 'foreach' for iterating over objects
* New attribute 'urgent_count' for tags, counting the number of urgent clients on a tag
* New rule consequence 'floatplacement' that updates the placement of floating
clients ('floatplacement=smart' for little overlap,
'floatplacement=center' for centering) or leaves the floating position as
is ('floatplacement=none')
* New rule condition 'pgid'
* New format specifier '%c' in the 'sprintf' command (useful in combination with 'foreach')
* The 'new_attr' command now also accepts an initial value
* React to a change of the 'floating_focused' attribute of the tag object
* New frame index character 'p' for accessing the parent frame
* Object tree documentation as a json file
* Bug fixes:
- Fix wrong behaviour in 'cycle_layout' in the case where the current layout
is not contained in the layout list passed to 'cycle_layout'.
- Fix handling of delta -1 in 'focus_monitor' and 'cycle_monitor'
- Fixed precision decimals in the layout tree (more reliable in- and output
of fractions in frame splits)
- Fixes in maximize.sh
Based on work by Dan Cîrnaț and myself in pkgsrc-wip.
Mutter is a window and compositing manager that displays and manages your
desktop via OpenGL. Mutter combines a sophisticated display engine using
the Clutter toolkit with solid window-management logic inherited from the
Metacity window manager.
YeahWM is a h* window manager for X based on evilwm and aewm.
Features:
* Sloppy Focus.
* BeOS-like tabbed titles, which can be repositioned.
* Support for Xinerama.
* Simple Appearance.
* Good keyboard control.
* Creative usage of the mouse.
* Respects aspect size hints.
* Solid resize and move operations.
* Virtual Desktops.
* "Magic" screen edges for desktop switching.
* Snapping to other windows and screen borders when moving windows.
* Small binary size(ca. 23kb).
* Little resource usage.
This was deleted a few years ago due to the gtk1 deprecation, but
removing its dependency on gtk1 is trivial and does not impact
its functionality.
I consider qvwm essential software for fun.
-
qvwm is a window manager for the X Window System which provides a user
experience very close to Windows 95/98. It is small and extremely fast.
Add xft2 as a recommended option, following the example of fluxbox.
While here, also make nls a recommended option, rather than being
unconditionally enabled.
Fvwm3 is a multiple large virtual desktop window manager, originally (a
looooong time ago!) derived from twm.
Fvwm3 is intended to have a small memory footprint but a rich feature set,
be extremely customizable and extendible, and have a high degree of Motif
mwm compatibility.
Change log:
4.14.4
======
- Fix a crash on FreeBSD (xfce/xfwm4#411)
- Fix compilation warning due to g_type_class_add_private deprecation
4.14.3
======
- Add support for XRes X11 extension to get the PID of sandboxed apps
- Fix use-after-free of settings strings (xfce/xfwm4#406)
- More XError traps (xfce/xfwm4#405)
- I18n:
Update translations: en_CA, et, he, hy_AM, id, it, sq, zh_HK
New translations: hye
--- 1.0.22 ---
Use installed gettext version, if possible
e_gen_menu: Drop ConsoleOnly apps
windowmatches: Fix use of MAKE_WINDOW_STICKY_...() macros
windowmatches: Remove ancient incorrect case values
definitions: Empty obsolete windowmatch macros
windowmatches: Resurrect USE_ICON_IMAGE_FOR_CLIENT_() macros
windowmatches: Issue notice when discarding invalid one
windowmatches: Remove some cruft
windowmatches: Enable having spaces in name matches
Consistently use @ as token delimiter in .in files
Fix warnings occurring in various situations
windowmatches: Add some consts
bindings: Add 'W' as alias for modifier 4
libhack: Intercept XSendEvent too
Fix unmaximizing by _NET_WM_STATE[_MAXIMIZED_...]
Indent profile - Drop -bad for now as it does silly things
Re-indent with indent-2.2.12
slideouts: Use defines for directions
slideouts: Refactoring
slideouts: Fix potential crash
aclass.c: Fix valgrind complaint
eesh: Fix clang-analyzer complaints
edox: Fix clang-analyzer complaints
src: Fix clang-analyzer complaints
autogen.sh: Add -n as alternative to NOCONFIGURE
Fix incorrect check for __attribute__ ((unused)))
Hide Group struct internals
groups.c: Correct debug stuff
configure.ac: Drop unnecessary prefix stuff
Spec file: Add git tag to rpm file name (if built from git checkout)
edox: Add a couple of forgotten casts
edox: Fix missing return value (at previously unreachable function exit)
Espawn(): Use variable argument list
Enable sounds in combined configuration dialog
Autofoo sound configuration cosmetics
Optionally play sounds using audio player
Introduce path_canexec0() for convenience
Minor cleanups after sound by audio player feature
GSOD: Avoid rendering artifacts when unmapped
Avoid potential crash when attempting to enable sound, cosmetics
Minor cleanups in sound players
Add alsa-lib sound backend
Autofoo cosmetics (AC_HELP_STRING -> AS_HELP_STRING).
Fix obscure m4 problem
Add feature to build with ASAN (--enable-gcc-asan)
groups: Eliminate EwinGetGroups()
groups.c: Eliminate BuildWindowGroup()
groups.c: Mostly cosmetic changes around group configuration
groups.c: Reshuffle code to avoid forward declarations
groups.c: Rename functions for more consistency
groups.c: Refactor _GroupEwinRemove()
groups.c: Fold "group_info" into "group" IPC command
groups.c: Enable popping up ewin group configuration dialogs from ipc
groups.c: _GroupEwinDestroy() -> _GroupDelete()
groups.c: Mostly cosmetic tweaks
groups.c: Fix handling groups with negative id
groups.c: Fix showing empty group
groups.c: Add group del command
groups.c: Fix group deletion
groups.c: Add some debug
groups.c: Fix snapshot updating
snaps: Fix snapshot group remembering when all groups are deleted
groups: Rework group configuration saving
groups.c: Simplify _GroupDelete() some more
groups.c: Eliminate _EwinInGroup()
groups.c: Add group list ipc comand
groups.c: Fold "groups" into "group_op" IPC command
Fix technical/shapewin move mode through edge flip
Fix technical/shapewin move mode with window groups
French translation update (Philippe J. Guillaumie)
Document the "absolute" parameter for the toggle_* window operations (Pierre Neyron)
configure.ac: Avoid trouble with missing AM_LANGINFO_CODESET
As of 1.24, MATE requires GNU-specific msgfmt features. meta-pkgs/mate/
Makefile.common r. 1.10 expressed this tool dependency using
USE_BUILTIN.gettext=no, but this exposed pkgsrc gettext-libs in the
build environment as well, which some MATE packages then linked
against, but gettext-libs didn't end up being declared as a run-time
dependency, so binary package installations were broken (with the
workaround of manually installing the undeclared gettext-libs
dependency). Express this dependency differently, so GNU msgfmt is
used as a tool without exposing pkgsrc gettext-libs.
(The pkgsrc tooling infrastruture could be altered to provide a
distinct "gmsgfmt" tool, same with "gxgettext", and perhaps others.
Here I'm just immediately concerned with fixing this packaging issue.)
Addresses PR pkg/55503 by Jay Patel.
Change log:
marco 1.24.1
* update translations
* common: window icon (META_DEFAULT_ICON_NAME) is no longer available
* workspace: Don't try to use per-workspace MRU lists as a hint for focusing
* stack: make meta_window_raise() and meta_window_lower() smarter
* compositor: fix possible crash closing/destroying window . Fixes to previous commit.
* window: fix crash if workspace is null
* workspace-switcher: fix colors of selected workspace when compositing is disabled.
* build: silent build warnings for distcheck
* Remove unnecessary warnings about visible region
* meson: improvements
* Guard against null changes introduced by previous commit
* Introduce nullpointer checks and return null if validation fails
* util: meta_bug raises SIGABRT so it shouldn't return
* add meson build files to EXTRA_DIST
* remove warning: 'GTimeVal' is deprecated
* theme: avoid deprecated g_memmove
* frames: don't bother painting the background
┌──────────────────────────────┐
│ Release notes for i3 v4.18.2 │
└──────────────────────────────┘
This is i3 v4.18.2. This version is considered stable. All users of i3 are
strongly encouraged to upgrade.
This is a bugfix release for v4.18.
┌────────────────────────────┐
│ Bugfixes │
└────────────────────────────┘
• floating_maybe_reassign_ws: only re-focus if previously focused
(fixes a focus issue with KDE notifications)
• get_output_by_name: guard output->primary with require_active
• i3bar: fix Xorg memory leak
┌────────────────────────────┐
│ Thanks! │
└────────────────────────────┘
Thanks for testing, bugfixes, discussions and everything I forgot go out to:
Orestis Floros
-- Michael Stapelberg, 2020-07-26
FrankenWM
)."monsterwm's bastard child" or "not the wm your desktop needs, but the one
it deserves".
FrankenWM is a dynamic tiling WM (comparable to dwm or Awesome), featuring the
v-stack, b-stack, grid, fibonacci, dualstack, equal and monocle layouts out of
the box. If you want to, you can add gaps between the windows as well.
It was once based on monsterwm but has undergone many greater changes including
adding pieces from other WMs (hence the name) and porting all sorts of stuff
from Xlib to XCB. Many of the original monsterwm patches have been ported as
well.
All settings must be set at compile time by editing `config.h` and it does not
feature a status bar (but supports leaving preconfigured space for one
v0.3
* The latest stable version of 2bwm
- Leave the setting of commands to the user
- Fix bug related to the ewmh and a fake and useless window
- Fix hardcoded values
- Add the button action on root window only feature
- Add centerpoint to prototype declarations
- Fix different pixmap depth issues
- Implement _NET_WM_STATE_FULLSCREEN support
- Do not account offset when window ask to be maximized
- Change in configuration file for maximize
- Memory leak fixes
- Remove unused name from monitor structure
- Remove redundant checks within movelim function
- Depracate the use of monitor name
v0.2
* removed z3bra's patch, which isn't maintained anymore
* added the mention to the 3bwm branch
* mentioning new bugs that need to be fixed
with ok from youri