Code Monkey home page Code Monkey logo

dwm's Introduction

Functional dwm

A version of dwm that sucks-less for new users

Suckless' Dynamic Window Manager is a great piece of software in itself, however, due to the minimalist philosophy behind its development, dwm lacks so many important features that a tiling WM should have (for example: a system tray in status bar, abiltiy to move windows in the stack, ability to restart dwm, etc). The users are meant to add any functionality they like by applying the patches, but this can discourage a lot of new users as applying the patches can be a tedious process and sometimes even frustrating.

This version of aims to provide a version of dwm that ships with sane defualts and all the important patches which mostly include ones that modify or add functionality and a couple that make the WM look clean and modern. This way even the unseasoned user can install dwm and have a usable setup ready in no time. This is especially great for those who want to try dwm without going through the process of customizing it yourself. Once you know that this WM is for you, you can then begin your journey of creating your own version of dwm.

Install

  • Clone Repo git clone https://github.com/VoltaireNoir/dwm .dwm
  • Compile dwm cd .dwm && sudo make clean install
  • Add exec dwm to your xinitrc or if you use a Display Manager (a login manager), create dwm.desktop file in /usr/share/xsessions/ with the following contents:
    [Desktop Entry]
    Name=dwm
    Comment=Dynamic Window Manager
    Exec=dwm
    Type=Application
    
  • Optional: Make autostart.sh and/or autostart_blcoking.sh executable chmod +x autostart.sh autostart_blocking.sh

Configure

  • Edit config.h and save the changes.
  • Compile dwm
  • Restart dwm (mod+shift+r)

Included Patches

  • Actual Fullscreen
    • Toggle fullscreen mode for windows/clients
  • Adjacent Tag
    • Switch to adjacent tags with keyboard shortcuts
  • Always Center
    • Floating windows will always spawn in the center instead of being spawned in the top-left corner
  • Attach Below (toggleable)
    • New clients are added below the active client instead of being added to the master stack (this behaviour can be toggled on/off using the shortcut mod+shift+tab or in the config file
  • Autostart
    • Autostart programs by adding them to the autostart.sh or autostart_blocking.sh in .dwm/ directory
  • Bar Height
    • Pick bar height or let dwm calculate it automatically for you
  • Cfacts
    • Resize individual tiled windows (changes can be reset with mod+shift+n)
  • Color Bar
    • Modify foreground or background colors of all status bar elements
  • EWMH Tags
    • "EWMH support for _NET_NUMBER_OF_DESKTOPS, _NET_CURRENT_DESKTOP, _NET_DESKTOP_NAMES, and _NET_DESKTOP_VIEWPORT, which allows for compatibility with other bars and programs that request workspace information"
  • Full Gaps
    • Add gaps around the clients (can be controlled with keyboard shortcuts)
  • Move Resize
    • Move and resize floating windows using keyboard shortcuts
  • Move Stack
    • Move tiled windows up or down in the stack (mod+shift+j/l)
  • Per Tag
    • Enable per tag layouts
  • Remove Border
    • Remove border if only a single window is occupying the tiling space
  • Reset Layout
    • Reset master stack horizontal size to default
  • Restart Sig
    • Restart dwm (especially useful after making changes and re-compiling)
  • Sys Tray
    • System tray for the built-in dwm status bar

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.