Git Product home page Git Product logo

frankenwm's Introduction

FrankenWM

"monsterwm's bastard child" or "not the wm your desktop needs, but the one it deserves"

FrankenWM is a dynamic tiling WM (comparable to dwm or Awesome), featuring the v-stack, b-stack, grid, fibonacci, dualstack, equal and monocle layouts out of the box. If you want to, you can add gaps between the windows as well.

It was once based on monsterwm but has undergone many greater changes including adding pieces from other WMs (hence the name) and porting all sorts of stuff from Xlib to XCB. Many of the original monsterwm patches have been ported as well.

All settings must be set at compile time by editing config.h and it does not feature a status bar (but supports leaving preconfigured space for one). I prepared a few scripts for different bars here.

Installation

Note: If you are on Arch Linux, you can use the AUR.

You need xcb and xcb-utils then, copy config.def.h as config.h and edit to suit your needs. Build and install.

$ cp config.def.h config.h
$ $EDITOR config.h
$ make
# make clean install

The packages in Arch Linux needed for example would be libxcb xcb-util xcb-util-wm xcb-util-keysyms

Configuration

Configuration is done by editing config.h before compiling FrankenWM.

Usage

I took the time to write a really nice and pretty manpage (man frankenwm, or man ./frankenwm.1 if you want to read it before installing) covering the tiling modes and all of the default shortcuts.

Bugs

You can report bugs and request features here: FrankenWM GitHub issues or ArchLinux Forums

Thanks

Parts of FrankenWM come from:

Inspiration from:

frankenwm's People

Contributors

0323pin avatar alfiedotwtf avatar ani1001 avatar c00kiemon5ter avatar ciscon avatar cloudef avatar dct2012 avatar ebfe avatar ehen avatar ideasman42 avatar jasonwryan avatar kazcw avatar moetunes avatar nbyouri avatar oemmerson avatar qsmodo avatar sulami avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

frankenwm's Issues

Reload on the fly

Is there any plan to add reload functionality? Kind of compile and reload in Xmonad. It's a bit long if I have to do it manually, so it will be a great to have this functionality without closing X. Thank you.

Misleading name

Frakenstein was actually the doctor who created the monster.
The monster itself has no name and throughout the novel is referred to simply as "monster".
Currently, your Window Manager makes reference to a doctor who created a monster, not to a monster itself.
I don't believe you are going to rename it, but just thought about letting you know.
And thank you for conceiving it, looks pretty good so far.

Outputting to FIFO

I don't know if it's juts me but I can't get frankenwm to output to anything at all, using the latest build. If anyone could let me know what I'm doing wrong (trying to get the output to lemonbar), I'd be very grateful. Just using the provided script (dwm-like, to bar), edited out so that it's lemonbar. But the fifo is always empty.

How to autostart application on login ?

Hello, I am really impressed with window manager, no doubt it's one of the best. I am used the autostart application using autostart.sh script but I can't find the way to do this here. But how to autostart applications ?

Chrome flickers in monocle mode

  • Open any app (e.g. terminal)
  • Open Chromium.
  • Select monocle mode in frankenwm
  • Focus Chromium
  • Click on any part of the webpage.
  • Chromium flickers.

Screenshots have extra border

As is evident in the screenshot (this one was taken with scrot although maim also has the issue) an additional border is seen around the windows excluding the bar (polybar in this case). Not sure why this is happening.

Command used for maim was: sleep 2 && maim -m 10 frwm_2.png
and that for scrot was scrot -d 3 -q 100 frwm_2.png

on startup, windows that should never be displayed are added to client list

Some programs create windows that are never intended to be displayed, e.g. a terminal vim session opens an X window to interact with the paste buffers. During a single WM session this window avoids being displayed by simply never sending the WM a map request, but frankenwm's current startup behaviour will addwindow every existing client without regard to its initial mapping state.

Tabbed layout

