Skip to content

Latest commit

 

History

History
146 lines (92 loc) · 4.56 KB

README.md

File metadata and controls

146 lines (92 loc) · 4.56 KB

Windeye

Windeye is a "light" dynamic window manager for Windows 10. It aims to improve the windows management capabilities of Windows — primarily by introducing automatic tiling and keyboard navigation — without altering Windows's own functionality.

Features

  • Move focus between windows using using only the keyboard

  • Resize and move windows using only the keyboard

  • Automatically tile windows

  • Move windows between virtual desktops

  • Vi-like keybindings for navigation

Installation

Either download the executable file and run it. Or download AutoHotkey, install it, and run src\Windeye.ahk — or compile into an executable by running tools\Build.ahk (for now, right-clicking and pressing Compile Script also works).

Note that running the executable places VirtualDesktopAccessor.dll in the executable folder.

Usage

Use the direction keys ( or hjkl) in combination with the modifier keys to do the following:

  • Alt: Move focus

  • AltShift: Move window

  • AltCtrl: (Up/Down) Maximise/minimise window; (Right/Left) Tile window to the right/left

  • AltCtrlShift: Resize window

Beyond this, use the following key combinations:

  • Altx: Untile window (if a window is moved with the keybindings, this also untiles that window)

  • Altr: Cascade all windows on the desktop

  • Altn/b: Next/previous desktop

  • CtrlAltn/b: Move window to next/previous desktop

  • ShiftAltn: Create new virtual desktop (identical to WinCtrld)

  • Alt,/.: Increase/decrease width of tiling area

  • Altz: Cycle through the windows

  • ShiftAltz: Select previous window

  • Altq: Close window

  • Altc/v: Alternative keybinding for Alt(Shift)Tab

  • ShiftAltr: Reload the script

  • ShiftAltx: Exit script

Configuration

The keybindings (and some behaviour, such as how far to move a window with each command) can be modified by editing src\Keybindings.ahk. In other words, the keybindings cannot be changed in the pre-compiled version.

Limitations/know bugs/todo/untested

  • So far I have only tested this on a single screen setup. Probably a multi-screen environment will not work without issues.

  • Probably only supports Windows 10

  • Does not detect new windows, which means these have to be tiled manually etc.

Notes, questions and answers

Why?

I wrote this mainly to satisfy my own need for better and more intuitive window management. Windows of course has its own (dynamic) window management, but its functionality leaves some things to be desired (eg why can I tile windows with keyboard shortcut but not quickly select them?).

While there already are programs such as bug.n — which you should definitely try out — I found myself only using some of its functionality: the keyboard navigation and ability to quickly reposition windows. The other functionality I rarely used, such as the detailed control of parent and child areas.

Windeye tries to do much less and tries to use, to the extent that it is possible, Windows's own functionality.

The code looks horrible

Yes, probably! I'm not a programmer and wrote this in my free time — I'm just learning as I go. Suggestions for improvement are welcome.

The name?

The word "window" comes from the Old Norse word "vindauga", which literally means "wind-eye".

Why not use the Windows-key?

This was my original intention, but WinL locks Windows. It is possible to disable this functionally, but then Windows cannot be locked at all. If you are fine using the arrow keys (instead of the vi-like keybindings), then the keys can be rebound using the Windows-key.

Credits/inspiration

License

MIT License (see LICENSE for more information)