Skip Navigation

InitialsDiceBearhttps://github.com/dicebear/dicebearhttps://creativecommons.org/publicdomain/zero/1.0/„Initials” (https://github.com/dicebear/dicebear) by „DiceBear”, licensed under „CC0 1.0” (https://creativecommons.org/publicdomain/zero/1.0/)TU
Posts
83
Comments
470
Joined
2 yr. ago

  • "fullscreen" cannot be used as a condition in windows rules AFAIK, but you can achieve this with a simple kwin script (the syntax is very easy, nothing to be scared with). You can find on the KDE website a tutorial and the whole API set.
    Let me show you: We are going to add an event listener listening to any client going fullscreen (or de-fullscreening), and then we will apply the "keep below" property to the fullscreen ones.
    you first need to add a rule to listen to clients changing fullscreen status: (references)

     js
        
    workspace.clientAdded.connect(client => {
        client.fullScreenChanged.connect(function() {fullscreenChanged(client)})
    });
    
    
      

    This will call the function fullscreenChanged each time a new client changes its fullscreen status, passing to the function the client. ( I don't know why but workspace.clientFullScreenSet does not work, it would have been better, but whatever)

    We need now to write the fullscreenChanged function. It should change the KeepBelow status, evaluating if the client has been fullscreened or de-fullscreened:

     js
        
    function fullscreenChanged(client){
        console.warn(client, client.fullScreen) // not needed, just to debug 
        if(client.fullScreen){
            // set as keep below
            client.keepBelow = true;
        } else {
            // unset as keep below
            client.keepBelow = false;
        }
    }
    
      

    so the final script will be:

     js
        
    function fullscreenChanged(client){
        console.warn(client, client.fullScreen) // not needed, just to debug 
        if(client.fullScreen){
            // set as keep below
            client.keepBelow = true;
        } else {
            // unset as keep below
            client.keepBelow = false;
        }
    }
    
    workspace.clientAdded.connect(client => {
        client.fullScreenChanged.connect(function() {fullscreenChanged(client)})
    });
    
      

    you can follow the instruction on the tutorial on how to install it. Hope this helps!
    (I haven't tested it much, in case of any problem feel free to ask!)

  • Thanks for the answer! The agenda widget unfortunately only displays a column with all upcoming events, but what I'm looking for is a way to view a 5 column widget (also 7 would be good), one for each weekday, divided by hours, so that I can see the whole current week's schedule at a glance. Thanks anyway!

    EDIT: seems that this feature has been proposed on github, but it doesn't seem to be intended to be implemented anytime soon :(

  • thanks for the answer! unfortunately, todoagenda only displays a single column with all events, but I'm looking for a way to display 5 different columns (one for each weekday), in order to have a quick view of the whole week. Minical widget is instead too "big", I don't need the whole month, but just a week, divided by hours

  • I use KDE plasma with this plasmoid and this kwin script that I wrote to navigate between apps. Basically, each window is placed in its own virtual desktop, and the plasmoid allows to switch between desktops by sliding the finger on it. It's in a early development phase, so don't expect it to be perfect, but you can give it a try :)