Giter Site home page Giter Site logo

hashtwm's Introduction

HashTWM

A dwm-like automatic tiling window manager for Microsoft Windows, download at https://github.com/ZaneA/HashTWM

Usage

Run HashTWM.exe. All windows on screen will automatically be tiled in a vertical layout, similar to dwm in the Linux world. You should be able to combine a Virtual Desktop manager with multiple instances of HashTWM (with different mod keys) for workspace like support. Beware this is alpha software, so your milage may vary.

Key bindings (By default mod is Ctrl + Alt)

Mod + Escape - Exit (Windows should be restored to normal)
Mod + j/k - Cycle through tiled windows
Mod + Shift + j/k - Move selected window down/up
Mod + Enter - Switch selected window in to main area
Mod + h/l - Shift split offset
Mod + z/x - Increase/Decrease number of windows in main area
Mod + c - Close foreground window
Mod + b - Toggle border for selected window on or off
Mod + Space - Switch between tiling modes, Vertical/Horizontal stack, Grid, and Fullscreen
Mod + y - Display foreground window class (For use with -i or -a parameters)
Mod + u - Toggle lock cursor mode. In this mode cursor is locked inside the active window
Mod + i - Toggle ignore mode. If ignore is on then new windows will not be tiled but will appear as normal
Mod + o - Force Tile Foreground window
Mod + p - Force Untile Foreground window (useful in combination with above for moving windows to another monitor)

Mod + 1-5 - Switch to tag
Mod + Shift + 1-5 - Move Window to tag

Command Line Options:

-v		Display Version and exit
-l		Enable mouse lock by default
-i [class]	Add window class [class] to ignore list (blacklist)
-a [class]	Add window class [class] to include list (whitelist)
-m [mod]	Change the modifier key, eg. -m ws will set modifier to Win + Shift, you can combine the following:
    c - Control
    a - Alt
    s - Shift
    w - Win
-t [mode]	Change the default tiling mode, can be one of the following:
    0 - Vertical stack
    1 - Horizontal stack
    2 - Grid
    3 - Fullscreen
-left	[pos]	Left position of display, a monitor to the left of the main display will be a negative number, eg. -1024
-top 	[pos]	Top position of display, eg. 0
-width	[pos]	Width of display, eg. 1024
-height [pos]	Height of Display, eg. 768
-x		Enable experimental mouse polling for activating hotkeys based on mouse position
--one-tag  When tagging windows, move window instead of toggling it

If display positions aren't specified on the command line then the workspace area is used instead.

Example shortcuts (for two displays):

Left: HashTWM.exe -x -left -1024 -top 0 -width 1024 -height 768 -i iTunes -i ConsoleWindowClass -i #32770

Right: HashTWM.exe -x -left 0 -top 0 -width 1024 -height 768 -i iTunes -i ConsoleWindowClass -i #32770

A useful class to ignore is #32770 which will ignore all message boxes.

My usage is the following (tile only MinTTY and Vim windows):

HashTWM.exe -a mintty -a Vim

Quirks

If experimental mouse polling isn't enabled then you will need to set different mod keys for each instance of HashTWM.

All open windows will be restored (un-minimized) when HashTWM is started.

Grid mode doesn't quite work right, last window isn't always tiled correctly, likely a mistake in my port. Other than that it works great.

hashtwm's People

Contributors

zanea avatar jubalh avatar apeschel avatar johnmurga avatar jasu avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.