Coder Social home page Coder Social logo

zeroxoneafour / kwin-autotile Goto Github PK

View Code? Open in Web Editor NEW
43.0 2.0 1.0 506 KB

Autotile script for kwin

Home Page: https://store.kde.org/p/2003956

License: MIT License

Makefile 1.85% TypeScript 98.15%
desktop kcm kde kwin kwin-script linux plasma tiling tiling-window-manager wayland

kwin-autotile's People

Contributors

peterhoeg avatar zeroxoneafour avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

peterhoeg

kwin-autotile's Issues

Add an option to resume tiling after moving window with mouse

Currently, if a tiled window is moved with the mouse, it goes into floating mode. The other windows left untouched fill out the remaining space, as expected. If I recall correctly, Bismuth had an option where you could select if you wanted a window moved with the mouse to go into floating (as it does now) or to return to tiling mode. When enabling this option, the expected action would be similar to that with the Swap Left (or right, etc.) keyboard shortcut

Tested with v1.1.0

Most of apps do not tile

Hi, I've noticed that most of flatpak apps and some of the native -ones do not maximize/tile after launch.
They are just floating.

OS: Fedora 38 kde-spin
DE: Plasma 5.27.4
DS: Wayland

Addon was installed from kde store

The only autotiled apps are dolphin and kde settings.

Heuristic for desktop space optimization

It would be great if kwin-autotile would maximize how windows cover the desktop space, meaning that if the number of windows is smaller than the number of tiles, present windows borrow that free space.

When maximized, tile popup not work

2023-04-01.14-29-31.mp4

Hello, sorry to bother you again but there is this bug where if i put a window in full size, the tile script don't work.
I put a video to make you see what i mean

Strange bug

immagine

When i tile in another virtual desktop, sometime, on the other desktop put the window on half screen, even if there is only that window.
You can try to recreate it by open firefox in desktop 1, then switch to desktop 2 and do some tiling
Sometime everything works fine, but other time there is this strange bug.

immagine

Oh, and sometime the autotile don't work, like the second image

Xorg support?

Can you please elaborate why it doesn't work on Xorg? If it's a Plasma problem maybe create an issue there? I can't use Wayland because I have NVidia.

Wallpaper also getting tiled.

i am not sure whether it is a bug in kde plasma itself, or this extension, but sometimes the focus goes from window to wallpaper itself, the wallpaper also getting tilied,

after that i has to use kde with a mouse otherwise wallpaper stating to take half of the window..... or i have restart system...

wallpaperautotile

i am not sure where to get logs, please ask me if needed any extra information/guide me to get....

Thanks for making this extention... i have been using this for few months now.... hopfully kde will improve tiling capabilities in kde6

Tiling interrupted after moving window between screens with keyboard shortcut

Using either Window to Previous screen or Window to Next Screen as a keyboard shortcut, it moves the window to the other screen but doesn't resume tiling on the next screen and instead goes into floating mode. It also leaves the space it previously occupied empty on the previous monitor, where the remaining windows don't expand and fill out the available space. Expected behaviour would be that the window that is changing screen adapt and tile, while the window that don't change screen also adapts and take up the remaining place.

Before
After

I have tried to make the panels identical across both monitors as well as making sure that each monitor used the same tiling layout (4 identical rectangles), neither of which had any effect on the issue.

This issue might be similar to #2.

Tested with v1.1.0.

Make it work with X11 ? And other things...

