Commit Graph

610 Commits

Author SHA1 Message Date
Mikhail Zolotukhin
062352e1ae fix(wayland): 🔥 remove basicUnit and its usages
I honestly do not understand why is this needed, but it prevents running
script on Wayland session entierly. In the docs this parameter is marked
as unreliable anyway and we do not want to support non-crossplatform
features.

This will surely break something. I do not know what and when.
2021-09-23 13:50:04 +03:00
Mikhail Zolotukhin
3f7d922fea ci: 👷 add commit linting
Add commit linting according to the Conventional Commits spec.
2021-09-22 17:08:23 +03:00
Mikhail Zolotukhin
88a2ea2d0c test(action): add remaining tests 2021-09-22 02:50:48 +03:00
Mikhail Zolotukhin
b90a5d49b7 fix(action): 🐛 correctly prefix layout shortcuts
We didn't prefixed them with "bismuth"

BREAKING CHANGE: This will break already binded shortcuts
2021-09-22 02:50:48 +03:00
Mikhail Zolotukhin
429c9af212 test(action): add master area tests 2021-09-22 02:50:48 +03:00
Mikhail Zolotukhin
da9c10fc16 test(action): add window moving action tests 2021-09-22 02:50:48 +03:00
Mikhail Zolotukhin
78c220e496 fix(action): 🐛 notify about rotation non-appliance 2021-09-22 02:50:48 +03:00
Mikhail Zolotukhin
9d1e535725 test(action): add move window action tests 2021-09-22 02:50:48 +03:00
Mikhail Zolotukhin
d2cb2db82a test(action): add focus action tests 2021-09-22 02:50:48 +03:00
Mikhail Zolotukhin
2d2c60874c style(tests): 💡 add eslint ignore for whole test files 2021-09-22 02:50:48 +03:00
Mikhail Zolotukhin
32ae23c6a2 test(action): add simple focus up action unit test
This is just a basic unit test.
2021-09-22 02:50:48 +03:00
Mikhail Zolotukhin
5416912efd feat: 🐛 use unique key strings instead of description for shortcuts configuration
Using description strings for configuration was unsafe: we could
potentially introduce forbidden characters. Also if we wanted to change
she description of the shortcut, we would break the shortcut
configuration on the user side. Now it is only possible with the change
of the unique config string.

