Bug 353153 - match list of clients in videowall list should be user editable
Summary: match list of clients in videowall list should be user editable
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: scripting (other bugs)
Version First Reported In: 5.4.1
Platform: Gentoo Packages Linux
: NOR wishlist
Target Milestone: ---
Assignee: KWin default assignee
URL: https://git.reviewboard.kde.org/r/125...
Keywords:
Depends on:
Blocks:
 
Reported: 2015-09-25 02:47 UTC by Jerrod Frost
Modified: 2016-02-05 15:20 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed/Implemented In: 5.5
Sentry Crash Report:
thomas.luebking: ReviewRequest+


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jerrod Frost 2015-09-25 02:47:55 UTC
Feature request to return the ability to maximize and fullscreen windows across multiple monitors instead of restricting them to a single monitor. While 5760x1080 is the resolution of the "screen" its still recognizes separate monitors when maximizing and fullscreening windows.

Steam for Linux, SteamOS, and Steam Machines are becoming popular and it would benefit to be able to play in "big picture mode" and play games across my triple monitors instead of my games being locked to a single monitor.





Reproducible: Always

Steps to Reproduce:
click maximize 

Actual Results:  
see it only fill one screen

Expected Results:  
I'd like the option for it to fill all the screens. 

### xrandr -q ###
Screen 0: minimum 320 x 200, current 5760 x 1080, maximum 16384 x 16384
DFP1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 521mm x 293mm
DFP5 connected 1920x1080+1920+0 (normal left inverted right x axis y axis) 521mm x 293mm
DFP9 connected 1920x1080+3840+0 (normal left inverted right x axis y axis) 521mm x 293mm

### lspci | grep VGA ###
00:01.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Kaveri [Radeon R7 Graphics]
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Fiji XT [Radeon R9 FURY X] (rev ca)

### fglrxinfo ###
display: :0  screen: 0
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: AMD Radeon (TM) R9 Fury Series 
OpenGL version string: 4.5.13399 Compatibility Profile Context 15.201.1151


### cat /etc/X11/xorg.conf ###
Section "Module"
    SubSection  "extmod"
       Option    "omit xfree86-dga"
    EndSubSection
    Load    "i2c"
    Load    "ddc"
    Load    "vbe"
    Load    "dri"
    Load    "glx"
EndSection

Section "ServerFlags"
     Option    "AllowMouseOpenFail"    "true"
EndSection

Section "Monitor"
    Identifier  "DFP1"
    Option      "PreferredMode" "1920x1080"
EndSection

Section "Monitor"
   Identifier   "DFP5"
   Option       "RightOf" "DFP1"
   Option       "PreferredMode" "1920x1080"
EndSection

Section "Monitor"
   Identifier   "DFP9"
   Option       "RightOf" "DFP5"
   Option       "PreferredMode" "1920x1080"
EndSection

Section "Device"

    Identifier  "SabayonVga0"
    Driver      "fglrx"
    BusID       "PCI:01:00"

EndSection
    

Section "Screen"

    Identifier  "Screen 0"
    Device      "SabayonVga0"
    DefaultDepth 24
    SubSection "Display"
        Depth           24
        ViewPort        0 0
        Virtual         5760 1080
    EndSubsection

EndSection

Section "DRI"
    Mode 0666
EndSection

Section "ServerLayout"
    Identifier   "Main Layout"
    Screen 0    "Screen 0" 0 0
EndSection
Comment 1 Christoph Feck 2015-09-25 10:38:56 UTC
I guess this is unrelated to KScreen, but needs to be added to KWin.
Comment 2 Thomas Lübking 2015-09-25 11:24:18 UTC
"kcmshell5 kwinscripts", enable the "video wall" script.
This covers fullscreen windows - from the report i'd say that's the predominant use case?
Comment 3 Jerrod Frost 2015-09-25 14:08:20 UTC
I've enabled this script and it doesn't appear to do anything. Have you tested this on steam big picture mode? After enabling the script, I logged out and back in, no dice. rebooted to no avail. I'm not sure this kwin script is working.  This IS the functionality I'm looking for though :D
Comment 4 Thomas Lübking 2015-09-25 14:12:24 UTC
No steam here - not gonna happen.

