Commit Graph

44 Commits

Author SHA1 Message Date
Matthew Kosarek
dd89df3214
feature: supporting the i3 focus command (#116)
- Added support for the i3 focus command: https://i3wm.org/docs/userguide.html#_focusing_moving_containers
- Laid down a lot of the foundation of i3 commands in general, including parsing
- CI now builds against the latest version of Mir's libraries
- Snap builds are now disabled while we wait to update to core24
2024-05-02 10:14:16 -04:00
Neal Gompa
250f130688 packaging: Only install unsnap wrapper when building as a snap
This is only needed when Miracle is built as a snap, so exclude it
when making regular package builds.
2024-04-23 09:42:48 -04:00
Matthew Kosarek
9a2a0cb36f bugfix: processes spawned from the compositor need to be unsnapped to avoid driver errors 2024-04-19 11:24:44 -04:00
Matthew Kosarek
ee5dc57467 packaging: fedora spec file + SRPM (#73)
- Created an SRPM and spec file for the Fedora package
2024-04-02 15:09:21 -04:00
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
001278c6e7 testing: implementing tests for configuration parsing (#56) 2024-03-10 16:40:26 -04: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
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
Matthew Kosarek
d13c36cfb5 feature: handling the fact that an output may not be present 2024-02-15 14:09:27 -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
b13beb2740 feature: support for default key command overrides in the configuration 2024-01-29 18:10:02 -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
166ae16d3f feature: installation for make install 2024-01-16 16:36:37 -05:00
Matthew Kosarek
bc0746c574 feature: unit testing integration + bugfix for starting in fullscreen mode (#13)
* cleanup: node interface

* bugfix: starting in fullscreen no longer breaks us

* feature: unit testing integration

* bad actions
2024-01-15 10:56:41 -05:00
Matthew Kosarek
4b999850ba bugfix: various clang-tidy tidbits 2024-01-08 18:42:04 -05:00
Matthew Kosarek
2ea798bf39 bugfix: if we start a fullscreen app, it appears fullscreen 2024-01-07 08:19:28 -05:00
Matthew Kosarek
d3643211d8 removing bogus comments and bogus files 2023-12-28 13:48:11 -05:00
Matthew Kosarek
aee7cc8363 snap support 2023-12-28 13:31:57 -05:00
Matthew Kosarek
baca05a08a refactor: delete unnecessary client code and refactor name of project 2023-12-28 10:56:38 -05:00
Matthew Kosarek
9f81b1befa enhancement: only need to keep track of the active window 2023-12-19 08:51:14 -05:00
Matthew Kosarek
1afcfad912 big cleanup: removing NodeContent in favor of a single Node, much cleaner 2023-11-30 17:41:41 -05:00
Matthew Kosarek
ed00baa8ae Shell of an initial tree implementation 2023-11-19 11:30:05 -05:00
Matthew Kosarek
f74c32a6c2 Using XDG shell to render, tada! 2023-10-30 09:20:00 -04:00
Matthew Kosarek
36dbaa08a3 Drawing a background appropriately 2023-10-27 16:26:34 -04:00
Matthew Kosarek
00e3b077e9 Merge branch 'master' of github.com:mattkae/mir-i3 2023-10-11 10:06:17 -04:00
Matthew Kosarek
c04bd458c1 Initial WIP with new files 2023-10-11 10:05:08 -04:00
Matthew Kosarek
5ccdee560c An initial WIP 2023-09-08 16:50:02 -04:00
mattkae
1d824274fc Some renames 2023-02-25 12:57:18 -05:00
mattkae
c55eeff28f A good rename 2023-02-25 12:38:33 -05:00
mattkae
d50b2783ab Barebones horizontal placement algorithm with a single zone 2023-02-19 16:41:25 -05:00
mattkae
7640b2b9be Able to create a window that takes up the whole screen 2023-02-19 13:37:30 -05:00
mattkae
cb50196482 I have something functionng, time to dissect! 2023-02-19 12:57:46 -05:00
mattkae
d158d619c6 Make the example more true 2023-02-18 14:09:01 -05:00
mattkae
8bdf0f2c3b Fixing a copy-and-paste issue 2023-02-18 13:25:43 -05:00
mattkae
1e3c3d5720 Linking correctly to miral 2023-02-18 13:25:18 -05:00
mattkae
fa68a07a25 Drop cmake version 2023-02-18 13:24:31 -05:00
mattkae
251bbf4ab4 Barebones app 2023-02-18 13:10:42 -05:00
mattkae
56764f1b09 Initial hello world commit 2023-02-18 12:06:27 -05:00