In general, Jwno works as a keyboard driven tiling window manager. When a new window shows up, it tries to transform the window so it fits in the layout you defined. You can then use customized key bindings to modify the layout or manipulate your windows, rather than drag things around using the mouse. But, since a powerful generic scripting engine is built-in, you can literally do anything with it.
Jwno is still in active development, but it already has many desirable features.
đĒļ Super lightweight.
Please, go to the download page and check out the file size. And maybe click on the download link while you're there đ.
đŧ Single portable executable.
Just grab the exe and you are good to go.
đ¤ Non-intrusive.
Jwno only changes the layout or moves your windows when you tell it to. It works well with native window management provided by the operating system.
đĨī¸ Native virtual desktops.
It's designed to work with native Windows virtual desktops.
đž Hackable REPL.
Like most Lisp systems, Jwno has REPL support. You can hack it while it's still running đ¤.
đĒ Highly customizable.
You can implement custom commands and hooks to trigger. It's even possible to call native Win32 APIs in your own implementations. For example, to always move a Notepad window to the (100, 100)
coordinates on your screen(s), using the low-level SetWindowPos function:
(use jw32/_winuser)
(:add-hook (in jwno/context :hook-manager) :filter-window
(fn [hwnd _uia exe _decktop]
(if (string/has-suffix? "\\notepad.exe" exe)
(do
(SetWindowPos hwnd nil 100 100 500 500
(bor SWP_NOZORDER SWP_NOACTIVATE))
false)
true)))
â¨ī¸ Powerful key binding system.
It supports multi-level and transient keymaps. For example, this defines a multi-level keymap:
(:define-key keymap "Win + Enter A" :command1)
(:define-key keymap "Win + Enter B" :command2)
To run :command1
, one should press Win + Enter
, and then the A
key. To run :command2
, press Win + Enter
followed by B
key instead. The code above essentially "groups" :command1
and :command2
under Win + Enter
.
⨠...And there are more to come!
Please support Jwno's development by using it and giving some feedback. If you're interested, head over to the installation guide.