Giter VIP home page Giter VIP logo

nimdow's Introduction

nimdow

A window manager written in Nim

NOTE: Nimdow is in Beta but is very usable. Please report any bugs you may find.

I am using this project to learn Nim, x11, and to replace my build of dwm (written in C).

Screenshots

Installation

Building from source

  1. Ensure you have nim and nimble installed. My preferred method is to use choosenim to install these.
  2. Clone this repo
  3. Execute nimble release from the package directory to create a release build (The built binary will be in ./bin/nimdow)
  4. Copy the default config (config.default.toml) to ${XDG_CONFIG_HOME}/nimdow/config.toml, OR to ${HOME}/.config/nimdow/config.toml. Nimdow will NOT run if you skip this step.

AUR

If you are on an Arch Linux based system, use nimdow-bin in the AUR to install a pre-built binary.

Command line arguments

Currently the only argument that may be provided is a config file path. This was added for testing purposes.

E.g. $ nimdow ./some-config.toml

If no argument is provided, we use the config file mentioned in the Building from source section.

Status Bar

The status bar displays:

  • The available tags on the top left
  • The focused window's title in the center
  • The status (set by the user) on the right

Setting the status

The status is the text read from the root window's name property, which can be set with xsetroot -name "My status". This is the exact same way dwm manages its status. I recommend reading their page about setting statuses.

Roadmap

Version 0.5

  • Multiple tags (single tag viewed at one time)
  • Fullscreen windows
  • Multihead support
  • User configuration file loaded from $XDG_CONFIG_HOME (or $HOME/.config)
  • Status bar integration
  • Floating window support
    • Move windows with super + left click
    • Resize windows with super + right click drag
  • Layouts:
    • Master/stack
  • Keybindings:
    • Close window
    • Toggle fullscreen
    • Navigate windows
    • Navigate tags
    • Move windows in stack
    • Move windows between tags

Version 1.0

  • TBA (partial list, still in discussion)
  • Layouts
    • Monocle
  • Keybindings:
    • Move window between monitors
    • Add/remove window per tag
    • View multiple tags
    • Assign single window to multiple tags
    • Swap tags between monitors
    • Reload Nimdow (to apply configuration changes)
    • Switch layout to master/stack
    • Switch layout to monocle

Testing locally (for development)

  1. Create a copy or symlink of the config file in $XDG_CONFIG_HOME/nimdow/config.toml
  2. Start up Xephyr: Xephyr -ac -screen 1920x1080 -br -reset -terminate 2> /dev/null :1 &
  3. Execute nimdow on the new display: DISPLAY=:1 ./nimdow

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.