Commit Graph

229 Commits

Author SHA1 Message Date
Matthew Kosarek
16d1e79032 docs: update ROADMAP.md with latest thinking 2024-03-04 08:14:02 -05:00
Matthew Kosarek
7f9f60e48c feature: floating window management for individual windows (#45)
* Added support for floating windows, including moving floating windows using the mouse, resizing floating windows, and complex pointer selection
* Fixed a bug where removing a node was causing the program to crash
2024-03-04 08:09:27 -05:00
Matthew Kosarek
0601a51be3 refactor: establish the OutputContent as a source of truth for an Output's layout in preparation for floating windows (#44)
* Establish the concept of `WindowMetadata` which every window must have. This data is used to associate a `Window` to its `OutputContent` and `Tree`
* The `Policy` now defers to the `OutputContent` for decisions on how a window should behave. The `Policy` is more of a metadata-resolver than anything, as it leaves the heavy-lifting to the `OutputContent`
* Prepares for the integration of a `FloatingWindowManager` that the `OutputContent` will be able to defer to when a window is of type `WindowType::floating`
2024-03-02 07:47:11 -05:00
Matthew Kosarek
9dca0468be Merge branch 'release/0.1.1' 2024-02-26 13:55:41 -05:00
Matthew Kosarek
50990f66b0 (#37) feature: selecting a sensible terminal, configurable terminal command, and notifying when we can't open it (#40)
* feature: selecting a sensible terminal, configurable terminal command, and notifying when we can't open it

* bugfix: using CMAKE_INSTALL_BINDIR for  miracle-wm-sensible-terminal

Co-authored-by: Cosima Neidahl <opna2608@protonmail.com>

* enhancement: update program_exists check wihout bounds check

---------

Co-authored-by: Cosima Neidahl <opna2608@protonmail.com>
2024-02-26 13:48:59 -05:00
Matthew Kosarek
37d803997e refactor: window management and node discovery (#41)
* Refactored window management and node discovery in preparation for a floating window manager
* This includes making node discovery a pointer jump instead of a tree search (huge for performance!)
* Renamed WindowTree to Tree
* Renamed MiracleWindowManagementPolicy to TilingWindowManagementPolicy
2024-02-25 15:08:01 -05:00
Cosima Neidahl
48dbe2cfbd Use GNUInstallDirs for install locations (#39) 2024-02-25 10:27:53 -05:00
Cosima Neidahl
b8beba8006 Use GNUInstallDirs for install locations (#39) 2024-02-25 10:27:29 -05:00
Matthew Kosarek
2b2077c8a7 feature: automatically reloading configuration (#38)
* Configuration changes can be watched and the rest of the program can listen for those changes
* Added the idea of outer and inner gaps to windows
* Fixed up some of the problems with window gaps (still not very happy with it though)
2024-02-24 16:39:25 -05:00
Matthew Kosarek
b6d1ae752e feature: supporting I3 IPC enough to make waybar's workspaces function (#35)
* Switching workspaces now emits a signal to i3 IPC clients which makes it so that waybar works
* Refactored a lot of workspace code for readability and usability
2024-02-21 18:54:59 -05:00
Russell Greene
2a11993588 Fix source build instructions to actually build it (#30)
Also, use cmake's -B flag to simplify it.
2024-02-20 09:12:22 -05:00
Matthew Kosarek
032733b77d snap: bump to version 0.1.0 2024-02-18 15:52:29 -05:00
Matthew Kosarek
5e59d6c020 docs: update install instructions 2024-02-18 15:43:25 -05:00
Matthew Kosarek
0730f7d9f3 docs: update v0.0.2 for the roadmap 2024-02-18 10:55:27 -05:00
Matthew Kosarek
f031af2326 docs: minor bugfixes in the README 2024-02-17 18:03:34 -05:00
Matthew Kosarek
6e03365113 docs: update snap description and screenshot 2024-02-17 18:00:52 -05:00
Matthew Kosarek
f8674e2e71 docs: update readme 2024-02-17 16:59:55 -05:00
Matthew Kosarek
8309f4bfac bugfix: removing server side decorations on X windows for bug-sake and space saving 2024-02-17 16:46:51 -05:00
Matthew Kosarek
af985bb6f0 bugfix: able to append and prepend movements to the root node 2024-02-17 14:26:21 -05:00
Matthew Kosarek
7408f451fb bugfix: can move a tentative lane properly 2024-02-17 14:11:56 -05:00
Matthew Kosarek
6691e83d9e bugfix: workspaces now get deleted when you navigate away from an empty one 2024-02-15 15:59:58 -05:00
Matthew Kosarek
f979aa3725 bugfix: windows not resizing on move to new workspace 2024-02-15 15:31:37 -05:00
Matthew Kosarek
d13c36cfb5 feature: handling the fact that an output may not be present 2024-02-15 14:09:27 -05:00
Matthew Kosarek
c723bd5247 docs: update roadmap to current understanding 2024-02-13 18:06:51 -05:00
Matthew Kosarek
76562232da bugfix: fullscreen instead of maximized 2024-02-13 15:24:16 -05:00
Matthew Kosarek
0a491d50a7 bugfix: non-tiling windows should NOT be placed at all 2024-02-13 15:21:31 -05:00
Matthew Kosarek
aebb8465ea bugfix: somewhat handling attached windows 2024-02-09 16:40:27 -05:00
Matthew Kosarek
d6abbe57e1 feature: custom actions 2024-02-09 16:05:45 -05:00
Matthew Kosarek
c6dbc2c402 bugfix: exclusion areas now work across workspaces 2024-02-09 15:42:34 -05:00
Matthew Kosarek
0e9eea63e2 feature: moving windows between workspaces 2024-02-09 15:28:04 -05:00
Matthew Kosarek
030e06428e bugfix: application exclusion zone was broken 2024-02-07 15:54:12 -05:00
Matthew Kosarek
e2a4ee8cdd bugfix: needed ref when setting output area 2024-02-07 15:36:07 -05:00
Matthew Kosarek
621cb6a93e bugfix: multi output was broken 2024-02-07 15:33:35 -05:00
Matthew Kosarek
b9405e62d9 feature: rudimentary workspace foundation (#18)
* workspace data structure in place

* feature: rudimentary workspace support, but I expect some bugs

* bugfix: unfocusable nodes
2024-02-07 08:05:09 -05:00
Matthew Kosarek
b8ebe4ab8c bugfix: node movement is much improved, except for some final edge cases 2024-02-02 15:52:29 -05:00
Matthew Kosarek
3128ed460f bugfix: improved the selection algorithm 2024-02-02 15:14:49 -05:00
Matthew Kosarek
05deb43919 bugfix #17: fix for ghost node upon window move 2024-02-02 08:29:30 -05:00
Matthew Kosarek
b8b4395ab8 feature: support for startup applications in the configuration 2024-02-01 14:40:04 -05:00
Matthew Kosarek
b6c677cf27 feature: toggle fullscreen on the active window 2024-02-01 14:08:38 -05:00
Matthew Kosarek
5fa927200a feature: configure the gap size in the configuration file 2024-01-30 16:25:26 -05:00
Matthew Kosarek
a56797be2e docs: defining the default schema 2024-01-30 09:48:16 -05:00
Matthew Kosarek
6ec0ba1b9a feature: config parsing error handling 2024-01-29 18:16:21 -05:00
Matthew Kosarek
b13beb2740 feature: support for default key command overrides in the configuration 2024-01-29 18:10:02 -05:00
Matthew Kosarek
e45492c602 fix: missing libyaml package 2024-01-28 11:39:03 -05:00
Matthew Kosarek
64af9744b2 feature: set the meta key from the yaml config 2024-01-28 11:19:00 -05:00
Matthew Kosarek
da921123b6 feature: providing keybindings via a configuration; next step is loading it 2024-01-28 10:52:28 -05:00
Matthew Kosarek
e17c773617 docs: move roadmap to its own file 2024-01-27 11:49:59 -05:00
Matthew Kosarek
698e4b7f3b Merge branch 'master' of github.com:mattkae/miracle 2024-01-25 12:03:31 -05:00
Matthew Kosarek
40e031b1a1 feature: close the compositor with meta+shift+e and reenabling clipping (fix to come in mir) 2024-01-25 12:03:27 -05:00
Matthew Kosarek
728d0f9f78 bugfix: update readme 2024-01-23 21:40:57 -05:00