Commit Graph

86 Commits

Author SHA1 Message Date
Mikhail Zolotukhin
1cdf1a5bb2 feat!: remove adjustLayout options
These options should be always enabled by default, because
this is how all tiling window managers work: mouse resize
always has feedback and resizing always affects the layout.

BREAKING CHANGE: all the users, that have these options
disabled will now have the default behavior - dynamic
reacting to the window resize events.
2021-10-23 19:13:51 +03:00
Mikhail Zolotukhin
360588ad21 fix: 🚑 add executable flag to installation script 2021-10-23 12:53:47 +03:00
Mikhail Zolotukhin
1f02e47a37 fix: improve popup geometry update
This should fix using wrong coordinates when text overflows
2021-10-23 02:29:24 +03:00
Mikhail Zolotukhin
2862e56194 fix(popup): fix errors in popup.qml 2021-10-23 02:29:24 +03:00
Mikhail Zolotukhin
08ab68a72b refactor: remove unused imports from main.qml 2021-10-23 02:29:24 +03:00
Mikhail Zolotukhin
8d6a3747e6 feat: 💄 make the popup more consistent with the Plasma OSDs
Now the popup spawns a little bit lower the center of the screen, with
smaller text and constant width.
2021-10-22 22:25:29 +03:00
Mikhail Zolotukhin
935a33820b fix: 🐛 do not tile utility windows on wayland 2021-10-18 19:32:06 +03:00
Mikhail Zolotukhin
fadcaeac95
refactor: ♻️ improve logging 2021-10-12 14:02:49 +03:00
Mikhail Zolotukhin
d989261d82 fix: 🐛 add Conky to default ignore list 2021-10-08 23:53:48 +03:00
Mikhail Zolotukhin
2be1673c41 fix: 🚑 restore configuration dialog 2021-10-03 02:26:08 +03:00
Mikhail Zolotukhin
cf59968dca docs: 📝 provide quick installation instructions
fix: 📝 provide more feedback after installation
2021-10-03 01:38:21 +03:00
Mikhail Zolotukhin
58d8e21bf5 build: 📦 package as an archive with install script 2021-10-02 22:58:11 +03:00
Derek Stevens
5e262141a1
fix: 🐛 Monocle Layout "minimize unfocused windows" fixes and improvements
## Summary

Fixes Monocle Layout with `Minimize Unfocused Windows` (internally `config.monocleMinimizeRest`) option enabled.

Restores previous functionality (before Wayland patches) and adds
* minimize inactive windows only on same monitor with multimonitor setup
* can switch windows with focus-changing `Actions`
* switches to the next window when closing the active window (still a little buggy in multimonitor, but a big improvment)
* handles moving window onto a `Surface` with this layout properly

## UI Changes

Removed "(WIP)" from "Minimize unfocused windows" option in the config UI.

## Test Plan

1. Reload script
2. Verify all behavior in the Summary

## Related Issues

Closes #43, #55
2021-09-30 14:47:14 +03:00
Mikhail Zolotukhin
8ca1838f68 feat(wayland): 🔥 remove mouse poller
Mouse poller does not work on Wayland anyway. It uses xdottool, which
does not work on Wayland.

This will break the setup of the users, who used the config setting to
use xdotool
2021-09-23 13:50:04 +03:00
Mikhail Zolotukhin
92d57cc82b feat: 🏗️ lean out the shortcuts definitions
This completely changes how are shortcuts are interpreted by the script.
Instead of using the complicated system, where up, down, left and right
keys (hjkl) were used dynamically depended on the mode (directional,
dwm), we just put all the possible shortcuts in the list. This increases
the user's flexibility to bind shortcuts however they want and also
reduces the code complexity.

Since this change breaks the existing shortcuts for the user anyway
and we are currently earlier in the development, it makes sense
to break shortcuts entirely, to we also break the naming scheme.