What would it take to make it work with X11 ? (I haven't looked at the source.)

Would be nice to save layouts and be able to recall them.

Would be nice to use a different layout on each virtual desktop.

Strange issues with emacs comming up behind others

I have a basic vertical split in the middle.

If I launch konsole it takes the full screen. If I launch a 2nd konsole, they split nicely.

But at some point things started going wrong with emacs, where the emacs window opens behind. So this is what happens:

  1. On a blank desktop
  2. Open konsole through shortcut
  3. Konsole takes the whole screen
  4. From konsole, launch emacsclient
  5. The emacs window then opens full screen behind konsole
  6. I cannot even do Alt-Tba to switch between them as the emacs window has "Keep below others" set (not by me)
  7. If I unset it, I can alt-tab but force retile still doesn't split the screen and I'm left with 2 full-screen windows

FYI, running with "Debug Mode" enabled gives no output in the journal

Some possible QOL additions [enchancement]

Sorry, idk where to find API docs to new tile system for adequate write and connect functions, but i can suggest some improvements:

  1. Floating windows always on top:
    In theory, we can add window role for black/whitelisted apps (client.resourceClass, if i right understand code)
    Or make another list for app, what's we need to guaranteed been floating

  2. Prevent change screen, when retiling
    As i see, we has func desctopChange with checking client.screen, but now on retiling it can change current app screen to main. Maybe we need add function for checking selected screen on retile, orr add suboption for app for remember it.

  3. Add possiblity to save/remove user templates
    Now we has only 3 default template on tile management screen. Idk, where find access to this, but if possible, we can realize this with create 2 new lists: 1 with user templates and second with default user, what's replace default list, if we has our custom templates, and add func to checking, for prevent user remove defaults.

  4. Rearranging tiling inside areas and in global screen area through key combos (if possible)

  5. Some code improvements
    Like replace black/whitelists and some another lists from Array to Map's/Set, for prevent addition of same names and redundant rechecking through loops

The wrong place for new windows to appear

before script :D
Thank you for this script. I missed auto tiling so much after upgrading to wayland-awesome 5.27. It's a pity that Bismuth died. You are my personal hero โค๏ธ

Screenshot_20230322_192635

I think that first new window has to appear at full screen, second on zone 1, and third window should appear also on zone one, but two first windows should be placed on zones 3 (first) and zones 2 (second) accordingly. Instead, what I see is first window is full screen, second window at zone 1, and third window at zone 3. I think that all new windows should appear at master zone 1 and other windows should move in order from bottom to top. I hope I explained it clearly ๐Ÿ˜

Focus on current window

It would be great to have a border window of different color on the focused window, it'll be very great!
Anyway, nice work you made here!

Read the FAQ!

The FAQ contains answers to many common questions and problems. If you cannot confirm that you looked at the FAQ and tried solutions, or do not have a journalctl log as described in the FAQ, your bug will not be evaluated!

Click here for the FAQ

New windows do no get autotiled

Hi, let me open by thanking you for this amazing script. Since the switch to plasma 5.27, Bismuth was not working anymore on wayland and that was really hindering my workflow, but this script manage to fill that void. With that said, I have been having a bug where new windows being opened are not tiled but are float windows by default. However, if I use the shortcut they are tiled according to the current layout. I am on the latest plasma 5.27.3. I do not know what further information it may need necessary to analyze the issue.

Makefile of v1.3.0 is broken

Unable to install v1.3.0 using make install.
Output after make :
mkdir -p pkg mkdir -p pkg/contents/code mkdir pkg/contents/config mkdir pkg/contents/ui cp res/metadata.json pkg/ cp res/main.xml pkg/contents/config/ cp res/config.ui pkg/contents/ui/ sed -i "s/%VERSION%/1.3.0/" pkg/metadata.json tsc make: tsc: No such file or directory make: *** [Makefile:32: src] Error 127

Output after make install:
make: *** No rule to make target 'autotile.kwinscript', needed by 'install'. Stop.

Somehow the file autotile.kwinscript is not generated.

I tried to apply the commands manually:
make res
make src
zip -r autotile.kwinscript pkg

After this, I was able to install v1.3.0.

However, tiling is not working in this v1.3.0. I don't know whether it is because of the new version or because of how I installed it.

I had to revert back to v1.2.2 through no-activities branch.

btw, I did a clean install of v1.3.0 instead of git pull. Also, Makefile is working properly for v1.2.2

Pop up window are tiled

Sorry to bother you again, but I notice that in settings if a pop-up window appear, is tiled and not floating.
Like that
immagine
I don't know if I had to insert something in the whitelist, I try but that window is see as "setting" and i can't put setting in the whitelist because it'll make all setting floating, not only the pop.up one.

bug

Hello, sorry to bother you again but i found another bug.
When i try to open VS code with another window open, like Konsole, it doesn't tile.
But, instead, go up and in full screen mode.
What to do to see the bug:
1)Open konsole
2)Open VS Code
thanks in advance :)

First window spawned is maximized and goes below other tiled windows

When spawning a new window on an empty screen, it goes full screen as expected. When adding a second window, the window that was spawned first remains full screen but goes into the background while the second window takes up a quarter of the screen (my split is an even 2x2). Adding even more windows results in that they continue to assume their position as determined by the split, not by the numbers of windows. I.e. adding a total of three windows, with the first being behind in full screen, the third window takes up the second quarter of the screen, not the other half. Hopefully, the images can explain it better.

Screenshot_20230329_215734
Screenshot_20230329_215841
Screenshot_20230329_215912

Log:
Mar 29 22:05:55 user kwin_wayland[27485]: js: Autotile DBG: Config Updated
Mar 29 22:05:55 user kwin_wayland[27485]: js: Autotile DBG: useWhitelist == false
Mar 29 22:05:55 user kwin_wayland[27485]: js: Autotile DBG: blacklist == krunner,yakuake,kded,polkit
Mar 29 22:05:55 user kwin_wayland[27485]: js: Autotile DBG: tilePopups == true
Mar 29 22:05:55 user kwin_wayland[27485]: js: Autotile DBG: borders == 3
Mar 29 22:05:55 user kwin_wayland[27485]: js: Autotile DBG: invertInsertion == false
Mar 29 22:05:55 user kwin_wayland[27485]: js: Autotile DBG: keepTiledBelow == true
Mar 29 22:06:04 user kwin_wayland[27485]: js: Autotile DBG: Tiling client org.kde.kate
Mar 29 22:06:06 user kwin_wayland[27485]: js: Autotile DBG: Tiling client Alacritty
Mar 29 22:06:07 user kwin_wayland[27485]: js: Autotile DBG: Tiling client Alacritty
Mar 29 22:06:08 user kwin_wayland[27485]: js: Autotile DBG: Tiling client Alacritty

This is true of several applications, not just the ones shown. After removing the window first window, having already spawned four on top, the tiling works as expected where new windows take and fill up the space correctly. This also seems to be monitor specific, so a window that is spawned first and goes full screen on one monitor, will occupy that same space (full screen and below) when moved to another monitor, even if there already were a few windows there.

Tested with both v.1.1.0 and v.1.1.1.

autotiling is not working across activites

Suppose I have opened a dolphin window (say) in workspace 1 of activity 1. It will tile perfectly. Suppose I switch to activity 2 and open a terminal window in workspace 2; it will not tile as expected. Instead, it cares about the dolphin window opened in Activity 1 in the same workspace and tiles on the right side of the screen, leaving a blank space on the left side. Similarly, if I switch to activity 1 again, the dolphin window will tile to the left side of the screen and leaves a blank space on the right side. The workaround to this is to work on different workspaces across activities. However, this is not very convenient. Is it possible to isolate the windows in the activities so that they do not leave blank spaces for other windows in other activities and tile them accordingly?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.