Can we add tabbed layout into frankenwm? It will be like monocle layout but we will know all windows that we have in the workspace by looking into the tab.

Release

Hi,
Please add release(s) for maintainers.

Keyboard not responding after reconnecting

Keyboard shortcuts are working as expected. I disconnect my external keyboard (this is a laptop) and reconnect it again. Suddenly the window manager does not recognize any keystroke/shortcut. Apps still run fine.

Crash

  1. Open window1
  2. Open window2
  3. Minimize one of them
  4. When you minimize the other, the X session is killed

Match against window title in rules

If a program draws a bunch of new windows all of them sporting the same WM_CLASS there's no way of directing them to their respective desktops (manually doesn't count). Are there any plans to make rules match against window titles (WM_NAME or NET_WM_NAME, don't know)?

Multi monitor support

I know sulami was working on it, but is it finished?

FrankenWM with multi monitor support like DWM and MonsterWM. I think it's the best way to draw on every screen the same?

Change priority

For example, the normal vertical stack goes like:

  ___________    ___________    ___________ 
 |           |  |       |   |  |       | 1 |
 |     0     |  |   0   | 1 |  |   0   |___|
 |           |  |       |   |  |       | 2 |
 |___________|  |_______|___|  |_______|___|

The inverse vertical stack would go like:

  ___________    ___________    ___________ 
 |           |  |       |   |  |       | 1 |
 |     0     |  |   1   | 0 |  |   2   |___|
 |           |  |       |   |  |       | 0 |
 |___________|  |_______|___|  |_______|___|

Currently, the first window spawned gains priority. In the inverse mode, the new window gains priority.

Something like:

MOD4+SHIFT+p: Change priority mode

FIFO

Hi. I'm trying your wm and so far so good. There is one problem, I'm using lightdm to start frankenwm. So couldn't figure out how to create fifo for panel. I changed xsession file's exec line, like this: frankenwm > /tmp/frankenwm.fifo but it didn't login. What can i do to use panel? Sorry for noob question. Thanks.

Rebuilding the 2 Pull-Requests

Main problem was, they were built on previous "Fullscreen" enhancencement and maybe did not build because of this.
Thanks for merging "Fullscreen".

FOLLOW_MOUSE does not seem to work

What I have in my config is this:

`

define ATTACH_ASIDE True

define FOLLOW_MOUSE True

define FOLLOW_WINDOW True

define CLICK_TO_FOCUS False

`
But it's not working and I don't know where I've gone wrong configuring it. I'd be glad if someone point me where's my mistake.

Beside that, I'm struggling with the autostart. I'd appreciate this too :)

Have a nice day.

No Output to Statusbar?

I have been trying to setup a status bar in FrankenWM.

I copied the dzen2 scripts from your gist.

When I run then as written they both fail to start with errors:

frankenwm2dzen-dwmlike.sh:

~/bin/frankenwm2dzen-dwmlike.sh: 6: ~/bin/frankenwm2dzen-dwmlike.sh: Syntax error: "(" unexpected

frankenwm2dzen.sh

