Commit Graph

194 Commits

Author SHA1 Message Date
Matthew Kosarek
65332344c5 refactor: differentiating between ParentNodes and LeafNodes (#71)
- Refactored the `Node` concept into `LeafNode`s and `ParentNode`s so that we always know what we're working with
- Implemented the concept of a `Node::commit_changes()` which is used at the end of a series of complex operations to push changes to the screen at the end.
- Prepared the `TilingWindowTree` for testing, which will come next
2024-04-02 14:19:57 -04:00
Matthew Kosarek
12adceedbc (#67) Resizing over and over again now accounts for rounding errors appropriately (#69) 2024-03-23 13:30:22 -04:00
Matthew Kosarek
5fbcac4f64 docs: move release date back to April 15th 2024-03-23 09:09:54 -04:00
Matthew Kosarek
8a828552b5 (#66) disabling moving fullscreen windows between workspaces 2024-03-20 17:34:37 -04:00
Matthew Kosarek
13701a0c75 (#64) setting the size of other nodes only when the new window is added to the tree 2024-03-20 09:00:59 -04:00
Matthew Kosarek
8937fe29cd (#61) outer gaps no longer include inner gaps 2024-03-20 07:49:40 -04:00
Matthew Kosarek
87b442f617 packaging: debian upload with instructions on how to release for jammy, mantic, and noble (#47)
- A working `debian` folder that I can use to upload to a ppa on launchpad
- Instructions on how to upload new builds. These instructions are very manual at the moment, but there exists another task to make this manual. I would prefer to do it manually for v0.2 at least.
2024-03-18 18:21:17 -04:00
Matthew Kosarek
a058ca1b15 (#62) If a window dies while we are not on that workspace, then we remove it from nodes_to_resurrect 2024-03-17 09:03:17 -04:00
Matthew Kosarek
2f61059059 bugfix: prevent reselecting the same workspace twice in a row 2024-03-12 10:18:21 -04:00
Matthew Kosarek
001278c6e7 testing: implementing tests for configuration parsing (#56) 2024-03-10 16:40:26 -04:00
Matthew Kosarek
f111fda16a (#50) bugfix: consuming key input events when we switch workspaces (and many other circumstances) 2024-03-09 18:47:30 -05:00
Matthew Kosarek
851b25d542 feature: floating windows can now be pinned to an output (#55)
* Windows can now be pinned to a workspace by clicking Meta + Shift + P
2024-03-09 18:45:11 -05:00
Matthew Kosarek
bdff20821c feature: implement configurable resize jump (#54) 2024-03-09 17:35:08 -05:00
Matthew Kosarek
342f32a3f1 (#48) Fullscreened windows are now guaranteed to be on top (#53) 2024-03-07 09:07:55 -05:00
Matthew Kosarek
fd146aac4d (#34) bugfix: panels were not clickable 2024-03-06 16:27:20 -05:00
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