Please run steam (no matter on how many screens, bug must be fullscreen) and konsole. Then in konsole enter "xwininfo" and when the cursor turns into a '+', juct click the steam window.
Then do the same with "xprop".

Attach both outputs to the bug.
Comment 5 Jerrod Frost 2015-09-25 23:53:57 UTC
### xwininfo #### (steam in big picture mode)
xwininfo: Please select the window about which you
          would like information by clicking the
          mouse in that window.

xwininfo: Window id: 0x5c00006 "Steam"

  Absolute upper-left X:  0
  Absolute upper-left Y:  0
  Relative upper-left X:  0
  Relative upper-left Y:  0
  Width: 1920
  Height: 1080
  Depth: 24
  Visual: 0x41
  Visual Class: DirectColor
  Border width: 0
  Class: InputOutput
  Colormap: 0x5c00005 (installed)
  Bit Gravity State: ForgetGravity
  Window Gravity State: NorthWestGravity
  Backing Store State: NotUseful
  Save Under State: no
  Map State: IsViewable
  Override Redirect State: no
  Corners:  +0+0  -3840+0  -3840-0  +0-0
  -geometry 1920x1080+0+0



#### xprop ####
_NET_WM_ICON_GEOMETRY(CARDINAL) = 639, 1057, 306, 19
STEAM_BIGPICTURE(CARDINAL) = 1
_NET_WM_ICON(CARDINAL) =        Icon (48 x 48):
                            ░▒▒▓▓▒▒░░                   
                        ░▓▓▓▓▓▓▓▓▓▓▓▓▓▓░                
                     ░▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒░             
                    ▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒            
                  ░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░          
                 ▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒         
                ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓        
               ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓       
              ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒▓▓▓▓▓▓▓▓▓      
             ▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░      ░▓▓▓▓▓▓▒     
            ▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒          ▒▓▓▓▓▓▒    
            ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░     ░░     ░▓▓▓▓▓    
           ▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒   ░▒▓▓▓▓░    ▒▓▓▓▓▓   
          ░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓   ░▓▓░░░▒▓▓░  ░▓▓▓▓▓░  
          ▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░  ░▓▒░    ░▓▓   ▒▓▓▓▓▓  
          ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░  ▒▓░      ░▓░  ░▓▓▓▓▓  
         ▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓   ▓▒        ▒▒  ░▓▓▓▓▓▒ 
         ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒  ░▓░        ░▓   ▓▓▓▓▓▓ 
         ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░  ░▓░        ░▓   ▓▓▓▓▓▓ 
        ░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒    ▒▒        ▒▒  ░▓▓▓▓▓▓░
        ░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░    ░▓░      ░▓░  ░▓▓▓▓▓▓░
        ▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░      ▒▓░    ░▓▒   ▒▓▓▓▓▓▓▒
        ░▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒        ▒▓▒▒▒▓▓▒   ░▓▓▓▓▓▓▓▒
           ░▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓          ░▒▒▒▒░    ▓▓▓▓▓▓▓▓▓
             ░▒▓▓▓▓▓▓▓▓▓▓▓░                   ▒▓▓▓▓▓▓▓▓▓
                ░▓▓▓▓▓▓▓▓▒                  ░▒▓▓▓▓▓▓▓▓▓▒
                  ░▒▓▓▒░░                ░░▒▓▓▓▓▓▓▓▓▓▓▓▒
                    ░                  ▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░
                       ░▒▓▒░         ░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░
                         ░▒▓░       ▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ 
                           ▒▓     ░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ 
         ░▒░                ▓░   ░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░ 
          ▓▓▒░              ▒▒  ▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓  
          ▒▓▓▓▒▒            ▒▒ ░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒  
          ░▓▓▓▓▓▓▒          ▒░ ░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░  
           ▒▒▒▒▒▒▓░        ░▓  ▒▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒   
            ▒▒▒▒▒▓▒  ▒▒░ ░▒▓░ ░▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒    
            ░▒▒▒▒▒▓░  ░▒▒▒▒░  ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░    
             ▒▒▒▒▒▒▒░        ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒     
              ▒▒▒▒▒▒▒▒░   ░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒      
               ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒       
                ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒        
                 ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒         
                  ░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░          
                    ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒            
                      ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒              
                        ░▒▒▒▒▒▒▒▒▒▒▒▒▒▒░                
                            ░░░▒▒░░░                    


