Commit Graph

77 Commits

Author SHA1 Message Date
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
Eon S. Jeon
0cd6f7c325 make protrusion prevention optional 2019-04-15 21:56:35 +09:00
Eon S. Jeon
588ec48269 add testing facility to the project 2019-04-03 23:57:45 +09:00
Eon S. Jeon
58d7b4f1a5 include revision id in package comment 2019-03-29 12:03:06 +09:00
Eon S. Jeon
7ebf1cbe4b mark live adjustment as experimental in config 2019-03-06 15:08:20 +09:00
Eon S. Jeon
d586d0d5e6 option to prevent windows from minimizing 2019-03-05 00:32:46 +09:00
Eon S. Jeon
a34ff3db40 update labels and tooltips in UI 2019-03-02 19:03:33 +09:00
Eon S. Jeon
ddebc1a639 refactor: rename mouseAdjustLayout option 2019-03-02 18:22:17 +09:00
Eon S. Jeon
7068d3ef5e add option for live adjustment of layout 2019-03-02 18:18:12 +09:00
Eon S. Jeon
42c946551e implement activity ID to name translation
* Necessary to implement #23
 * Tried `DataEngine` method, but was unreliable.
2019-02-15 02:38:18 +09:00