Giter Club home page Giter Club logo

swm's Introduction

SWM

Build and test Go Report Card GitHub go.mod Go version

SWM is a simple stacking window manager for X.

Installation

Clone this repository and run make build

How to use

SWM is meant to be controlled using X events and swmctl, its custom command sending tool.

X events could be sent using utilities like xdotool or wmctrl. Their commands, as well as swmctl ones could be mapped to keyboard shortcuts using utility like sxhkd. You can find example sxhkd config in examples.

swmctl

Swmctl is there for usecases that can't be easily done sending X events.

swmrc

Swmrc is shell script that is executed by swm upon startup. It is a good place to configure swm (border color etc.). Example swmrc script could be found in examples.

Documentation

See documentation for list of available swmctl commands, where to put swmrc, examples, and more.

swm's People

Contributors

janbina avatar jonasbina avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

jonasbina

swm's Issues

SWM managing clients problem

While using swm, sometimes (usually when i press Tab key to complete code on terminal but there is no completion for it) urgent color is triggered and swm can't manage that window anymore. Also when i open multiple windows swm usually doesn't manage some of them. Since there is no output about this, i don't know what's wrong. Sometimes i can't control some of windows, even i can't close theme so i use xkill to kill them. I guess there is problem with urgent windows, because they have red borders usually.

BTW, there is already a swm here. it's abondoned for wmutils but people used to use it a lot, you may want to change name of this project to avoid confusion, if this will be a longterm project, not only for thesis. I really loved this wm.

Not working

Can't start it with xinitrc. So i tried to run it in Xephyr so i can see what's wrong. Here is the output:

XGB: conn.go:47: Could not get authority info: EOF
XGB: conn.go:48: Trying connection without authority info...
2020/06/11 21:30:01 Setting selection owner.
2020/06/11 21:30:01 Getting selection owner.
2020/06/11 21:30:01 Swm is now your wm.
2020/06/11 21:30:01 Trying to execute config
2020/06/11 21:30:01 Executing config file "/home/taylantatli/.config/swm/swmrc"
2020/06/11 21:30:01 Error executing config file: exit status 1
2020/06/11 21:30:01 Handle root client message: _NET_NUMBER_OF_DESKTOPS (ClientMessage {Sequence: 171, Format: 32, Window: 921, Type: 241})
2020/06/11 21:30:05 Map request: MapRequest {Sequence: 182, Parent: 921, Window: 6291469}
2020/06/11 21:30:05 Client message _NET_ACTIVE_WINDOW: ClientMessage {Sequence: 274, Format: 32, Window: 6291469, Type: 254}
2020/06/11 21:30:06 Destroy notify: DestroyNotify {Sequence: 290, Event: 6291469, Window: 6291469}
[xgbutil] xwindow.go:326: BadWindow {NiceName: Window, Sequence: 315, BadValue: 6291469, MinorOpcode: 0, MajorOpcode: 4}
[xgbutil] xgbutil.go:240: BadWindow {NiceName: Window, Sequence: 306, BadValue: 6291469, MinorOpcode: 0, MajorOpcode: 7}
[xgbutil] xgbutil.go:240: BadWindow {NiceName: Window, Sequence: 319, BadValue: 6291469, MinorOpcode: 0, MajorOpcode: 6}
2020/06/11 21:30:08 Map request: MapRequest {Sequence: 324, Parent: 921, Window: 6291469}
2020/06/11 21:30:08 Client message _NET_ACTIVE_WINDOW: ClientMessage {Sequence: 397, Format: 32, Window: 6291469, Type: 254}
2020/06/11 21:30:10 Client message _NET_WM_STATE: ClientMessage {Sequence: 423, Format: 32, Window: 6291469, Type: 276}
2020/06/11 21:30:10 Wm state client message: 2, _NET_WM_STATE_MAXIMIZED_VERT, _NET_WM_STATE_MAXIMIZED_HORZ
2020/06/11 21:30:10 Client message _NET_WM_STATE: ClientMessage {Sequence: 455, Format: 32, Window: 6291469, Type: 276}
2020/06/11 21:30:10 Wm state client message: 2, _NET_WM_STATE_MAXIMIZED_VERT, _NET_WM_STATE_MAXIMIZED_HORZ
2020/06/11 21:30:12 Destroy notify: DestroyNotify {Sequence: 483, Event: 6291469, Window: 6291469}
[xgbutil] xwindow.go:326: BadWindow {NiceName: Window, Sequence: 510, BadValue: 6291469, MinorOpcode: 0, MajorOpcode: 4}
[xgbutil] xgbutil.go:240: BadWindow {NiceName: Window, Sequence: 501, BadValue: 6291469, MinorO
pcode: 0, MajorOpcode: 7}
[xgbutil] xgbutil.go:240: BadWindow {NiceName: Window, Sequence: 514, BadValue: 6291469, MinorOpcode: 0, MajorOpcode: 6}
2020/06/11 21:30:14 Map request: MapRequest {Sequence: 519, Parent: 921, Window: 6291469}
2020/06/11 21:30:14 Client message _NET_ACTIVE_WINDOW: ClientMessage {Sequence: 614, Format: 32, Window: 6291469, Type: 254}
2020/06/11 21:30:18 Destroy notify: DestroyNotify {Sequence: 618, Event: 6291469, Window: 6291469}
[xgbutil] xwindow.go:326: BadWindow {NiceName: Window, Sequence: 643, BadValue: 6291469, MinorOpcode: 0, MajorOpcode: 4}
[xgbutil] xgbutil.go:240: BadWindow {NiceName: Window, Sequence: 634, BadValue: 6291469, MinorOpcode: 0, MajorOpcode: 7}
[xgbutil] xgbutil.go:240: BadWindow {NiceName: Window, Sequence: 647, BadValue: 6291469, MinorOpcode: 0, MajorOpcode: 6}
XGB: xgb.go:403: A read error is unrecoverable: EOF
XGB: xgb.go:403: A read error is unrecoverable: EOF
panic: close of closed channel

goroutine 22 [running]:
github.com/BurntSushi/xgb.(*Conn).Close(...)
	/home/taylantatli/.go/pkg/mod/github.com/!burnt!sushi/[email protected]/xgb.go:140
github.com/BurntSushi/xgb.(*Conn).readResponses(0xc0001382c0)
	/home/taylantatli/.go/pkg/mod/github.com/!burnt!sushi/[email protected]/xgb.go:405 +0x25a
created by github.com/BurntSushi/xgb.postNewConn
	/home/taylantatli/.go/pkg/mod/github.com/!burnt!sushi/[email protected]/xgb.go:133 +0x206

xdotool and wmctrl commands are working. but not swmctl commands.

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.