~/bin/frankenwm2dzen.sh: 6: ~/bin/frankenwm2dzen.sh: [[: not found
~/bin/frankenwm2dzen.sh: 10: ~/bin/frankenwm2dzen.sh: Syntax error: "(" unexpected (expecting "done")

I changed the sh to bash in the shebangs and ran them again.
Now they start but I just get the a blank status bar at the top of the screen, and the I cannot quit the window manager when running the dwmlike version of the script.

I deleted the pipe in the tmp dir between attempts.

I also tried changing the shell to zsh in the shebang but the results were the same as bash.

Resizing follows cursor actions, but not its position

If i put the cursor at the middle of the screen and MOD4+right_click to resize, after dragging it should go to where the cursor is dragging too.
Instead, the window just obeys how much I drag, but not where I am dragging.

IRC channel or forum or atherwise best way to contact you

(^^^ should have been 'otherwise' in the headline)
Well, you closed the issue, so to say thank you I had to open a new issue. This is not ideal, kind of using a bug tracker as a forum. Seems you're not on the Arch Linux forums, is there a frankenwm irc channel anywhere?

Compile issues

This didn't happen before, I poked around for a solution.
I have a feeling its another one of those obvious things that Ive missed

2015-07-28-213813_562x397_scrot

Autostarting picom and polybar when launching Frankenwm

Hi,
so I've just installed FrankenWM and love it so far, very fast and minimal window manager, but is there any way to autostart applications or daemons like picom, polybar, emacsclient etc. in FrankenWM with a shell script or in the config itself? Im not very experienced in C so I don't know if this is a stupid question.

Thanks a million in advance

AppRule triggers invisible app in the wrong desktop

In my config.h I have

    static const AppRule rules[] = { \
    /*  class     desktop  follow  float */
    { "Sylpheed",     4,    False,   False },
    { "Pidgin",        4,    False,  False  },
    };

Now, whenever I start sylpheed using dmenu, the sylpheed window is invisible and create a new tile/region in my desktop 0. If I change to a different desktop and back the desktop 0, the window is finally visible.
2014-06-30-150808_1920x1080_scrot

The blue is my root window.

Unable to set top bar/panel using polybar.

Unable to set top bar/panel using polybar. Bottom bar works perfectly but top bar don't work.

Here is what I do and what I get
$ polybar mybar -c path/to/my/bar
Output:> Segmentation fault (core dumped))

top bar works in other window managers but not work in frankenwm.

frankenwm2bar.sh - frankenwm: error: other wm is running : No child processes

There was a thread about this issue before but a solution was no provided by OP.
I've been googling and searching but i can't seem to figure this out.

I changed bar to lemonbar in the script.

Launching frankenwm2bar.sh from a terminal results in:

frankenwm: error: other wm is running
: No child processes

My .xinitrc:

#!/bin/sh
exec frankenwm & wmpid=$!
sleep 2
~/.config/scripts/bar.sh &
~/.config/scripts/display.sh external &
hsetroot -cover ~/Pictures/Wallpapers/Wal_1.jpg &
xrdb -load /home/rico/.Xresources &
wait $wmpid

Lemonbar launches and shows me the date and time but nothing else.

I'm not sure what is causing this or what i should google for. Any help is greatly appeciated.

EDIT:
Distro: Arch
FrankenWM built from source.

EDIT:
Error message might be unrelated to my problem.
frankenwm.fifo seems to be empty.
As suggested in a different threed i set EWHM_TASKBAR to False, didn't work tho.

Graphical glitch

http://a.pomf.se/czfppg.webm

This freezes FrankenWM and I have to quit X or even hard poweroff the computer sometimes. It makes it pretty unusable for me, unfortunately. Hope it can be fixed soon.

And it doesn't show, but the cursor keeps blinking ultra between 'loading' and another mode very fast when hovering on the grey window.

Can't see windows in monocle mode

For some reason when in monocle mode I can only see one window. Although window switching works (the one on top loses focus) it doesn't put the selected window up front for me to see, it stays in the background...

Here's my �config.h, I'm running the latest git version.

Per window border size/color for application specific rules

It would be nice if we can set the border size of specific windows matched to their rules.
Like;

static const AppRule rules[] = { \
    /* title regex  desktop  follow  float  border_width  border_color */
    { "GNU Image",  -1,      False,  True,  3,            "#ffffff" },
    { "Skype",       3,      False,  True,  3,            "#ffffff" },
    { "Chromium",    2,      False,  True,  0,            "#ffffff" },
    { "xterm",      -1,      False,  False, 5,            "#ff00aa" },
};

The Awesome implementation; http://awesome.naquadah.org/wiki/Understanding_Rules#Getting_Started

Just another quick question

@sulami
I've been using frankenwm since the work on packaging it for NetBSD.
I'm very happy with it and looking no further. Great WM!

Do you have any experience integrating it on a DE?
Anything to think about if I was to replace openbox by frankenwm on LXQt?
Any config in config.h I should be careful about?

Thanks!

Please feel free to close the issue.

Improvement of bottom stack

My idea is for the bottom stack to become horizontal stack, where new windows can be spawned either on the bottom or the top (changing it with MOD4+SHIFT+i, just like you do for the vertical stack).

Inconsistent handling of floating windows

Some windows are floated when created and others that may/should be floating are not.

Using Pidgin, create a new account but do not save your password. Close Pidgin and open it again. It will trigger a window asking for the password for the account. This window is not floated.

Using Pidgin, use CTRL+M in your buddy list to open a window to select a contact. This window is floated.

I'm using bspwm as a reference, which floats both type of windows.

Border missing from first window

Just something I noticed but whenever I start an x session and open my first window It does not have a border around it.

When I open a second window borders will appear around both of them.

Any idea whats going on? thanks.

Vertical and Horizontal mode

  ___________    ___________    ___________ 
 |           |  |     |     |  |   |   |   |
 |     0     |  |  0  |  1  |  | 0 | 1 | 2 |
 |           |  |     |     |  |   |   |   |
 |___________|  |_____|_____|  |___|___|___|

The same thing for horizontal. There's no main window, all window divide space equally.

Hide/Unhide window

Many WMs use the following buttons config for this:

Hide
MOD4, XK_m

Unhide
MOD4|SHIFT, XK_m

Flickering in monocle mode

Whenever I use monocle mode, it seems as though all the windows are being drawn at once on top of each other--but not in any sychronized or organized way, so the result is a flickering/shimmering effect where I see horizontal slices of each window flash on the screen.

I'm using xf86-video-intel 1:2.99.917+364+gb24e758 on xorg-server 1.17.2.

Just a short question

Hi,
So, I've packaged and now maintain frankenwm on NetBSD.
I was using spectrwm prior to this but, I'm now running the git-master branch of frankenwm on my machine.
Very happy with it :)
To the question, is there a way to make the WM use some cursor-theme? When inside Gtk or Qt apps is fine but, when no window exists it uses the big X from x11. I'm getting used to it but still wonder... spectrwm didn't do this.
Note, I never specify any cursor-theme to use on either WM's.

