freenode/#stumpwm - IRC Chatlog
Search
3:22:23
commanderkeen
i have 6 monitors and 2 gpus and use xrandr to configure them. they are all listed in one "x screen" but i am only able to access (or create frames) on 4 monitors (one of the gpus) and im unable to create frames on the other 2 monitors
3:37:27
commanderkeen
i thought about maybe trying to create a head? I'm looking through the source code.
3:38:49
commanderkeen
(#S(frame 0 NIL 0 2160 3840 2160) #S(frame 1 NIL 0 0 1920 1080) #S(frame 2 NIL 0 1080 1920 1080) #S(frame 3 NIL 1920 1080 1920 1080))
3:50:46
loke`
Can you share a picture of your setup? I'd love to see how you physically set up 6 monitors. :-)
3:52:54
loke`
commanderkeen: Anyway, your problem is because the output of this command only lists 4 heads. Check the last few lines of the output.
3:59:00
loke`
If you look at the MAKE-SCREEN-HEADS function, all it really does is to use xpyinfo to figure out the dimensions of the heads. If you know it, you can just hard-code it.
4:00:45
loke`
It's nice. :-) We're discussing it at the office now because a colleague of mine is famous for his multi-screen setup, and he has only 3.
4:11:47
commanderkeen
any tips on how to call this function? i'm from the clojure world and my lisp is a bit rusty
4:13:29
loke`
commanderkeen: Actually, if you use SLIME and Emacs and enable eldoc mode, you should get the argument information in the message bar. But...
4:15:23
loke`
If you open that file, you will see that if you have Xinerama (i.e. more than one head) then it will run the xpyinfo command to determine the details of the heads and create the head objects (using MAKE-HEAD)
4:15:50
loke`
if you do not have xinerama, i.e. one head, it will create a single head. That's the second half of the MAKE-SCREEN-HEADS function.
4:16:56
loke`
so what you want to do is add two more heads, and append them to the end of the head list associated with the screen
4:21:02
loke`
(let ((s (car stumpwm:*screen-list*))) (setf (stumpwm:screen-heads s) (append (stumpwm:screen-heads s) (list (stumpwm::make-head ...) (stumpwm::make-head ...)))))
4:22:01
loke`
the MAKE-HEAD arguments should probably be something like (make-head :number 4 :x ???? :y ???? :width ???? :height ????) and another one for :number 5
4:34:18
commanderkeen
(add-head (car *screen-list*) (make-head :number 4 :x 1920 :y 0 :width 1920 :height 1080 :window nil))