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))
5:04:26
commanderkeen
you should. it's supposed to be easier if you use identical video cards and use something called base mosaic for nvidia. I had different cards so just used xrandr and the nouveau drivers and xrandr --setprovideroutputsource 1 0
5:27:08
scottj
commanderkeen: pretty cool setup. does your neck get sore? I'd be curious if you know what percent of the time you spend looking at the various monitors. My theory (absent any experience) is that above two very large monitors (or three large monitors) the neck strain and unideal viewing positions would be inferior to better keybindings to better use the monitors in ideal viewing position.
5:28:43
scottj
also I noticed a few days ago that one can play keen 4 using just a web browser (there are sites that I guess run dosbox in the browser, and host tons of old games)
5:29:46
commanderkeen
i'm doing clojurscript with react native (ios and android) as well as a web front end. just so many logs open
5:32:17
scottj
loke`: I was using classicreload.com, first time, not really familiar with the options
5:34:20
commanderkeen
scottj: not published yet, but getting close, it's a chat app. kind of like a slack clone. mainly just to get used to clojure(Script). the dashboard is grafana and i use zabbix to collect the data. grafana just displays the collected data (uses zabbix as data source)
5:36:01
scottj
loke`: classic reload and archive seem to be using about the same setup. on both I had trouble fullscreening (cropped part of image, maybe bc of different monitor sizes.) will probably try to get a local version.
5:36:48
scottj
commanderkeen: there's an open source wechat clone written in clojure, with some company behind it
5:38:56
loke`
We implemented a clone of Slack in Common Lisp on the server side and clojurescript on the client. Open source,.
5:39:06
commanderkeen
scottj: not yet. we only have an internal project name, but i think it has evolved to need a different name
5:40:01
commanderkeen
we just did it to learn clojure and clojurescript. i doubt anyone will really use it
7:10:17
mood_btf
commanderkeen: I wonder if the new head recognition code, merged just two days ago, properly notices all 6 monitors. It no longer uses xdpyinfo, instead querying Xinerama directly
7:10:50
mood_btf
My guess would be that Xinerama is to blame, thus not solving the problem, but that would be nice to confirm