Compare commits

...

819 commits

Author SHA1 Message Date
project-repo
7bdb04df99 Reword documentation 2023-09-15 21:01:16 +02:00
project-repo
5807ece09c Add permanent/peripheral command documentation 2023-09-15 20:37:00 +02:00
project-repo
f9188a2c8b Implement switching from permanent and peripheral
Destroy the output if it is not attached.
2023-09-15 15:38:29 +02:00
project-repo
82cf042819 Add "permanent" to dump 2023-09-15 12:19:20 +02:00
project-repo
65b6e9e427 Fix problems with automatic output configuration 2023-09-15 12:10:20 +02:00
project-repo
6b89645161 Tentative implementation of "permanent outputs" 2023-09-14 15:36:01 +02:00
project-repo
f6025b4f19 Merge branch 'master' into development 2023-08-21 09:41:15 +02:00
project-repo
407275fa67 Adjust non-auto checks 2023-08-21 09:25:38 +02:00
project-repo
d44df4e265 Add non-auto check 2023-08-18 16:54:32 +02:00
project-repo
a4bea6fc8b Add signatures 2023-08-18 16:54:22 +02:00
project-repo
cc97840a03 Add hashes 2023-08-18 16:45:41 +02:00
project-repo
b582884148 Complete more non-auto checks 2023-08-18 16:45:28 +02:00
project-repo
1099a31575 Adjust epoch 2023-08-18 12:22:58 +02:00
project-repo
53331b7337 Complete some non-auto checks 2023-08-18 12:12:55 +02:00
project-repo
26a59e4055 Add non-auto-test 2023-08-18 12:00:35 +02:00
project-repo
b6a96b39e0 Add Issue 65 to Bugs.md 2023-08-18 11:50:56 +02:00
project-repo
ac06ed23df Set release version 2023-08-17 21:11:47 +02:00
project-repo
feb76646fc Adjust dependency versions 2023-08-17 21:10:58 +02:00
project-repo
0d51301f76 Add acknowledgement for contribution 2023-08-17 20:37:12 +02:00
project-repo
309f95cdb3 Add link in README 2023-08-17 20:32:38 +02:00
project-repo
00610801ba Apply clang-format 2023-08-17 20:30:28 +02:00
Oliver Friedmann
96501911e4
fix: calibration matrix (#49)
Authored-by: Oliver Friedmann
2023-08-17 19:48:02 +02:00
project-repo
a581453272 Merge branch 'master' into development 2023-05-31 21:48:17 +02:00
project-repo
9c55eff87e Add signatures 2023-05-31 21:32:41 +02:00
project-repo
33092b1099 Complete non-auto-checks 2023-05-31 21:26:55 +02:00
project-repo
39fafe0407 Add hashes 2023-05-31 21:18:42 +02:00
project-repo
2e73eb4680 Adjust epoch 2023-05-31 16:37:39 +02:00
project-repo
d796b3c094 Apply clang-format 2023-05-31 16:32:26 +02:00
project-repo
1d88189511 Merge branch 'development' of https://github.com/project-repo/cagebreak into development 2023-05-31 16:27:19 +02:00
project-repo
42c9391a0d Adjust version number 2023-05-30 20:34:16 +02:00
project-repo
374813681c Add Issues 62-64 2023-05-30 20:19:00 +02:00
project-repo
a3718221ef Fix bug found by fuzzer 2023-05-23 16:06:01 +02:00
project-repo
b10dad8ac7 Update cb version 2023-05-23 15:58:02 +02:00
project-repo
e1520ec46d Update library versions 2023-05-23 15:47:52 +02:00
project-repo
498d69b4b6 Fix cursor handling on background focus 2023-05-18 19:53:46 +02:00
project-repo
6199ed0a9a Fix doc typo 2023-05-16 13:24:02 +02:00
project-repo
0209c3ae1a Add documentation 2023-05-16 00:49:48 +02:00
project-repo
b8a70d662a Apply clang-format 2023-05-16 00:49:48 +02:00
project-repo
679c5562af Add custom event command 2023-05-16 00:49:48 +02:00
project-repo
9d707e8154 Fix environment-variables test 2023-04-26 21:28:48 +02:00
project-repo
d68c97cdc0 Fix infinite loop on 0-byte writes over IPC. 2023-04-25 18:39:38 +02:00
project-repo
a87ecefab0 Merge branch 'master' into development 2023-04-24 23:14:29 +02:00
project-repo
24cebe6336 Add signatures and hashes 2023-04-24 22:54:40 +02:00
project-repo
ef898b0ce4 Perform non-auto checks 2023-04-24 22:52:52 +02:00
project-repo
58890fd6e0 Update install script 2023-04-24 22:48:30 +02:00
project-repo
2ffb410681 Fix typo 2023-04-24 22:43:09 +02:00
project-repo
e921a7da43 Merge remote-tracking branch 'origin/development' into development 2023-04-24 22:38:15 +02:00
project-repo
747a473538 Add Bugs.md description 2023-04-24 22:37:08 +02:00
project-repo
8f1ef0383b Merge branch 'development' of https://github.com/project-repo/cagebreak into development 2023-04-24 21:27:27 +02:00
project-repo
6f5eb8f73f Fix typo 2023-04-24 21:27:13 +02:00
project-repo
004935ae06 Remove buggy script 2023-04-24 21:23:20 +02:00
project-repo
d65b1f6d95 Adjust epoch 2023-04-24 21:06:54 +02:00
Uks2
8850488f0e
Fix bug in merge_output_configs (#44)
We were accidentally copying angles into status!

Signed-off-by: Tom Greig <tom@tomg.xyz>
2023-04-24 21:04:40 +02:00
project-repo
000e6f1410 Adjust non-auto checks 2023-04-23 18:43:22 +02:00
project-repo
750bf48cda Adjust man page versions 2023-04-23 18:17:46 +02:00
project-repo
c2e95272ea Prepare basics for release 2.1.2 2023-04-23 18:12:47 +02:00
project-repo
66a4f9f00a Adjust release procedure 2023-04-18 21:44:41 +02:00
project-repo
591059faa1 Merge branch 'master' into development 2023-04-17 22:20:05 +02:00
project-repo
f0ebae61a6 Fix test/check-artefacts 2023-04-17 22:13:00 +02:00
project-repo
053e0c9a50 Fix create-release-artefacts 2023-04-17 22:01:03 +02:00
project-repo
def3d3a118 Add signatures 2023-04-17 21:39:11 +02:00
project-repo
1a1fa3c7f9 Update Hashes.md 2023-04-17 21:35:27 +02:00
project-repo
1b25c72787 Perform release-non-auto-checks 2023-04-17 21:31:44 +02:00
project-repo
f5060e5870 Adjust epoch 2023-04-17 21:24:42 +02:00
project-repo
4947fe3142 Adjust non-auto checks 2023-04-16 12:52:17 +02:00
project-repo
afd99dfaa0 Adjust release procedure 2023-04-16 12:38:45 +02:00
project-repo
859fcb2efc Add note on Review Requirements and DCO 2023-04-16 11:25:05 +02:00
project-repo
75aea2cee2 Add note about accessibility. 2023-04-16 11:22:09 +02:00
project-repo
3cfb18f481 Merge branch 'feature/development-environment-quick-install' into development 2023-04-16 11:16:24 +02:00
project-repo
3b22453cca Reword 2023-04-15 18:56:30 +02:00
project-repo
de0f7a091b Slight rewording 2023-04-15 18:51:58 +02:00
project-repo
22554f128f Actually add artefacts test 2023-04-15 00:17:51 +02:00
project-repo
bb7c7e3ca1 Add release artefacts test 2023-04-14 23:44:00 +02:00
project-repo
58b91b7f42 Adjust release procedure 2023-04-14 23:13:14 +02:00
project-repo
d39dae68b0 Add create release artefacts script 2023-04-14 22:54:18 +02:00
project-repo
d6885cec30 Adjust shellcheck test 2023-04-14 22:34:45 +02:00
project-repo
9f022a3c77 Merge remote-tracking branch 'origin/feature/development-environment-quick-install' into feature/development-environment-quick-install 2023-04-14 22:08:54 +02:00
project-repo
f4c2f4e810 Merge branch 'feature/development-environment-quick-install' of https://github.com/project-repo/cagebreak into feature/development-environment-quick-install 2023-04-14 22:07:22 +02:00
project-repo
0df01ea8d0 Adjust dev env deps 2023-04-14 22:06:43 +02:00
project-repo
03e3b1cab8 Fix typos 2023-04-14 22:06:23 +02:00
project-repo
3bcaa8122d Add arch linux notice to install script 2023-04-14 22:04:51 +02:00
project-repo
562685feac Fix minor error in shellcheck test 2023-04-14 21:57:27 +02:00
project-repo
3e03721256 Add xev as dev dep 2023-04-14 18:00:25 +02:00
project-repo
a3a7e2c1cc Adjust to 2.1.1 2023-04-13 22:46:19 +02:00
project-repo
4be769b004 Fix shellcheck issue 2023-04-13 22:45:28 +02:00
project-repo
47e9f28019 Add set-ver script 2023-04-13 22:22:18 +02:00
project-repo
47a2415022 Add create-sigs script 2023-04-13 21:54:42 +02:00
project-repo
8abd46569a Add output-hashes script 2023-04-13 21:03:41 +02:00
project-repo
d30f590569 Adjust gitignore 2023-04-13 19:57:23 +02:00
project-repo
6ee279c061 Adjust fuzz script 2023-04-13 19:54:49 +02:00
project-repo
8af1286c57 Add git-tag script 2023-04-13 19:52:13 +02:00
project-repo
b732b92cea Add git-tag script 2023-04-13 19:50:34 +02:00
project-repo
fb736d7986 Adjust permissions 2023-04-13 19:39:53 +02:00
project-repo
f99c39516d Add adjust-epoch script 2023-04-13 19:17:56 +02:00
project-repo
77e2b392ed Adjust dev install deps 2023-04-13 18:44:39 +02:00
project-repo
4f38f0f1e1 Add fuzzing script 2023-04-13 18:40:54 +02:00
project-repo
e130498ecd Add gpg key import 2023-04-13 17:45:00 +02:00
project-repo
333c1feb9e Add quick install script for dev env 2023-04-13 17:24:14 +02:00
project-repo
879f01da89 Update dependency versions 2023-04-12 19:55:54 +02:00
project-repo
b2e8bc7f5a Add git tag check 2023-04-07 09:00:41 +02:00
project-repo
9123464c3e Add non-auto checks 2023-04-06 23:47:50 +02:00
project-repo
3e895dfa41 Adjust README 2023-04-06 22:43:32 +02:00
project-repo
0fce2a807f Add gpg key validity check 2023-04-06 22:39:56 +02:00
project-repo
a76f0d6d55 Add gpg signatures check 2023-04-06 22:38:34 +02:00
project-repo
d00de8fb1e Add Hashes.md test 2023-04-06 22:32:23 +02:00
project-repo
9c2aa86182 Add non-auto tests 2023-04-06 21:32:42 +02:00
project-repo
8eb0dcdd48 Merge branch 'master' into development 2023-04-04 14:04:19 +02:00
project-repo
89d9dae4ca Prepare 2.1.0 release 2023-04-04 13:58:10 +02:00
project-repo
f8273dec9f Fix stack use after return in fuzzer 2023-04-03 22:25:42 +02:00
project-repo
f8df676572 Remove undocumented feature 2023-04-03 21:29:33 +02:00
project-repo
a5e10f8c6f Add Changelog for 2.1.0 2023-04-03 19:37:54 +02:00
project-repo
89dbf74e70 Update meson.build for 2.1.0 2023-04-03 19:27:34 +02:00
project-repo
b64c38a1b9 Update epoch 2023-04-03 18:43:54 +02:00
project-repo
336ed71500 Adjust Bugs.md for 2.1.0 2023-04-03 18:40:24 +02:00
project-repo
604bcff8ab Document new key fingerprints in relevant documentation 2023-04-03 18:16:35 +02:00
project-repo
b9aa898c11 Merge branch 'development' of https://github.com/project-repo/cagebreak into development 2023-03-27 21:48:00 +02:00
project-repo
88378f38ce Silence clang analyzer false positive 2023-03-27 21:45:28 +02:00
project-repo
b59be56e36 Update arguments unit test 2023-03-27 21:32:56 +02:00
project-repo
bf52c641f3 Merge remote-tracking branch 'origin/development' into development 2023-03-27 21:19:58 +02:00
project-repo
299eeb10d6 Update dependency versions 2023-03-27 21:14:49 +02:00
project-repo
94773ebdeb Document bs option 2023-03-27 21:14:45 +02:00
project-repo
aeec55f30d Add new signing keys 2023-03-27 20:59:50 +02:00
project-repo
0c0e9aa083 Add bs option 2023-03-06 17:42:40 +01:00
project-repo
e469916766 Update dependencies 2023-02-22 23:25:19 +01:00
project-repo
e433bead8b Make arguments test more robust 2023-02-20 22:36:56 +01:00
project-repo
8f13be1f7c Fix arguments test 2023-02-20 22:30:13 +01:00
project-repo
4c0f4f7d7a Adjust test suites 2023-02-20 22:28:10 +01:00
project-repo
270405cb3c Adjust version numbers 2023-02-19 12:32:16 +01:00
project-repo
699974e910 Apply clang-format 2023-02-19 12:28:55 +01:00
project-repo
9f5a029156 Fix dump output 2023-02-19 09:58:21 +01:00
project-repo
25d6610038 Adjust arg/env var dir handling 2023-02-18 19:02:05 +01:00
project-repo
d6fb8d19f3 Fix README 2023-02-18 12:15:28 +01:00
project-repo
a7f1e3fa36 Fix env var test 2023-02-18 11:48:11 +01:00
project-repo
441cee33c7 Remove whitespace 2023-02-18 11:18:14 +01:00
project-repo
480298d96b Update dependencies 2023-02-18 11:12:04 +01:00
project-repo
e852d3487a Document testing 2023-02-18 00:13:29 +01:00
project-repo
37beab8994 Adjust file sync for parallel testing 2023-02-18 00:12:33 +01:00
project-repo
09c75e5a15 Move test build dirs to _build* 2023-02-18 00:10:27 +01:00
project-repo
5856b3c9c5 Add semantic versioning check 2023-02-17 21:54:11 +01:00
project-repo
8fbcba1c38 Apply shellcheck 2023-02-17 21:31:02 +01:00
project-repo
358f759166 Apply clang-format 2023-02-17 14:10:41 +01:00
project-repo
78212cc830 Fix compiler warnings 2023-02-17 09:55:20 +01:00
project-repo
1889c60484 Add basic tests 2023-02-14 22:32:03 +01:00
project-repo
439385750d Add Copyright/License notice to test files 2023-02-14 21:58:29 +01:00
project-repo
d209a7801f Adjust test suite naming 2023-02-14 21:01:30 +01:00
project-repo
ceb61e6492 Adjust fuzzing documentation 2023-02-14 20:58:00 +01:00
project-repo
67ad848002 Integrate fuzz meson.build to facilitate testing 2023-02-14 20:52:28 +01:00
project-repo
89a4c5d609 Add env var tests 2023-02-14 20:22:31 +01:00
project-repo
1a8912c9c2 Adjust scripting quotations 2023-02-14 20:21:51 +01:00
project-repo
401733d092 Improve quotation of test script 2023-02-14 20:21:09 +01:00
project-repo
c1d0902a6d Update wlroots repro build version 2023-02-12 22:32:19 +01:00
project-repo
628dbc1314 Add tests for correct build 2023-02-09 22:40:51 +01:00
project-repo
a222a5a60f Add test to check clang-format 2023-02-09 22:40:00 +01:00
project-repo
d9f61d86fb Add test to check scan-build status 2023-02-09 22:37:33 +01:00
project-repo
f0a31d3156 Add test suite to check arguments 2023-02-09 22:35:22 +01:00
project-repo
e7c9cd0471 Adjust meson repro build versions 2023-02-09 22:16:05 +01:00
project-repo
567f12c29f Apply clang-format 2023-02-09 22:15:28 +01:00
project-repo
1bcfce8d4f Add License as meson install target 2023-02-09 22:06:58 +01:00
project-repo
eaaef616d6 Add Issue 58 (#40) to Bugs.md 2023-02-09 20:34:48 +01:00
project-repo
ba590d7d89 Merge branch 'development' of https://github.com/project-repo/cagebreak into development 2023-02-08 19:22:38 +01:00
project-repo
c23c899515 Fix loading of default config file 2023-02-08 19:21:15 +01:00
project-repo
defaaea9d1 Apply clang-format 2023-02-02 21:08:22 +01:00
project-repo
0ee4e286b9 Add Bugs.md description for some issues
- #37
- two npds
2023-02-02 21:03:10 +01:00
project-repo
2dc27c4b21 Merge remote-tracking branch 'origin/development' into development 2023-02-02 20:42:33 +01:00
project-repo
73fcbbf142 Change some output from stderr to stdout 2023-02-02 20:37:42 +01:00
project-repo
15590ab39a Fix npd 2023-02-02 20:22:16 +01:00
project-repo
0ccbd554d3 Fix potential npd 2023-02-02 20:18:48 +01:00
project-repo
b32659963c Fix SPDX-License-Identifier typo 2023-02-02 10:41:24 +01:00
project-repo
d7f58ce07f Adjust reproducible build versions 2023-02-02 10:38:57 +01:00
project-repo
d6c07d1443 Adjust version numbers 2023-02-02 10:37:53 +01:00
project-repo
b63fa48f30 Improve release procedure 2023-02-02 10:36:52 +01:00
project-repo
7102d3ee96 Add more explicit license info to README 2023-02-02 10:36:29 +01:00
project-repo
a9d5db0254 Update LICENSE date 2023-02-02 10:36:02 +01:00
project-repo
e3f637b173 Merge branch 'master' into development 2023-01-09 18:50:01 +01:00
project-repo
fc10010021 Prepare 2.0.1 release 2023-01-09 18:47:14 +01:00
project-repo
a5749888e0 Adjust versions for release 2.0.1 2023-01-09 17:45:31 +01:00
project-repo
b291f59d54 Add Issue 54 (#36) 2023-01-09 17:34:44 +01:00
Jan Beich
9ad7c921d6
Unbreak build on FreeBSD (#37)
* Disable POSIX compliance when using reallocarray

cagebreak.c:197:11: warning: implicit declaration of function 'reallocarray' is invalid in C99 [-Wimplicit-function-declaration]
                        line = reallocarray(line, line_length, sizeof(char));
                               ^
cagebreak.c:197:9: warning: incompatible integer to pointer conversion assigning to 'char *' from 'int' [-Wint-conversion]
                        line = reallocarray(line, line_length, sizeof(char));
                             ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ipc_server.c:248:25: warning: implicit declaration of function 'reallocarray' is invalid in C99 [-Wimplicit-function-declaration]
                client->read_buffer = reallocarray(client->read_buffer,
                                      ^
ipc_server.c:248:23: warning: incompatible integer to pointer conversion assigning to 'char *' from 'int' [-Wint-conversion]
                client->read_buffer = reallocarray(client->read_buffer,
                                    ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* Promote -Wimplicit-function-declaration to -Werror

To help find bugs caused by _POSIX_C_SOURCE. Already errors in C++ and C23.

* Fix -Wstrict-prototypes, default in Clang >= 15

In file included from output.c:30:
keybinding.h:136:21: warning: a function declaration without a prototype is deprecated in all versions of C [-Wstrict-prototypes]
keybinding_list_init();
                    ^
                     void
output.c:335:20: warning: a function declaration without a prototype is deprecated in all versions of C [-Wstrict-prototypes]
empty_output_config() {
                   ^
                    void
In file included from seat.c:29:
input_manager.h:19:40: warning: a function declaration without a prototype is deprecated in all versions of C [-Wstrict-prototypes]
input_manager_create_empty_input_config();
                                       ^
                                        void
input_manager.c:92:40: warning: a function declaration without a prototype is deprecated in all versions of C [-Wstrict-prototypes]
input_manager_create_empty_input_config() {
                                       ^
                                        void
keybinding.c:129:21: warning: a function declaration without a prototype is deprecated in all versions of C [-Wstrict-prototypes]
keybinding_list_init() {
                    ^
                     void

See also
11da1b53d8
https://discourse.llvm.org/t/rfc-enabling-wstrict-prototypes-by-default-in-c/60521
2023-01-09 17:20:24 +01:00
project-repo
39b45be3df Merge branch 'master' into development 2023-01-08 22:12:41 +01:00
project-repo
3d9f8d596f Add release information 2023-01-08 22:07:39 +01:00
project-repo
7abfd5b0b3 Rename old signatures 2023-01-08 21:40:53 +01:00
project-repo
66ef231d58 Remove useless note 2023-01-08 21:40:18 +01:00
project-repo
b9dd21c0b4 Review README 2023-01-08 21:30:38 +01:00
project-repo
1796c38b03 Add link to Bugs.md 2023-01-08 18:10:18 +01:00
project-repo
1990b203af Add Changelog 2023-01-08 17:22:38 +01:00
project-repo
87e50fc63e Fix man page indentation 2023-01-08 17:22:20 +01:00
project-repo
65b237536a Set man page release time 2023-01-08 17:22:07 +01:00
project-repo
89c92c5166 Adjust socket documentation 2023-01-08 16:59:07 +01:00
project-repo
48f3a749aa Adjust copyright/licenso info to SPDX standard and 2023 2023-01-07 23:37:06 +01:00
project-repo
3b10ac8250 Adjust SECURITY.md 2023-01-07 22:37:17 +01:00
project-repo
c068ae57e8 Adjust README 2023-01-07 22:22:56 +01:00
project-repo
0f7187b3f5 Adjust example config 2023-01-07 22:03:03 +01:00
project-repo
9a49821d25 Add Issue 53 (#35) in Bugs.md 2023-01-07 21:51:59 +01:00
project-repo
d7f3c81f50 Edit README 2023-01-07 21:47:49 +01:00
project-repo
ffe580fb8e Add scripts as possible contribution 2023-01-07 20:25:16 +01:00
project-repo
4e4d51178c Adjust README formatting 2023-01-07 19:41:50 +01:00
project-repo
7c7413b410 Merge remote-tracking branch 'origin/development' into development 2023-01-07 17:43:34 +01:00
project-repo
eede8b79c4 Add cagebreak philosophy to README 2023-01-07 17:41:51 +01:00
project-repo
e46a32ab43 Add example scripts for socket interaction 2023-01-06 20:20:12 +01:00
project-repo
8660346f76 Improve naming convention 2023-01-06 19:50:36 +01:00
project-repo
d017f53a25 Apply clang-format 2023-01-06 19:10:48 +01:00
project-repo
fc20ab4aed Update release checklist 2023-01-06 17:16:45 +01:00
project-repo
9e5c1814be Update dependency versions 2023-01-06 16:52:56 +01:00
project-repo
c07a734262 Add Bug doc for config bug 2023-01-06 16:52:04 +01:00
project-repo
a6fdd0a27b Fix man typo 2023-01-06 16:42:07 +01:00
project-repo
b3e238e442 Fix quitting on startup 2023-01-06 16:37:07 +01:00
project-repo
226d471794 Update xwayland seat on focus 2023-01-06 15:13:24 +01:00
project-repo
d7a21aacb1 Fix potential npd 2023-01-06 14:20:36 +01:00
project-repo
57ee9a06b6 Disable resetting cursor image 2023-01-06 09:10:12 +01:00
project-repo
7002b00b28 Add missing fields to ipc output 2023-01-06 08:46:08 +01:00
project-repo
74bc47d3a5 Fix off by one 2023-01-06 07:52:54 +01:00
project-repo
6ee98a32c7 Fix naming convention 2023-01-05 18:54:13 +01:00
project-repo
4e1c085568 Make compatible with wlroots 0.16 2023-01-05 18:42:23 +01:00
project-repo
2baa1f614e Review cagebreak-socket documentation
- Fix typos
  - Fix output in keybinding.c
2023-01-04 19:18:58 +01:00
project-repo
d99ae42734 Merge branch 'development' of https://github.com/project-repo/cagebreak into development 2023-01-04 18:03:16 +01:00
project-repo
7c673ae20e Review cagebreak-socket documenation 2023-01-04 18:01:06 +01:00
project-repo
1813245e21 Do not emit two events on single command 2023-01-03 08:39:23 +01:00
project-repo
3cbf59a348 Fix typo in man page 2023-01-02 17:59:24 +01:00
project-repo
40c73b8f41 Add nesting level restriction 2023-01-02 17:22:50 +01:00
project-repo
9f4be786a7 Add config nesting restriction to doc 2023-01-02 16:58:28 +01:00
project-repo
8e97b7c697 Add definemode socket doc 2023-01-02 16:26:36 +01:00
project-repo
0de9c50a70 Document default_mode in dump 2023-01-02 15:12:11 +01:00
project-repo
432291f7e2 Adjust printed names of commands 2023-01-02 13:34:21 +01:00
project-repo
0772817055 Print modes as string 2023-01-02 12:15:06 +01:00
project-repo
3773a5f167 Fix compiler warnings 2023-01-02 10:18:14 +01:00
project-repo
02b73fb2b2 Fix fuzzing
- Fix fuzzing build
  - Fix bugs found by fuzzer
2023-01-02 08:35:09 +01:00
project-repo
9d1cafa2f6 Support printing commands as string over ipc 2023-01-02 07:51:51 +01:00
project-repo
4339bc01db Merge branch 'development' of https://github.com/project-repo/cagebreak into development 2023-01-02 07:28:33 +01:00
project-repo
70664c428d Adjust documentation to changed socket 2023-01-01 23:13:59 +01:00
project-repo
afe4a8385b Fix scan-build warnings 2023-01-01 21:35:36 +01:00
project-repo
3cdc6ec369 Adjust ipc syntax 2023-01-01 21:35:27 +01:00
project-repo
450d812855 Add destroy_output doc to socket man 2023-01-01 17:35:11 +01:00
project-repo
41a6ee2fc1 Fix meson command in README 2023-01-01 16:30:55 +01:00
project-repo
6b480ebf07 Document keybinding enable/disable
- Issue 51 in Bugs.md
2023-01-01 15:58:22 +01:00
project-repo
4853f24390 Add Issue 51 (#7) in Bugs.md 2023-01-01 15:19:34 +01:00
project-repo
cf53f8a970 Add Issue 50 (#26) to Bugs.md 2023-01-01 14:42:56 +01:00
project-repo
424266ec03 Add #3 (49) to Bugs.md 2023-01-01 14:04:48 +01:00
project-repo
fbd33e8fa6 Add todo to socket doc 2023-01-01 12:31:17 +01:00
project-repo
5b2a9e84ce Add Issues to Bugs.md 2023-01-01 12:30:56 +01:00
project-repo
989f3bb35a Update ipc output and documention
- Remove quotes
  - Fix event name
2023-01-01 10:58:59 +01:00
project-repo
a352dd13a7 Merge branch 'development' of https://github.com/project-repo/cagebreak into development 2023-01-01 10:51:13 +01:00
project-repo
d5774d321d Adjust documentation 2023-01-01 10:50:44 +01:00
project-repo
f640d75ba5 Remove quotes around integers in ipc output 2023-01-01 10:50:24 +01:00
project-repo
6572260432 Add socket documentation 2023-01-01 10:43:25 +01:00
project-repo
c2ea3a5133 Add input keyboard documentation 2022-12-31 12:18:40 +01:00
project-repo
22eb4853c2 Add socket documentation 2022-12-31 11:54:39 +01:00
project-repo
c806e4f0fe Add tile_ids to output move_view_to_cycle_tile 2022-12-31 11:20:52 +01:00
project-repo
e644c7f8b7 Modify SECURITY.md to explicitely enabled socket. 2022-12-31 10:42:14 +01:00
project-repo
e8a868e7f3 Add socket documentation 2022-12-31 10:32:45 +01:00
project-repo
b809804657 Add cursor to doc 2022-12-31 09:34:34 +01:00
project-repo
41af11ecbb Add socket documentation 2022-12-30 23:26:41 +01:00
project-repo
7162b62b98 Add documentation 2022-12-30 23:03:15 +01:00
project-repo
9fdbc769b5 Add documentation 2022-12-30 22:37:31 +01:00
project-repo
8f811e9809 Add docuemntation 2022-12-30 21:46:42 +01:00
project-repo
468d7df9b9 Fix cagebreak man page 2022-12-30 21:46:22 +01:00
project-repo
026768ef3c Merge remote-tracking branch 'origin/development' into development 2022-12-30 21:45:35 +01:00
project-repo
80073faac8 Alphabetize -h option 2022-12-30 21:43:26 +01:00
project-repo
25a14182e6 Merge branch 'development' of https://github.com/project-repo/cagebreak into development 2022-12-30 21:34:53 +01:00
project-repo
78b287153c Fix version reporting 2022-12-30 21:34:14 +01:00
project-repo
9b712e27ff Document socket option 2022-12-30 21:16:33 +01:00
project-repo
8ab41ce342 Merge remote-tracking branch 'origin/development' into development 2022-12-30 20:36:00 +01:00
project-repo
7da953ca20 Add option for disabling cursor 2022-12-30 19:45:25 +01:00
project-repo
8d78a17320 Change socket to opt-in 2022-12-30 19:15:26 +01:00
project-repo
67ce6f1c4c Merge branch 'development' of https://github.com/project-repo/cagebreak into development 2022-12-30 19:14:17 +01:00
project-repo
0c335e84d3 Add input devices to dump output 2022-12-30 19:14:04 +01:00
project-repo
7e6fb865e7 Fix socket man page 2022-12-30 18:17:58 +01:00
project-repo
134ba83f00 Fix typo in socket man page 2022-12-30 18:14:58 +01:00
project-repo
7555b379e3 Add documentation for socket 2022-12-30 18:09:00 +01:00
project-repo
22068b3bbf Add socket documentation 2022-12-30 17:52:33 +01:00
project-repo
18e6569712 Add support for customizing keyboard repeat info 2022-12-30 07:42:23 +01:00
project-repo
46671bb8fa Fix compilation error for man page 2022-12-29 21:15:18 +01:00
project-repo
3a66943513 Add option for disabling socket 2022-12-29 16:20:12 +01:00
project-repo
c83aed6728 Remove view_title
- Do not set window title, as it cannot be read
  - Print PID in event instead of title to prevent information leaks
2022-12-29 16:09:33 +01:00
project-repo
e1c89b311b Add support for focussing arbitrary tile 2022-12-29 15:47:49 +01:00
project-repo
646eb934d3 Merge branch 'development' of https://github.com/project-repo/cagebreak into development 2022-12-29 15:47:03 +01:00
project-repo
50bef0e8f1 Add dump command to config man page 2022-12-28 20:33:03 +01:00
project-repo
8e735264d1 Reformat usage message 2022-12-28 17:57:53 +01:00
project-repo
dce1f9ee8d Add -c option doc to man page 2022-12-28 17:50:55 +01:00
project-repo
f7d9e69d31 Add option for specifying config file path 2022-12-28 17:40:34 +01:00
project-repo
4d5acdb4a6 Fix config file parsing 2022-12-28 16:54:59 +01:00
project-repo
85c8597224 Add explanation for gpg to SECURITY.md 2022-12-28 16:01:14 +01:00
project-repo
11299eb8f0 Merge branch 'development' of https://github.com/project-repo/cagebreak into development 2022-12-28 15:59:02 +01:00
project-repo
46f921f636 Merge ipc fixes into development 2022-12-28 15:58:37 +01:00
project-repo
f2ebea72de Fix ipc syntax 2022-12-28 15:03:37 +01:00
project-repo
ebbc3f2431 Adjust ipc
- Handle SIGPIPE
  - Change syntax to null-terminated strings
2022-12-28 14:40:09 +01:00
project-repo
d66b2ee6ab Add entries to FAQ:
- Keybindings with characters not on current keybaord
- Cursor size management with env vars
2022-12-28 14:19:31 +01:00
project-repo
29011ac792 Remove length restriction for ipc commands 2022-12-28 11:08:23 +01:00
project-repo
fef49429f5 Remove maximal line length in configuration file 2022-12-28 10:08:23 +01:00
project-repo
c78607a4fd Add event name for dump event 2022-12-27 18:41:16 +01:00
project-repo
1ff7d3f60a Add information on output to dump output 2022-12-27 18:39:26 +01:00
project-repo
806c370987 Remove unnecessary function calls 2022-12-27 15:00:51 +01:00
project-repo
8a645a0dc3 Merge branch 'development' of https://github.com/project-repo/cagebreak into development 2022-12-27 14:51:31 +01:00
project-repo
52195268e6 Implement keyboard configuration
- Allow disabling command interpretation for specific keyboards
2022-12-27 14:50:52 +01:00
project-repo
1ab70173b0 Fix DEBUG<->WLR_DEBUG 2022-12-27 14:30:47 +01:00
project-repo
379c41d8e7 Move to meson setup 2022-12-27 14:29:42 +01:00
project-repo
e02ab558ec Update release version numbers 2022-12-27 14:29:23 +01:00
project-repo
be38bcf232 Fix man page 2022-12-27 14:29:08 +01:00
project-repo
9dd07b1caf Document removal of -r option 2022-12-27 14:15:15 +01:00
project-repo
1fc026a6f3 Add documentation for output rotate 2022-12-27 14:01:42 +01:00
project-repo
b9fe176f3c Add cagebreak start FAQ entry 2022-12-27 13:19:27 +01:00
project-repo
b16a5d64c4 Fix Bugs.md highlighting 2022-12-27 12:16:33 +01:00
project-repo
d586fba128 Add reports for bugs found using scan-build 2022-12-27 10:35:10 +01:00
project-repo
494fd6444b Update view focus logic 2022-12-26 11:44:05 +01:00
project-repo
73e0a421d2 Increase maximal configuration line length 2022-12-26 11:26:46 +01:00
project-repo
32095b4253 Refactor output configuration
* Allow independent rotation of different outputs
  * Allow specification of scale independent of mode
  * Clean up output configuration code
2022-12-26 08:14:57 +01:00
project-repo
39505dc8b2 Fix grouping of virtual keyboards 2022-12-25 15:09:25 +01:00
project-repo
ed575c36ab Fix behaviour on config file load failure 2022-12-24 16:38:29 +01:00
project-repo
baeb39579b Set cursor to box when not in default mode 2022-12-24 14:52:12 +01:00
project-repo
ee71d0bde9 Add check to prevent buffer overflow 2022-12-24 08:03:06 +01:00
project-repo
cce8121595 Reformat README 2022-11-28 21:35:44 +01:00
project-repo
9a60bef105 Apply clang-format 2022-11-28 21:35:31 +01:00
project-repo
559009f780 Remove Dockerfile 2022-11-28 21:32:59 +01:00
project-repo
1ac785b781 Add Oliver Friedmann as Contributor 2022-11-28 21:27:18 +01:00
Oliver Friedmann
29943b50e6
Add output scaling (#34)
* feat: output scaling

* chore: update man file

* fix: message when scaling
2022-11-28 21:23:41 +01:00
project-repo
4077064bc8 Add Issues 38,39,40,41.
Correspondence to github issue numbers is as follows:

38 <-> #31
39 <-> #30
40 <-> #20
41 <-> #12
2022-10-18 20:03:28 +02:00
project-repo
44f9ce3502 Add AUR vote as first contrib idea iff satisfied. 2022-10-17 13:43:03 +02:00
project-repo
8e831fe878 Sync security characteristics to socket man page 2022-10-17 01:21:01 +02:00
project-repo
1c4b72f97e Add Hashes template for 2.0.0 2022-10-17 01:20:43 +02:00
project-repo
0514c521c2 Update reproducible build versions 2022-10-16 23:52:13 +02:00
project-repo
6c9e309c16 Improve Contributing Quick Intro 2022-10-16 23:37:02 +02:00
project-repo
ee81b89467 Add Code of Conduct 2022-10-16 23:36:49 +02:00
project-repo
aa73eb44ae Fix typo 2022-10-16 11:31:48 +02:00
project-repo
0744d3a19a Move Changelog to subsection. 2022-10-16 11:01:02 +02:00
project-repo
34d1e764f1 Move Changelog in README. 2022-10-16 10:58:28 +02:00
project-repo
c8656d2744 Reorder developmnet subsections in README 2022-10-14 18:22:58 +02:00
project-repo
e2b790d571 Create development section in README
- Move compat & dev dist into dev
2022-10-14 18:15:58 +02:00
project-repo
10f842a8ee Improve Contrib section in README 2022-10-14 18:15:04 +02:00
project-repo
f9cd517bfe Improve dev distro section in README 2022-10-14 18:10:12 +02:00
project-repo
6f3952e883 Improve wording for Governance Issues 2022-10-14 17:22:46 +02:00
project-repo
9ef5922d4c Move Changelog inside README 2022-10-10 20:07:12 +02:00
project-repo
7699666076 Remove whitespace 2022-10-10 15:36:28 +02:00
project-repo
b0ea3c5e5b Add draft of Governance section to README 2022-10-10 15:36:12 +02:00
project-repo
d99ff361b1 Add compatibility information to README 2022-10-10 15:31:04 +02:00
project-repo
fb01ae953a Improve License section. 2022-10-10 15:30:16 +02:00
project-repo
68a74115ed Add Roadmap to README 2022-10-10 15:29:26 +02:00
project-repo
70f0ed07cd Improve Release Procedure 2022-10-10 15:28:52 +02:00
project-repo
23e0accf9a Improve Contributing section 2022-10-10 15:28:07 +02:00
project-repo
211e65e353 Remove information from Quick Intro 2022-10-10 15:27:25 +02:00
project-repo
b9a284730b Fix Quick Intro title in README 2022-10-10 14:37:59 +02:00
project-repo
cfa83a38d1 Fix License statement in README 2022-10-10 13:42:31 +02:00
project-repo
aa3c503ac2 Improve Quick Introduction in README 2022-10-09 15:47:51 +02:00
project-repo
afaae1554e Improve Name section in README. 2022-10-08 23:36:02 +02:00
project-repo
4c93f3cc9b Add SECURITY.md to list of Documentation. 2022-10-08 23:33:15 +02:00
project-repo
a71406b23e Improve compatibility description 2022-10-08 23:32:43 +02:00
project-repo
c7630bfddb Improve Purpose section of README. 2022-10-08 23:32:16 +02:00
project-repo
aacb7eb125 Add Changelog to Documentation section in README. 2022-10-08 21:48:22 +02:00
project-repo
40115efe1e Reword Quick Introduction.Documentation in README. 2022-10-08 21:42:50 +02:00
project-repo
6a03ea553e Improve README. 2022-10-08 21:29:04 +02:00
project-repo
66dca96991 Rename Goal->Purpose section in README. 2022-10-08 21:11:22 +02:00
project-repo
6b6e50ff45 Improve Quick Introduction in README. 2022-10-08 21:09:25 +02:00
project-repo
5f636ef13f Fix minor wording/formatting in README 2022-10-08 21:05:40 +02:00
project-repo
d9f8630a52 Improve Quick Introduction section in README. 2022-10-08 21:04:23 +02:00
project-repo
751b947a66 Improve README 2022-10-08 20:39:02 +02:00
project-repo
caafee6e0a Improve README through restructuring. 2022-10-08 19:12:03 +02:00
project-repo
60141498f2 Reformat Badges in README 2022-10-08 18:10:03 +02:00
project-repo
4c7e21b1c1 Add links to README 2022-10-08 18:08:07 +02:00
project-repo
88630bbad6 Fix typo in README 2022-10-08 18:05:34 +02:00
project-repo
a33c032838 Add OpenSSF Badge to README 2022-10-08 15:15:23 +02:00
project-repo
f3ad7bae63 Link cb-socket man page in FAQ 2022-10-04 21:02:32 +02:00
project-repo
395cbc7c1a Set version in meson.build 2022-10-04 20:58:11 +02:00
project-repo
c4704659f2 Add Anser to FAQ 2022-10-04 20:57:52 +02:00
project-repo
77dfee19e7 Fix man page alignment 2022-10-02 15:10:30 +02:00
project-repo
6b3bcdb659 Reword distinction between screen and output 2022-10-02 13:00:35 +02:00
project-repo
4e40cf955d Apply clang-format 2022-10-02 11:45:56 +02:00
project-repo
3e45e1f5bb Remove unused code 2022-10-02 11:43:31 +02:00
project-repo
23ad14f44d Merge branch 'master' into development 2022-10-02 11:38:14 +02:00
project-repo
cd01274710 Merge branch 'development' of https://github.com/project-repo/cagebreak into development 2022-10-02 08:26:19 +02:00
project-repo
3b175f915d Improve config man page
- Differentiate output and *screen
2022-10-01 15:39:12 +02:00
project-repo
32e13e13a5 Improve SECURITY.md 2022-09-30 23:54:17 +02:00
project-repo
a9224567f9 Improve socket man page 2022-09-30 23:53:57 +02:00
project-repo
cffe8e1991 Add socket man page 2022-09-30 22:05:19 +02:00
project-repo
b151ce8fc2 Improve man page compilation 2022-09-30 22:02:14 +02:00
project-repo
3e572107ed Prepare release version numbers 2022-09-30 21:11:22 +02:00
project-repo
7e28cf6b1c Fix man page documentation 2022-09-30 21:10:09 +02:00
project-repo
3247d8cfd1 Apply clang-format 2022-09-30 21:09:51 +02:00
project-repo
c72c68a99b Improve release procedure 2022-09-30 21:09:07 +02:00
project-repo
4d81403a50 Fix typo 2022-09-30 21:06:55 +02:00
project-repo
ebe4826d12 Fix bugs reported by scan-build 2022-09-30 18:28:49 +02:00
project-repo
c73cc64199 Fix link in README 2022-09-29 22:14:58 +02:00
project-repo
55d4115c8e Improve release procedure 2022-09-29 21:30:14 +02:00
project-repo
740b9ce649 Merge remote-tracking branch 'origin/development' into development 2022-09-29 21:25:04 +02:00
project-repo
ca6add83ef Improve README
- Add repology badges
- Modify release procedures
2022-09-29 21:22:32 +02:00
project-repo
09a6886053 Restrict access to ipc socket
- Set 700 permissions on socket on startup
2022-09-25 11:34:17 +02:00
project-repo
97ef5306a1 Add ipc message on cursor switching tile 2022-09-25 11:05:51 +02:00
project-repo
a8148690d6 Merge remote-tracking branch 'github/startup_failed' into development 2022-09-25 09:48:49 +02:00
project-repo
5305eead4c Add IPC event for cursor switching output 2022-09-22 19:38:28 +02:00
project-repo
bc9c7a7555 Add restack to xwayland view activation 2022-09-21 19:17:17 +02:00
project-repo
3b5b85070f Fix sizing of reconfigured outputs 2022-09-18 10:22:08 +02:00
project-repo
cda1d645d2 Attempt fallback disable 2022-09-12 07:36:36 +02:00
project-repo
346e021dbb Amend commit 36f00 2022-09-10 18:24:39 +02:00
project-repo
5de047b141 Apply clang-format 2022-09-09 19:03:56 +02:00
project-repo
36f002dbe0 Fix window positioning when switching to fullscreen 2022-09-09 19:01:16 +02:00
project-repo
aa8f6b4208 Print version number on startup 2022-09-09 18:43:56 +02:00
project-repo
6461894cbe Fix default bg color 2022-09-05 08:14:21 +02:00
project-repo
424cc0af25 Adapt output_clear to wlr_scene 2022-09-05 08:13:46 +02:00
project-repo
586b6b5db0 Fix typo 2022-09-05 08:12:32 +02:00
project-repo
b649529f67 Add support for primary selection device protocol
- Fix issue in which copying from firefox fails
2022-05-05 21:37:09 +02:00
project-repo
00c9c4bb65 Fix segfault on workspace switch 2022-05-01 21:48:03 +02:00
project-repo
60dbf4c8b1 Fix tile ordering on split 2022-04-26 07:46:26 +02:00
project-repo
33877210d9 Fix segmentation fault due to drag icons 2022-04-24 16:12:04 +02:00
project-repo
2457a37da8 Change to json output for ipc messages 2022-04-24 15:43:53 +02:00
project-repo
8afd69d057 Fix positioning of unmanged xwayland views 2022-04-17 12:18:04 +02:00
Cagebreak Signing Key 7
c1769a2ed4 Document new features 2022-04-15 21:02:33 +02:00
Cagebreak Signing Key 7
79645a8f2e Add Issues 29-33 to Bugs.md 2022-04-15 19:39:30 +02:00
Cagebreak Signing Key 7
6527d964ef Add new gpg keys 2022-04-14 23:50:12 +02:00
project-repo
6f03363507 Update example config 2022-04-14 21:08:13 +02:00
project-repo
ab8f4a2dbe Merge branch 'development' of https://github.com/project-repo/cagebreak into development 2022-04-14 21:06:14 +02:00
Cagebreak Signing Key 7
9bee3fddc4 Fix FAQ 2022-04-14 21:02:32 +02:00
project-repo
dab95aab04 Merge branch 'development' of https://github.com/project-repo/cagebreak into development 2022-04-14 20:47:02 +02:00
Cagebreak Signing Key 7
f31ee224ca Adapt README to upcoming release 2022-04-14 19:58:49 +02:00
Cagebreak Signing Key 7
ce80f86b49 Add FAQ.md 2022-04-14 19:20:52 +02:00
Cagebreak Signing Key 7
83b1562a55 Reformat SECURITY.md 2022-04-14 18:15:25 +02:00
Cagebreak Signing Key 7
55ac751fc1 Add SECURITY.md 2022-04-14 18:10:38 +02:00
Cagebreak Signing Key 7
e5cce909b6 Prepare config man page for 1.9.0 2022-04-14 18:06:17 +02:00
Cagebreak Signing Key 7
a3c5e6baf1 Prepare man page for 1.9.0 2022-04-14 18:02:44 +02:00
Cagebreak Signing Key 7
132112c2a5 Remove -D option doc 2022-04-14 17:40:01 +02:00
Cagebreak Signing Key 7
1f9a720809 Add SECURITY.md relevance check to release checks 2022-04-14 17:06:01 +02:00
Cagebreak Signing Key 7
f4b7a5a498 Improve README 2022-04-14 17:00:05 +02:00
project-repo
02368600eb Fix crash on touch device removal 2022-04-09 16:20:22 +02:00
project-repo
6e1464127f Double fork to fix xwayland bug 2022-03-29 10:05:15 +02:00
Cagebreak Signing Key 7
e801f162d6 Fix style in man page 2022-03-17 22:11:55 +01:00
Cagebreak Signing Key 7
fe9b22c66b Add missing word in documentation 2022-03-16 18:57:08 +01:00
project-repo
e10e09025c Fix non-xwayland build 2022-03-15 20:50:58 +01:00
project-repo
cb7b551e24 Add dump functionality 2022-02-19 09:58:27 +01:00
project-repo
ed5cca9390 Adjust logic for finding left,right,etc. tiles 2022-02-18 08:06:03 +01:00
project-repo
373e210b5c Merge branch 'development' of https://github.com/project-repo/cagebreak into development 2022-02-18 07:46:23 +01:00
project-repo
f12a16160c Add message command 2022-02-18 07:45:23 +01:00
project-repo
b1dd437997 Remove duplicate code 2022-02-18 07:23:44 +01:00
project-repo
da1f973532 Fix issues related to wlr_scene 2022-02-15 22:33:53 +01:00
Cagebreak Signing Key 7
bb924f6388 Edit man pages 2022-02-02 18:11:58 +01:00
project-repo
c5800b2223 Switch to wlr_scene api 2022-01-26 19:36:10 +01:00
Cagebreak Signing Key 7
296b106d44 Fix README copy error 2021-12-31 12:55:13 +01:00
Cagebreak Signing Key 7
d71139b500 Fix typo 2021-12-30 23:19:28 +01:00
Cagebreak Signing Key 7
5b470aa3d7 Modularize README.md 2021-12-30 22:35:52 +01:00
Cagebreak Signing Key 7
932ce1df55 Remove duplicate documentation 2021-12-30 17:26:12 +01:00
project-repo
38fee7ea71 Add explanation of prio 2021-12-29 20:10:47 +01:00
Cagebreak Signing Key 7
7449faf021 Add documentation for multi-output support
* man/cagebreak-config.5
    * movetoprevscreen
    * movetoscreen
    * screen <n>
    * addition of prio to output
2021-12-29 18:35:10 +01:00
project-repo
fd671ac2dd Apply clang-format 2021-12-25 15:38:31 +01:00
project-repo
aff1de892b Add support for event notifications over ipc 2021-12-25 15:35:31 +01:00
project-repo
bc22892a06 Apply clang-format 2021-12-24 17:54:07 +01:00
project-repo
348925e30a Add configure_message command 2021-12-24 17:52:49 +01:00
project-repo
da1a5898f4 Apply clang-format 2021-12-24 15:56:04 +01:00
project-repo
851a2f8935 Add more advanced multi-output support
* Add commands screen, movetoscreen, movetoprevscreen
  * Add option prio to output command to allow for output priority
    specification
2021-12-24 15:52:25 +01:00
Cagebreak Signing Key 7
8f995b9745 Merge branch 'master' into development 2021-12-06 21:21:18 +01:00
Cagebreak Signing Key 7
1e747747ca Add signatures for 1.8.2 2021-12-06 21:10:03 +01:00
Cagebreak Signing Key 7
0c683158a7 Add hashes for 1.8.2 2021-12-06 21:05:02 +01:00
Cagebreak Signing Key 7
1e76f9253d Increment dependency versions 2021-12-06 11:24:43 +01:00
Cagebreak Signing Key 7
aad150f4b0 Set EPOCH for man pages 2021-12-06 11:20:09 +01:00
Cagebreak Signing Key 7
0b2f9afad9 Add Issue 28 2021-12-06 11:12:20 +01:00
Cagebreak Signing Key 7
5aad3ca615 Adjust version numbers 2021-12-06 11:11:28 +01:00
Cagebreak Signing Key 7
816fdeb953 Update year in copyright notices 2021-12-06 11:08:21 +01:00
project-repo
5693731705 Fix damage tracking for view children 2021-12-04 22:27:07 +01:00
Cagebreak Signing Key 7
29b7574cb3 Merge branch 'master' into development 2021-11-12 18:15:11 +01:00
Cagebreak Signing Key 7
3528c10915 Add new signatures 2021-11-12 18:08:56 +01:00
Cagebreak Signing Key 7
1f6a0062fd Rename 1.8.0 signatures 2021-11-12 18:06:50 +01:00
Cagebreak Signing Key 7
4f46f020fa Add 1.8.1 release hashes 2021-11-12 18:06:24 +01:00
Cagebreak Signing Key 7
9df55bb7cd Add Issue description 2021-11-12 18:05:57 +01:00
Cagebreak Signing Key 7
1a0290c0d4 Add man epoch 2021-11-12 17:57:00 +01:00
Cagebreak Signing Key 7
713f863062 Fix dependency 2021-11-12 16:52:58 +01:00
Cagebreak Signing Key 7
cf460a5342 Prepare 1.8.1 2021-11-08 20:39:03 +01:00
project-repo
24705616c4 Fix rendering bug on tile swap 2021-10-17 15:26:52 +02:00
project-repo
aebc593635 Merge branch 'development' of https://github.com/project-repo/cagebreak into development 2021-10-17 07:53:48 +02:00
project-repo
2ab4955c46 Add support for default configuration file 2021-10-17 07:50:03 +02:00
Cagebreak Signing Key 7
61f53e3c7f Merge branch 'master' into development 2021-09-26 21:27:34 +02:00
Cagebreak Signing Key 7
7a4c9cff36 Add release artefacts 2021-09-26 21:23:30 +02:00
Cagebreak Signing Key 7
47082c9afc Update man page build time 2021-09-26 10:40:51 +02:00
Cagebreak Signing Key 7
6ae77a341b Add changelog 2021-09-26 10:40:37 +02:00
Cagebreak Signing Key 7
43c6c82326 Prepare 1.8.0 release 2021-09-25 21:35:50 +02:00
Cagebreak Signing Key 7
85b8cefd8d Add input configuration to examples 2021-09-25 21:35:27 +02:00
project-repo
95af01b119 Fix potential null pointer dereferences 2021-09-20 08:54:00 +02:00
project-repo
69fe10f4be Remove debug code 2021-09-19 10:43:16 +02:00
project-repo
cc4780eb71 Apply clang-format 2021-09-19 10:25:34 +02:00
project-repo
4c6bc1b59d Add support for printing input/output identifiers 2021-09-19 10:23:36 +02:00
project-repo
4ed9966d7b Add documentation for input configuration 2021-09-19 07:34:14 +02:00
project-repo
e684a81efb Apply clang-format 2021-09-16 14:31:20 +02:00
project-repo
dec38bd8f0 Remove unused fields 2021-09-16 14:08:58 +02:00
project-repo
b878e48619 Do not parse XKB_* env vars manually 2021-09-16 14:06:15 +02:00
project-repo
54107a6876 Fix fuzzer 2021-09-16 13:51:15 +02:00
project-repo
c149918026 Fix memory leak 2021-09-16 13:50:56 +02:00
project-repo
f9efd40c9d Implement libinput device configuration 2021-09-15 08:37:50 +02:00
project-repo
985b5f65db Add input_manager capabilities 2021-09-11 13:48:08 +02:00
project-repo
25bb1fbe4a Fix typo in readme 2021-08-11 13:22:11 +02:00
Cagebreak Signing Key 7
57719a2c2d Prepare 1.7.5 release 2021-07-10 14:48:58 +02:00
Cagebreak Signing Key 7
4733c73a47 Merge branch 'master' into development 2021-06-30 18:03:35 +02:00
Cagebreak Signing Key 7
b3058d6891 Prepare 1.7.4 2021-06-30 17:55:23 +02:00
Cagebreak Signing Key 7
9d73ab3cc5 Prepare 1.7.4 release 2021-06-30 16:49:58 +02:00
Cagebreak Signing Key 7
71d6351c8c Merge branch 'master' into development 2021-06-30 13:04:27 +02:00
Cagebreak Signing Key 7
839e2cba09 Add signatures and hashes 2021-06-30 12:58:19 +02:00
Cagebreak Signing Key 7
71dc42cc25 Update man page build time 2021-06-29 19:55:38 +02:00
Cagebreak Signing Key 7
addd8a0710 Prepare 1.7.3 2021-06-25 23:07:43 +02:00
Cagebreak Signing Key 7
da9800d2b0 Merge branch 'development' of https://github.com/project-repo/cagebreak into development 2021-06-25 22:54:51 +02:00
Cagebreak Signing Key 7
cb049d7ab5 Prepare 1.7.3 2021-06-25 22:54:26 +02:00
project-repo
e4ebc1e292 Apply clang-format 2021-06-23 20:58:42 +02:00
project-repo
d57869d43a Add fixes for wlroots 0.14.0 2021-06-23 20:53:48 +02:00
Cagebreak Signing Key 7
97578dcd4f Merge branch 'master' into development 2021-05-18 10:31:47 +02:00
Cagebreak Signing Key 7
6db4c0edd3 Add release signatures 2021-05-18 10:26:00 +02:00
Cagebreak Signing Key 7
3f2e386b4b Add release hashes 2021-05-18 10:11:40 +02:00
Cagebreak Signing Key 7
ffc922e6b0 Adapt man page epoch 2021-05-18 10:00:04 +02:00
Cagebreak Signing Key 7
fec0e24206 Update man versions 2021-05-17 22:06:22 +02:00
Cagebreak Signing Key 7
054a8cc49f Update meson version 2021-05-17 22:03:54 +02:00
Cagebreak Signing Key 7
b97ba95ee9 Update compiler dependency 2021-05-17 22:03:32 +02:00
Cagebreak Signing Key 3
a8f2a7940d Update LICENSE 2021-05-10 21:43:29 +02:00
Cagebreak Signing Key 3
f2718ba9c8 Fix typos in README 2021-05-10 21:43:08 +02:00
Cagebreak Signing Key 3
dcb8a7ef7c Merge branch 'master' into development 2021-05-06 14:20:02 +02:00
Cagebreak Signing Key 3
731f09dc81 Add signatures 2021-05-06 14:14:49 +02:00
Cagebreak Signing Key 3
09571f6743 Update man page hashes 2021-05-06 11:17:57 +02:00
Cagebreak Signing Key 3
bfa667503e Make man pages reproducible 2021-05-06 10:49:45 +02:00
Cagebreak Signing Key 3
da61cb7d2f Add new keys 2021-05-06 09:44:56 +02:00
Cagebreak Signing Key 3
9cc701e2dc Add key hashes to README 2021-05-05 21:57:33 +02:00
Cagebreak Signing Key 3
5637cd7b68 Add new file to README artefact check 2021-05-05 21:32:55 +02:00
Cagebreak Signing Key 3
fd367eb397 Merge branch 'development' of https://github.com/project-repo/cagebreak into development 2021-05-05 20:50:20 +02:00
project-repo
e299ec0363 Restrict wlroots version in meson.build 2021-05-05 20:34:46 +02:00
Cagebreak Signing Key 3
090f1ca8f0 Improve release checklist 2021-05-05 20:08:03 +02:00
Cagebreak Signing Key 3
d77c10ae5b Add release hashes 2021-05-05 19:16:33 +02:00
Cagebreak Signing Key 3
d43094e440 Set wlroots version to 0.13.0 2021-05-05 18:44:56 +02:00
Cagebreak Signing Key 3
6a4c0b7d16 Add Issue 26 2021-05-05 17:51:51 +02:00
Cagebreak Signing Key 3
907db16ebe Change wlroots version to prevent incompatibility 2021-05-05 17:47:26 +02:00
Cagebreak Signing Key 3
29de328322 Add version using scdoc syntax 2021-05-05 16:40:55 +02:00
Cagebreak Signing Key 3
3883c15bda Merge branch 'scdoc' into development
- Migrate man page compilation from pandoc to scdoc
2021-05-05 16:31:15 +02:00
Cagebreak Signing Key 3
76afb942bd Add version section to man page scd 2021-05-05 16:28:41 +02:00
project-repo
d675f369db Change to scdoc for man page generation 2021-05-05 12:09:25 +02:00
Cagebreak Signing Key 3
7ebec0cde5 Increment versions 2021-05-02 19:46:59 +02:00
Cagebreak Signing Key 3
855da72623 Merge branch 'master' into development 2021-04-19 22:17:14 +02:00
Cagebreak Signing Key 3
65f2734f78 Add release artifacts 2021-04-19 22:13:06 +02:00
Cagebreak Signing Key 3
94c6d970d6 Prepare 1.7.0 cagebreak release 2021-04-19 22:05:56 +02:00
Cagebreak Signing Key 3
a2f8a0c66e Adjust version 2021-04-19 20:56:23 +02:00
project-repo
0eb3111e77 Fix issues due to new wlroots version 2021-04-19 20:29:14 +02:00
Cagebreak Signing Key 3
3234691909 Adjust version to 1.6.1 in meson 2021-04-19 20:28:56 +02:00
Cagebreak Signing Key 3
9623ccd4d4 Apply clang-format 2021-04-19 20:24:03 +02:00
Cagebreak Signing Key 3
7d175afc07 Update dependency versions 2021-04-19 20:22:53 +02:00
project-repo
20ce9ae3a4 Fix bugs due to updated wlroots 2021-04-08 16:26:49 +02:00
project-repo
72bcf8f1de Fix null-pointer dereference 2021-04-08 08:22:10 +02:00
project-repo
b989fe50f0 Fix incompatibilities with wlroots 0.13.0 2021-04-08 07:39:14 +02:00
project-repo
a69cf18f7c Ensure correct focus of keyboard 2021-04-06 19:49:48 +02:00
project-repo
98eb1a4be8 Fix view_get_prev_view
* Fix view_get_prev_view function
  * Reduce code duplication
2021-03-25 10:28:46 +01:00
project-repo
2c499e20c3 Apply clang-format 2021-03-20 17:20:40 +01:00
project-repo
b6ef26fa81 Leave list of views invariant under cycling 2021-03-20 17:19:56 +01:00
project-repo
24e0681579 Apply clang-format 2021-03-20 16:31:11 +01:00
project-repo
0b97338738 Remove obsolete code get_geometry 2021-03-20 16:29:50 +01:00
project-repo
89d6272775 Adjust focussing algorithm
* Make algorithm which picks which view to focus more stable towards
    repeated insert-remove cycles.
  * Improve run-time of view_get_tile
2021-03-20 16:26:38 +01:00
Cagebreak Signing Key 3
0b48dc359f Merge branch 'master' into development 2021-03-05 18:15:54 +01:00
Cagebreak Signing Key 3
f6c103ae7c Add signatures 2021-03-05 18:09:49 +01:00
Cagebreak Signing Key 3
a2d82f1384 Add release hashes 2021-03-05 17:59:50 +01:00
Cagebreak Signing Key 3
c017bd5138 Add Issue 25 2021-03-05 17:50:58 +01:00
Cagebreak Signing Key 3
c3c806ae0d Apply clang-format 2021-03-05 17:34:43 +01:00
Cagebreak Signing Key 3
b14996d7ee Increment dependency version 2021-03-05 16:48:57 +01:00
project-repo
7aef1c5d12 Fix typo 2021-03-05 16:21:28 +01:00
project-repo
dc62580d66 Fix potential use-after-free 2021-03-05 16:18:38 +01:00
Cagebreak Signing Key 3
54afbd29b5 Increment dependency versions 2021-03-05 15:28:09 +01:00
Cagebreak Signing Key 3
74651ee39f Increment man version 2021-03-05 15:27:56 +01:00
Cagebreak Signing Key 3
07856670cd Add Contributor 2021-03-05 15:27:39 +01:00
Cagebreak Signing Key 3
c4a4a9df12 Add 1.6.0 release notes 2021-03-05 15:27:14 +01:00
Cagebreak Signing Key 3
4a21c74541 Add documentation of man page build 2021-03-05 15:26:25 +01:00
Cagebreak Signing Key 3
85408845ba Add Issue 24 2021-03-05 15:25:35 +01:00
project-repo
fb2590afa1 Adjust message 2021-03-05 07:53:46 +01:00
project-repo
9d64c170f1 Merge "make man pages optional" by epsilon-0 2021-03-05 07:50:41 +01:00
Cagebreak Signing Key 3
456ada7c0a Merge branch 'development' of https://github.com/project-repo/cagebreak into development 2021-03-05 07:34:01 +01:00
Cagebreak Signing Key 3
436c891b20 Prepare meson.build for release 2021-03-05 07:33:00 +01:00
Aisha Tammy
103641c35c
make man pages optional
pandoc is a monster

Signed-off-by: Aisha Tammy <floss@bsd.ac>
2021-03-01 12:12:25 -05:00
project-repo
96785a8db5 Fix typo 2021-02-19 17:04:24 +01:00
project-repo
9de597b0c1 Fix bug in surface counting iterator 2021-02-19 14:25:13 +01:00
project-repo
0778cb050f Add support for non-build dependencies 2021-01-30 12:54:47 +01:00
Cagebreak Signing Key 3
5840d12a2e Merge branch 'master' into development 2021-01-24 16:11:30 +01:00
Cagebreak Signing Key 3
759f0ee748 Add release artefacts 2021-01-24 16:00:17 +01:00
Cagebreak Signing Key 3
9a7ce94546 Prepare 1.5.1 release 2021-01-24 11:56:55 +01:00
Cagebreak Signing Key 3
eb297a8dbd Merge branch 'master' into development 2021-01-15 13:04:28 +01:00
Cagebreak Signing Key 3
865bb901a4 Add binary signature 2021-01-15 12:59:57 +01:00
Cagebreak Signing Key 3
0f762c0b53 Prepare 1.5.0 2021-01-15 12:48:14 +01:00
project-repo
615552b843 Fix potential memory leaks 2021-01-15 10:46:15 +01:00
Cagebreak Signing Key 3
4776ba4e5f Merge branch 'disable_output' into development 2021-01-15 09:17:23 +01:00
project-repo
59d10ee410 Add notice to output disable documentation 2021-01-10 21:42:39 +01:00
project-repo
1b51acac49 Initialize disable_outputs in fuzz-lib.c 2021-01-10 21:37:17 +01:00
Cagebreak Signing Key 3
9d0a33c25e Add output example 2021-01-10 20:44:18 +01:00
Cagebreak Signing Key 3
0dc85e635f Document disable output 2021-01-10 20:43:34 +01:00
Cagebreak Signing Key 3
dd867f0a79 Increment version 2021-01-10 19:52:51 +01:00
Cagebreak Signing Key 3
0c4b2c306b Apply clang-format 2021-01-10 19:52:31 +01:00
Cagebreak Signing Key 3
c98d972de1 Increment dependency versions 2021-01-10 19:47:12 +01:00
project-repo
b2193f4c1d Add support for disabling outputs 2021-01-09 09:17:59 +01:00
project-repo
90475c24cb Fix view_unmap 2021-01-01 14:42:50 +01:00
project-repo
8925bf0d3a Fix potential use after free
Ensure that the focus is changed when calling
seat_set_focus.
2020-11-27 13:51:44 +01:00
Cagebreak Signing Key 3
a33864f85f Merge branch 'master' into development 2020-11-18 22:02:36 +01:00
Cagebreak Signing Key 3
242aea61d6 Prepare 1.4.4 release 2020-11-18 21:51:18 +01:00
Cagebreak Signing Key 3
f7365f02fc Add Issue 21 2020-11-18 15:27:42 +01:00
Cagebreak Signing Key 3
b4d7eac7f0 Increment version numbers 2020-11-18 15:25:58 +01:00
project-repo
e79d5dee3a Fix fuzzing compilation 2020-11-16 21:25:07 +01:00
Cagebreak Signing Key 3
937c8983d3 Increment dependency versions 2020-11-14 18:40:28 +01:00
project-repo
a2e0a55d2e Fix potential npd on view destroy. 2020-10-24 09:45:33 +02:00
Cagebreak Signing Key 3
7c2620fe54 Merge branch 'master' into development 2020-10-10 13:47:39 +02:00
Cagebreak Signing Key 3
4c3aefa11c Add hashes and signatures 2020-10-10 13:42:46 +02:00
Cagebreak Signing Key 3
38ec452ea7 Add bug documentation 2020-10-10 13:17:08 +02:00
Cagebreak Signing Key 3
ef152f9b63 Increment man version numbers 2020-10-10 12:56:03 +02:00
Cagebreak Signing Key 3
e16d118014 Apply clang-format 2020-10-10 11:29:35 +02:00
Cagebreak Signing Key 3
eab24c31ef Increment cagebreak version 2020-10-09 18:10:23 +02:00
project-repo
cc457cdcfb Fix damaging when scanning out views 2020-10-09 13:58:57 +02:00
project-repo
be9cdca75a Fix handling of unmanaged views on output removal 2020-10-09 13:58:41 +02:00
project-repo
84d20ca5cb Fix position of xwayland views on multiple outputs 2020-10-09 13:58:00 +02:00
project-repo
edceb0218d Prevent use-after-free on destroying unmapped views
Prior to this commit view->workspace was set on view creation. If
the output containing this view was subsequently destroyed,
the workspace was freed leading to a use-after-free when the
view was destroyed.
2020-10-09 13:13:31 +02:00
Cagebreak Signing Key 3
a538e0fd4f Merge branch 'master' into development 2020-09-20 10:53:24 +02:00
Cagebreak Signing Key 3
442eaf9f45 Add release signatures 2020-09-20 10:48:15 +02:00
Cagebreak Signing Key 3
275248ad7a Add release hashes 2020-09-20 10:45:46 +02:00
Cagebreak Signing Key 3
a04ec0e76f Fix reproducible build 2020-09-19 21:47:34 +02:00
Cagebreak Signing Key 3
a042ae624a Apply clang-format 2020-09-19 20:01:57 +02:00
Cagebreak Signing Key 3
256000c6d8 Add Issue 16 2020-09-19 19:55:15 +02:00
Cagebreak Signing Key 3
2cdffbc285 Increment man page versions 2020-09-19 19:44:27 +02:00
Cagebreak Signing Key 3
6648ff5f05 Increment version number 2020-09-19 19:41:48 +02:00
project-repo
67b4ecd843 Fix use-after-free when destroying popups 2020-09-18 07:37:27 +02:00
Cagebreak Signing Key 3
269b2dfe7b Merge branch 'master' into development 2020-09-12 17:58:47 +02:00
Cagebreak Signing Key 3
4dfe431c1c Add binary signatures 2020-09-12 17:40:34 +02:00
Cagebreak Signing Key 3
09583986d9 Add binary hashes 2020-09-12 17:38:32 +02:00
Cagebreak Signing Key 3
4392fc57b8 Increment man page version 2020-09-12 17:24:44 +02:00
Cagebreak Signing Key 3
70d2448924 Apply clang-format 2020-09-12 17:22:16 +02:00
Cagebreak Signing Key 3
20caa1f499 Add Issue descriptions 2020-09-12 17:14:01 +02:00
Cagebreak Signing Key 3
df83beaf39 Fix typo in README 2020-09-12 16:45:07 +02:00
Cagebreak Signing Key 3
10a09b1d72 Increment xkbcommon version 2020-09-12 16:40:35 +02:00
project-repo
cd03381bc4 Fix rendering bug when closing subsurfaces 2020-09-12 09:49:51 +02:00
project-repo
172fa34f6a Merge branch 'development' of https://github.com/project-repo/cagebreak into development 2020-09-11 17:29:12 +02:00
project-repo
80ada7d14b Invert wlr_xcursor_manager_load return value 2020-09-11 17:27:42 +02:00
Cagebreak Signing Key 3
530a5417f1 Increment cagebreak meson version 2020-09-11 16:42:03 +02:00
project-repo
4515ed8574 Fix crash when switching workspace
Prior to this commit, it was possible that view->workspace
was not the same as the workspace on which the view was displayed
leading to erroneous behaviour and crashes when closing
such a window.
2020-09-11 15:04:43 +02:00
project-repo
2f63535ae5 Implement data control manager protocol
Prevents screen from flickering when doing wl-copy and paste.
2020-09-11 11:31:15 +02:00
Cagebreak Signing Key 3
f24105f4ad Merge branch 'master' into development 2020-09-10 17:33:56 +02:00
Cagebreak Signing Key 3
984a931dd5 Add release hashes 2020-09-10 17:23:21 +02:00
Cagebreak Signing Key 3
91adbb6b0d Add signatures 2020-09-10 17:23:06 +02:00
Cagebreak Signing Key 3
2de543877b Increment dependency version 2020-09-10 16:07:47 +02:00
Cagebreak Signing Key 3
2c28a69221 Add note about memory leaks to fuzzing 2020-09-10 16:03:15 +02:00
project-repo
def72ed84a Fix potential NPD 2020-09-07 13:58:33 +02:00
project-repo
becd94e6ba Add missing header 2020-09-07 11:49:15 +02:00
Cagebreak Signing Key 3
c11e73c752 Add release notes 2020-09-07 11:03:23 +02:00
Cagebreak Signing Key 3
6594a39a8b Update man versions 2020-09-07 11:01:33 +02:00
Cagebreak Signing Key 3
ca0eb25e1f Increment version 2020-09-07 10:59:08 +02:00
Cagebreak Signing Key 3
83f80ca5e6 Add Issue 13 2020-09-06 18:02:11 +02:00
Cagebreak Signing Key 3
d2ba8af36a Adapt reproducible versions 2020-09-06 17:47:51 +02:00
Cagebreak Signing Key 3
b0aa100e3e Apply clang-format 2020-09-06 17:41:45 +02:00
Cagebreak Signing Key 3
3ccf430030 Add user documentation of close 2020-09-05 11:27:50 +02:00
project-repo
8778ace0ce Review header includes 2020-09-01 16:57:22 +02:00
project-repo
3e2f90fa1e Handle repositioning of xwayland views 2020-08-31 11:41:45 +02:00
project-repo
73e8db1fa3 Add support for closing windows 2020-08-25 15:15:31 +02:00
Cagebreak Signing Key 3
daddc8f2e5 Merge branch 'master' into development 2020-08-16 23:27:37 +02:00
Cagebreak Signing Key 3
4280e97b06 Add binary signatures 2020-08-16 23:17:28 +02:00
Cagebreak Signing Key 3
248e7ac250 Add README hashes 2020-08-16 23:12:20 +02:00
Cagebreak Signing Key 3
54e19b9154 Update man page version 2020-08-16 23:01:57 +02:00
Cagebreak Signing Key 3
62b4169d77 Increment pango version 2020-08-15 22:49:53 +02:00
Cagebreak Signing Key 3
b0c6e54caf Apply clang-format 2020-08-15 22:49:33 +02:00
Cagebreak Signing Key 3
79e25dddc6 Update version number 2020-08-14 17:51:57 +02:00
Cagebreak Signing Key 3
8256bbbefe Update dependencies 2020-08-14 17:51:45 +02:00
project-repo
fd99f55dba Fix memeory leak 2020-07-31 12:07:26 +02:00
project-repo
5cb26b8063 Improve view_unmap algorithmics 2020-07-24 15:29:41 +02:00
Cagebreak Signing Key 3
e2a21b215f Merge branch 'master' into development 2020-07-21 15:51:47 +02:00
Cagebreak Signing Key 3
d411a499a5 Update signature 2020-07-21 15:40:27 +02:00
Cagebreak Signing Key 3
518341869f Update hashes 2020-07-21 15:36:52 +02:00
Cagebreak Signing Key 3
da2d5923cf Fix README spacing 2020-07-21 15:17:53 +02:00
project-repo
578e6e28d7 Reword README 2020-07-21 14:34:44 +02:00
Cagebreak Signing Key 3
523761fc46 Adjust wlroots reproducible builds version 2020-07-19 10:12:09 +02:00
Cagebreak Signing Key 3
70730eb90f Merge branch 'development' of https://github.com/project-repo/cagebreak into development 2020-07-19 09:16:57 +02:00
project-repo
bcb898238c Fix incompatibilities with wlroots 0.11.0 2020-07-18 22:58:54 +02:00
Cagebreak Signing Key 3
7f5a59f1a7 Add issue reports 2020-07-18 20:55:05 +02:00
Cagebreak Signing Key 3
21482cef3c Fix bug report 2020-07-18 20:41:10 +02:00
Cagebreak Signing Key 3
509ff38dc9 Merge branch 'development' of https://github.com/project-repo/cagebreak into development 2020-07-18 19:16:04 +02:00
Your Name
4623681030 Preparation for 1.3.3 release
- Bump version number
  - Apply clang-format
2020-07-18 17:59:27 +02:00
project-repo
a08b84b381 Fix rendering of cg_view_child objects 2020-07-18 11:48:14 +02:00
Cagebreak Signing Key 3
cc0d5cac20 Merge branch 'development' of https://github.com/project-repo/cagebreak into development 2020-06-30 13:06:20 +02:00
Cagebreak Signing Key 3
7ede33a3f2 Add information on AUR PKGBUILDs 2020-06-27 18:48:03 +02:00
Cagebreak Signing Key 3
8df8c6f90b Improve README 2020-06-27 18:46:47 +02:00
project-repo
e31fd8f4ba Merge branch 'development' of https://github.com/project-repo/cagebreak into development 2020-06-27 10:20:02 +02:00
project-repo
1365fc8d54 Fix output configuration 2020-06-27 08:20:42 +02:00
Cagebreak Signing Key 3
149cf94998 Merge branch 'master' into development 2020-06-26 15:26:22 +02:00
Cagebreak Signing Key 3
1e8ccdab4d Add release hashes 2020-06-26 15:05:14 +02:00
Cagebreak Signing Key 3
6557fccf77 Add binary signatures 2020-06-26 15:01:17 +02:00
Cagebreak Signing Key 3
91bd897920 Adjust man version numbers 2020-06-26 14:56:07 +02:00
Cagebreak Signing Key 3
b69c360484 Update version number for 1.3.2. release 2020-06-26 13:22:08 +02:00
project-repo
41e32aa23c Adjust Bugs.md 2020-06-26 12:24:33 +02:00
Cagebreak Signing Key 3
be2d9e4877 Add issue 10 description 2020-06-26 12:22:15 +02:00
project-repo
36d1f9bb6d Fix drag icon destroying 2020-06-26 11:40:48 +02:00
project-repo
86b04cd154 Remove trailing whitespace 2020-06-25 13:53:11 +02:00
Cagebreak Signing Key 3
7aeb0eca6a Apply clang-format 2020-06-12 22:08:01 +02:00
Cagebreak Signing Key 3
b711a4fb0b Add issue 9 2020-06-12 13:51:12 +02:00
project-repo
ecd620dd98 Fix popup rendering bug 2020-06-12 10:01:44 +02:00
Cagebreak Signing Key 3
bb2ae9f3b1 Merge branch 'master' into development 2020-06-03 21:40:45 +02:00
Cagebreak Signing Key 3
e98a5318ea Update hashes and signature 2020-06-03 18:05:02 +02:00
Cagebreak Signing Key 3
fa10639ec0 Increment man version numbers 2020-06-03 16:44:14 +02:00
Cagebreak Signing Key 3
8756f4eab3 Add fixed bugs 2020-06-03 16:26:09 +02:00
Cagebreak Signing Key 3
8c1c317d48 Increment version number 2020-06-03 16:21:05 +02:00
Cagebreak Signing Key 3
50c1268f5e Apply clang-format 2020-06-03 16:20:02 +02:00
project-repo
3937c05237 Merge branch 'development' of https://github.com/project-repo/cagebreak into development 2020-06-03 15:50:47 +02:00
project-repo
1661c449fb Fix rendering bugs 2020-06-03 15:50:38 +02:00
Cagebreak Signing Key 3
b08ec3692f Improve README wording 2020-06-03 15:28:33 +02:00
Cagebreak Signing Key 3
d71230cdfe Improve release checklist 2020-06-03 15:27:38 +02:00
Cagebreak Signing Key 1
65dfd15177 Fix README wording 2020-06-01 16:22:18 +02:00
Cagebreak Signing Key 1
46a9bf9e39 Improve README 2020-06-01 16:12:43 +02:00
Cagebreak Signing Key 1
a68462cb95 Add new keys with signatures 2020-06-01 13:51:04 +02:00
Cagebreak Signing Key 1
7bbf2f330a Improve section hierarchy 2020-06-01 12:51:26 +02:00
project-repo
cc0a97649b Improve README 2020-05-31 21:20:59 +02:00
Cagebreak Signing Key 1
e40fcaf737 Dissolve README section 2020-05-31 18:39:22 +02:00
Cagebreak Signing Key 1
a7c51888e1 Add missing section 2020-05-31 18:32:06 +02:00
Cagebreak Signing Key 1
78c5b30e81 Add more detailed installation instructions 2020-05-31 18:31:12 +02:00
Cagebreak Signing Key 1
5374b3728e Combine release checklist with branching strategy 2020-05-31 17:59:46 +02:00
Cagebreak Signing Key 1
f14261d455 Move signing key section 2020-05-31 17:58:26 +02:00
Cagebreak Signing Key 1
98e57c5341 Clarify branching strategy and versioning 2020-05-31 17:57:06 +02:00
Cagebreak Signing Key 1
bd43989987 Add more convenient link to man pages 2020-05-31 17:55:13 +02:00
Cagebreak Signing Key 1
9594434025 Move fanalyzer section in README 2020-05-31 17:14:57 +02:00
Cagebreak Signing Key 1
82093b2843 Improve release documentation 2020-05-29 17:36:38 +02:00
project-repo
35a15670ea Fix permission dropping 2020-05-29 16:13:52 +02:00
project-repo
4de82c076f Remove input device creation from fuzz-parse.c 2020-05-29 15:10:45 +02:00
project-repo
29da707463 Fix error in fuzz-lib 2020-05-29 15:10:30 +02:00
project-repo
c84e2c994e Remove erroneous comment 2020-05-29 14:57:33 +02:00
project-repo
9a8b6fa600 Fix fuzzer includes 2020-05-29 14:47:32 +02:00
project-repo
32dc8c3717 Restructure fuzzer 2020-05-29 14:42:01 +02:00
project-repo
5bd9164c3b Fix indentiing issues 2020-05-28 15:03:59 +02:00
project-repo
a277f06224 Ameliorate meson.build
- Only warn about compiler version missmatch in the case that
    the compilers are the same
2020-05-26 14:16:58 +02:00
Cagebreak Signing Key 1
30adf4b1a5 Merge branch 'master' into development 2020-05-26 11:58:50 +02:00
Cagebreak Signing Key 1
b10dfb287d Update signatures 2020-05-25 23:01:42 +02:00
Cagebreak Signing Key 1
9605d7c243 Update hashes 2020-05-25 22:59:25 +02:00
Cagebreak Signing Key 1
f9babbe522 Fix typo 2020-05-25 22:57:56 +02:00
Cagebreak Signing Key 1
2f366fb4ca Add 1.3.0 Changelog 2020-05-25 21:49:18 +02:00
project-repo
d8f801bb06 Reword manpage 2020-05-25 21:16:59 +02:00
Cagebreak Signing Key 1
43b06932d7 Add ipc documentation 2020-05-25 21:01:27 +02:00
Cagebreak Signing Key 1
816283cdb1 Apply clang-format 2020-05-25 20:13:33 +02:00
Cagebreak Signing Key 1
e98378bffd Fix quotation error 2020-05-25 20:04:29 +02:00
Cagebreak Signing Key 1
b8ba8186ec Update version number 2020-05-25 18:34:24 +02:00
Cagebreak Signing Key 1
8f67fc93f2 Merge branch 'ipc' into development 2020-05-25 18:13:12 +02:00
project-repo
8f9ed72201 Improve error handling 2020-05-25 17:45:19 +02:00
Cagebreak Signing Key 1
d11e744bc3 Add asset generation to release checklist 2020-05-25 13:59:55 +02:00
Cagebreak Signing Key 1
0990153323 Merge branch 'output_config' into development 2020-05-24 19:53:58 +02:00
Cagebreak Signing Key 1
dab657e2f3 Merge branch 'master' into development 2020-05-24 19:07:56 +02:00
Cagebreak Signing Key 1
08dc40376d Add hashes for 1.2.1 release 2020-05-24 18:40:53 +02:00
Cagebreak Signing Key 1
ab33d5c230 Add signatures for 1.2.1 release 2020-05-24 18:38:27 +02:00
Cagebreak Signing Key 1
66d3f51e68 Apply clang-format 2020-05-24 18:31:24 +02:00
Cagebreak Signing Key 1
b3e19cb9a0 Merge branch 'development' of https://github.com/project-repo/cagebreak into development 2020-05-24 18:28:49 +02:00
Cagebreak Signing Key 1
c3db5393b0 Add Issue 6 documentation 2020-05-24 18:27:20 +02:00
project-repo
8c3821c75e Add line length check to fuzzing infrastructure 2020-05-24 18:14:38 +02:00
Cagebreak Signing Key 1
eb86303e84 Fix reproducibility
- See Issue 5 in Bugs.md
2020-05-24 17:50:52 +02:00
Cagebreak Signing Key 1
82398c777b Apply clang-format 2020-05-23 17:53:41 +02:00
Cagebreak Signing Key 1
f55f70e867 Update version number 2020-05-23 17:27:34 +02:00
project-repo
f568f5379e Add error messaging to ipc 2020-05-23 09:16:18 +02:00
project-repo
68950664e3 Ameliorate README 2020-05-22 20:24:35 +02:00
Cagebreak Signing Key 1
64a305cd4c Fix highlighting 2020-05-22 17:23:20 +00:00
Cagebreak Signing Key 1
66683293b5 Prepare 1.2.1 release 2020-05-22 17:04:39 +00:00
Cagebreak Signing Key 1
07ec19e45e Add fanalyzer development documentation 2020-05-22 17:04:21 +00:00
project-repo
4bae00f593 Add fanalyzer flag by default if supported 2020-05-22 15:40:15 +02:00
project-repo
5c0d68e2e5 Ameliorate ipc 2020-05-22 09:05:41 +02:00
project-repo
fd9c301c4d Fix bug on startup 2020-05-22 00:22:28 +02:00
project-repo
4482bb495c Fix ordering of ipc 2020-05-21 23:16:57 +02:00
project-repo
0017ad48c5 Add ipc capability 2020-05-21 23:04:45 +02:00
project-repo
989438a1cb Fix compilation under clang 2020-05-21 19:36:35 +02:00
Cagebreak Signing Key 1
8e7f954b32 Fix typo 2020-05-21 16:00:53 +00:00
Cagebreak Signing Key 1
4b383b5574 Fix debug build fanalyzer warnings 2020-05-21 15:57:25 +00:00
Cagebreak Signing Key 1
7b83f7a319 Remove fanalyzer from meson.build 2020-05-21 15:36:28 +00:00
project-repo
af6adcc973 Fix null pointer dereference warning 2020-05-21 17:17:11 +02:00
Cagebreak Signing Key 1
19e1407983 Fix remaining fanalyzer errors 2020-05-21 13:33:32 +00:00
Cagebreak Signing Key 1
d797032694 Manage fanalyzer warnings with pragmas 2020-05-21 08:27:07 +00:00
Cagebreak Signing Key 1
3367d8e0ba Add formatting to release checklist 2020-05-20 19:12:00 +00:00
project-repo
9ac95ce69c Apply clang-format 2020-05-20 19:35:16 +02:00
project-repo
d23a73f2b9 Apply fixes suggested by -fanalyze 2020-05-20 11:53:46 +02:00
project-repo
b23d597c99 Merge branch 'development' of https://github.com/project-repo/cagebreak into development 2020-05-15 07:23:45 +02:00
Cagebreak Signing Key 1
b8607e366c Merge branch 'master' into development 2020-05-14 19:01:42 +00:00
Cagebreak Signing Key 1
a0a6b2625d Add release signature 2020-05-14 14:52:40 +00:00
project-repo
d163b321ad Merge branch 'development' of https://github.com/project-repo/cagebreak into development 2020-05-14 16:43:23 +02:00
Cagebreak Signing Key 1
212da7a345 Add binary hashes 2020-05-14 14:42:09 +00:00
Cagebreak Signing Key 1
9a5b26716f Remove -Wall because warning_level=3 includes it 2020-05-14 14:21:00 +00:00
Cagebreak Signing Key 1
91bf4913b2 Update dependency version 2020-05-14 13:26:34 +00:00
project-repo
da8d0304a6 Remove keyboard group from list on destroy 2020-04-12 09:07:54 +02:00
Cagebreak Signing Key 1
3f277d2b7f Prepare new release
- Update version numbers
2020-04-09 17:31:35 +00:00
project-repo
50be52b7fc Fix bug in fuzzer 2020-04-04 21:47:07 +02:00
project-repo
ce9b68d448 Squashed commit of the following:
commit 27fa2b70b9
Merge: 1a87477 6fdc55c
Author: Cagebreak Signing Key 1 <cagebreak_signing_key_1@cagebreak>
Date:   Mon Mar 2 18:45:11 2020 +0000

    Merge branch 'output_config' of https://github.com/project-repo/cagebreak into output_config

commit 6fdc55c9a5
Author: project-repo <cagebreak_signing_key_2@cagebreak>
Date:   Fri Feb 28 17:30:06 2020 +0100

    Add missing functionality to output configuration

commit 33d245b60b
Author: project-repo <cagebreak_signing_key_2@cagebreak>
Date:   Wed Feb 26 07:56:28 2020 +0100

    Add example of "output" command usage

commit 0d4bb36068
Author: project-repo <cagebreak_signing_key_2@cagebreak>
Date:   Wed Feb 26 07:55:25 2020 +0100

    Add documentation for "output" command

commit a2cc047132
Author: project-repo <cagebreak_signing_key_2@cagebreak>
Date:   Sun Feb 23 16:53:47 2020 +0100

    Add support for output layout configuration
2020-04-04 21:33:54 +02:00
Your Name
484ad8280e Make include paths more intuitive 2020-04-04 09:26:00 +02:00
Cagebreak Signing Key 1
a2fb7dab29 Merge branch 'master' into development 2020-04-02 21:34:05 +00:00
Cagebreak Signing Key 1
e2fd797138 Merge branch 'master' into development 2020-04-01 13:27:19 +00:00
Your Name
0f0631ee3b Merge branch 'development' of https://github.com/project-repo/cagebreak into development 2020-04-01 14:44:19 +02:00
Your Name
2bc16978fc Reorder commands 2020-04-01 14:43:48 +02:00
Cagebreak Signing Key 1
e0e6fd50bd Add release signature 2020-04-01 11:57:26 +00:00
Cagebreak Signing Key 1
e998b5b31d Merge branch 'development' of https://github.com/project-repo/cagebreak into development 2020-04-01 11:54:51 +00:00
Cagebreak Signing Key 1
ddae878c85 Update Hashes and release information 2020-04-01 11:54:29 +00:00
Your Name
9608770bc7 Add sanitizers to fuzzer workflow 2020-04-01 13:44:26 +02:00
Cagebreak Signing Key 1
f25e5d9ec3 Prepare 1.1.0 release
- adjust versions
- adapt documentation
2020-04-01 11:01:27 +00:00
Cagebreak Signing Key 1
e0e980d828 Fix merging error 2020-03-30 09:33:28 +00:00
Cagebreak Signing Key 1
fda713694a Merge branch 'merge_parse' into development 2020-03-30 09:27:39 +00:00
Your Name
d54c2ecea9 Fix version checking for server_protos 2020-03-29 23:13:12 +02:00
Cagebreak Signing Key 1
5ebc5bac65 Merge branch 'merge_parse' into development 2020-03-29 16:46:48 +00:00
Your Name
a1af1ca3ac Merge branch 'merge_parse' of https://github.com/project-repo/cagebreak into merge_parse 2020-03-29 18:02:59 +02:00
Your Name
3461b70baa Fix missing ifdef guards 2020-03-29 18:02:38 +02:00
Cagebreak Signing Key 1
c9e3e2dbee Merge branch 'merge_parse' into development 2020-03-29 13:00:55 +00:00
Cagebreak Signing Key 1
9c93e3d4e8 Prepare for merge 2020-03-29 12:51:26 +00:00
Cagebreak Signing Key 1
4bdc2640a7 Merge 1.0.6 for compatibility testing 2020-03-29 11:47:44 +00:00
Cagebreak Signing Key 1
6a1266bc21 Add current hashes and signatures 2020-03-29 09:46:25 +00:00
Cagebreak Signing Key 1
8eb17bc54b Update server_protos version 2020-03-29 09:37:22 +00:00
Your Name
c794d3519b Remove git hash from version 2020-03-29 10:33:28 +02:00
Cagebreak Signing Key 1
935cf11817 Merge branch 'reproducible_builds' into development 2020-03-28 21:53:53 +00:00
Your Name
1934b56fa1 Reword readme 2020-03-28 22:42:37 +01:00
Cagebreak Signing Key 1
b8749110f4 Merge branch 'reproducible_builds' into development 2020-03-28 21:35:43 +00:00
Cagebreak Signing Key 1
78fc95e098 Prepare cagebreak 1.0.6 for review
- Make build reproducible accross commits
- Document reproducibility regimen
2020-03-28 21:33:54 +00:00
Your Name
82512a5b52 Add missing dependency 2020-03-28 21:14:33 +01:00
project-repo
d40db590f5 Reword warning message 2020-03-28 09:11:11 +01:00
project-repo
741a0a4928 Add warning message on version missmatch 2020-03-28 09:09:24 +01:00
project-repo
9363a59b95 Apply clang-format 2020-03-21 14:31:06 +01:00
project-repo
14a15feebb Ameliorate fuzzing process 2020-03-21 10:07:24 +01:00
project-repo
30bfa9b689 Fix bugs in keybinding execution 2020-03-21 09:52:41 +01:00
project-repo
b11e2409c6 Add support for disabling messages when fuzzing 2020-03-21 09:51:35 +01:00
project-repo
8ffac22f1b Fix conventions for system include 2020-03-21 09:51:05 +01:00
project-repo
f6240e9f68 Fix potential double-free 2020-03-21 09:50:52 +01:00
project-repo
3035866d78 Fix parsing bugs 2020-03-21 09:50:42 +01:00
project-repo
0c7719011b Add fontconfig as dependency 2020-03-21 09:49:50 +01:00
project-repo
56ee91d396 Cleanup cairo and pandoc structures on exit 2020-03-21 09:49:16 +01:00
Cagebreak Signing Key 1
bdfbc4cd32 Prepare 1.0.5 release
- Summaize bug
- Increment version number
2020-03-13 13:07:01 +00:00
project-repo
e7ca6d693f Fix crash on view destroy 2020-03-12 22:08:52 +01:00
project-repo
cb46e463a3 Fix memory leaks 2020-03-06 21:04:29 +01:00
project-repo
54991cb638 Unify parsing of config file 2020-03-06 20:51:05 +01:00
Cagebreak Signing Key 1
27fa2b70b9 Merge branch 'output_config' of https://github.com/project-repo/cagebreak into output_config 2020-03-02 18:45:11 +00:00
Cagebreak Signing Key 1
1a87477e19 Merge branch 'master' into development 2020-03-02 18:43:45 +00:00
Cagebreak Signing Key 1
f10395a16e Prepare 1.0.4 release 2020-03-02 18:17:25 +00:00
Cagebreak Signing Key 1
8ebacb4a28 Improve README
- Add working merge process specification
2020-03-02 17:49:49 +00:00
project-repo
fa7101acc2 Merge branch 'development' of https://github.com/project-repo/cagebreak into development 2020-03-01 11:11:07 +01:00
project-repo
6ff175b048 Fix bug in consumed modifier handling 2020-03-01 11:08:49 +01:00
project-repo
6fdc55c9a5 Add missing functionality to output configuration 2020-02-28 17:30:06 +01:00
project-repo
33d245b60b Add example of "output" command usage 2020-02-26 07:56:28 +01:00
project-repo
0d4bb36068 Add documentation for "output" command 2020-02-26 07:55:25 +01:00
Cagebreak Signing Key 1
58746ee52f Adjust version number for 1.0.3 release 2020-02-25 12:57:49 +00:00
project-repo
a2cc047132 Add support for output layout configuration 2020-02-23 16:53:47 +01:00
Cagebreak Signing Key 1
80c8e51400 Merge branch keyboard_groups 2020-02-22 18:19:47 +00:00
Your Name
375e4d5ea5 Completely switch to wlr_keyboard_group 2020-02-22 09:45:34 +01:00
16 changed files with 278 additions and 175 deletions

View file

@ -18,6 +18,7 @@
#include <wayland-client.h> #include <wayland-client.h>
#include <wayland-server-core.h> #include <wayland-server-core.h>
#include <wlr/backend.h> #include <wlr/backend.h>
#include <wlr/backend/headless.h>
#include <wlr/render/allocator.h> #include <wlr/render/allocator.h>
#include <wlr/render/wlr_renderer.h> #include <wlr/render/wlr_renderer.h>
#include <wlr/types/wlr_compositor.h> #include <wlr/types/wlr_compositor.h>
@ -369,6 +370,7 @@ main(int argc, char *argv[]) {
server.event_loop = event_loop; server.event_loop = event_loop;
backend = wlr_backend_autocreate(server.wl_display); backend = wlr_backend_autocreate(server.wl_display);
server.headless_backend=wlr_headless_backend_create(server.wl_display);
if(!backend) { if(!backend) {
wlr_log(WLR_ERROR, "Unable to create the wlroots backend"); wlr_log(WLR_ERROR, "Unable to create the wlroots backend");
ret = 1; ret = 1;

View file

@ -249,8 +249,7 @@ swap_tile(struct cg_tile *tile,
"{\"event_name\":\"swap_tile\",\"tile_id\":%d,\"swap_" "{\"event_name\":\"swap_tile\",\"tile_id\":%d,\"swap_"
"tile_id\":%d,\"workspace\":%d,\"output\":\"%s\",\"output_id\":%d}", "tile_id\":%d,\"workspace\":%d,\"output\":\"%s\",\"output_id\":%d}",
tile->id, swap_tile->id, tile->workspace->num + 1, tile->id, swap_tile->id, tile->workspace->num + 1,
tile->workspace->output->wlr_output->name, tile->workspace->output->name, output_get_num(tile->workspace->output));
output_get_num(tile->workspace->output));
} }
void void
@ -400,8 +399,7 @@ resize(struct cg_tile *tile, const struct cg_tile *parent, int coord_offset,
"\"workspace\":%d,\"output\":\"%s\",\"output_id\":%d}", "\"workspace\":%d,\"output\":\"%s\",\"output_id\":%d}",
tile->id, old_x, old_y, old_height, old_width, tile->tile.x, tile->id, old_x, old_y, old_height, old_width, tile->tile.x,
tile->tile.y, tile->tile.height, tile->tile.width, tile->tile.y, tile->tile.height, tile->tile.width,
tile->workspace->num + 1, tile->workspace->num + 1, tile->workspace->output->name,
tile->workspace->output->wlr_output->name,
output_get_num(tile->workspace->output)); output_get_num(tile->workspace->output));
} }
@ -456,18 +454,18 @@ resize_vertical(struct cg_tile *tile, struct cg_tile *parent, int y_offset,
void void
resize_tile(struct cg_server *server, int hpixs, int vpixs) { resize_tile(struct cg_server *server, int hpixs, int vpixs) {
struct cg_output *output = server->curr_output; struct cg_output *output = server->curr_output;
struct wlr_box output_box;
wlr_output_layout_get_box(output->server->output_layout, output->wlr_output,
&output_box);
struct cg_tile *focused = struct cg_tile *focused =
output->workspaces[output->curr_workspace]->focused_tile; output->workspaces[output->curr_workspace]->focused_tile;
/* First do the horizontal adjustment */ /* First do the horizontal adjustment */
if(hpixs != 0 && focused->tile.width < output_box.width && if(hpixs != 0 &&
is_between_strict(0, output_box.width, focused->tile.width + hpixs)) { focused->tile.width < output_get_layout_box(output).width &&
is_between_strict(0, output_get_layout_box(output).width,
focused->tile.width + hpixs)) {
int x_offset = 0; int x_offset = 0;
/* In case we are on the total right, move the left edge of the tile */ /* In case we are on the total right, move the left edge of the tile */
if(focused->tile.x + focused->tile.width == output_box.width) { if(focused->tile.x + focused->tile.width ==
output_get_layout_box(output).width) {
x_offset = -hpixs; x_offset = -hpixs;
} }
bool resize_allowed = bool resize_allowed =
@ -477,10 +475,13 @@ resize_tile(struct cg_server *server, int hpixs, int vpixs) {
} }
} }
/* Repeat for vertical */ /* Repeat for vertical */
if(vpixs != 0 && focused->tile.height < output_box.height && if(vpixs != 0 &&
is_between_strict(0, output_box.height, focused->tile.height + vpixs)) { focused->tile.height < output_get_layout_box(output).height &&
is_between_strict(0, output_get_layout_box(output).height,
focused->tile.height + vpixs)) {
int y_offset = 0; int y_offset = 0;
if(focused->tile.y + focused->tile.height == output_box.height) { if(focused->tile.y + focused->tile.height ==
output_get_layout_box(output).height) {
y_offset = -vpixs; y_offset = -vpixs;
} }
bool resize_allowed = bool resize_allowed =
@ -501,7 +502,7 @@ keybinding_workspace_fullscreen(struct cg_server *server) {
"\"workspace\":%d,\"output\":\"%s\",\"output_id\":%d}", "\"workspace\":%d,\"output\":\"%s\",\"output_id\":%d}",
output->workspaces[output->curr_workspace]->focused_tile->id, output->workspaces[output->curr_workspace]->focused_tile->id,
output->workspaces[output->curr_workspace]->num + 1, output->workspaces[output->curr_workspace]->num + 1,
output->wlr_output->name, output_get_num(output)); output->name, output_get_num(output));
} }
// Switch to a differerent virtual terminal // Switch to a differerent virtual terminal
@ -595,8 +596,8 @@ keybinding_split_output(struct cg_output *output, bool vertical) {
"{\"event_name\":\"split\",\"tile_id\":%d,\"new_tile_id\":%d," "{\"event_name\":\"split\",\"tile_id\":%d,\"new_tile_id\":%d,"
"\"workspace\":%d,\"output\":\"%s\",\"output_id\":%d,\"vertical\":%d}", "\"workspace\":%d,\"output\":\"%s\",\"output_id\":%d,\"vertical\":%d}",
curr_workspace->focused_tile->id, new_tile->id, curr_workspace->num + 1, curr_workspace->focused_tile->id, new_tile->id, curr_workspace->num + 1,
curr_workspace->output->wlr_output->name, curr_workspace->output->name, output_get_num(curr_workspace->output),
output_get_num(curr_workspace->output), vertical); vertical);
} }
static void static void
@ -614,8 +615,7 @@ keybinding_close_view(struct cg_view *view) {
outp->server, outp->server,
"{\"event_name\":\"close\",\"view_id\":%d,\"view_pid\":%d,\"tile_id\":" "{\"event_name\":\"close\",\"view_id\":%d,\"view_pid\":%d,\"tile_id\":"
"%d,\"workspace\":%d,\"output\":\"%s\",\"output_id\":%d}", "%d,\"workspace\":%d,\"output\":\"%s\",\"output_id\":%d}",
view_id, view_pid, tile_id, ws + 1, outp->wlr_output->name, view_id, view_pid, tile_id, ws + 1, outp->name, output_get_num(outp));
output_get_num(outp));
} }
static void static void
@ -670,8 +670,8 @@ keybinding_cycle_outputs(struct cg_server *server, bool reverse,
"{\"event_name\":\"cycle_outputs\",\"old_output\":\"%s\",\"old_" "{\"event_name\":\"cycle_outputs\",\"old_output\":\"%s\",\"old_"
"output_id\":%d," "output_id\":%d,"
"\"new_output\":\"%s\",\"new_output_id\":%d,\"reverse\":%d}", "\"new_output\":\"%s\",\"new_output_id\":%d,\"reverse\":%d}",
old_output->wlr_output->name, output_get_num(old_output), old_output->name, output_get_num(old_output), output->name,
output->wlr_output->name, output_get_num(output), reverse); output_get_num(output), reverse);
} }
} }
@ -721,7 +721,7 @@ keybinding_cycle_views(struct cg_server *server, bool reverse, bool ipc) {
curr_id, curr_pid, next_view == NULL ? -1 : (int)next_view->id, curr_id, curr_pid, next_view == NULL ? -1 : (int)next_view->id,
next_view == NULL ? -1 : (int)next_view->impl->get_pid(next_view), next_view == NULL ? -1 : (int)next_view->impl->get_pid(next_view),
next_view->tile->id, curr_workspace->num + 1, next_view->tile->id, curr_workspace->num + 1,
curr_workspace->output->wlr_output->name, curr_workspace->output->name,
output_get_num(curr_workspace->output)); output_get_num(curr_workspace->output));
} }
} }
@ -744,7 +744,7 @@ keybinding_focus_tile(struct cg_server *server, uint32_t tile_id) {
"{\"event_name\":\"focus_tile\",\"old_tile_id\":%d,\"new_tile_" "{\"event_name\":\"focus_tile\",\"old_tile_id\":%d,\"new_tile_"
"id\":%d,\"workspace\":%d,\"output\":\"%s\",\"output_id\":%d}", "id\":%d,\"workspace\":%d,\"output\":\"%s\",\"output_id\":%d}",
old_tile->id, workspace->focused_tile->id, workspace->num + 1, old_tile->id, workspace->focused_tile->id, workspace->num + 1,
output->wlr_output->name, output_get_num(output)); output->name, output_get_num(output));
break; break;
} }
} }
@ -778,8 +778,7 @@ keybinding_switch_ws(struct cg_server *server, uint32_t ws) {
ipc_send_event(output->server, ipc_send_event(output->server,
"{\"event_name\":\"switch_ws\",\"old_workspace\":%d," "{\"event_name\":\"switch_ws\",\"old_workspace\":%d,"
"\"new_workspace\":%d,\"output\":\"%s\",\"output_id\":%d}", "\"new_workspace\":%d,\"output\":\"%s\",\"output_id\":%d}",
old_ws + 1, ws + 1, output->wlr_output->name, old_ws + 1, ws + 1, output->name, output_get_num(output));
output_get_num(output));
return 0; return 0;
} }
@ -1019,19 +1018,17 @@ print_output(struct cg_output *outp) {
struct dyn_str outp_str; struct dyn_str outp_str;
outp_str.len = 0; outp_str.len = 0;
outp_str.cur_pos = 0; outp_str.cur_pos = 0;
uint32_t nmemb = 8; uint32_t nmemb = 9;
struct wlr_box outp_box;
wlr_output_layout_get_box(outp->server->output_layout, outp->wlr_output,
&outp_box);
outp_str.str_arr = calloc(nmemb, sizeof(char *)); outp_str.str_arr = calloc(nmemb, sizeof(char *));
print_str(&outp_str, "\"%s\": {\n", outp->wlr_output->name); print_str(&outp_str, "\"%s\": {\n", outp->name);
print_str(&outp_str, "\"priority\": %d,\n", outp->priority); print_str(&outp_str, "\"priority\": %d,\n", outp->priority);
print_str(&outp_str, "\"coords\": {\"x\":%d,\"y\":%d},\n", outp_box.x, print_str(&outp_str, "\"coords\": {\"x\":%d,\"y\":%d},\n",
outp_box.y); output_get_layout_box(outp).x, output_get_layout_box(outp).y);
print_str(&outp_str, "\"size\": {\"width\":%d,\"height\":%d},\n", print_str(&outp_str, "\"size\": {\"width\":%d,\"height\":%d},\n",
outp->wlr_output->width, outp->wlr_output->height); outp->wlr_output->width, outp->wlr_output->height);
print_str(&outp_str, "\"refresh_rate\": %f,\n", print_str(&outp_str, "\"refresh_rate\": %f,\n",
(float)outp->wlr_output->refresh / 1000.0); (float)outp->wlr_output->refresh / 1000.0);
print_str(&outp_str, "\"permanent\": %d,\n", outp->role == OUTPUT_ROLE_PERMANENT);
print_str(&outp_str, "\"curr_workspace\": %d,\n", outp->curr_workspace + 1); print_str(&outp_str, "\"curr_workspace\": %d,\n", outp->curr_workspace + 1);
char *workspaces_str = print_workspaces(outp); char *workspaces_str = print_workspaces(outp);
if(workspaces_str != NULL) { if(workspaces_str != NULL) {
@ -1202,8 +1199,7 @@ keybinding_dump(struct cg_server *server) {
} }
print_str(&str, "\"views_curr_id\":%d,\n", curr_view_id); print_str(&str, "\"views_curr_id\":%d,\n", curr_view_id);
print_str(&str, "\"tiles_curr_id\":%d,\n", curr_tile_id); print_str(&str, "\"tiles_curr_id\":%d,\n", curr_tile_id);
print_str(&str, "\"curr_output\":\"%s\",\n", print_str(&str, "\"curr_output\":\"%s\",\n", server->curr_output->name);
server->curr_output->wlr_output->name);
print_str(&str, "\"default_mode\":\"%s\",\n", print_str(&str, "\"default_mode\":\"%s\",\n",
get_mode_name(server->modes, server->seat->default_mode)); get_mode_name(server->modes, server->seat->default_mode));
print_modes(&str, server->modes); print_modes(&str, server->modes);
@ -1298,9 +1294,8 @@ keybinding_move_view_to_cycle_output(struct cg_server *server, bool reverse) {
"{\"event_name\":\"move_view_to_cycle_output\",\"view_id\":%d,\"view_" "{\"event_name\":\"move_view_to_cycle_output\",\"view_id\":%d,\"view_"
"pid\":%d,\"old_output\":\"%s\",\"old_output_id\":%d,\"new_output\":\"%" "pid\":%d,\"old_output\":\"%s\",\"old_output_id\":%d,\"new_output\":\"%"
"s\",\"new_output_id\":%d,\"old_tile_id\":%d,\"new_tile_id\":%d}", "s\",\"new_output_id\":%d,\"old_tile_id\":%d,\"new_tile_id\":%d}",
id, pid, old_outp->wlr_output->name, output_get_num(old_outp), id, pid, old_outp->name, output_get_num(old_outp),
server->curr_output->wlr_output->name, server->curr_output->name, output_get_num(server->curr_output),
output_get_num(server->curr_output),
old_outp->workspaces[old_outp->curr_workspace]->focused_tile->id, old_outp->workspaces[old_outp->curr_workspace]->focused_tile->id,
server->curr_output->workspaces[server->curr_output->curr_workspace] server->curr_output->workspaces[server->curr_output->curr_workspace]
->focused_tile->id); ->focused_tile->id);
@ -1422,8 +1417,8 @@ keybinding_switch_output(struct cg_server *server, int output) {
"{\"event_name\":\"switch_output\",\"old_output\":" "{\"event_name\":\"switch_output\",\"old_output\":"
"\"%s\",\"old_output_id\":%d,\"new_output\":\"%s\"," "\"%s\",\"old_output_id\":%d,\"new_output\":\"%s\","
"\"new_output_id\":%d}", "\"new_output_id\":%d}",
old_outp->wlr_output->name, output_get_num(old_outp), old_outp->name, output_get_num(old_outp), it->name,
it->wlr_output->name, output_get_num(it)); output_get_num(it));
return; return;
} }
++count; ++count;
@ -1469,8 +1464,7 @@ keybinding_move_view_to_output(struct cg_server *server, int output_num) {
server, server,
"{\"event_name\":\"move_view_to_output\",\"view_id\":%d,\"old_" "{\"event_name\":\"move_view_to_output\",\"view_id\":%d,\"old_"
"output\":\"%s\",\"new_output\":\"%s\"}", "output\":\"%s\",\"new_output\":\"%s\"}",
view_id, old_outp->wlr_output->name, view_id, old_outp->name, server->curr_output->name);
server->curr_output->wlr_output->name);
} }
void void
@ -1505,7 +1499,7 @@ keybinding_move_view_to_workspace(struct cg_server *server, uint32_t ws) {
"\"old_workspace\":%d,\"new_workspace\":%d," "\"old_workspace\":%d,\"new_workspace\":%d,"
"\"output\":\"%s\",\"output_id\":%d,\"view_pid\":%d}", "\"output\":\"%s\",\"output_id\":%d,\"view_pid\":%d}",
view == NULL ? -1 : (int)view->id, old_ws + 1, ws + 1, view == NULL ? -1 : (int)view->id, old_ws + 1, ws + 1,
server->curr_output->wlr_output->name, server->curr_output->name,
output_get_num(server->curr_output), output_get_num(server->curr_output),
view == NULL ? 0 : view->impl->get_pid(view)); view == NULL ? 0 : view->impl->get_pid(view));
} }
@ -1554,17 +1548,18 @@ keybinding_configure_output(struct cg_server *server,
struct cg_output *output, *tmp_output; struct cg_output *output, *tmp_output;
wl_list_for_each_safe(output, tmp_output, &server->outputs, link) { wl_list_for_each_safe(output, tmp_output, &server->outputs, link) {
if(strcmp(config->output_name, output->wlr_output->name) == 0) { if(strcmp(config->output_name, output->name) == 0) {
int output_num=output_get_num(output);
output_configure(server, output); output_configure(server, output);
ipc_send_event(output->server, ipc_send_event(server,
"{\"event_name\":\"configure_output\",\"output\":\"%" "{\"event_name\":\"configure_output\",\"output\":\"%"
"s\",\"output_id\":%d}", "s\",\"output_id\":%d}",
cfg->output_name, output_get_num(output)); cfg->output_name, output_num);
return; return;
} }
} }
wl_list_for_each_safe(output, tmp_output, &server->disabled_outputs, link) { wl_list_for_each_safe(output, tmp_output, &server->disabled_outputs, link) {
if(strcmp(config->output_name, output->wlr_output->name) == 0) { if(strcmp(config->output_name, output->name) == 0) {
output_configure(server, output); output_configure(server, output);
ipc_send_event( ipc_send_event(
output->server, output->server,

View file

@ -219,7 +219,7 @@ output_by_name_or_id(const char *name_or_id, struct cg_server *server) {
char identifier[128]; char identifier[128];
output_get_identifier(identifier, sizeof(identifier), output); output_get_identifier(identifier, sizeof(identifier), output);
if(strcasecmp(identifier, name_or_id) == 0 || if(strcasecmp(identifier, name_or_id) == 0 ||
strcasecmp(output->wlr_output->name, name_or_id) == 0) { strcasecmp(output->name, name_or_id) == 0) {
return output; return output;
} }
} }

View file

@ -271,7 +271,7 @@ message <text>
*only* *only*
Remove all splits and make current window fill the entire screen Remove all splits and make current window fill the entire screen
*output <name> [[pos <xpos> <ypos> res <width>x<height> rate <rate> [scale <scale>]] | enable | disable | prio <n> | rotate <n>]* *output <name> [[pos <xpos> <ypos> res <width>x<height> rate <rate> [scale <scale>]] | enable | disable | [permanent|peripheral] | prio <n> | rotate <n>]*
Configure output "<name>" - Configure output "<name>" -
- <xpos> and <ypos> are the position of the - <xpos> and <ypos> are the position of the
monitor in pixels. The top-left monitor should have the coordinates 0 0. monitor in pixels. The top-left monitor should have the coordinates 0 0.
@ -281,6 +281,15 @@ message <text>
- enable and disable enable or disable <name>. Note that if - enable and disable enable or disable <name>. Note that if
<output> is the only enabled output, *output <output> disable* has <output> is the only enabled output, *output <output> disable* has
no effect. no effect.
- permanent sets <name> to persist even on disconnect. Thus when
the physical monitor is disconnected, the output is nevertheless
maintained and operates identically to the attached monitor. On reconnect,
the monitor operates as though it was never disconnected. Setting the
output role to peripheral when the monitor is disconnected, immediately
destroys the output, as if the monitor were disconnected.
- peripheral sets the role of <name> to peripheral, meaning that on
disconnecting the respective monitor, all views will be moved to another
available output. The default role is peripheral.
- prio <n> is used to set the priority of an output. If - prio <n> is used to set the priority of an output. If
nothing else is set, outputs are added as they request to be added nothing else is set, outputs are added as they request to be added
and have a numerical priority of -1. Using prio <n> it is possible and have a numerical priority of -1. Using prio <n> it is possible

View file

@ -236,17 +236,18 @@ message_set_output(struct cg_output *output, const char *string,
wlr_scene_buffer_create(&scene_output->scene->tree, &buf->base); wlr_scene_buffer_create(&scene_output->scene->tree, &buf->base);
wlr_scene_node_raise_to_top(&message->message->node); wlr_scene_node_raise_to_top(&message->message->node);
wlr_scene_node_set_enabled(&message->message->node, true); wlr_scene_node_set_enabled(&message->message->node, true);
struct wlr_box outp_box;
wlr_output_layout_get_box(output->server->output_layout, output->wlr_output,
&outp_box);
wlr_scene_buffer_set_dest_size(message->message, width, height); wlr_scene_buffer_set_dest_size(message->message, width, height);
wlr_scene_node_set_position(&message->message->node, wlr_scene_node_set_position(
message->position->x + outp_box.x, &message->message->node,
message->position->y + outp_box.y); message->position->x + output_get_layout_box(output).x,
message->position->y + output_get_layout_box(output).y);
} }
void void
message_printf(struct cg_output *output, const char *fmt, ...) { message_printf(struct cg_output *output, const char *fmt, ...) {
if(output->destroyed) {
return;
}
va_list ap; va_list ap;
va_start(ap, fmt); va_start(ap, fmt);
char *buffer = malloc_vsprintf_va_list(fmt, ap); char *buffer = malloc_vsprintf_va_list(fmt, ap);
@ -262,11 +263,7 @@ message_printf(struct cg_output *output, const char *fmt, ...) {
free(buffer); free(buffer);
return; return;
} }
struct wlr_box output_box; box->x = output_get_layout_box(output).width;
wlr_output_layout_get_box(output->server->output_layout, output->wlr_output,
&output_box);
box->x = output_box.width;
box->y = 0; box->y = 0;
box->width = 0; box->width = 0;
box->height = 0; box->height = 0;
@ -282,6 +279,10 @@ message_printf(struct cg_output *output, const char *fmt, ...) {
void void
message_printf_pos(struct cg_output *output, struct wlr_box *position, message_printf_pos(struct cg_output *output, struct wlr_box *position,
const enum cg_message_align align, const char *fmt, ...) { const enum cg_message_align align, const char *fmt, ...) {
if(output->destroyed) {
free(position);
return;
}
uint16_t buf_len = 256; uint16_t buf_len = 256;
char *buffer = (char *)malloc(buf_len * sizeof(char)); char *buffer = (char *)malloc(buf_len * sizeof(char));
va_list ap; va_list ap;

206
output.c
View file

@ -14,6 +14,7 @@
#if WLR_HAS_X11_BACKEND #if WLR_HAS_X11_BACKEND
#include <wlr/backend/x11.h> #include <wlr/backend/x11.h>
#endif #endif
#include <wlr/backend/headless.h>
#include <wlr/types/wlr_compositor.h> #include <wlr/types/wlr_compositor.h>
#include <wlr/types/wlr_data_device.h> #include <wlr/types/wlr_data_device.h>
#include <wlr/types/wlr_output.h> #include <wlr/types/wlr_output.h>
@ -103,7 +104,7 @@ output_get_num(const struct cg_output *output) {
struct cg_output *it; struct cg_output *it;
int count = 1; int count = 1;
wl_list_for_each(it, &output->server->outputs, link) { wl_list_for_each(it, &output->server->outputs, link) {
if(strcmp(output->wlr_output->name, it->wlr_output->name) == 0) { if(strcmp(output->name, it->name) == 0) {
return count; return count;
} }
++count; ++count;
@ -111,34 +112,54 @@ output_get_num(const struct cg_output *output) {
return -1; return -1;
} }
struct wlr_box
output_get_layout_box(struct cg_output *output) {
if(!output->destroyed) {
wlr_output_layout_get_box(output->server->output_layout,
output->wlr_output, &output->layout_box);
}
return output->layout_box;
}
static void static void
output_destroy(struct cg_output *output) { output_destroy(struct cg_output *output) {
struct cg_server *server = output->server; struct cg_server *server = output->server;
char *outp_name = strdup(output->wlr_output->name); char *outp_name = strdup(output->name);
int outp_num = output_get_num(output); int outp_num = output_get_num(output);
wl_list_remove(&output->destroy.link); if(output->destroyed == false) {
wl_list_remove(&output->mode.link); wl_list_remove(&output->destroy.link);
wl_list_remove(&output->commit.link); wl_list_remove(&output->mode.link);
wl_list_remove(&output->frame.link); wl_list_remove(&output->commit.link);
wl_list_remove(&output->frame.link);
output_clear(output);
/*Important: due to unfortunate events, "workspace" and "output->workspace"
* have nothing in common. The former is the workspace of a single output,
* whereas the latter is the workspace of the outputs.*/
for(unsigned int i = 0; i < server->nws; ++i) {
workspace_free(output->workspaces[i]);
} }
free(output->workspaces); output->destroyed = true;
enum output_role role = output->role;
if(role == OUTPUT_ROLE_PERMANENT) {
wlr_output_layout_get_box(server->output_layout, output->wlr_output,
&output->layout_box);
wlr_output_layout_remove(server->output_layout, output->wlr_output);
output->wlr_output=wlr_headless_add_output(server->headless_backend,output->layout_box.width,output->layout_box.height);
wlr_output_layout_add(server->output_layout, output->wlr_output, output->layout_box.x,
output->layout_box.y);
free(output); } else {
output_clear(output);
for(unsigned int i = 0; i < server->nws; ++i) {
workspace_free(output->workspaces[i]);
}
free(output->workspaces);
free(output->name);
free(output);
}
if(outp_name != NULL) { if(outp_name != NULL) {
ipc_send_event(server, ipc_send_event(server,
"{\"event_name\":\"destroy_output\",\"output\":\"%s\"," "{\"event_name\":\"destroy_output\",\"output\":\"%s\","
"\"output_id\":%d}", "\"output_id\":%d,\"permanent\":%d}",
outp_name, outp_num); outp_name, outp_num, role == OUTPUT_ROLE_PERMANENT);
free(outp_name); free(outp_name);
} else { } else {
wlr_log(WLR_ERROR, wlr_log(WLR_ERROR,
@ -258,6 +279,15 @@ output_apply_config(struct cg_server *server, struct cg_output *output,
struct cg_output_config *config) { struct cg_output_config *config) {
struct wlr_output *wlr_output = output->wlr_output; struct wlr_output *wlr_output = output->wlr_output;
if(config->role != OUTPUT_ROLE_DEFAULT) {
output->role = config->role;
if((output->role == OUTPUT_ROLE_PERIPHERAL)&&(output->destroyed == true)) {
output_destroy(output);
wlr_output_destroy(wlr_output);
return;
}
}
if(output->wlr_output->enabled) { if(output->wlr_output->enabled) {
wlr_output_layout_remove(server->output_layout, wlr_output); wlr_output_layout_remove(server->output_layout, wlr_output);
} }
@ -292,6 +322,13 @@ output_apply_config(struct cg_server *server, struct cg_output *output,
} }
} else { } else {
wlr_output_layout_add_auto(server->output_layout, wlr_output); wlr_output_layout_add_auto(server->output_layout, wlr_output);
// The following two lines make sure that the output is "manually" managed,
// so that its position doesn't change anymore in the future.
wlr_output_layout_get_box(server->output_layout, output->wlr_output,
&output->layout_box);
wlr_output_layout_move(server->output_layout, output->wlr_output, output->layout_box.x,
output->layout_box.y);
struct wlr_output_mode *preferred_mode = struct wlr_output_mode *preferred_mode =
wlr_output_preferred_mode(wlr_output); wlr_output_preferred_mode(wlr_output);
@ -325,9 +362,11 @@ output_apply_config(struct cg_server *server, struct cg_output *output,
output->bg = wlr_scene_rect_create( output->bg = wlr_scene_rect_create(
&scene_output->scene->tree, output->wlr_output->width, &scene_output->scene->tree, output->wlr_output->width,
output->wlr_output->height, server->bg_color); output->wlr_output->height, server->bg_color);
struct wlr_box box; wlr_output_layout_get_box(server->output_layout, output->wlr_output,
wlr_output_layout_get_box(server->output_layout, output->wlr_output, &box); &output->layout_box);
wlr_scene_node_set_position(&output->bg->node, box.x, box.y); wlr_scene_node_set_position(&output->bg->node,
output_get_layout_box(output).x,
output_get_layout_box(output).y);
wlr_scene_node_lower_to_bottom(&output->bg->node); wlr_scene_node_lower_to_bottom(&output->bg->node);
} }
@ -340,6 +379,7 @@ empty_output_config(void) {
} }
cfg->status = OUTPUT_DEFAULT; cfg->status = OUTPUT_DEFAULT;
cfg->role = OUTPUT_ROLE_DEFAULT;
cfg->pos.x = -1; cfg->pos.x = -1;
cfg->pos.y = -1; cfg->pos.y = -1;
cfg->pos.width = -1; cfg->pos.width = -1;
@ -363,6 +403,11 @@ merge_output_configs(struct cg_output_config *cfg1,
} else { } else {
out_cfg->status = cfg1->status; out_cfg->status = cfg1->status;
} }
if(cfg1->role == out_cfg->role) {
out_cfg->role = cfg2->role;
} else {
out_cfg->role = cfg1->role;
}
if(cfg1->pos.x == out_cfg->pos.x) { if(cfg1->pos.x == out_cfg->pos.x) {
out_cfg->pos.x = cfg2->pos.x; out_cfg->pos.x = cfg2->pos.x;
out_cfg->pos.y = cfg2->pos.y; out_cfg->pos.y = cfg2->pos.y;
@ -411,7 +456,7 @@ output_configure(struct cg_server *server, struct cg_output *output) {
struct cg_output_config *tot_config = empty_output_config(); struct cg_output_config *tot_config = empty_output_config();
struct cg_output_config *config; struct cg_output_config *config;
wl_list_for_each(config, &server->output_config, link) { wl_list_for_each(config, &server->output_config, link) {
if(strcmp(config->output_name, output->wlr_output->name) == 0) { if(strcmp(config->output_name, output->name) == 0) {
if(tot_config == NULL) { if(tot_config == NULL) {
return; return;
} }
@ -484,7 +529,7 @@ output_make_workspace_fullscreen(struct cg_output *output, int ws) {
} }
workspace_free_tiles(output->workspaces[ws]); workspace_free_tiles(output->workspaces[ws]);
if(full_screen_workspace_tiles(server->output_layout, output->wlr_output, if(full_screen_workspace_tiles(server->output_layout,
output->workspaces[ws], output->workspaces[ws],
&server->tiles_curr_id) != 0) { &server->tiles_curr_id) != 0) {
wlr_log(WLR_ERROR, "Failed to allocate space for fullscreen workspace"); wlr_log(WLR_ERROR, "Failed to allocate space for fullscreen workspace");
@ -516,58 +561,88 @@ handle_new_output(struct wl_listener *listener, void *data) {
return; return;
} }
struct cg_output *output = calloc(1, sizeof(struct cg_output)); struct cg_output *ito;
bool reinit = false;
struct cg_output *output = NULL;
wl_list_for_each(ito, &server->outputs, link) {
if((strcmp(ito->name, wlr_output->name) == 0) && (ito->destroyed)) {
reinit = true;
output = ito;
}
}
if(reinit) {
wlr_output_layout_remove(server->output_layout, output->wlr_output);
wlr_output_destroy(output->wlr_output);
} else {
output = calloc(1, sizeof(struct cg_output));
}
if(!output) { if(!output) {
wlr_log(WLR_ERROR, "Failed to allocate output"); wlr_log(WLR_ERROR, "Failed to allocate output");
return; return;
} }
output->wlr_output = wlr_output; output->wlr_output = wlr_output;
output->server = server; output->destroyed = false;
output->last_scanned_out_view = NULL;
struct cg_output_priorities *it; if(!reinit) {
int prio = -1; output->server = server;
wl_list_for_each(it, &server->output_priorities, link) { output->last_scanned_out_view = NULL;
if(strcmp(output->wlr_output->name, it->ident) == 0) { output->name = strdup(wlr_output->name);
prio = it->priority;
struct cg_output_priorities *it;
int prio = -1;
wl_list_for_each(it, &server->output_priorities, link) {
if(strcmp(output->name, it->ident) == 0) {
prio = it->priority;
}
} }
} output->priority = prio;
output->priority = prio; wlr_output_set_transform(wlr_output, WL_OUTPUT_TRANSFORM_NORMAL);
wlr_output_set_transform(wlr_output, WL_OUTPUT_TRANSFORM_NORMAL); output->workspaces = NULL;
output->workspaces = NULL;
wl_list_init(&output->messages); wl_list_init(&output->messages);
if(!wlr_xcursor_manager_load(server->seat->xcursor_manager, if(!wlr_xcursor_manager_load(server->seat->xcursor_manager,
wlr_output->scale)) { wlr_output->scale)) {
wlr_log(WLR_ERROR, wlr_log(WLR_ERROR,
"Cannot load XCursor theme for output '%s' with scale %f", "Cannot load XCursor theme for output '%s' with scale %f",
wlr_output->name, wlr_output->scale); output->name, wlr_output->scale);
}
output_insert(server, output);
output_configure(server, output);
output->workspaces = malloc(server->nws * sizeof(struct cg_workspace *));
for(unsigned int i = 0; i < server->nws; ++i) {
output->workspaces[i] = full_screen_workspace(output);
if(!output->workspaces[i]) {
wlr_log(WLR_ERROR, "Failed to allocate workspaces for output");
return;
} }
output->workspaces[i]->num = i;
wl_list_init(&output->workspaces[i]->views); output_insert(server, output);
wl_list_init(&output->workspaces[i]->unmanaged_views); output_configure(server, output);
wlr_output_layout_get_box(server->output_layout, output->wlr_output,
&output->layout_box);
output->workspaces =
malloc(server->nws * sizeof(struct cg_workspace *));
for(unsigned int i = 0; i < server->nws; ++i) {
output->workspaces[i] = full_screen_workspace(output);
if(!output->workspaces[i]) {
wlr_log(WLR_ERROR, "Failed to allocate workspaces for output");
return;
}
output->workspaces[i]->num = i;
wl_list_init(&output->workspaces[i]->views);
wl_list_init(&output->workspaces[i]->unmanaged_views);
}
wlr_scene_node_raise_to_top(&output->workspaces[0]->scene->node);
workspace_focus(output, 0);
/* We are the first output. Set the current output to this one. */
if(server->curr_output == NULL) {
server->curr_output = output;
}
} else {
wlr_output_layout_add(server->output_layout, wlr_output,
output_get_layout_box(output).x,
output_get_layout_box(output).y);
output_configure(server, output);
wlr_output_layout_get_box(server->output_layout, output->wlr_output,
&output->layout_box);
} }
wlr_scene_node_raise_to_top(&output->workspaces[0]->scene->node);
workspace_focus(output, 0);
/* We are the first output. Set the current output to this one. */
if(server->curr_output == NULL) {
server->curr_output = output;
}
wlr_xcursor_manager_set_cursor_image(server->seat->xcursor_manager, wlr_xcursor_manager_set_cursor_image(server->seat->xcursor_manager,
DEFAULT_XCURSOR, server->seat->cursor); DEFAULT_XCURSOR, server->seat->cursor);
wlr_cursor_warp(server->seat->cursor, NULL, 0, 0); wlr_cursor_warp(server->seat->cursor, NULL, 0, 0);
@ -580,11 +655,12 @@ handle_new_output(struct wl_listener *listener, void *data) {
wl_signal_add(&wlr_output->events.commit, &output->commit); wl_signal_add(&wlr_output->events.commit, &output->commit);
output->mode.notify = handle_output_mode; output->mode.notify = handle_output_mode;
wl_signal_add(&wlr_output->events.mode, &output->mode); wl_signal_add(&wlr_output->events.mode, &output->mode);
ipc_send_event(server, ipc_send_event(server,
"{\"event_name\":\"new_output\",\"output\":\"%s\",\"output_" "{\"event_name\":\"new_output\",\"output\":\"%s\",\"output_"
"id\":%d,\"priority\":%d}", "id\":%d,\"priority\":%d,\"restart\":%d}",
output->wlr_output->name, output_get_num(output), output->name, output_get_num(output), output->priority,
output->priority); reinit);
} }
#if CG_HAS_FANALYZE #if CG_HAS_FANALYZE
#pragma GCC diagnostic pop #pragma GCC diagnostic pop

View file

@ -12,6 +12,12 @@ struct cg_view;
struct wlr_output; struct wlr_output;
struct wlr_surface; struct wlr_surface;
enum output_role {
OUTPUT_ROLE_PERIPHERAL,
OUTPUT_ROLE_PERMANENT,
OUTPUT_ROLE_DEFAULT
};
struct cg_output { struct cg_output {
struct cg_server *server; struct cg_server *server;
struct wlr_output *wlr_output; struct wlr_output *wlr_output;
@ -23,9 +29,13 @@ struct cg_output {
struct wl_listener frame; struct wl_listener frame;
struct cg_workspace **workspaces; struct cg_workspace **workspaces;
struct wl_list messages; struct wl_list messages;
struct wlr_box layout_box;
int curr_workspace; int curr_workspace;
int priority; int priority;
struct cg_view *last_scanned_out_view; struct cg_view *last_scanned_out_view;
enum output_role role;
bool destroyed;
char *name;
struct wl_list link; // cg_server::outputs struct wl_list link; // cg_server::outputs
}; };
@ -40,6 +50,7 @@ enum output_status { OUTPUT_ENABLE, OUTPUT_DISABLE, OUTPUT_DEFAULT };
struct cg_output_config { struct cg_output_config {
enum output_status status; enum output_status status;
enum output_role role;
struct wlr_box pos; struct wlr_box pos;
char *output_name; char *output_name;
float refresh_rate; float refresh_rate;
@ -53,7 +64,8 @@ typedef void (*cg_surface_iterator_func_t)(struct cg_output *output,
struct wlr_surface *surface, struct wlr_surface *surface,
struct wlr_box *box, struct wlr_box *box,
void *user_data); void *user_data);
struct wlr_box
output_get_layout_box(struct cg_output *output);
void void
handle_new_output(struct wl_listener *listener, void *data); handle_new_output(struct wl_listener *listener, void *data);
void void

22
parse.c
View file

@ -543,6 +543,10 @@ parse_output_config_keyword(char *key_str, enum output_status *status) {
*status = OUTPUT_DEFAULT; *status = OUTPUT_DEFAULT;
} else if(strcmp(key_str, "enable") == 0) { } else if(strcmp(key_str, "enable") == 0) {
*status = OUTPUT_ENABLE; *status = OUTPUT_ENABLE;
} else if(strcmp(key_str, "permanent") == 0) {
*status = OUTPUT_DEFAULT;
} else if(strcmp(key_str, "peripheral") == 0) {
*status = OUTPUT_DEFAULT;
} else if(strcmp(key_str, "disable") == 0) { } else if(strcmp(key_str, "disable") == 0) {
*status = OUTPUT_DISABLE; *status = OUTPUT_DISABLE;
} else { } else {
@ -566,6 +570,7 @@ parse_output_config(char **saveptr, char **errstr) {
cfg->priority = -1; cfg->priority = -1;
cfg->scale = -1; cfg->scale = -1;
cfg->angle = -1; cfg->angle = -1;
cfg->role = OUTPUT_ROLE_DEFAULT;
char *name = strtok_r(NULL, " ", saveptr); char *name = strtok_r(NULL, " ", saveptr);
if(name == NULL) { if(name == NULL) {
*errstr = *errstr =
@ -574,8 +579,9 @@ parse_output_config(char **saveptr, char **errstr) {
} }
char *key_str = strtok_r(NULL, " ", saveptr); char *key_str = strtok_r(NULL, " ", saveptr);
if(parse_output_config_keyword(key_str, &(cfg->status)) != 0) { if(parse_output_config_keyword(key_str, &(cfg->status)) != 0) {
*errstr = log_error("Expected keyword \"pos\", \"prio\", \"enable\" or " *errstr = log_error("Expected keyword \"pos\", \"prio\", \"enable\", "
"\"disable\" in output configuration for output %s", "\"disable\", \"permanent\" or \"peripheral\" in "
"output configuration for output %s",
name); name);
goto error; goto error;
} }
@ -622,6 +628,18 @@ parse_output_config(char **saveptr, char **errstr) {
return cfg; return cfg;
} }
if(strcmp(key_str, "peripheral") == 0) {
cfg->output_name = strdup(name);
cfg->role = OUTPUT_ROLE_PERIPHERAL;
return cfg;
}
if(strcmp(key_str, "permanent") == 0) {
cfg->output_name = strdup(name);
cfg->role = OUTPUT_ROLE_PERMANENT;
return cfg;
}
cfg->pos.x = parse_uint(saveptr, " "); cfg->pos.x = parse_uint(saveptr, " ");
if(cfg->pos.x < 0) { if(cfg->pos.x < 0) {
*errstr = log_error( *errstr = log_error(

16
seat.c
View file

@ -95,7 +95,7 @@ new_touch(struct cg_seat *seat, struct cg_input_device *input_device) {
if(wlr_touch->output_name != NULL) { if(wlr_touch->output_name != NULL) {
struct cg_output *output; struct cg_output *output;
wl_list_for_each(output, &seat->server->outputs, link) { wl_list_for_each(output, &seat->server->outputs, link) {
if(strcmp(wlr_touch->output_name, output->wlr_output->name) == 0) { if(strcmp(wlr_touch->output_name, output->name) == 0) {
wlr_cursor_map_input_to_output(seat->cursor, device, wlr_cursor_map_input_to_output(seat->cursor, device,
output->wlr_output); output->wlr_output);
break; break;
@ -133,8 +133,7 @@ new_pointer(struct cg_seat *seat, struct cg_input_device *input_device) {
if(wlr_pointer->output_name != NULL) { if(wlr_pointer->output_name != NULL) {
struct cg_output *output; struct cg_output *output;
wl_list_for_each(output, &seat->server->outputs, link) { wl_list_for_each(output, &seat->server->outputs, link) {
if(strcmp(wlr_pointer->output_name, output->wlr_output->name) == if(strcmp(wlr_pointer->output_name, output->name) == 0) {
0) {
wlr_cursor_map_input_to_output(seat->cursor, device, wlr_cursor_map_input_to_output(seat->cursor, device,
output->wlr_output); output->wlr_output);
break; break;
@ -755,7 +754,7 @@ process_cursor_motion(struct cg_seat *seat, uint32_t time) {
"\"%s\",\"old_output_id\":%d," "\"%s\",\"old_output_id\":%d,"
"\"old_tile\":%d,\"new_output\":\"%s\",\"new_output_" "\"old_tile\":%d,\"new_output\":\"%s\",\"new_output_"
"id\":%d,\"new_tile\":%d}", "id\":%d,\"new_tile\":%d}",
seat->cursor_tile->workspace->output->wlr_output->name, seat->cursor_tile->workspace->output->name,
output_get_num(seat->cursor_tile->workspace->output), output_get_num(seat->cursor_tile->workspace->output),
seat->cursor_tile->id, c_outp->name, seat->cursor_tile->id, c_outp->name,
output_get_num(cg_outp), c_tile->id); output_get_num(cg_outp), c_tile->id);
@ -1095,9 +1094,8 @@ seat_set_focus(struct cg_seat *seat, struct cg_view *view) {
wlr_scene_node_raise_to_top(&view->scene_tree->node); wlr_scene_node_raise_to_top(&view->scene_tree->node);
process_cursor_motion(seat, -1); process_cursor_motion(seat, -1);
struct wlr_box box; wlr_scene_node_set_position(
wlr_output_layout_get_box(server->output_layout, &view->workspace->output->bg->node,
view->workspace->output->wlr_output, &box); output_get_layout_box(view->workspace->output).x,
wlr_scene_node_set_position(&view->workspace->output->bg->node, box.x, output_get_layout_box(view->workspace->output).y);
box.y);
} }

View file

@ -43,8 +43,7 @@ server_show_info(struct cg_server *server) {
return NULL; return NULL;
} }
output_str_tmp = output_str; output_str_tmp = output_str;
output_str = malloc_vsprintf("%s\t * %s\n", output_str, output_str = malloc_vsprintf("%s\t * %s\n", output_str, output->name);
output->wlr_output->name);
free(output_str_tmp); free(output_str_tmp);
} }
char *input_str = strdup(""), *input_str_tmp; char *input_str = strdup(""), *input_str_tmp;

View file

@ -37,6 +37,7 @@ struct cg_server {
struct cg_output *curr_output; struct cg_output *curr_output;
struct wl_listener new_output; struct wl_listener new_output;
struct wl_list output_priorities; struct wl_list output_priorities;
struct wlr_backend *headless_backend;
struct wlr_renderer *renderer; struct wlr_renderer *renderer;
struct wlr_allocator *allocator; struct wlr_allocator *allocator;

24
view.c
View file

@ -81,11 +81,10 @@ void
view_maximize(struct cg_view *view, struct cg_tile *tile) { view_maximize(struct cg_view *view, struct cg_tile *tile) {
view->ox = tile->tile.x; view->ox = tile->tile.x;
view->oy = tile->tile.y; view->oy = tile->tile.y;
struct wlr_box box; wlr_scene_node_set_position(
wlr_output_layout_get_box(view->server->output_layout, &view->scene_tree->node,
view->workspace->output->wlr_output, &box); view->ox + output_get_layout_box(view->workspace->output).x,
wlr_scene_node_set_position(&view->scene_tree->node, view->ox + box.x, output_get_layout_box(view->oy + view->workspace->output).y);
view->oy + box.y);
view->impl->maximize(view, tile->tile.width, tile->tile.height); view->impl->maximize(view, tile->tile.width, tile->tile.height);
view->tile = tile; view->tile = tile;
wlr_scene_node_raise_to_top(&view->scene_tree->node); wlr_scene_node_raise_to_top(&view->scene_tree->node);
@ -97,7 +96,7 @@ view_unmap(struct cg_view *view) {
uint32_t id = view->id; uint32_t id = view->id;
uint32_t tile_id = 0; uint32_t tile_id = 0;
uint32_t ws = view->workspace->num; uint32_t ws = view->workspace->num;
char *output_name = view->workspace->output->wlr_output->name; char *output_name = view->workspace->output->name;
int output_id = output_get_num(view->workspace->output); int output_id = output_get_num(view->workspace->output);
pid_t pid = view->impl->get_pid(view); pid_t pid = view->impl->get_pid(view);
/* If the view is not mapped, do nothing */ /* If the view is not mapped, do nothing */
@ -171,11 +170,10 @@ view_map(struct cg_view *view, struct wlr_surface *surface,
their own (x,y) coordinates in handle_wayland_surface_map. */ their own (x,y) coordinates in handle_wayland_surface_map. */
if(view->type == CG_XWAYLAND_VIEW && !xwayland_view_should_manage(view)) { if(view->type == CG_XWAYLAND_VIEW && !xwayland_view_should_manage(view)) {
wl_list_insert(&ws->unmanaged_views, &view->link); wl_list_insert(&ws->unmanaged_views, &view->link);
struct wlr_box box; wlr_scene_node_set_position(
wlr_output_layout_get_box(view->server->output_layout, &view->scene_tree->node,
view->workspace->output->wlr_output, &box); view->ox + output_get_layout_box(view->workspace->output).x,
wlr_scene_node_set_position(&view->scene_tree->node, view->ox + box.x, view->oy + output_get_layout_box(view->workspace->output).y);
view->oy + box.y);
} else } else
#endif #endif
{ {
@ -193,8 +191,8 @@ view_map(struct cg_view *view, struct wlr_surface *surface,
"{\"event_name\":\"view_map\",\"view_id\":%d,\"tile_id\":%d," "{\"event_name\":\"view_map\",\"view_id\":%d,\"tile_id\":%d,"
"\"workspace\":%d,\"output\":\"%s\",\"output_id\":%d,\"view_pid\":%d}", "\"workspace\":%d,\"output\":\"%s\",\"output_id\":%d,\"view_pid\":%d}",
view->id, tile_id, view->workspace->num + 1, view->id, tile_id, view->workspace->num + 1,
view->workspace->output->wlr_output->name, view->workspace->output->name, output_get_num(view->workspace->output),
output_get_num(view->workspace->output), view->impl->get_pid(view)); view->impl->get_pid(view));
} }
void void

View file

@ -35,7 +35,6 @@ workspace_tile_update_view(struct cg_tile *tile, struct cg_view *view) {
#endif #endif
int int
full_screen_workspace_tiles(struct wlr_output_layout *layout, full_screen_workspace_tiles(struct wlr_output_layout *layout,
struct wlr_output *output,
struct cg_workspace *workspace, struct cg_workspace *workspace,
uint32_t *tiles_curr_id) { uint32_t *tiles_curr_id) {
workspace->focused_tile = calloc(1, sizeof(struct cg_tile)); workspace->focused_tile = calloc(1, sizeof(struct cg_tile));
@ -47,10 +46,10 @@ full_screen_workspace_tiles(struct wlr_output_layout *layout,
workspace->focused_tile->prev = workspace->focused_tile; workspace->focused_tile->prev = workspace->focused_tile;
workspace->focused_tile->tile.x = 0; workspace->focused_tile->tile.x = 0;
workspace->focused_tile->tile.y = 0; workspace->focused_tile->tile.y = 0;
struct wlr_box output_box; workspace->focused_tile->tile.width =
wlr_output_layout_get_box(layout, output, &output_box); output_get_layout_box(workspace->output).width;
workspace->focused_tile->tile.width = output_box.width; workspace->focused_tile->tile.height =
workspace->focused_tile->tile.height = output_box.height; output_get_layout_box(workspace->output).height;
workspace_tile_update_view(workspace->focused_tile, NULL); workspace_tile_update_view(workspace->focused_tile, NULL);
workspace->focused_tile->id = *tiles_curr_id; workspace->focused_tile->id = *tiles_curr_id;
++(*tiles_curr_id); ++(*tiles_curr_id);
@ -72,16 +71,15 @@ full_screen_workspace(struct cg_output *output) {
free(workspace); free(workspace);
return NULL; return NULL;
} }
workspace->output = output;
workspace->server = output->server; workspace->server = output->server;
workspace->num = -1; workspace->num = -1;
workspace->scene = wlr_scene_tree_create(&scene_output->scene->tree); workspace->scene = wlr_scene_tree_create(&scene_output->scene->tree);
if(full_screen_workspace_tiles(output->server->output_layout, if(full_screen_workspace_tiles(output->server->output_layout, workspace,
output->wlr_output, workspace,
&output->server->tiles_curr_id) != 0) { &output->server->tiles_curr_id) != 0) {
free(workspace); free(workspace);
return NULL; return NULL;
} }
workspace->output = output;
return workspace; return workspace;
} }
@ -107,7 +105,8 @@ workspace_free_tiles(struct cg_workspace *workspace) {
workspace->focused_tile) { workspace->focused_tile) {
workspace->output->server->seat->cursor_tile = NULL; workspace->output->server->seat->cursor_tile = NULL;
} }
if(workspace->focused_tile == workspace->server->seat->cursor_tile) { if(workspace->output->server->running &&
workspace->focused_tile == workspace->server->seat->cursor_tile) {
workspace->server->seat->cursor_tile = NULL; workspace->server->seat->cursor_tile = NULL;
} }
struct cg_tile *next = workspace->focused_tile->next; struct cg_tile *next = workspace->focused_tile->next;

View file

@ -33,7 +33,6 @@ struct cg_workspace *
full_screen_workspace(struct cg_output *output); full_screen_workspace(struct cg_output *output);
int int
full_screen_workspace_tiles(struct wlr_output_layout *layout, full_screen_workspace_tiles(struct wlr_output_layout *layout,
struct wlr_output *output,
struct cg_workspace *workspace, struct cg_workspace *workspace,
uint32_t *tiles_curr_id); uint32_t *tiles_curr_id);
void void

View file

@ -74,12 +74,12 @@ popup_unconstrain(struct cg_view *view, struct wlr_xdg_popup *popup) {
struct wlr_box *popup_box = &popup->current.geometry; struct wlr_box *popup_box = &popup->current.geometry;
struct wlr_output_layout *output_layout = view->server->output_layout; struct wlr_output_layout *output_layout = view->server->output_layout;
struct wlr_box view_output_box;
wlr_output_layout_get_box(
output_layout, view->workspace->output->wlr_output, &view_output_box);
struct wlr_output *wlr_output = wlr_output_layout_output_at( struct wlr_output *wlr_output = wlr_output_layout_output_at(
output_layout, view_output_box.x + view->ox + popup_box->x, output_layout,
view_output_box.y + view->oy + popup_box->y); output_get_layout_box(view->workspace->output).x + view->ox +
popup_box->x,
output_get_layout_box(view->workspace->output).y + view->oy +
popup_box->y);
struct wlr_box output_box; struct wlr_box output_box;
wlr_output_layout_get_box(output_layout, wlr_output, &output_box); wlr_output_layout_get_box(output_layout, wlr_output, &output_box);

View file

@ -93,13 +93,11 @@ maximize(struct cg_view *view, int width, int height) {
} }
} }
struct wlr_box output_box; wlr_xwayland_surface_configure(
wlr_output_layout_get_box(view->server->output_layout, xwayland_view->xwayland_surface,
view->server->curr_output->wlr_output, view->ox + output_get_layout_box(view->server->curr_output).x,
&output_box); view->oy + output_get_layout_box(view->server->curr_output).y, width,
wlr_xwayland_surface_configure(xwayland_view->xwayland_surface, height);
view->ox + output_box.x,
view->oy + output_box.y, width, height);
wlr_xwayland_surface_set_maximized(xwayland_view->xwayland_surface, true); wlr_xwayland_surface_set_maximized(xwayland_view->xwayland_surface, true);
} }
@ -135,12 +133,10 @@ handle_xwayland_surface_map(struct wl_listener *listener, void *_data) {
wl_container_of(listener, xwayland_view, map); wl_container_of(listener, xwayland_view, map);
struct cg_view *view = &xwayland_view->view; struct cg_view *view = &xwayland_view->view;
if(!xwayland_view_should_manage(view)) { if(!xwayland_view_should_manage(view)) {
struct wlr_output_layout *output_layout = view->server->output_layout; view->ox = xwayland_view->xwayland_surface->x -
struct wlr_box output_box; view->server->curr_output->layout_box.x;
wlr_output_layout_get_box( view->oy = xwayland_view->xwayland_surface->y -
output_layout, view->server->curr_output->wlr_output, &output_box); view->server->curr_output->layout_box.y;
view->ox = xwayland_view->xwayland_surface->x - output_box.x;
view->oy = xwayland_view->xwayland_surface->y - output_box.y;
} }
view_map(view, xwayland_view->xwayland_surface->surface, view_map(view, xwayland_view->xwayland_surface->surface,