All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- The currently supported MSRV is 1.74.0
- The
layouts
andworkspace.layouts
inconfig.ron
must be declared as Strings because they are no longer backed by an enum. (ie. uselayouts: ["CenterMain"]
instead oflayouts: [CenterMain]
) - The
max_window_width
config was removed without direct replacement. The "always fill entire screen" behavior can now be addressed by creating a custom layout with an appropriateReserve
property. - LeftWM now depends on
lefthk
^0.2.0, which has been refactored (thanks to @blackdragon2447 in #1154)
- The commands
IncreaseMainWidth
/DecreaseMainWidth
were deprecated in favor ofIncreaseMainSize
andDecreaseMainSize
- The
max_window_width
config option was removed
- Implemented the new leftwm-layouts library (via #1000 by @hertg)
- Added
IncreaseMainSize
/DecreaseMainSize
as a replacement for the deprecatedIncreaseMainWidth
/DecreaseMainWidth
(closes #545 via #1000 by @hertg) - Added
ToggleMaximized
command (closes #973 via #1121 by @bksalman) - Added
ToggleAbove
command (closes #1094 via #1160 by @Eskaan) - Add support for multiple main windows on all layouts that have a main column, new commands are
IncreaseMainCount
andDecreaseMainCount
(closes #516 via #1000 by @hertg) - use
unwrap_newtypes
extension in ron deserializer (via #1000 by @hertg) - Improved error and documentation for external commands using leftwm-command (thanks to @Silicasandwhich in #1098, resolves #1096)
- General improvements to leftwm-log, including a nicer matching solution and feature-gates functions (thanks to @Eskaan in #1109)
leftwm-command -l
has been parameterized using theleftwm-macros
library (thanks to @Mautamu in #1115; closes #1095)- Added
disable_cursor_reposition_on_resize
option to config (thanks to @BKSalman in #1123) - Fullscreen ordering/resizing changes and other optimizations (from @Eskaan and @bksalman in #1136, #1164, #1158, #1159)
- Commented example configuration (by @VuiMuich in #1133)
- The currently supported MSRV is 1.70.0
- Changing main width now works on all layouts that have a main column (fixes #96 via #1000 by @hertg)
- Fixed a bug where windows would sometimes spawn on the last tag (fixes #1065 via #1093 by @Silicasandwhich)
basic_lemonbar
theme now works if the user has only one workspace, the clock is independent of leftwm-state, the tags are now clickable and have better naming (thanks to @simtd in #1101)- Ron option checking by
leftwm-check
has been corrected when#![enable(implicit_some)]
is not present (thanks to @samuelabreu in #1110) output
field has been returned toleftwm-state
(thanks to @Eskaan in #1116, resolves #1111)- Maximized windows no longer hide dock and desktop (thank to @BkSalman in #1126)
- Readme typos and changelog rename in #1113 thank to @Chudson16 and #1091 thanks to @Eskaan; various code formatting changes (thanks to Eskaan in #1117, #1120)
- Dialog windows now obey application-defined sizes (thanks to @Silicasandwhich in #1166; closes #1118)
- Nixos flake rewritten to use flake-parts (#1122 by @vesdev)
- Moved windows no longer switch to the first tag (closes #1054 via #1161 by @Eskaan)
- Clippy fixes and updates which results in MSRV=1.70.0 (by @VuiMuich, @cyril-marpaud, and @Mautamu in #1137, #1130, #1151)
- Created
Matrix
chatrooms as an pure OSS alternative toDiscord
- Added check to
leftwm-check
to ensure all necessary binaries are installed (via PR #1077 by @mautamu) - Make Workspace IDs unique and predictable (via PR 1043 by @hertg)
- Add optional behaviour Settings for
FocusNextTag
andFocusPreviousTag
to skip or expricitly go to (un-)used tags (via #1086 by @Silicasandwhich) - Enhance visibility of configuration errors in
leftwm-check
output (via PR 1072 by @realGWM) - Add
SwapWindowTop
command as an alternative toMoveWindowTop
(via #1005 by @emiliode) - Reposition mouse cursor to bottom-right corner of window when resizing (via #1009 by @nemalex)
- The currently supported MSRV is 1.65.0
- Fix build error caused by deprecated macro in
git_version
(via PR #1075 by VuiMuich) - Fix
template.liquid
inbasic_lemonbar
example theme (via PR #1080 by VuiMuich) - Fix to correctly restore order of windows after exiting fullscreen (via PR #1053 by @jean-santos)
- Fix that focus is found after the focused window got destroyed (via PR # 1055 by @jean-santos)
- Correct writing and formatting of docs in
themes/basic_eww
(via PR #107 by @NAHO) - Various performance improvements for
command pipe
,event loop
,set_layout
and more (via PRs #1016, #1017, #1018, #1067, #1068 by @vrmiguel) - Made AUR packages better compliant to packaging specs and use correct detection for
systemd
based systems (via gists by @eclairevoyant) - Fix minor regression where
res_name
andname
window properties were no longer checked by window rules (via #1002 by @guigot) - Simplified async test (via PR #1069 by @vrmiguel)
- Temp fix for MainWidth inconsistency until layout-lib
- Fix crash when swapping tag at startup
- Swap for new copr repo
- Using args[0] instead of current_exe() under OpenBSD. current_exe() is not supported in this OS.
- replace
<module-name>/mod.rs
with<module-name>.rs
- Fix manual install instructions
- Change default layout mode to
Tag
- Exclude NetBSD in
build.rs
and avoid build-hangs - Print
lefthk
warning only when no binary present - use
implicit_some
extension in ron deserializer - small update to readme
- Make help pages work
- better clap and fix broken
workspace
flag forleftwm-state
- Fix binary arguments (clap)
- Some fixes for the
Makefile
andflake.nix
- Make
test-full
fail on warnings - bump several depedencies
- Make
leftwm --version
work - Improve output of
leftwm-check --verbose
- Fix
--no-default-features
build failing - Refactor: Move xlib display server to it's own crate
- Add link to
leftfwm.desktop
to the README - Fix new windows always getting stacked topmost
- Also a bunch of little papercuts and code cleanup
- feat(config): allow regexps in window_rules for window_class,
- Option to hide border when only one window is visible
- added lefthk feature checks and errors
- add features log to leftwm-check.
- handle theme templates within Makefile
- Add optimized build profile
- Add leftwm config subcommand
- Add
background_color
to theme config - update theme examples to ron
- update eww example
- Feature: Multiple
up
scripts - Add install-linked-dev to Makefile
- feat: Add a
spawn_as_type
to thewindow_rules
configuration - Added nix tests to Makefile.
- Added a few options to the pr template
- Add a few window rules
- The currently supported MSRV is 1.60.0
- Fixed again a lot of small papercuts
- Command parity between keybinds and external aka
leftwm-command
commands - Improved window snapping
- Improved behaviour of floating windows
dock
windows not recievingclick
after some window wasfullscreen
- Commands
AttachScratchpad
,ReleaseScratchpad
,NextScratchpadWindow
,PrevScratchpadWindow
- Commands
MoveWindowToNextTag
,MoveWindowToPreviousTag
- Window rules by
WINDOW_CLASS
orWINDOW_TITLE
test-full
toMakefile
using padantic clippy as well- Introduced
lefthk
as default daemon to handle keybinds - Changed config language from
TOML
toRON
- Journald logging is default for AUR packages and when building from source
- Tags support
urgent
flag sloppy_mouse_follows_focus
disable_window_snap
- The currently supported MSRV is 1.59.0
- The currently supported MSRV is 1.52.0
To view the full list of changes visit the milestone.
- Fixed a command in basic-eww theme
- Window width resetting on tag resize
- Render emoji's in window titles
- Greatly improved dialog handling
- Many focus fixes
- leftwm-check not running needed checks
- Xterm loading times
- Floating windows going behind newly tiled windows
- Windows opened from a terminal will spawn on the same tag
- Added Makefile
- When in ClickTo, windows are focused when moved/resized
- ToggleFloating and TileToFloating commands
- Manpage
- lots of small papercuts
- xdg-autostart
- Better config checking
- Layouts by Tags not Workspaces
- New Commands
- Split into two crates
- So So many Bug fixes
- Add the command 'leftwm-command' to run commands
SwapTags
now works properly for multi-workspace users- Xlib events now read asynchronously
- Weird focus issues
- Some floating windows are now sized properly
- Floating windows are now always on top
- Basic-polybar theme now reports seconds correctly
- Startup banners no longer take up the whole screen
- Bug Fixes in tests
- Window order is now restored on reload
- Several code refactors
- MainAndHorizontalStack layout
- CenterMainBalanced layout
- Monocle layout
- RightWiderLeftStack layout
- LeftWiderRightStack layout
- MainAndDeck layout
- Active layouts may now be set in config.toml with
layouts
- GotoTag sends screen to previously viewed tag
- Added
disable_current_tag_swap
to config.toml to maintain old behaviour
- Added
- Mousekey for floating drag/resize can now be set with
mousekey
in config.toml - FloatingToTile command that allows a window to be set to float in config.toml
- Theme Margins [top/bottom side] or [top right bottom left] added for theme.toml
- Added
leftwm-check
binary that allows for configuration files (config.toml, theme.toml) to be checked. - Autostart applications can now be disabled by setting X-Gnome-Autostart to false in the appropriate .desktop file
- SetLayout command added to set specific layouts externally
- Lots of notes have been added to the library documentation
- Performance improvements (async update)
- Bug fixes
- layout sizing by user (Mod+h / Mod+l)
- Performance improvements
- Bug fixes
- Bug fixes
- New Layouts
- Sizing and loading issues with docks
- Many small bug fixes
- Much better logging
workspace.layout
toleftwm-state
output.- Layouts are now preserved between reloads.
- fix build with latest version of rust
- Stability and performance updates
- EWMH compatibility fixes
- The way floating windows move with workspaces
- layout Grid
- layout Fibonacci
- Stability and performance updates
- EWMH compatibility fixes
- Improvements to theme system
- Better default key bindings
- Fix Several small papercuts and bug fixes
- reloading while keeping current window state
- Keyboard navigation between workspaces
- min/max window size support
- callback to call theme scripts on new window
- Fix Several small papercuts and bug fixes
- Fix issues with multiscreen bars
- Cleanup and refactor code
- leftwm-state to get state info from leftwm for bars
- Added template system for theme creation
- Bugs and issues with bars
- Several small bugs fixes
- Renaming of tags
- keycombos to refocusing windows
- Added layout - Main/Stacked