Again, just asking. Its no big issue. Thanks for this WM.

Issue with keybinds in colemak

When I change to colemak which is the main layout that I use. Most of the keybinds become defunct, but it is not all. alt + 'K' for example still functions but then alt + 'j' does not.

Too many windows in Fibonacci

Hi, I have noticed that when I open a few windows in Fibonacci mode (8 or so) the windows become so small that the geometry calculations go wrong. I end up with windows moving off to the right of the screen and causing significant slow down of FrankenWM.

Try opening lots of xterms in a Xephyr window that is about 600x600, xterm soon fails to allocate memory as it is given strange dimensions by FrankenWM.

Perhaps it'd be a good idea to not allow the user to spawn new windows if the size of the new window will be less than MINWSZ?

FrankenWM does not detect keyboard layout thinks i am using qwerty

FrankenWM binds do not detect my keyboard layout. For example FrankenWM thinks mod4-r (default dmenu bind) is mod4-p because that is where it is in to qwerty. Other programs such as qutebrowser do not have this issue. I have removed the 00-keyboard.conf file and add my keyboard layout too my .xinitrc as suggested in a previous post but that did not resolve the issue. This is my 00-keyboard.conf file.
MatchIsKeyboard "on"
Option "XkbLayout" "us(cmk_ed_us)"
Option "XkbModel" "pc104caw-zqu"
Option "XkbVariant" "colemak,cmk_ed_us"
Option "XkbOptions" "misc:cmk_curl_dh,caps:backspace,altwin:swap_lalt_lwin"
EndSection

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.