Commit Graph

39 Commits

Author SHA1 Message Date
Cosima Neidahl
0a8809d436
CMakeLists.txt: Drop PKG_CONFIG_PATH modification (#211)
Leave that to the environment to fix, messing with it just makes setup more complicated.
2024-11-04 15:50:38 -05:00
Matthew Kosarek
176f8f04fe
refactor: update how we check configurations big time in preparation for showing errors in a second process (#284)
- Refactored FilesystemConfiguration big time to process errors all at once with a reference to line and column number
- Renamed MiracleConfig to Config
- Logging the errors when they happen, but prepared to write them to a process as well
2024-11-03 10:56:10 +00:00
Matthew Kosarek
fa979a5b7e
bugfix: adding my own fork of MinimalWindowManager to accomodate better dragging support (#263)
- Fixes #90
- Makes it so that the default floating keybind is Meta + Shift + Space
- Fork MiinimalWindowManager for our own purposes
2024-10-26 07:48:12 +00:00
Matthew Kosarek
5e1a4ba23d
feature: support for the i3 layout command (#259)
- Implemented the i3 layout command per https://i3wm.org/docs/userguide.html#manipulating_layout
- Added integration tests for the i3 layout command
2024-10-15 18:23:51 +00:00
Matthew Kosarek
58cd8cc81b
feature: added the ability to move windows between workspaces via mirclemsg + testing (#257)
- Most movement commands for windows/containers between workspaces now function appropriately
- Integration tests for moving windows between workspaces
2024-10-13 14:46:51 +00:00
Matthew Kosarek
e48e3feaf2
feature: workspace switching IPC support (#256)
- Add support for "workspace next/prev/next_on_output/prev_on_output"
- Add support for "workspace back_and_forth"
- Add support for "workspace <name>"
- Add support for "workspace number <name>"
- Integration tests
2024-10-10 23:46:00 +00:00
Matthew Kosarek
cd4a6efa54
feature: implementation of GET_TREE via ipc + integration tests (#250)
* Refactored GET_TREE tremendously so that it returns a tree with proper, parseable values
* Wrote IPC tests but had to disable them in CI until further notice
2024-10-07 17:54:13 +00:00
Matthew Kosarek
690da3a8f4
feature: miracle can now integrate with systemd in a meaningful way (#228)
Miracle now supports running through systemd, including logging to the
journal and invoking processes as transient units through systemd-run.

This is controlled as a build-time feature in CMake.
2024-09-07 13:07:58 +00:00
Matthew Kosarek
6d16956d13
bugfix: the exec'd app now takes the compositor down with it (#219) 2024-08-26 19:56:39 -04:00
Matthew Kosarek
a5026b0f91
feature: be able to specify --no-config to not load any configuration file (#216) 2024-08-25 16:46:43 -04:00
Matthew Kosarek
9c7a4a82f1
feature: adding the miracle-config-path option for loading from a specific file (#215) 2024-08-25 16:12:04 -04:00
Matthew Kosarek
0741fdeaec
refactor: move the server to its own file in tests to be shared (#214) 2024-08-25 08:33:22 -04:00
Matthew Kosarek
9bb5aef152
feature: send tick in IPC + initial tests + clang tidy (#213) 2024-08-24 15:25:51 -04:00
Matthew Kosarek
bd17e5b260
feature: (partial) beginning implementation of container groups for multi-selection behind a feature flag (#202)
- Begin an implementation for FloatingTreeContainer
- Hide FloatingTreeContainer behind a feature flag
- Added the ability to apply filters on rendering
- Further refactoring of how Containers are handled in general
2024-08-18 09:52:59 -04:00
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
ea33fb1c72
refactor: a Container is used as the active element instead of a miral::Window (#201) 2024-08-03 16:34:45 -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
92c5c6784f
refactor: make it so that the tiling window tree relies on the active window much less (#194) 2024-07-18 16:12:11 -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
c93454c9c2
refactor: establish a single source of truth for the selected window (#192) 2024-07-14 14:12:54 -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
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
Matthew Kosarek
64d66d2199
refactor: resizing is now global instead of local to a particular output (#150) 2024-06-12 15:56:41 -04:00
Matthew Kosarek
960e4a1646
(#136) bugfix: interpolating slide animations from the current position so that they're smooth (#146) 2024-06-08 08:23:14 -04:00
Matthew Kosarek
f6e54482bd
feature: implementation if the i3 'split' command (#142) 2024-05-30 19:19:55 -04:00
Matthew Kosarek
889ac8c51c
feature: support for i3 'exec' command (#140) 2024-05-30 11:38:22 -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
e3dcd9c6a7
feature + testing: animation testing refactor + slide animation now includes a scale + improving workspace transforms + constraining less often (#130) 2024-05-20 18:06:39 -04:00
Matthew Kosarek
4825b7ec3c bugfix: configuration tests were erroneously expecting to be in a snap 2024-05-16 11:58:27 -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
Matthew Kosarek
460708579c tooling: implementing a decent clang-tidy file 2024-05-01 16:51:10 -04:00
Matthew Kosarek
803ea8b167 miracle-wm-unsnap only wraps commands in a snap context 2024-04-23 09:42:48 -04:00
Matthew Kosarek
f5cfd5b2ff tests: updating tests to accomodate miracle-wm-unsnap 2024-04-19 11:38:54 -04:00
Matthew Kosarek
4aecca7829 feature: environment variables in the configuration 2024-04-13 10:21:06 -04:00
Matthew Kosarek
0da5500ac2 bugfix: response to requests on rpm package (#77)
Responses made to: https://bugzilla.redhat.com/show_bug.cgi?id=2272744#c3

- Added license headers to all of the source code files
- Added a `desktop-file-validate` line to the spec file
- Running tests in the spec file
- Added CI for fedora that builds the source rpm
2024-04-11 08:31:43 -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
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