Commit Graph

1085 Commits

Author SHA1 Message Date
CtByte
3cd5d76644 Merge branch 'LGUG2Z:master' into bar_widget_grouping 2024-11-12 12:43:58 +01:00
Csaba
cbd415f28f renamed Side to Alignment, group spacing 2024-11-12 12:26:09 +01:00
LGUG2Z
cc196db046 feat(cli): add cycle-stack-index cmd
This commit adds a new komorebi command "cycle-stack-index" which allows
the user to manipulate the index position of the focused window in the
focused stack by swapping it with either the previous or the next window
until the desired index position has been found.
2024-11-11 16:27:45 -08:00
Csaba
3808fcec8f widget rounding based on grouping, atomic background color, simplified config, style on grouping 2024-11-12 00:16:02 +01:00
CtByte
0ddafeefb0 Merge branch 'LGUG2Z:master' into bar_widget_grouping 2024-11-11 19:08:49 +01:00
alex-ds13
7f0b54c35e fix(wm): add read timeout to command socket
After investigating further the issue where commands would randomly stop
working, we've noticed that the issue seems to be that somehow the
listening thread gets stuck reading the unix socket, as in it
continuously tries to read a socket on a connection that is not sending
anything anymore. The result would be that komorebi would no longer be
able to receive commands until it was restarted.

This fix adds a read timeout of 1s and it spawns a new thread to handle
the stream reading and process of cmds. So in case this happens again,
that specific processing thread will only be stuck for 1s but the rest
of komorebi will never get stuck and should keep working normally.
2024-11-11 06:22:42 -08:00
CtByte
935b6b16ce Merge branch 'LGUG2Z:master' into bar_widget_grouping 2024-11-11 08:40:36 +01:00
Csaba
4f4b617f26 grouping on bar, converting AlphaColour from_rgba_unmultiplied, simplified grouping 2024-11-11 00:38:40 +01:00
thearturca
b1726af2eb fix(animation): set pos for all container windows
This change prevents the move animation from playing again for each
window in the stack. Tested with all hiding behaviors. Looks good so
far.

resolve #1029
2024-11-10 09:24:56 -08:00
Csaba
2cd237fd0d added shadow to grouping, optional width on grouping stroke 2024-11-10 13:58:24 +01:00
Csaba
d88774328a grouping correction on init 2024-11-10 02:23:23 +01:00
Csaba
10d2ab21c7 hot-reload on grouping 2024-11-10 01:59:42 +01:00
Csaba
645c46beb8 background color using theme color, AlphaColour.to_color32_or, updating json format for Grouping and RoundingConfig 2024-11-09 17:38:30 +01:00
Csaba
74dcb9b4e4 Merge branch 'bar_widget_grouping' of https://github.com/CtByte/komorebi into bar_widget_grouping 2024-11-09 01:26:03 +01:00
Csaba
12117b832b changed default values 2024-11-09 01:25:59 +01:00
CtByte
a464a8c0d7 Merge branch 'LGUG2Z:master' into bar_widget_grouping 2024-11-09 01:20:40 +01:00
Csaba
ec5f7dc82d handling grouping edge case for komorebi focus window 2024-11-09 01:02:44 +01:00
Csaba
cba0fcd882 added RoundingConfig 2024-11-09 00:35:24 +01:00
Csaba
655e8ce4c1 AlphaColour, transparency, bar background, more grouping config options 2024-11-08 23:51:00 +01:00
LGUG2Z
fd8cd4bb01 docs(github): add pull request template 2024-11-08 12:34:47 -08:00
LGUG2Z
172988ed81 fix(wm): apply ws cfgs only to declared ws indices
This commit ensures that when attempting to reload the static
configuration file after the user has imperatively created new
workspaces, the configuration reload logic will not attempt to load a
workspace config for those imperatively created workspaces.
2024-11-08 12:28:52 -08:00
Csaba
7fff6d29a9 dereferencing 2024-11-08 17:26:47 +01:00
Csaba
1008ec2031 rounding from settings, and apply_on_side 2024-11-08 17:11:43 +01:00
Csaba
d188222be7 added widget grouping and group module 2024-11-08 00:40:13 +01:00
Csaba
f446a6a45f "|mt --check" fix (thanks VS) 2024-11-07 10:52:53 +01:00
Csaba
ce49b433f9 GroupingConfig 2024-11-07 10:42:04 +01:00
Csaba
fbe5e2c1f7 Group -> Grouping 2024-11-07 09:42:12 +01:00
Csaba
80f0214e47 Group enum, Copy RenderConfig 2024-11-07 09:38:19 +01:00
Csaba
6a91dd46cd ignore unused 2024-11-07 00:09:43 +01:00
Csaba
a5a7d6906c comment 2024-11-06 23:55:59 +01:00
Csaba
0a5e0a4c0a no clone 2024-11-06 23:53:34 +01:00
Csaba
e8f5952abb adding RenderConfig, and some test frames on widgets 2024-11-06 23:49:55 +01:00
LGUG2Z
36e3eaad36 fix(bar): retain exact workspace indices
This commit ensures that the exact workspace indices are tracked in the
komorebi widget state.

