Upstream changes:
https://github.com/joewing/jwm/releases/tag/v2.4.1
What's Changed
* Make JPEG backgrounds not blurry by @shlomif in #530
* Ukrainian translations by @TarasPanchenko in #538
* Middle click close on taskbar by @keshto in #548
* Fix broken text in menu button #534
* Fix crash at startup with floating point exception #537
* Fix icons with a dot (.) in the filename are not found #536
* Fix Alt+tab being assigned even when not assigned in jwmrc #543
New Contributors
* @shlomif made their first contribution in #530
* @TarasPanchenko made their first contribution in #538
* @keshto made their first contribution in #548
X windows manipulator.
Windows are manipulated using the mouse, and can be moved/resized in
multiple ways. This utility is better used in combination with others like
[wmutils][0] and [sxhkd][1] which leverage the keyboard interface,
rather than mouse usage.
Features
- Floating window management
- Sloppy Focus
- All manipulations done with the mouse
- Cool operations like teleport, inflate/deflate
- 100% compatible with wmutils(1)
- Optional EWMH support through ewmh(1)
- Multi-monitor support through Xrandr(3)
-wm_get_atom_name(): retrieve the name of an atom
-Add support for multi-monitor through xrandr
-Add ATTR_D to retrieve window color depth
-Match monitors backware in wm_find_monitor()
0.17.0 (October 27, 2021)
Enhancements
* Migrated X.L.LayoutCombinators.(|||) into XMonad.Layout, providing the
ability to directly jump to a layout with the JumpToLayout message.
* Recompilation now detects stack.yaml (can be a symlink) alongside
xmonad.hs and switches to using stack ghc. We also updated INSTALL.md
with instructions for cabal-install that lead to correct recompilation.
* Deprecation warnings during recompilation are no longer suppressed to
make it easier for us to clean up the codebase. These can still be
suppressed manually using an OPTIONS_GHC pragma with -Wno-deprecations.
* Improve handling of XDG directories.
* If all three of xmonad's environment variables (XMONAD_DATA_DIR,
XMONAD_CONFIG_DIR, and XMONAD_CACHE_DIR) are set, use them.
* If there is a build script called build (see these build scripts for
usage examples) or configuration xmonad.hs in ~/.xmonad, set all three
directories to ~/.xmonad.
* Otherwise, use the xmonad directory in XDG_DATA_HOME, XDG_CONFIG_HOME,
and XDG_CACHE_HOME (or their respective fallbacks). These directories
are created if necessary.
* In the cases of 1. and 3., the build script or executable is expected to
be in the config dir.
* Additionally, the xmonad config binary and intermediate object files were
moved to the cache directory (only relevant if using XDG or
XMONAD_CACHE_DIR).
* Added Foldable, Functor, and Traversable instances for Stack.
* Added Typeable layout constraint to LayoutClass, making it possible to
cast Layout back into a concrete type and extract current layout state
from it.
* Export constructor for Choose and CLR from Module.Layout to allow
pattern-matching on the left and right sub-layouts of Choose l r a.
* Added withUnfocused function to XMonad.Operations, allowing for X
operations to be applied to unfocused windows.
Bug Fixes
* Fixed a bug when using multiple screens with different dimensions,
causing some floating windows to be smaller/larger than the size they
requested.
* Compatibility with GHC 9.0
* Fixed dunst notifications being obscured when moving
floats. https://github.com/xmonad/xmonad/issues/208
Breaking Changes
* Made (<&&>) and (<||>) non-strict in their right operand; i.e., these
operators now implement short-circuit evaluation so the right operand is
evaluated only if the left operand does not suffice to determine the
result.
* Change ScreenDetail to a newtype and make RationalRect strict in its
contents.
* Added the extensibleConf field to XConfig which makes it easier for
contrib modules to have composable configuration (custom hooks, …).
* util/GenerateManpage.hs is no longer distributed in the tarball. Instead,
the manpage source is regenerated and manpage rebuilt automatically in
CI.
* DestroyWindowEvent is now broadcasted to layouts to let them know
window-specific resources can be discarded.
mmutils (multi-monitor utilities) is a set of utilities for querying xrandr
monitor information.
Their main purpose is to be used alongside wmutils, but they will probably
work with pretty much anything runs on top of Xorg.
pekwm-0.2.1
===========
Build system
------------
* Makefile based build now install docs, support configuring the
manpath (relative to the prefix) and create .sh files properly with
the configured SED on Solaris
* CMAKE_INSTALL_MANDIR is now used to specify the destination of
man pages. Use -DCMAKE_INSTALL_MANDIR=/path/to/man to override.
* Log awk, sed and sh paths during configuration (and fix a few missing
path substitutions in the scripts)
* Use check_cxx_source_compiles instead of check_cxx_source_runs as
there is no need to check for runtime issues, improves cross compilation
support.
* Substitute grep in shell scripts, as with awk, sed and sh.
* Prefer /usr/pkg/bin over /usr/sfw/bin when searching for external
commands during configuration.
Closed issues
-------------
* **#114 Coordinates not updating when moving windows**,
regression introduced in 0.2.0. (Reported by caoliver)
* **#110 Tint2 panel not updated on last window close**,
regression introduced in 0.2.0. (Reported by Maman Sulaeman)
Updated
-------
* pekwm_panel, Icon widget now has a Scale option defaulting to false.
* pekwm_theme, Detect download errors of the theme index file.
* pekwm_theme, Use ftp by default on OpenBSD and NetBSD and silence
progress output.
-Added dock and dockapp support.
-Added -c option.
-Added snap-to-edge attraction.
-Added shaded container state
-Added tiling factor when resizing window.
-Added config.h
-Added hand mouse cursor for left button.
-Fixed support for transparent windows (#3)
-Changed most command-line options to X Resources.
-Changed decoration code (using colors rather than pixmaps).
-Removed motion event handling.
Left is a tiling window manager written in rust for stability and performance.
The core of left is designed to do one thing and one thing well. Be a window
manager.
Because you probably want more than just a black screen LeftWM is built around
the concept of theming. With themes you can choose between different
bar/compositor/background/colors, whatever makes you happy.
LeftWM has been built from the very beginning to support multiple screens and
has been built around ultrawide monitors. You will see this with the default
key bindings.
pekwm-0.2.0
===========
Closed issues
-------------
* new windows fail to appear on fbpanel taskbar and pager,
regression introduced in 0.1.18.
* zombines during move resize, executing external commands
while moving a window did not collect all child processes.
* support _NET_REQUEST_FRAME_EXTENTS, improved EWMH compatability.
* Size specification was ignored on plain textures (except solid),
it is now read and can cause issues on themes that have incorrectly
specified them.
* Icon Autoproperty, it is now possible to set the _NET_WM_ICON
hint using the new property Icon. It will load the image from the icon
load path.
New
---
Crash Dialog, if pekwm crash a pekwm_dialog will appear and prompt
the user if pekwm should be restarted or quit. This avoids the X
server to shut down.
ImageMapped, it is now possible map colors in images during load
using a color map from the new ColorMaps section in the theme
file. This functionality allows for creating themes using less images
and plays well with the new theme variants functionality.
theme variants, using the ThemeVariant option in the Files
section allows for specifying variants of themes. Theme variants are
implemented by creating separate theme files in the theme directory
named theme-VARIANT.
pekwm_bg created, a background setting application integrated with
pekwm themes. pekwm_bg supports all textures pekwm supports so it is
possible to set solid colors, images and the new lines texture. Themes
have been extended with a background keyword that makes pekwm set the
background when the theme is loaded, images are loaded from the
backgrounds folder inside the theme. Background loading can be
disabled in the main configuraiton file.
pekwm_ctrl created, simple control command for pekwm that takes
a string formatted as a single action and asks pekwm to execute it.
pekwm_screenshot created, simple screenshot taking application
that outputs a PNG image.
pekwm_theme created, theme management tool for use with the
pekwm-theme-index, enabling the user to list, search, preview,
install and uninstall themes included in the index.
CurrHeadSelector option is now available in the Screen section of
the main configuration file. Controls how operations relative to the
current head, such as placement, select the active head. Cursor
selects the head the cursor is on, FocusedWindow considers the focused
window if any and then fall backs to the cursor position. Affected
operations include placement and position of CmdDialog, SearchDialog,
StatusWindow and focus toggle list.
Updated
-------
CfgDeny now support denying _ResizeInc_ making it possible to
ignore size increments for terminals and other applications.
CmdDialog no longer cache the list of available commands reducing
memory consumption and speeding up start at the cost of slower mapping
of the CmdDialog.
Debug action is included even if not compiling with DEBUG=ON. The
action allows for enabling and disabling of logging to file and
standard output. Default logging level is warning, and all messages
aimed towards end users such as theme errors are logged independent of
set level.
The initial log level can be controlled with the new --log-level
command line option.
Exec no longer use ``sh -c`` to run commands which will cause
incompatibilites depending on /bin/sh configuration, if shell
variables have been used or the command ends with &. ShellExec has
been added implementing the legacy behaviour.
SetGeometry now support specifying size and position in % of the
screen or active head.
Removed
-------
PDecor section in themes is no longer required, all Decor sections
in the top-level will be used if no PDecor section is found.
InputDialog is no longer possible to use as the decor name for
CmdDialog decorations in themes.
Change log:
4.16.1
======
- Catch more XErrors (#476, #486)
- Untile window before switching to fullscreen (#478)
- Allow interactive resizing with any keyboard modifier (#487)
- Do not prefer Xpresent on AMD/Radeon (#490)
- Use g_info/g_print instead of g_message for some message
- I18n: Update translation:
ast, be, be@tarask, cs, el, et, eu, fi, he, hr, hu, ie, pl, pt_BR, zh_TW.
4.16.0
======
- common: Avoid zero refresh rate for monitor
- hints: Protect against XError from XGetTransientFor()
- netwm: Allow above/below only for regular windows
- netwm: Mark splashscreen as transient for groups
- client: Complete client state even on different workspaces
- build: Increase GTK+ requirement to 3.22
- Add `cycle_minimized` option
- compositor: Release overlay window last
- compositor: Free GLX data when really using GLX
- compositor: Remove useless trace message
- compositor: Release current GLX context on teardown
- display: Remove custom XError handler
- compositor: Check for XError when adding windows
- compositor: Trap XErrors when disabling compositor
- main: Enable compositor by default
- compositor: Remove automatic redirect support
- main: Add short command line options
- main: Add debug command line option
- pixmap: Use a safer strncpy()
- settings: Fix compiler warning
- Remove useless autotools macros and Makefile targets
- Use --enable-debug=yes when compiling from git
- Revert "compositor: Do not damage on opaque region update"
- themes: Use smaller, lighter shadows
- compositor: Check if compositor is enabled
- compositor: Avoid XError when disabling compositor
- compositor: Warn for missing epoxy GL function
- netwm: Do not raise window if activate is set to none
- Remove GSourceFunc casts
- compositor: Fix build with older epoxy versions
- settings: Add 'Always on top' to the double click action
- Settings: Remove default alphabetical sorting of keyboard shortcuts
Closes: #451 (Disable initial sorting of keyboard shortcuts)
- compositor: Handle XFixes XError
- compositor: Add support for GL_ARB_sync
- compositor: Return early if a Present swap is pending
- debug: Fix build in debug mode
- compositor: Fix compilation issue with Xpresent
- compositor: Log fence and GLX swap time in debug mode
- compositor: Move fence sync to redraw_glx
- compositor: Move fence triggered to its own function
- compositor: Set swap control if possible
- compositor: Adjust to the actual number of buffers
- compositor: Use a GLX drawable per buffer
- client: Allow transients for group to be minimized
- settings: Add a UI option for desktop zooming
- themes: Remove title shadow
- themes: Adjust shadows size/opacity
- client: Make above/below consistent
- compositor: Limit damage region to the screen
- compositor: Optimize repaint without vblank
- compositor: Only accumulate damage with multiple buffers
- compositor: Copy entire content for GLX buffers
- xsync: Handle XError
- compositor: Ignore opaque region for shaded windows
- compositor: Clip opaque region against window shape
- client: Protect against XError in XKillClient()
- compositor: Do not damage on opaque region update
- compositor: Opaque region applies to client window
- compositor: Reuse client size
- client: Toggle tiling on key shortcut
- client: Small cleanup
- Add README.md to EXTRA_DIST
- client: Keep tiled size of windows
- compositor: No need to update compositor window on configure
- compositor: Limit opaque region clipping to window extents
- compositor: Damage on opaque region update only if visible
- client: Send synthetic configure on force redraw
- Post release tag bump
- Translation Updates:
Albanian, Arabic, Armenian (Armenia), Basque, Belarusian, Belarusian
(Tarask), Bengali, Bulgarian, Catalan, Chinese (China), Chinese (Hong
Kong), Chinese (Taiwan), Croatian, Czech, Danish, Dutch, Eastern
Armenian, English (Australia), English (Canada), English (United
Kingdom), Estonian, Finnish, French, Galician, Georgian, German,
Greek, Hebrew, Hungarian, Icelandic, Indonesian, Interlingue,
Italian, Japanese, Kazakh, Korean, Latvian, Lithuanian, Malay,
Norwegian Bokmål, Norwegian Nynorsk, Occitan (post 1500), Persian
(Iran), Polish, Portuguese, Portuguese (Brazil), Romanian, Russian,
Serbian, Slovak, Slovenian, Spanish, Swedish, Thai, Turkish,
Ukrainian, Urdu, Urdu (Pakistan), Uyghur
4.15.3
======
- Fix opaque regions leaving trails of unpainted areas
4.15.2
======
- Add support for opaque regions in the compositor
- Make cursor zoom optional (xfce/xfwm4#439)
- Remove the deprecated options "--daemon" (Pablo Mazzini)
- Disable Xi2 support by default
- Add column sorting in settings
- Optimize window matching in the compositor with a hash table (Michael
Banack)
- Add more XErrors traps
- I18n: Updated translations: ar, ast, be, be@tarask, bg, bn, ca, cs, da,
de, el, en_AU, en_CA, en_GB, es, et, eu, fa_IR, fi, fr, gl, he, hr, hu,
hy_AM, hye, id, ie, is, it, ja, ka, kk, ko, lt, lv, ms, nb, nl, nn, oc,
pl, pt, pt_BR, ro, ru, sk, sl, sq, sr, sv, th, tr, ug, uk, ur, ur_PK,
vi, zh_CN, zh_HK, zh_TW
New translations: be@tarask, fa_IR, hye, ka
4.15.1
======
- Fix an error leak in compositor (xfce/xfwm4#351)
- Fix compositor selection atom misuse
- Prefer zero initialized memory allocation functions
- Use g_slice allocator for compositor windows
4.15.0
======
- First 4.15.x development release
- Show tabwin only on primary monitor if set
- All fixes and i18n as found in 4.14.4
-vscreen: Update _NET_CURRENT_DESKTOP atom when changing vscreens
-Move vscreen initialization further down init_screen because we need the root
window set.
e16 1.0.24 - 2021-11-14
------------------------
- 1.0.24
- Update po
- Danish translation update
- pagers: Remember zoom setting when changed by pager menu
- Regular expression matching fix simplification
- Regular expression matching fixes
- systray: Change default icon size to 32
- Set _NET_WM_PID on WM check window
- Drop initial setting of _NET_WM_NAME = "e16" on the root window
- Refactor atoms handling
- Avoid using "delete"
- COMPLIANCE: Update
- Support _NET_WM_STATE_FOCUSED
- Add _NET_WM_STATE_FOCUSED to the EWHM atoms
- Only update _NET_WM_STATE and _NET_WM_ALLOWED_ACTIONS when changed
- xprop.c: Do some sanity checks using static asserts if possible
- Shuffle some property stuff around
- session.c: Remove unused headers
- libhack: Add XGetWindowProperty interception
- libhack: Cosmetics
- Eliminate EGetGeometry()
- Change EXGetGeometry() to EXGetSize()
- x.c: Fix LTO warnings
- x.c: Deubug stuff cleanups
- x.c: Remove ancient unused ECreateFocusWindow()
- extinitwin: Fix parent/client synchronization
- Fix EImageDefineCursor() for window mode
- edox: Avoid LTO null pointer warning
- edox: Unifdef USE_XFONT
- Backgrounds: Fix trouble when deleting multiply referenced background
- Backgrounds: Fix bad list operation in CB_ConfigureDelBG()
- Groups: Avoid compiler warning in _DlgFillGroups()
- Drop animation in EwinSlideSizeTo() if there is no change
- Focus: Debug tweaks
- Focus: Fix focus on new clients requesting max size
- autofoo: Deal a bit more consistently with C[PP]FLAGS and LDADD
- French translation update (Philippe J. Guillaumie/Carla Sensa)
- Fix bad memory access during shutdown
- FX: Use xrender when available
- FX: Fix cleanup with compositing enabled
- FX: Fix clipping with compositing enabled
- FX: Make it work in regular compositing mode
- FX: Tweaks
- FX: Some refactoring
- FX: Fix waves cleanup
- FX: Remove "correct bugs" operation in waves
- Introduce HAVE_COMPOSITE_OVERLAY_WINDOW
- glwin.c: Fix incorrect config item size
- Sound: Enable changing engine at runtime
- Don't build disabled stuff
- Sound: Change some esd to esound
- Sound: Change some pa to pulse
- Sound: Header file tweaks
- Move Eexec() and friends to util.h
- Drop (v)snprintf() implementation
- Use installed gettext version, if possible
- Eliminate AM_LANGINFO_CODESET
- 1.0.23.000
- Fix version reported by e16 in release build
pkgsrc changes:
- make po/Makefile.in.in work with newer autoconf
Upstream changes:
(from http://joewing.net/projects/jwm/release-2.4.html)
JWM v2.4 Release Notes
This is a collection of major changes between JWM v2.3 and JWM v2.4.
Version 2.4.0 was released 20211107.
New Features
* Mouse bindings are now configurable (issue #11).
* Added key bindings (send#) to send a window to a particular desktop (issue
#395).
* Added ~/.config/jwm/jwmrc as the new default location for per-user
configuration (issue #394).
* Maximized windows once again have borders and can be resized (issue #392).
* The placement of window buttons is now configurable (issue #19).
* Restored automatic tray "autohide" functionality using autohide="on" (issue
#398).
* Added support for CDATA to the XML parser (issue #344).
* Moved the group and list attributes to the TaskListStyle tag (issue #309).
* Added key bindings to resize a window from a specific corner or side (issue
#409).
* Add Type tag to Group (issue #453, patch from rdnvndr).
Configuration Changes
The following XSLT is available to update JWM v2.3 configuration files for use
with JWM v2.4: jwm-2.4.xslt.
To convert an existing v2.3 configuration file using xsltproc, run:
cp ~/.jwmrc ~/.jwmrc.old
xsltproc jwm-2.4.xslt ~/.jwmrc.old > ~/.jwmrc
If you have multiple configuration files, it may be necessary to apply the XSLT
to some or all of them depending on what configuration options are stored in
the file.
A summary of configuration changes follows.
* The group and list attributes have moved to the TaskListStyle tag.
See the configuration documentation for documentation on all configuration
options.
Bug Fixes
* Don't SetDefaultCursor in AddClientToWindow (issue #521).
* Use pango to address font fixes (issues #502, #498, and #337).
* Fix for large titles that are centered or right aligned (issue #479, patch
from rdnvndr).
* Fix tooltip delay (issue #431).
Updated Translations
* Portuguese (Hugo Carvalho)
* Portuguese Brazil (marcelo cripe)
* Turkish (Cihan Alkan)
* Spanish (PAblo Roberto Francisco Lezaeta Reyes)
* Danish (scootergrisen)
* Lithuanian (Moo)
• i3bar: fix crash with multiple monitors
• xmlto: fix broken .TH line by extending title length
• i3-msg: fix --raw short form (-r) in manpage
• libi3: add missing sys/stat.h header
• use getcwd(NULL, 0) instead of GNU extension get_current_dir_name()
Changes:
- Fixed ReadConfigFile() to prevent config command overlap collisions.
- Fixed SkipNonSpace() to consider new lines to be white space.
- Fixed handle_configure_request() to support moving windows.
- Added SwallowFocusClick configuration (default: disabled).
Released 2021-09-09 by Morgan Aldridge
Two long-awaited features have been added:
1. You can now use an “include” directive in your i3 config:
https://i3wm.org/docs/userguide.html#include
2. You can now enable showing window icons in window titlebars:
https://i3wm.org/docs/userguide.html#title_window_icon
Other changes:
• default config: use dex for XDG autostart
• docs/ipc: document scratchpad_state
• ipc: the GET_CONFIG request now returns all included files and their details
• i3-nagbar: position on focused monitor by default
• i3-nagbar: add option to position on primary monitor
• i3bar: use first bar config by default
• i3-dmenu-desktop: ignore duplicate files and directories (fixes crash on NixOS)
• i3-dump-log -f now uses UNIX sockets instead of pthreads. The UNIX socket approach
should be more reliable and also more portable.
• When clicking on a tab, focus its child (like when scrolling), or (if
already focused), focus the tab container (alternatingly).
• Implement the include config directive:
https://i3wm.org/docs/userguide.html#include
• Implement optionally showing window icons in titlebar:
https://i3wm.org/docs/userguide.html#title_window_icon
• Allow for_window to match against WM_CLIENT_MACHINE
• Add %machine placeholder (WM_CLIENT_MACHINE) to title_format
• 'move container|workspace to output': toggle a workspace (or container)
between multiple outputs when multiple output names specified.
• Add 'move container|workspace to output next'
• Add 'all' window matching criterion
• Acquire the WM_Sn selection when starting as required by ICCCM
• Add --replace command line argument to replace an existing WM
• Notify systemd when i3 is ready, allowing other services in a systemd user session
to use i3 as a dependency