You are not logged in.
I'm not too experience with git, what do I have to do to merge xinerama-init with centerwindows, fibonacci, and windowtitles?
Offline
@cookie
Thank you for your time and answers. We look forward to new wm
Offline
So I've been trying out monsterwm and it's been working out great so far. Yesterday I tried setting up a panel and had it all working until I tried to restart my computer.
Basically I followed the techniques other have used here, having monsterwm send output to a named pipe and then reading that into a python script. But after a reboot the python script got stuck on reading the named pipe (tail -n1 /tmp/monsterwm.fifo) and when I tried reading from the pipe myself there was no output.
Then I stopped the bar script from running on startup and just had monsterwm output to the named pipe. But now monsterwm just hangs and doesn't do anything. I can switch to another terminal and run cat to maybe get a line or two from the named pipe but there is no activity.
Now monsterwm only functions when I'm not piping the ouput anywhere. What could be happening?
Session script (run from .xinitrc, $1=monsterwm): https://github.com/vixus0/arch-configs/ … er/session
Bar script: https://github.com/vixus0/arch-configs/ … er/bard.py
Any ideas? I've probably fundamentally misunderstood named pipes...
Edit: Yup, fixed......
Last edited by Vixus (2012-11-05 23:35:27)
Offline
I just noticed dwm added xft support to the dev-version without compile-flags to disable it, and which adds 1mb to the memory-usage(ps_mem.py), no matter if not using xft fonts...
Yeah, of course 1mb is nothing, but still, it's nice to be using a wm which controls windows and not fonts etc.
Sorry for somewhat off-topic maybe...
Offline
Hi cookie,
I have read around two times your big post about the new WM. Actually this is interesting and I like talking about it, with you.
About keyboard management, I understand your philosophy (seems similar to UNIX with "Make each program do one thing well") but in this case, it has a drawback: the dependencies.
I liked monsterwm idea which don't include bar. It was still easy to find something light as monsterwm.
Now, if I wanna use your upcoming WM, I'll need bar (from lemonbar for example) + xbindkeys + your WM.
I wanna be clear, I'm not criticizing anything, I respect your work. Anyway, don't you think it will need too many dependencies? I like to install a program without a tons of dependencies.
Apparently, you wanna include 16 tags without the option for deleting unused tags. For me, it was a drawback on scrotwm (formelly known as spectrwm now). I was just using 6 or 7 desktops and 3 desks were doing nothing.
I wanna have only what I use, nothing more. It's simplicity
Adding or deleting tags isn't necessary, but I think 10 or 12 tags would be enough, huh? I don't think many persons will use the 16 tags.
You talked about SLOC too. I don't have any problems with it. I know dwm has 2000 SLOC and bspwm 2500 SLOC. 1800 is still light and I trust you for writing clean code.
@mhertz: You're right. I agree. I'll ask a flag for turning off xft, on the mailing list.
Offline
I just noticed dwm added xft support to the dev-version without compile-flags to disable it, and which adds 1mb to the memory-usage(ps_mem.py), no matter if not using xft fonts...
Yeah, of course 1mb is nothing, but still, it's nice to be using a wm which controls windows and not fonts etc.
Sorry for somewhat off-topic maybe...
Jeezas, 1MB for nothing.
Offline
hi all, there was a power failure here and my psu its dead so, I'm without a computer until I get a new one.
I'm not too experience with git, what do I have to do to merge xinerama-init with centerwindows, fibonacci, and windowtitles?
this will need some manual intervention
but I have nowhere to try the code atm.
@ypnose,
thanks for sharing your thoughts.
I'm not set on anything yet, it's all being worked out. I do understand your concerns about the dependencies. I will get back to the new wm topic, once I fix my pc.
.:[ git me! ] :.
Offline
@cookie
It is not bad, if you can, to buy one surge protect power cord device (basically, it is power cord with arrester). It is a good thing and it is very cheap now (about 17e are the APC ones). WIth that, you can use almost all regular (read: chinese c**p psu). Just my 2c on that.
p.s. ups devices are more advanced things but there are many of them and some of them are toxic (like mine that is filled with zinc (it is Pb so i`m not sure how do you say that in english properly)). Good ones are over 80e per device.
[/offtopic]
Last edited by kuraku (2012-11-08 16:02:14)
Offline
Hi there, I'm rather new to Arch, window managers and tbh, Linux and tech in general, but have dove in at the deep end and spent the last few months messing about with Arch, Awesome & dwm. The documentation has been so great, this is the first time, I've been stumped for long enough to ask for help! :-)
I recently decided to give Monster a go and absolutely love it :-) It's faster than dwm with almost all the features of Awesome that I most enjoyed....almost...
A couple of things I'd really like to get working that I really loved in Awesome (but am not willing to pay for in the extra resources Awesome uses - I'm trying to optimise old hardware).
Firstly - the run or raise feature, whereby a new instance of an app is only raised if one is not already running, if it is, it is switched to instead. Looking through this thread, this was almost implemented early on, at another user's request, in the form of the "fetch" branch, but it seems that was dropped a couple of pages later.... I've actually managed to get this super useful feature working using a couple of xdotool/lsw based bash scripts, but would love it if it was actually baked into the window manager so to speak, but obviously if it's as complicated a feature as it seems to be, no worries.
Secondly, is something that I'm sure is easy to add, in fact it seems that it's already been done - as the below quote suggests. It is the function to cycle through the various window modes using a key combo (generally some Mod + space combo)
thnx for CLICK_TO_FOCUS feedback
next_mode cycles the layouts. that isn't implemented, so you're not reinventing the wheel
you can do it though more easily as:static void cyclemodes(const Arg *arg) { switch_mode(&(Arg){.i = (MODES + mode + arg->i) % MODES}); }
so now you have
{ MOD1, XK_n, cyclemodes, {.i = +1}}, /* next layout */ { MOD1, XK_p, cyclemodes, {.i = -1}}, /* prev layout */
However, having no programming experience/knowledge (although I'd love to learn), I simply cannot get this to work :-( I've been assuming that the static void bit needs to go in the monsterwm.c file. But where?? I've tried it in multiple places, but the build always fails with this msg:
monsterwm.c: In function ‘cyclemodes’:
monsterwm.c:1183:42: error: ‘mode’ undeclared (first use in this function)
monsterwm.c:1183:42: note: each undeclared identifier is reported only once for each function it appears in
Then, obviously the key-binding needs to be declared in the config.h. I would greatly appreciate if anyone could point me in the right direction, as I've been right the way through this thread, googled till i'm blue in the face, but alas - to no avail! I would really like to be able to able to cycle/toggle modes so I can free up some keybindings for other things...
Anyway dude, cheers c00kiemon5ter for your amazing work on this fantastic WM, even if I can't get the above things perfect, i'll still be sticking around, as it suits my needs in so many other ways.
Oh, and sorry to hear about your HW issues, hope you get them sorted soon.
Last edited by knowayhack (2012-11-12 02:40:34)
There is no truth. There is no reality. There is no consistency. There are no absolute statements. I am very probably wrong.
Offline
Firstly - the run or raise feature, whereby a new instance of an app is only raised if one is not already running, if it is, it is switched to instead. Looking through this thread, this was almost implemented early on, at another user's request, in the form of the "fetch" branch, but it seems that was dropped a couple of pages later.... I've actually managed to get this super useful feature working using a couple of xdotool/lsw based bash scripts, but would love it if it was actually baked into the window manager so to speak, but obviously if it's as complicated a feature as it seems to be, no worries.
There is a way to use that awesome trick in monsterwm.
Add something like this to your config.h for monsterwm:
static const char *web_browser[] = { "run_once.sh", "firefox", NULL };
Then you use it like in this example:
static Key keys[] = {
/* modifier key function argument */
...
{ MOD1|SHIFT, XK_w, spawn, {.com = web_browser } },
...
};
(where "..." can be anything and it is irrelevant in this case)
You can change name (web_browser) and shortcut (in this case, it is Shift+Alt+w).
run_once.sh content (it can be improved, i left tips in comment):
#!/bin/bash
# ps -A or ps -C (thanks c00kiemon5ter for tip)
# also useful: ps axco pid,command (less output)
if [ -z "$(ps -C "$1"| grep "$1")" ]
then
$@
fi
This way you get option to start only one instance of app if you launch it via keyboard keys. I use it and it is working for months (it also worked in dwm). Monsterwm will not launch program that is already running. However, monsterwm will not focus program if you try to start it even though that program is running.
Last edited by kuraku (2012-11-12 03:52:06)
Offline
run_once.sh content (it can be improved, i left tips in comment):
#!/bin/bash # ps -A or ps -C (thanks c00kiemon5ter for tip) # also useful: ps axco pid,command (less output) if [ -z "$(ps -C "$1"| grep "$1")" ] then $@ fi
This way you get option to start only one instance of app if you launch it via keyboard keys. I use it and it is working for months (it also worked in dwm). Monsterwm will not launch program that is already running. However, monsterwm will not focus program if you try to start it even though that program is running.
Thanks kuraku for your quick reply I've been doing a similar thing using this script for gui apps:
#! /bin/sh
if lsw | grep -i "$@"; then
xdotool search --onlyvisible --class "$@" windowactivate
else "$@"
fi
...and this script for my terminal based apps, as the above script doesn't work for terminal bound apps and visa/versa for the graphical ones...
#! /bin/sh
wid=$(lsw -l | grep -m 1 "$@" | cut -d ' ' -f 1)
if [ -n "$wid" ]; then
xdotool windowactivate "$wid"
else
case "$@" in
urxvt)
urxvt;;
tmux)
urxvt -e tmux attach;;
ncmpcpp)
urxvt -e ncmpcpp;;
ranger)
urxvt -e ranger;;
vim)
urxvt -e vim;;
*)
echo "don't know how to raise '$@'" >&2
exit 1;;
esac
fi
These work reasonably well, except the set up seems to sometimes get "stuck", and switching via the keyboard short-cuts seems to randomly stop working. I've not been playing with it long enough to work out what the circumstances of this apparent "lock up" are. It usually involves switching between Tmux and Chromium.
However, this does demonstrate that it is possible to focus a running app this way in Monsterwm, but it's apparently quite temperamental....or at least my dodgy brand of cut and paste shell-scripting is more than a wee bit sketchy!
I'm afraid your script didn't work for me at all I only tried it with my keyboard-bound gui apps - Chromium, SpaceFM & Speedcrunch. However that is undoubtedly due to me not looking carefully enough at it, not knowing enough about scripting, not implementing it correctly to work with my set up and not sleeping for faaaar too long!
Will have another look once I've had some kip, but thanks very much for the input nonetheless
Last edited by knowayhack (2012-11-12 08:20:44)
There is no truth. There is no reality. There is no consistency. There are no absolute statements. I am very probably wrong.
Offline
I had written a script (that might need revising) to select a window using dmenu here
@kuraku you can write your script like
ps -C "$1" || "$@"
@knowayhack
you can too try
cmd="$1" # then use "$@" for arguments
shift
pid="$(ps -C "$cmd" -o pid)"
xdotool search --onlyvisible --any --class --classname --name --pid "${pid:--1}" "$cmd" windowactivate && exit
case "$cmd" in
urxvt)
urxvt "$@" ;;
tmux)
urxvt -e tmux attach ;;
ncmpcpp)
urxvt -e ncmpcpp ;;
ranger)
urxvt -e ranger ;;
vim)
urxvt -e vim ;;
*)
"$@" ;; # run it - it can even be a GUI app of course
esac
xdotool's windowactivate will focus that window if it's on the current desktop,
but will not switch to it if it's on a different desktop or different screen.
I can change this, so that activating a window will switch to it (screen and desktop) of it is really needed.
I will give it some time and think how "raise" can be implemented and be back on that.
@knowayhack
try this to get layout "cycling" (sounds funny ):
static void cyclemodes(const Arg *arg) {
switch_mode(&(Arg){.i = (MODES + desktops[currdeskidx].mode + arg->i) % MODES});
}
@Ypnose @kuraku
I finally opened the psu and located a bad capacitor
got a new one and replaced it and now it's working
total cost: 0,55€
@bslackr
here is a diff: http://sprunge.us/iWOO
get that go into monsterwm's dir
and do:
$ git co origin/xinerama-init
$ patch -p1 < the_diff
$ make
# make install
and you should be set.
edit: aaargh, forgot to do windowtitles, but I have to go atm
Last edited by c00kiemon5ter (2012-11-13 19:18:25)
.:[ git me! ] :.
Offline
@kuraku you can write your script like
ps -C "$1" || "$@"
Splendid. I used it like this:
ps -C "$1" || "$@" &
Thank you cookie, now i can use just ps without grep \o/
Offline
I
@bslackr
here is a diff: http://sprunge.us/iWOO
get that go into monsterwm's dir
and do:$ git co origin/xinerama-init $ patch -p1 < the_diff $ make # make install
and you should be set.
edit: aaargh, forgot to do windowtitles, but I have to go atm
Thanks a bunch, working great. windowtitles is purely for aesthetics so it isn't dire. I really appreciate all your work, by the way.
Offline
Hello. I'm not sure if this question has been answered yet or not, but it's fairly simple so I'll ask it anyways.
I clone the monsterwm git and install the "default", that is not changing anything in the config.h. When I try to start it in my .xinitrc with "exec monsterwm", all I get is a black screen which eventually just goes to a completely black screen (monitor off black).
So what I'm asking is this: is there some sort of special configuration I need to do to get a "default setup" working, or some wizardry I need to do in my .xinitrc?
Thanks.
P.s., love monsterwm from what I've seen, and it seems very small and coherent. Nice job.
Offline
well, monsterwm is a window manager and that's it so a "blank screen" is normal.
I do not know what your background is so I'll answer the most common things.
to get a app running you need to edit config.h and fill in the keybinds for your apps
at the very least you want a terminal or a launcher application.
by default 'xterm' is binded to Alt-Shift-Return/Enter
and 'dmenu' is binded to Win-V (I have no idea how I came up with 'v' tbh :-P).
so if you have those installed you're ready to go - iow able to open any app you'd like.
if you want shortcuts/keybinds for specific apps you'll have to edit config.h and add those.
the other common thing people expect to get is a statusbar.
monsterwm does not have one builtin, so you have to use an external one.
some choices are: bar, some_sorta_bar, bipolarbar, mopag and dzen2
some examples on how to get those working are here
you'd need one of those scripts, making it executable, the statusbar of your choice installed and
replacing 'exec monsterwm' in your .xinitrc with 'exec /path/to/script'
so those should give you access to all your apps and provide a statusbar for you.
the readme on github and monsterwm entry on arch wiki provide lots of useful info to get you started.
.:[ git me! ] :.
Offline
Read the wiki-article about monsterwm, and then come back here if you have any specific questions...
There's no "default setup". You just change config.h to your preferences with regards to keybindings and programs etc. and start additional stuff you want in .xinitrc, like bars and such...
-- Edit --
Too late
Last edited by mhertz (2012-11-23 02:16:28)
Offline
Hi. Thanks for the great tiling manager. I like it's philosophy.
I've noticed one issue though. Swing applications doesn't render properly. Specifically monsterwm has the same issue as described here and here. In short It's not possible to focus on editor in IntelliJ IDEA. Same issue was reproduced in XMonad (the reason why I decided to switch to another tiling WM) but doesn't reproduce in dwm.
% java -version
Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel
java version "1.7.0_07"
Java(TM) SE Runtime Environment (build 1.7.0_07-b10)
Java HotSpot(TM) 64-Bit Server VM (build 23.3-b01, mixed mode)
I'm using master branch of monsterwm with centerwindow patch.
I will appreciate if anyone could give a hint on what's the difference in how dwm and monsterwm render Java/Swing applications.
Thanks.
Last edited by dmi3y (2012-11-26 10:16:32)
Offline
@dmi3y, try installing openjdk6.
@cookie, steam works perfectly on Monster! I can even play in monocle mode.
Offline
You can also try setting the wmname to 'LG3D'. 'wmname' is an app on [community] repo.
so in your .xinitrc place somewhere before starting monsterwm 'wmname "LG3D"'
another thing you should try is 'export _JAVA_AWT_WM_NONREPARENTING=1'
this could also go in your .xinitrc or .login or .bash_profile or .profile etc
Last edited by c00kiemon5ter (2012-11-26 11:37:54)
.:[ git me! ] :.
Offline
Hi, Cookie.
Unfortunately none of the suggested workarounds helped. Same issue was also reproduced in snapwm. So currently, dwm is the only tiling wm (among dwm, snapwm, monsterwm and xmonad) which doesn't have that issue. I'd probably stay with dwm but the amount of efforts required to configure dwm makes me sad (on the other hand, that forced me to understand basics of Mercurial and how to create and apply a patchset, thanks to the great tutorial by jasonwryan). Wouldn't it be for that bloody swingy bug I might have stayed with monsterwm. :)
PS: I'll be happy to submit a patch if I ever understand the root of the issue.
Last edited by dmi3y (2012-11-27 10:12:31)
Offline
I'd probably stay with dwm but the amount of efforts required to configure dwm makes me sad (on the other hand, that forced me to understand basics of Mercurial and how to create and apply a patchset, thanks to the great tutorial by jasonwryan).
OT:
Just use the ABS.
/OT
If you can't sit by a cozy fire with your code in hand enjoying its simplicity and clarity, it needs more work. --Carlos Torres
Offline
Hi dmi3y
IntelliJ works here. Here is what I did:
$ pacman -S intellij-idea-community-edition # I have no java installed so this also got me jre7-openjdk-7
$ sudo vim /etc/profile.d/jre.sh # uncomment last line to set _JAVA_AWT_WM_NONREPARENTING=1 var
$ cat /etc/profile.d/jre.sh
export J2REDIR=/usr/lib/jvm/java-7-openjdk/jre
export JAVA_HOME=${JAVA_HOME:-/usr/lib/jvm/java-7-openjdk/jre}
# enable this for non-reparenting window managers
export _JAVA_AWT_WM_NONREPARENTING=1
$ wmname LG3D
$ JDK_HOME="/usr/lib/jvm/java-7-openjdk/" idea.sh
[..]
and the editor is working.
Last edited by c00kiemon5ter (2012-11-28 01:46:19)
.:[ git me! ] :.
Offline