This fixes a bug where an incorrect workspace index could be sent with
SocketMessage::FocusWorkspaceNumber if a user had hide_empty_workspaces
set to true.

fix #1102
2024-11-04 17:01:49 -08:00
LGUG2Z
0f022d47df feat(cli): add close-workspace cmd
This commit introduces a new komorebic command, close-workspace. This
command will remove the focused workspace from the window manager state
if the following conditions are met:

1. The number of workspaces on the focused monitor are >1
2. The workspace is empty
3. The workspace is unnamed

The third condition is to ensure that we are not removing workspaces
which have been declared in the static configuration file.
2024-11-04 12:39:08 -08:00
LGUG2Z
dc1eb8ff50 fix(cli): expand list of ahk executable names
fix #1103
2024-11-04 12:07:38 -08:00
LGUG2Z
166f505aba fix(cli): handle spaces in bar config paths 2024-11-04 08:01:39 -08:00
LGUG2Z
d55d356b37 chore(dev): begin v0.1.31-dev 2024-11-04 07:58:49 -08:00
LGUG2Z
9a3dbccc89 chore(release): v0.1.30 v0.1.30 2024-11-03 15:43:22 -08:00
LGUG2Z
24b43a154c fix(wm): remove panic on missing matching strategy
This commit ensures that if an IdWithIdentifer without an explicitly set
matching strategy makes it through to should_act_individual, it will be
treated the same as MatchingStrategy::Legacy instead of causing a
runtime panic.
2024-11-03 08:22:13 -08:00
LGUG2Z
6a09ec4b87 feat(cli): update start cmd output blurbs 2024-11-01 20:53:06 -07:00
LGUG2Z
374cd2c6d5 feat(wm): switch to asc v2 json format
This commit switches all relevant commands to treat the v2
applications.json asc format as the default format in all commands.

The v1 applications.yaml file will still be processed correctly if
passed.
2024-11-01 19:43:04 -07:00
alex-ds13
0f385d6245 fix(wm): restore hidden windows correctly
Fixes the issue talked on Discord[1] here where when using `Hide` as
hiding behaviour some windows were hidden and never restored.

The same would happen if using stacks with apps that matched a
tray_and_multi_window_identifiers rule.

[1]: https://discord.com/channels/898554690126630914/898554690608967786/1301581412008202298
2024-11-01 19:00:26 -07:00
alex-ds13
5503323695 fix(wm): handle moving windows to/from floating workspaces
This commit fixes the issue related to moving windows to/from a floating
workspace to a tiled workspace.

Previously the start of the move would be ignored however when moving
back from a tiled workspace since it didn't know about the existance of
that window it would also "move" that workspace focused tiled window
without physically moving it, leaving it in a weird state that seemed
like it was unmanaged.

This commit changes the way this mouse moves are handled and now also
handles moving `floating_windows` and even monocle or maximized windows.
2024-11-01 15:50:22 -07:00
LGUG2Z
aa9f50fd5c docs(readme): add link to awesome komorebi list 2024-11-01 14:17:19 -07:00
LGUG2Z
3a6ae01b12 fix(borders): permit failure on global destruction
This commit allows calls to Border::destroy to fail when called in the
context of border_manager::destroy_all_borders. This is important in the
context of the retile command, which calls this function, to not leave
the retile in an inconsistent state.
2024-11-01 11:53:21 -07:00
LGUG2Z
720089587b docs(readme): add to license explanation re: nonpersonal use 2024-11-01 09:38:43 -07:00
LGUG2Z
852d1f9eb0 docs(bar): update egui docstring link
Thanks to @dinesh-58 for pointing this out!

resolve #1078
2024-10-31 17:12:27 -07:00
LGUG2Z
ed5b0f9120 fix(wm): avoid slurping on stack -> stack ops
This commit ensures that when both the origin and target containers are
stacks during a stack operation, the "slurping" stack extension
behaviour introduced in cfb0c7f2ce will
not be applied.

fix #1085
2024-10-31 16:58:46 -07:00
alex-ds13
7f7b8c7c05 fix(borders): update border loc when moving
Currently, komorebi checks if a move is happening by checking if the
left mouse is pressed and updates the borders when there is a move while
the left mouse button is pressed (BTW this is why when moving with the
keyboard using the system move it only updates after pressing enter).

However, for some reason AltSnap somehow steals this left button
information and komorebi thinks the button is not pressed.

This PR makes it so it checks for the state of the pending_move_op and
keeps updating the borders while this is_some().

This fixes both that issue with AltSnap and the issue with system move,
as well as any other situations that might allow moving a window with
anything else that doesn't use a left mouse button press.
2024-10-31 12:39:32 -07:00
alex-ds13
4198f6fabc fix(wm): set last focused workspace on alt-tab 2024-10-30 09:59:04 -07:00