_KDE_NET_WM_ACTIVITIES(STRING) = "00000000-0000-0000-0000-000000000000"
_NET_WM_ALLOWED_ACTIONS(ATOM) = _NET_WM_ACTION_MOVE, _NET_WM_ACTION_RESIZE, _NET_WM_ACTION_MINIMIZE, _NET_WM_ACTION_MAXIMIZE_VERT, _NET_WM_ACTION_MAXIMIZE_HORZ, _NET_WM_ACTION_FULLSCREEN, _NET_WM_ACTION_CHANGE_DESKTOP, _NET_WM_ACTION_CLOSE
_NET_WM_DESKTOP(CARDINAL) = 1
WM_STATE(WM_STATE):
                window state: Normal
                icon window: 0x0
_NET_WM_STATE(ATOM) = _NET_WM_STATE_FULLSCREEN, _NET_WM_STATE_ABOVE, _NET_WM_STATE_STAYS_ON_TOP
_KDE_NET_WM_USER_CREATION_TIME(CARDINAL) = 35767249
_NET_WM_NAME(UTF8_STRING) = "Steam"
WM_NAME(STRING) = "Steam"
XdndAware(ATOM) = BITMAP
WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW, _NET_WM_PING
_NET_WM_BYPASS_COMPOSITOR(CARDINAL) = 1
_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_NORMAL
_NET_WM_PID(CARDINAL) = 6671
WM_LOCALE_NAME(STRING) = "en_US.UTF-8"
WM_CLASS(STRING) = "steam", "steam"
WM_HINTS(WM_HINTS):
                Client accepts input or input focus: True
WM_NORMAL_HINTS(WM_SIZE_HINTS):
                program specified minimum aspect ratio: 1920/1080
                program specified maximum aspect ratio: 1920/1080
WM_CLIENT_MACHINE(STRING) = "CtrlZ"
_MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x2, 0x0, 0x0, 0x0, 0x0
Comment 6 Thomas Lübking 2015-09-26 06:50:39 UTC
Meh, it's because the script filters for classes and only matches some (including dragon...) video players

The general approach works  (edit /usr/share/kwin/scripts/videowall/contents/code/main.js and make "isVideoPlayer" "return true;" instantly) but we need a beteter way for black/whitelist selection (notably a GUI)
Comment 7 Thomas Lübking 2015-09-29 22:12:05 UTC
Git commit 121d59ee28709ca0229930f86d77d8e71fb9024d by Thomas Lübking.
Committed on 29/09/2015 at 21:02.
Pushed by luebking into branch 'master'.

add black/whitelist config to videowall

REVIEW: 125410
FIXED-IN: 5.5

M  +18   -17   scripts/videowall/contents/code/main.js
A  +22   -0    scripts/videowall/contents/config/main.xml
A  +148  -0    scripts/videowall/contents/ui/config.ui
M  +6    -1    scripts/videowall/metadata.desktop

http://commits.kde.org/kwin/121d59ee28709ca0229930f86d77d8e71fb9024d
Comment 8 David Lang 2016-02-05 07:36:49 UTC
how do you find the name of the resource?
Comment 9 Thomas Lübking 2016-02-05 12:37:30 UTC
eg. run "xprop WM_CLASS" and click the window
adding a "detect" button like in the rules kcm is presently not supported by the *.ui/*.xml config stuff.
Comment 10 David Lang 2016-02-05 14:19:31 UTC
It would be good if there was some way to log the value. I was trying to get this to work earlier to deal with the python-whiteboard package (uses a wii remote and an infrared led to let you move the mouse on a big screen or projected image) and the calibration routine goes 'full screen' and doesn't let me more away from it to run xprop

using kubunti 15.10 I wasn't able to get anything to go fullscreen across the two monitors, even when I did return true; ahead of the if statements, so there's probably something else I'm getting wrong.
Comment 11 Thomas Lübking 2016-02-05 15:20:06 UTC
The client grabs input (notably the keyboard) in fullscreen mode, but you can fetch the class from the "normal" dialog or any other application window (the class is usually "per-application")