Commit Graph

55 Commits

Author SHA1 Message Date
TibboddiT
ea8c9db1ac
Allow using custom mir libraries directory (#198)
* allow using custom mir libraries directory

* update cmake options ordering to improve readability

* CI: install libmirwayland-dev

* CI: install libmirwayland-dev
2024-08-09 09:54:39 -04:00
Matthew Kosarek
c185c4c5bb
refactor: remove WindowMetadata and make everything a container + refactor Output and Workspace big time such that they do way less work (#195) 2024-08-02 09:50:03 -04:00
Matthew Kosarek
699587eaac
refactor: giving Window modification control over to the Workspace instead of the Output (#193)
* refactor: select_window_from_point is now on WorkspaceContent

* refactor: moving more bits to WorkspaceContent, including advise_new_window

* refactor: various reworks, including toggle_floating

* refactor: renaming OutputContent to Output, WorkspaceContent to Workspace, + other refactors

* refactor: remove Workspace::get_tree and even fix a bug!

* backout: renderer.cpp changes
2024-07-14 16:42:20 -04:00
Matthew Kosarek
e900b24db6
test + refactor: renames to more closely match i3, refactor to accomodate testing of the TilingWindowTree, initial tests for the tiling window tree (#189) 2024-07-03 16:49:17 -04:00
Matthew Kosarek
0115a377bd
(#4) bugfix: gedit save dialog no longer appears as a tile + removing some dead code + mild refactor and debugging (#177) 2024-06-22 14:01:55 -04:00
Matthew Kosarek
34f0614c62
frankenstein: borders disappearing bug for floating windows + percentage not being clamped on animations + IPC_GET_VERSION + IPC_GET_BINDING_MODES + IPC_GET_BINDING_STATE + IPC_GET_OUTPUTS (#153)
- bugfix: borders disappearing behind other windows on floating windows
- bugfix: animation percentage not being clamped between 0 and 1
- feature: IPC_GET_VERSION
- feature: IPC_GET_BINDING_MODES
- feature:  IPC_GET_BINDING_STATE
- feature:  IPC_GET_OUTPUTS
2024-06-14 07:44:15 -04:00
pastalian
051ee2f893
bugfix: unset CMAKE_CXX_COMPILER (#138)
* Predefining CMAKE_CXX_COMPILER overrides the user CXX variable and make building with clang difficult.
2024-05-30 11:21:13 -04:00
Matthew Kosarek
06668b0bd2
refactor: move ProgramFactory to its own file + clang-tidy issues around the renderer (#139)
* refactor: move ProgramFactory to its own file
* refactor: fixing various clang-tidy issues
* refactor: plenty of more cleanup
2024-05-27 18:58:54 -04:00
Matthew Kosarek
6789815eaf
feature: configurable animations + animation for window opening + multiple ease functions (#125)
- Added animations to the configuration
- Added an animation for window opening
- Implemented a number of easing functions
2024-05-10 15:20:02 -04:00
Matthew Kosarek
66ce46ee07
feature: animation groundwork + window movement animation (#121) 2024-05-08 07:55:39 -04:00
Matthew Kosarek
57515dda03
feature: displaying a border around windows (#103)
- Completely overrode the renderer
- Added border as a configuration option
- Rendering a border around focused windows and non-focused windows
2024-05-03 17:19:02 -04:00
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