BREAKING CHANGE: This will obviously break the existing shortcuts. But
we are introducing this change along with the previous one, that breaks
the shortcut configuration anyway.
2021-09-22 02:50:48 +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
dd1212c2b4 refactor: 🎨 rename shortcut to action
Action here it more applicable, since the shortcut is Ctrl-A or Super+Up, but here it is used to denote action.
2021-09-22 02:50:48 +03:00
Mikhail Zolotukhin
9710c664ae build: 🚨 disable linting where we cannot do anyshing in the short term 2021-09-17 23:30:14 +03:00
Mikhail Zolotukhin
0f43507bcb refactor: 🚨 fix a bundh of linter errors 2021-09-17 23:30:14 +03:00
Mikhail Zolotukhin
1b3c14cbfb docs: 📝 add JSDoc to Controller interface 2021-09-17 23:30:14 +03:00
Mikhail Zolotukhin
aea4e9f6c7 docs: 📝 add a bit more docs to KWin Scripting interface 2021-09-17 23:30:14 +03:00
Mikhail Zolotukhin
78957f4cad docs: 📝 add JSDoc to Toplevel KWin interface 2021-09-17 23:30:14 +03:00
Mikhail Zolotukhin
940140dd17 docs: 📝 add video demonstration 2021-09-17 21:24:27 +03:00
Mikhail Zolotukhin
aef0eaa9b5 refactor: 🚨 add missing return types 2021-09-17 19:23:58 +03:00
Mikhail Zolotukhin
f3eae59f60 refactor: 🚨 curly braces 2021-09-17 19:23:58 +03:00
Mikhail Zolotukhin
13f8029578 refactor: do not read useless config value 2021-09-17 19:23:58 +03:00
Mikhail Zolotukhin
8a814857c0 build: disable linting of any in config.ts 2021-09-17 19:23:58 +03:00
Mikhail Zolotukhin
8ec36c3f46 refactor: 🚨 prefix or comment out some unused vars 2021-09-17 19:23:58 +03:00
Mikhail Zolotukhin
b5a58aa1cc build: 🚨 disable template expression rule 2021-09-17 19:23:58 +03:00
Mikhail Zolotukhin
6e2e54c12a refactor: 🚨 ignore empty Qt interface 2021-09-17 19:23:58 +03:00
Mikhail Zolotukhin
e62b83dadf build: 🚨 ignore unused vars prefixed with _ 2021-09-17 19:23:58 +03:00
Mikhail Zolotukhin
86db2ebf8c refactor: 🚨 use string templates 2021-09-17 19:23:58 +03:00
Mikhail Zolotukhin
cc693602f4 refactor: 🚨 fix function return type rule 2021-09-17 19:23:58 +03:00
Mikhail Zolotukhin
6c586c9033 build: 🚨 turn off any rule
We have to have any types for Qt API anyway.
2021-09-17 19:23:58 +03:00
Mikhail Zolotukhin
714379ff57 build: 🔥 remove one var rule 2021-09-17 19:23:58 +03:00
Mikhail Zolotukhin
f2cbebc9ab build: 🔧 fix eslint configuration 2021-09-17 19:23:58 +03:00
Mikhail Zolotukhin
c2c79f67ea refactor(tests): 🎨 misc artistic changes 2021-09-16 18:25:18 +03:00
Mikhail Zolotukhin
13b1987ee0 test: add a few basic tests with mocks
Tests directory probably will be used for integration tests.
2021-09-16 18:25:18 +03:00
Mikhail Zolotukhin
b759156b3c refactor: 🔥 remove EngineContext 2021-09-15 17:00:59 +03:00
Mikhail Zolotukhin
2800a8d91d refactor: 🎨 rename layout interfaces 2021-09-15 17:00:59 +03:00
Mikhail Zolotukhin
92cdf1edfc refactor: 🎨 reorganize imports 2021-09-15 17:00:59 +03:00
Mikhail Zolotukhin
354e6b43ad refactor: 🔥 cleanup imports 2021-09-13 03:25:21 +03:00
Mikhail Zolotukhin
24b4cce8ac refactor: 🎨 remove unneeded pass of driver in the controller callbacks
Will I finish refactoring? It's 3 AM and I want to sleep
2021-09-13 03:25:21 +03:00
Mikhail Zolotukhin
a320567c3d refactor: 🎨 introduce interface for controller 2021-09-13 03:25:21 +03:00
Mikhail Zolotukhin
ca1909c4c8 refactor: 🎨 create interface for tiling engine
This way we will be able to substitute it in tests
2021-09-13 03:25:21 +03:00
Mikhail Zolotukhin
62e6382285 refactor: 🔥 purge driver context from engine
Hands are useful.
2021-09-13 02:28:51 +03:00
Mikhail Zolotukhin
6e3db51a7f refactor: 🔥 purge driver context from engine context 2021-09-13 02:28:51 +03:00
Mikhail Zolotukhin
351d69af45 refactor: 🎨 pass tiling controller to egine context 2021-09-13 02:28:51 +03:00
Mikhail Zolotukhin
ee686f0086 refactor: 🎨 pass controller to engine and use it for gaining screens 2021-09-13 02:28:51 +03:00
Mikhail Zolotukhin
f24caff379 refactor: 🎨 move entry point to controller
Idea in the TODO was not the best. In the end classes will be ported to interfaces, that we can replace in the tests.
2021-09-13 02:28:51 +03:00
Mikhail Zolotukhin
88ce93b4a2 refactor: 🔥 remove unused ctx param in engine fuction 2021-09-13 02:28:51 +03:00
Mikhail Zolotukhin
a1957a6578 refactor: 🎨 decouple driver from engine
MVC ftw
2021-09-13 02:28:51 +03:00
Mikhail Zolotukhin
9debfb41a1 refactor: 🎨 create MVC in the init script
This is a foundation of the later separation via callbacks.
2021-09-12 20:34:38 +03:00