Commit Graph

671 Commits

Author SHA1 Message Date
Mikhail Zolotukhin
24b0611389 refactor: ignore formatter git blame 2021-08-28 00:41:23 +03:00
Mikhail Zolotukhin
08d8dce1e2 feat: use eslint instead of tslint 2021-08-28 00:22:47 +03:00
Mikhail Zolotukhin
50bd6aea61 refactor: use prettier 2021-08-28 00:22:22 +03:00
Mikhail Zolotukhin
96cb46ef00 feat: install typescript via npm 2021-08-27 22:40:16 +03:00
Mikhail Zolotukhin
88dfdd027e feat: target es7 2021-08-27 20:20:47 +03:00
Mikhail Zolotukhin
74a3e702b4 docs: basic documentation generation 2021-08-27 19:57:11 +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
2a47753fa2
Merge pull request #124 from abrac/master
Don't make natively maximised windows *always on top*
2020-12-29 00:37:24 +09:00
Eon S. Jeon
cd4184671b
Merge pull request #125 from sayan01/master
Minimum Size for all Windows to prevent unwanted overlap
2020-12-29 00:37:12 +09:00
Sayan Ghosh
51cbcf7b0f
Add 'Setting Minimum Geometry Size' section 2020-11-10 15:13:34 +05:30
Chris Abraham
bf62e9aee3 Don't make natively maximised windows *always on top* 2020-11-08 21:53:01 +02:00
Eon S. Jeon
048223ef28
Merge pull request #123 from HaukurPall/patch-1
Border size documentation
2020-11-01 15:57:46 +09:00
HaukurPall
4f1b9b4493
Border size documentation
I had issues getting the focus to display when moving between windows, even after setting the values according to the README.md, due to the border size in my theme being 0 (or unnoticeable). I noticed that other people had similar issues online, also using Krohnkite. I figured I'd share my solution here.
2020-10-28 09:46:54 +00:00
Eon S. Jeon
e7f8533b0a remove extraneous console.log 2020-10-25 18:54:43 +09:00
Eon S. Jeon
fc8ccc0668 match resource names for auot-float/ignore (#121) 2020-10-25 18:50:24 +09:00
Eon S. Jeon
789ad72d1a remove dead links to KDE API docs (#101)
The links to KDE API are dead, and can't find any alternatives. These
documents are not really necessary, but added for the sake of deepening
the understanding of the KWin API. Now the docs are gone, so the links
should be too.
2020-09-21 12:48:31 +09:00
Eon S. Jeon
1bedb56c97
Merge pull request #105 from rdimaio/patch-1
Fix typo in readme
2020-09-01 19:16:27 +09:00
Eon S. Jeon
b1c787611b
Merge pull request #104 from leononame/master
commit float on windows created as floating windows
2020-09-01 19:15:51 +09:00
Riccardo Di Maio
0edf04580f
Fix typo in script 2020-08-30 19:58:26 +02:00
Leo
073240e146 commit float on windows created as floating windows 2020-08-18 13:20:50 +02:00
Eon S. Jeon
5c89147d89 add Spiral layout to config 2020-07-28 20:23:57 +09:00
Eon S. Jeon
55f1679ef8 rotatable Spiral layout 2020-07-28 01:06:26 +09:00
Eon S. Jeon
410642676b fix adjustment of rotated HalfSplit part
* Properly calculate new ratio depending on which part(primary or
   secondary) is being adjusted.
 * Consume delta
2020-07-28 00:57:33 +09:00
Eon S. Jeon
f2fa530420 fix rotation of HalfSplit part
The order of parts was not being reversed.
2020-07-27 21:26:26 +09:00
Eon S. Jeon
d73fd9ea4e prevent duplicated adjustment of LayoutPart
A problem with adjusting nested LayoutPart was that adjustments were
"duplicated". For example, if two HalfSplit parts were nested, resizing
one window will adjust both parts instead of one. This behavior is not
desirable.

So, to fix this, ILayoutPart#adjust now returns a RectDelta, to change
how outer parts behave. For example, an inner part can remove a field in
RectDelta(e.g. north) to prevent outer parts from reusing the field for
another adjustment. So, the duplicated adjustment can be fixed by
"consuming" delta values in inner parts.
2020-07-27 20:15:43 +09:00
Eon S. Jeon
57be00d17e add license notification to layoutpart.ts 2020-07-27 08:28:36 +09:00
Eon S. Jeon
f2b624f704 implement Fibonacci-Spiral layout (WIP)
Implemented only `apply`. Need to work on `adjust` and shortcuts.

It's unclear if the split ratio values should be derived from window
weights, or keep them independently in the layout. I think the latter is
more practical. Maybe both, but let's see what can be done.
2020-07-24 08:09:14 +09:00
Eon S. Jeon
eadea76c57 rotatable HalfSplitLayoutPart 2020-07-24 08:09:06 +09:00
Eon S. Jeon
87bf403f6d implement Rotate Part for master of Tile layout
This implements rotation of master of Tile layout. Not implementing
rotation for stack at this point, because it requires an access to
window list, which isn't possible atm.
2020-07-21 22:56:37 +09:00
Eon S. Jeon
5cdfd9d59f add Rotate Part shortcut key 2020-07-21 22:56:23 +09:00
Eon S. Jeon
011a68fea6 migrate Tile layout to generic ILayoutPart 2020-07-21 22:35:25 +09:00
Eon S. Jeon
5510982ae8 make HalfSplit, Rotate layout parts generic
This reduces verbosity from casting types and keeping track of
intermediate parts.
2020-07-21 22:30:38 +09:00
Eon S. Jeon
430b5a634e safeguard WrapperMap#add from duplicated insert 2020-07-18 14:22:07 +09:00
Eon S. Jeon
7fdbdc2667 make the script work without compositor (#46)
This is a little timer-based hack that make the script work without
compositor.

This is not a "true" solution, because, rarely, it takes longer than
50ms to get "windowShown" signal after "windowAdded", and, if this
happens, the window *might* freeze. If the delay is longer, it ruins the
experience.

I also tried to get the state of compositor through
`option.compositingInitialized`, but it seems like the property is
removed in the actual code. I couldn't find any other reasonable
methods.
2020-07-18 14:08:13 +09:00
Eon S. Jeon
aa8cb36446 simplify ILayout 2020-07-16 23:31:49 +09:00
Eon S. Jeon
7ec2af2a7e simplify Layout ordering method
The original logic relied on the fact that each layout instance carries
around predefined class IDs. However, this is cumbersome and pretty
hacky in terms of design. Also, it's not easy to declare multiple
layouts using a single layout class(ILayout).

In the new method, IConfig instances are reponsible for providing ID,
order, and factory of each layout. That is, the mapping b/w the
layout ID and the actual layout is only known to IConfig. This allow
clear separation of responsibility.

Note: there's another solution which might work better: layout
expression. This is an over-engineering in the current state of the
script, but once the support for external config file is implemented,
this can be pretty useful.
2020-07-12 10:22:33 +09:00
Eon S. Jeon
9548f3bf3f implement layout rotation in Tile layout 2020-07-08 08:17:18 +09:00
Eon S. Jeon
1704740d01 add rotate method to RotateLayoutPart 2020-07-08 08:17:04 +09:00
Eon S. Jeon
0346ae33e1 add "Rotate" shortcut 2020-07-08 08:16:41 +09:00
Eon S. Jeon
c2bf027e13 implement RotateLayoutPart
RotateLayoutPart allows rotating its child LayoutPart (and also supports
layout adjustment).

Note that "rotation" here isn't real degree-based rotation. This is an
intentional decision to preserve stack-growing direction (top-to-bottom,
left-to-right).
2020-07-07 21:41:36 +09:00
Eon S. Jeon
2b377f213d regress: tile layout adjusts both stacks
Resizing one window adjusted windows in both stacks. This was because
all tiles were passed for adjustment to either ones. This was fixed by
passing only tiles that belong to each of the stack.
2020-07-06 00:39:07 +09:00
Eon S. Jeon
1ec3085d66 refactor Tile layout using LayoutParts 2020-07-05 20:54:57 +09:00
Eon S. Jeon
81ed83a7e8 implement LayoutPart stuffs 2020-07-05 20:54:40 +09:00
Eon S. Jeon
de271a72e6 make actualGeometry read-only 2020-07-05 20:54:25 +09:00
Eon S. Jeon
d11741adb4 simplify CascadeLayout.decomposeDirection 2020-07-03 08:13:18 +09:00
Eon S. Jeon
47fa847f7e make Rect mutable and use Readonly<Rect> instead
Although readonly is quite a joke in Typescript, this is a better
approach which allows both mutable and immutable patterns.
2020-07-02 06:52:01 +09:00
Eon S. Jeon
2d5e981171 fix Rect signature 2020-07-01 22:06:58 +09:00
Eon S. Jeon
c878120074 bump version to 0.8 2020-06-01 00:35:08 +09:00
Eon S. Jeon
b9d3b2fe0a option: put new window as master (#83) 2020-06-01 00:26:55 +09:00
Eon S. Jeon
ad25afb88f moving floating windows w/ shortcut (#41)
Allow moving floating windows with swap shortcuts.
2020-05-11 09:29:13 +09:00