BREAKING CHANGE: This completely breaks existing shortcuts. Users need
to remove all the existing shortcuts from config file and relogin into
the session immediately. After that, the new set of shortcuts will be
visible in the UI.
2021-09-22 02:50:48 +03:00
Mikhail Zolotukhin
4fd8615b7d fix: config crash 2021-09-07 13:19:59 +03:00
Mikhail Zolotukhin
b88d0b768d build: 📝 use SPDX statements for licencing 2021-09-04 18:22:29 +03:00
Mikhail Zolotukhin
eceeaa796c feat: add project icon 2021-09-04 13:00:05 +03:00
Mikhail Zolotukhin
54e39666a3 fix: Corretly pass all global objects
やった!I did it! It works!
2021-09-02 20:49:10 +03:00
Mikhail Zolotukhin
24d5573149 fix: 🐛 Pass QML objects to various facilities 2021-09-02 01:10:36 +03:00
Mikhail Zolotukhin
5425c637d2 feat: 🎨 Remove git rev from metadata description 2021-08-31 17:15:11 +03:00
Mikhail Zolotukhin
eb51e0cce0 refactor!: forward mouse poller 2021-08-31 12:07:12 +03:00
Mikhail Zolotukhin
341243184e feat!(wip): port to modules 2021-08-31 00:31:08 +03:00
Mikhail Zolotukhin
f09d2c550a feat!: compile as module
This breaks the script for now, but it works
2021-08-30 14:04:48 +03:00
Mikhail Zolotukhin
9ee821dab3 feat: use correct name and description 2021-08-28 19:31:52 +03:00
Mikhail Zolotukhin
07de0aa5a4 feat: rename ocurencies of krohnkite to bismuth 2021-08-28 19:18:28 +03:00
Mikhail Zolotukhin
df7b008d52 refactor: change project name 2021-08-28 18:30:40 +03:00
Mikhail Zolotukhin
847942e780 Use npm scripts and wrap makefile around it
Advantages:
- Building description is more readable (top to bottom)
- Build step is extracted from package step
- Abstraction layers are not mixed within the tools ("Scripts describe
  how to build, Npm calls scripts, Make calls Npm" instead of "Make
  describes build, calls Npm")
- No duplication of package description in Makefile and package.json
2021-08-26 22:35:46 +03:00
Eon S. Jeon
5c89147d89 add Spiral layout to config 2020-07-28 20:23:57 +09:00
Eon S. Jeon
b9d3b2fe0a option: put new window as master (#83) 2020-06-01 00:26:55 +09:00
Eon S. Jeon
70e4204f82 Use separate layouts by default (#71)
The previous default behavior was derived from dwm. It totally make
sense for dwm, because it has "tag" system instead of virtual desktop.
However, most people are more used to virtual desktop system and
consider each desktp as physically independent entity.  Thus, it makes
more sense to turn this on by default.
2020-05-09 11:50:31 +09:00
Lasath Fernando
1ad861816d Add note to maximize sole window option
It now mentions the relevant breeze option to prevent windows from
being stuck without borders when this is enabled.
2020-04-03 21:17:19 -07:00
Eon S. Jeon
924f759d41 overhaul config UI
* use groupbox instead of labels to split sections
 * improve sentences
 * item reorganization
 * etc...
2020-03-01 18:48:48 +09:00
Eon S. Jeon
bba40f37bf implement tile width limit 2020-03-01 18:48:39 +09:00
Eon S. Jeon
8e7fd2df45 keep floats above instead of tiles below (#58) 2020-01-31 03:46:40 +09:00
Eon S. Jeon
3bfa2643d1 make popup window output-only
This makes the popup click-through.
2020-01-13 17:23:09 +09:00
Eon S. Jeon
eb95bade93 better not abuse popup window type 2020-01-13 17:21:04 +09:00
Eon S. Jeon
7e02183138 set script metadata icon 2020-01-13 16:19:37 +09:00
Eon S. Jeon
d3fd64fd88 implement popup notification 2020-01-13 12:58:30 +09:00
Eon S. Jeon
a86701a077 configurable HJKL behavior (dwm <-> focus) 2020-01-10 04:07:21 +09:00
Eon S. Jeon
4190563ce2 make mouse polling optional (KWin-specific) 2020-01-05 14:43:48 +09:00
Eon S. Jeon
73d22addca swap tiles by dragging w/ mouse 2020-01-05 14:29:36 +09:00
Eon S. Jeon
5da15895f8 add option "enable Three Column layout" 2020-01-03 03:10:09 +09:00
Eon S. Jeon
c8fded547b remove Column layout
It turns out that column-based operations require lots of state
management, which is strictly against the base architecture.
Fully implementing this layout is almost the same as  re-implementating
a whole new window manager.
2020-01-03 02:55:03 +09:00
Eon S. Jeon
4b7222c586 expose ColumnLayout through config 2019-12-22 15:38:22 +09:00
Eon S. Jeon
e50351d9d2 mark "Minimize other windows" as experimental
The feature itself works nicely, but damages window states by minimizing
windows. To mitigate this, Krohnkite should track minimization.

In fact, minimization was intentionally excluded from the initial
design to reduce the complexity of window state management, but should
be managable anyway.
2019-12-11 21:05:49 +09:00
Eon S. Jeon
577fc7f550 implement monocleMinimizeRest (#33)
* THAT was a hard ride, really. It took so many experiements, but ended
   up with this simple elegant hack.
 * The trick is to delay arranging on window unminimize. Without this
   delay, KWin doesn't register the unminimized window as the current
   window, no matter what you do.
2019-11-04 07:11:11 +09:00
Eon S. Jeon
df6a1ac68b ignore window by window role (#42) 2019-11-02 16:42:08 +09:00
Eon S. Jeon
fd33b01798 expose FloatingLayout to user (#43)
* add `enableFloatingLayout` to config
 * note that the static instance of `FloatingLayout` is kept, and is
   still used on ignored screens/activities.
2019-10-27 23:00:41 +09:00
Eon S. Jeon
a2d1715659 keep tiles below "optionally" (#47) 2019-10-27 15:27:59 +09:00