Coder Social home page Coder Social logo

edwm's Introduction

edwm - Ethan's dynamic window manager
============================
edwm is a fork of dwm, an extremely fast, small, and dynamic window manager for X. edwm has all of the good stuff like Xresources support, gaps and swallowing prepatched into it while still being minimal and sensible keybindings for dvorak users.


Patches / features
------------
[x] actualfullscreen
[x] alwayscenter
[x] bottomstack - layout selectable with [Alt]+[o]
[x] centeredwindowname
[x] cfacts - resizing slaves
[x] combo - easily select multiple tags by holding MOD and pressing multiple tags at once
[x] cropwindows - ability to crop poorly framed windows by resizing and floating them in place
[ ] exresize - resizing floating windows with keyboard
[x] fibonacci - layout that is the "neofetch" of the dwm world; not practical but looks awesome
[ ] focusmaster - gives a "center" to your workflow by letting you quickly jump to the master client
[x] fullgaps
[x] horizontal grid - layout
[x] layoutmenu - rarely used but can help jog memory for layouts and is consistant with edwm being mostly mouse-compatable
[ ] mark - mark client windows like in vim
[ ] movestack - move clients in stack
[x] namedscratchpads - most extensible scratchpads
[ ] pertag - stores facts on tag basis?
[x] rmaster - swap each layout to have master on the right
[x] sticky - make a client follow you through all tags
[x] swallow - replaces terminal with program it launches
[x] swaptags - i3 tag swapping
[x] warp - warps cursor to newly selected screen
[x] resizehints = 0; No wasted space
[x] xresources

Purposefully excluded patches
------------
* alpha 
* alternativetags
* anybar - dwm already provides a beatiful minimal statusbar that is easily scripted for
* attachaside
* barpadding - wastes (too much) space
* clientopacity
* cmdcustomize - edwm uses xresources for colors so command options are superflous
* colorbar - is this compatible with xresources patch?
* defaulttransparency
* dmenumatchtop - dmenu is best with the center patch so it appears where your eyes are
* gaps - inferior to fullgaps since it has no outer gaps
* fullscreen - actualfullscreen fills this function
* gestures - mouse support is nice for resizing but is clunky for full control
* hide vacant tags
* historical
* holdbar - provides little space gain for the sacrifice of not having a constantly-viewable bar
* keycodes - translating keysyms into keycodes is a pain
* keymodes - similar to qutebrowser's normal and insert mode; another layer of complexity that you forget about and end up messing up your commands
* launcher - just use dmenu!
* leftlayout - if the layout symbol is on the left, when it changes it's size it moves all of the tags right or left
* moveresize - I believe mfacts provides the same feature
* movethrow - use case too rare
* mpdcontrol - just bind to mpc commands
* multikey - this sticky key functionality is worse than useless; just bind a new keybinding to a different key or with a modifier instead of hitting a key *twice*
* scratchpad
* onlyquitonempty - this patch is being a pain compiling against the latest version; a prompt with dmenu can be prepended to the quit command to prevent mistakes
* Pango - ttf-font-awesome works fine without it
* restartsig - just use `ssh-agent dwm` in your .xinitrc
* ru_gaps
* schemeSwitch
* script_tags - we use the dwm bar
* setborderpx - when would you ever want to dynamically change the border size
* showselmon - awesome patch but I don't use multiple monitors; if you do, let me know and I'll include the patch
* obey all sizehints - beats the point of a tiling wm
* smartborders - borders are useful to distinguish selected window
* systray - purpose better acheived w/ keybindings and scripts
* tab - ugly and is like tags within tags; too much abstraction



Requirements
------------
In order to build dwm you need the Xlib header files and XMenu (https://github.com/phillbush/xmenu).


Installation
------------
Edit config.mk to match your local setup (dwm is installed into
the /usr/local namespace by default).

Edit config.h to use your preferred programs and your bindings.

Afterwards enter the following command to build and install dwm (if
necessary as root):

    make clean install


Running dwm
-----------
Add the following line to your .xinitrc to start dwm using startx:

    if [ "$(tty)" != "/dev/tty2" ]; then
	#dwm-statusbar-daemon &
	# run your statusbar daemon and notification daemon in the background here
	# eg.
	#dwm-statusbar-daemon &
	#dunst &
	exec dwm

In order to connect dwm to a specific display, make sure that
the DISPLAY environment variable is set correctly, e.g.:

    DISPLAY=foo.bar:1 exec dwm

(This will start dwm on display :1 of the host foo.bar.)


Configuration
-------------
The configuration of dwm is done by editing the default config.h
and (re)compiling the source code.

edwm's People

Contributors

ethanid avatar

Watchers

 avatar  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.