mirror of
https://cagebreak.project-repo.co/cagebreak.git
synced 2026-08-09 07:09:11 +02:00
Release 1.9.0
- Add message functionality (as per Issue 29 in Bugs.md)
- message <text>
- configure_message
- Add (as per Issue 30 in Bugs.md)
- movetoprevscreen
- movetoscreen <n>
- screen <n>
- additional output functionality for monitor numbering
- Improve configuration documentation
- Fix Issue 31 in Bugs.md (word omission)
- Improve README.md and split off some files
- Add SECURITY.md
- Add Hashes.md (hashes of cagebreak binaries and man pages if built reproducably)
- Add Changelog.md (changelog for major and minor releases but not patches)
- Add FAQ.md (updated information from the former wiki)
- Depreciate wiki
- Fix Issue 32 in Bugs.md
- Improve release checklist to partially prevent the above issue
in the future
- Fix Issue 33 in Bugs.md
- Fix Issue 34 in Bugs.md
- Manage gpg keys
- Add new cagebreak gpg signing keys
- Add new cagebreak email contact gpg key
- Add new project-repo AUR gpg key (relevant for cagebreak-pkgbuild)
This commit is contained in:
parent
35dbe7cd90
commit
4db22aafc3
30 changed files with 1501 additions and 570 deletions
264
Bugs.md
264
Bugs.md
|
|
@ -364,3 +364,267 @@ When I type in anything, the text is refreshed and becomes visible only followin
|
|||
```
|
||||
|
||||
Cagebreak had an error with damage tracking.
|
||||
|
||||
### Issue 29
|
||||
|
||||
* github issue number: #19
|
||||
* Fixed: 1.9.0
|
||||
|
||||
bda65hp:
|
||||
```
|
||||
Hi,
|
||||
Is there a way to easily change de font? "monospace 10" are too small for my eyes. I've changed them in message.c but can you add a configuration option, please?
|
||||
Same for the display time of these window. They sometimes disappear too fast (mainly time).
|
||||
May be a config for the background and foreground color of the message window too?
|
||||
|
||||
cagebreak is great :)
|
||||
```
|
||||
|
||||
project-repo:
|
||||
```
|
||||
No, there is currently no easy way to change the font size, background or display
|
||||
time of the message.
|
||||
|
||||
Adding these ideas as a command is a good idea though.
|
||||
|
||||
To summarize, the release pertaining to #19 will presumably introduce a
|
||||
command for configuring the cagebreak messages. This command will be
|
||||
able to set the following:
|
||||
|
||||
* [ ] Font size
|
||||
* [ ] Font colour
|
||||
* [ ] Background colour
|
||||
* [ ] Display time of message
|
||||
|
||||
Another, related, idea would be to have an interface for sending
|
||||
arbitrary messages over the socket which are then displayed by
|
||||
cagebreak. This may also be added to the above features.
|
||||
|
||||
We're glad to hear that you enjoy cagebreak! Thank you for helping to
|
||||
make it even greater.
|
||||
|
||||
cheers
|
||||
project-repo
|
||||
```
|
||||
|
||||
bda65hp:
|
||||
```
|
||||
Awesome :)
|
||||
Displaying time in locale format (or configurable) will be great too ;)
|
||||
```
|
||||
|
||||
project-repo:
|
||||
```
|
||||
Yes, once it is possible to send arbitrary messages via cagebreak over
|
||||
the socket it will be possible to have the date be displayed however you
|
||||
like!
|
||||
cheers
|
||||
project-repo
|
||||
```
|
||||
|
||||
project-repo:
|
||||
```
|
||||
We pushed some code to development implementing this in 348925e (configuration) and f12a161 (message command). Sorry for not writing this much sooner. However, at least it will be part of the upcoming release.
|
||||
|
||||
cheers
|
||||
project-repo
|
||||
```
|
||||
|
||||
### Issue 30
|
||||
|
||||
* github issue number: #11
|
||||
* Fixed: 1.9.0
|
||||
|
||||
kinleyd:
|
||||
```
|
||||
In my first post I forgot to thank you for cagebreak. I've been evaluating compositors for my needs and have been through kiwmi, japokwm, wayfire, sway and cagebreak. So far I like cagebreak most of all.
|
||||
|
||||
Back to my question:
|
||||
|
||||
You currently support 'movetonextscreen' but there is no equivalent movetoprevscreen.
|
||||
For multiple 3 to 4 screen configurations the second command would be useful.
|
||||
|
||||
Also, is it not possible to move to a screen directly, like 'movetoscreen 3'?
|
||||
|
||||
The same thing with prevscreen and nextscreen: something like 'focusscreen 3', if it were possible, would be useful.
|
||||
```
|
||||
|
||||
project-repo:
|
||||
```
|
||||
Thank you! It's great to hear that cagebreak seems to suit your needs.
|
||||
|
||||
About your question, yes, that absolutely makes sense. The reason this
|
||||
wasn't implemented earlier is that no-one has needed it up to now, but
|
||||
seeing as there now appears to be a use-case, we can definitely
|
||||
implement these features. In future releases, cagebreak will then most
|
||||
likely support movetoprevscreen and movetoscreen <n> (as these are
|
||||
distinct functionalities).
|
||||
|
||||
The only issue I see at this point is that the numbering of screens is
|
||||
not directly canonical. To resolve this, I suggest that per default,
|
||||
screens are numbered according to the order in which they were added
|
||||
along with an additional configuration option to specify numbering (this
|
||||
would most likely be an additional option for the already existent
|
||||
output command). Does that seem fine to you?
|
||||
cheers,
|
||||
project-repo
|
||||
```
|
||||
|
||||
kinleyd:
|
||||
```
|
||||
Yes, that would be perfect. Thank you!
|
||||
```
|
||||
|
||||
kinleyd:
|
||||
```
|
||||
May I suggest we also have 'screen <n>' like we have 'workspace <n>'.
|
||||
```
|
||||
|
||||
project-repo:
|
||||
```
|
||||
Thank you for this suggestion. This will be implemented in the release
|
||||
where the rest of this issue is resolved (probably the next one).
|
||||
|
||||
To summarize, presumably the release pertaining to #11 will include:
|
||||
|
||||
* [ ] movetoprevscreen as a command symmetric to movetonextscreen
|
||||
* [ ] movetoscreen <n> as a command similar to movetoworkspace
|
||||
* [ ] screen <n> as a command similar to workspace <n>
|
||||
* [ ] additional output functionality for monitor numbering (of
|
||||
course backwards-compatible, such that valid configs remain
|
||||
valid)
|
||||
|
||||
If anything changes with regard to this draft, we will post it here so
|
||||
you can let us know what you think.
|
||||
|
||||
cheers,
|
||||
project-repo
|
||||
```
|
||||
|
||||
kinleyd:
|
||||
```
|
||||
Super - I greatly look forward to their addition, and thank you for your responsiveness!
|
||||
```
|
||||
|
||||
project-repo:
|
||||
```
|
||||
Everything mentioned on our last comment has now been implemented on the
|
||||
development branch. (More specifically in 851a2f8,
|
||||
though documentation was added later.)
|
||||
|
||||
The simple commands work as proposed in our previous comment.
|
||||
The output command has a new feature called prio now, which you can call as follows:
|
||||
|
||||
output <name of the output> prio <n>
|
||||
|
||||
All outputs, regardless of configuration are added once they request to be added
|
||||
and have a default priority of -1. Using prio, you can set priorities
|
||||
greater than or equal to 1 for specific outputs and hence order your outputs
|
||||
as you wish. Note that cagebreak -s might be useful while fiddling around
|
||||
with this.
|
||||
|
||||
If you like, you can check it out on development and compile it for yourself.
|
||||
If you're up to it we would be glad to know what you think about it,
|
||||
especially when output prio is applied to your multi-screen setup and
|
||||
regarding the readability of the cagebreak-config man page description of
|
||||
output prio.
|
||||
|
||||
Please note that this is not a release yet and the development branch
|
||||
might undergo changes.
|
||||
|
||||
cheers
|
||||
project-repo
|
||||
```
|
||||
|
||||
kinleyd:
|
||||
```
|
||||
I took the development branch for a swirl, and it looks good. Thank you!
|
||||
|
||||
Everything works as you had set out: screen, movetoscreen, movetoprevscreen and output screen prio all work as expected. The default screen position now reflects the prio settings and that's great.
|
||||
|
||||
I took a look at the updates to the man page as well and it looks quite clear.
|
||||
|
||||
So hey, thank you for the great work! I look forward to the incorporation of the new features in the master branch when it is ready.
|
||||
|
||||
Happy holidays and a happy new year!
|
||||
```
|
||||
|
||||
### Issue 31
|
||||
|
||||
* github issue number: #25
|
||||
* Fixed: 1.9.0
|
||||
|
||||
```
|
||||
The configuration man page for the input send events setting is missing the events word:
|
||||
|
||||
diff --git man/cagebreak-config.5.md man/cagebreak-config.5.md
|
||||
index 4eea4c5..c618314 100644
|
||||
--- man/cagebreak-config.5.md
|
||||
+++ man/cagebreak-config.5.md
|
||||
@@ -123,7 +123,7 @@ by prepending a line with the # symbol.
|
||||
*dwt enabled|disabled*
|
||||
Enables or disables disable-while-typing for the specified input device.
|
||||
|
||||
- *enabled|disabled|disabled_on_external_mouse*
|
||||
- + *events enabled|disabled|disabled_on_external_mouse*
|
||||
Enables or disables send_events for specified input device. Disabling
|
||||
send_events disables the input device.
|
||||
Slightly off topic: I was hoping to use this setting to hide the mouse cursor, but it doesn't work. My embedded system must expose a pointer device even though none is connected, altough I can only infer that much because the system is very bare bones and I can't check. Is there a way to do that?
|
||||
```
|
||||
|
||||
The word was omitted before 1.9.0. Mouse hiding was relegated to a new issue (#26).
|
||||
|
||||
### Issue 32
|
||||
|
||||
* github issue number: #24
|
||||
* Fixed: 1.9.0
|
||||
|
||||
```
|
||||
The wlr/xwayland.h include in output.c:32 is missing an #if CG_HAS_XWAYLAND guard, which breaks building without xwayland.
|
||||
```
|
||||
|
||||
Cagebreak did not build without xwayland. This bug has been fixed and building
|
||||
without xwayland has been added to the release checklist.
|
||||
|
||||
### Issue 33
|
||||
|
||||
* github issue number: #23
|
||||
* Fixed: 1.9.0
|
||||
|
||||
```
|
||||
Similar to djpohly/dwl#177. Xwayland works fine elsewhere: cage, hikari, kwinft, labwc, phoc, river, sway, wayfire.
|
||||
```
|
||||
$ cagebreak
|
||||
[...]
|
||||
00:00:00.085 [xwayland/server.c:92] Starting Xwayland on :0
|
||||
00:00:00.116 [render/swapchain.c:105] Allocating new swapchain buffer
|
||||
00:00:00.118 [render/allocator/gbm.c:142] Allocated 1280x720 GBM buffer (format 0x34325258, modifier 0x100000000000004)
|
||||
00:00:00.118 [render/gles2/renderer.c:143] Created GL FBO for buffer 1280x720
|
||||
00:00:00.160 [types/wlr_surface.c:748] New wlr_surface 0x880d81f80 (res 0x86f22d380)
|
||||
00:00:00.165 [xwayland/server.c:243] waitpid for Xwayland fork failed: No child processes
|
||||
(EE) failed to read Wayland events: Broken pipe
|
||||
xterm: Xt error: Can't open display: :0
|
||||
|
||||
$ cc --version
|
||||
FreeBSD clang version 11.0.1 (git@github.com:llvm/llvm-project.git llvmorg-11.0.1-0-g43ff75f2c3fe)
|
||||
Target: x86_64-unknown-freebsd13.0
|
||||
Thread model: posix
|
||||
InstalledDir: /usr/bin
|
||||
|
||||
$ pkg info -x cagebreak wayland wlroots
|
||||
cagebreak-1.8.3
|
||||
wayland-1.20.0
|
||||
wayland-protocols-1.25
|
||||
xwayland-devel-21.0.99.1.171
|
||||
wlroots-0.15.1
|
||||
```
|
||||
```
|
||||
|
||||
## Issue 34
|
||||
|
||||
* github issue number: N/A
|
||||
* Fixed: 1.9.0
|
||||
|
||||
Cagebreak crashed when a touch device was removed due to a call to
|
||||
`wl_list_remove` on a pointer which was never initialized.
|
||||
|
||||
|
|
|
|||
66
Changelog.md
Normal file
66
Changelog.md
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
# Changelog
|
||||
|
||||
## Release 1.0.0
|
||||
|
||||
Adds basic tiling window manager functionality to cage.
|
||||
|
||||
## Release 1.1.0
|
||||
|
||||
Unifies commands and actions. See Issue 4 in Bugs.md.
|
||||
|
||||
## Release 1.2.0
|
||||
|
||||
Adds output configuration as described in the man pages.
|
||||
|
||||
## Release 1.3.0
|
||||
|
||||
Adds IPC as described in the man pages.
|
||||
|
||||
## Release 1.4.0
|
||||
|
||||
Adds close command for windows as described in the man pages.
|
||||
|
||||
## Release 1.5.0
|
||||
|
||||
Adds options to disable or enable outputs. See Issue 22 in Bugs.md and Issue #2 on github.
|
||||
|
||||
## Release 1.6.0
|
||||
|
||||
Adds support for non-build dependencies and an option for builds without pandoc.
|
||||
|
||||
## Release 1.7.0
|
||||
|
||||
Improves window ordering.
|
||||
|
||||
## Release 1.8.0
|
||||
|
||||
Adds libinput configuration and virtual keyboard and pointer support.
|
||||
|
||||
## Release 1.9.0
|
||||
|
||||
- Add message functionality (as per Issue 29 in Bugs.md)
|
||||
- message <text>
|
||||
- configure_message
|
||||
- Add (as per Issue 30 in Bugs.md)
|
||||
- movetoprevscreen
|
||||
- movetoscreen <n>
|
||||
- screen <n>
|
||||
- additional output functionality for monitor numbering
|
||||
- Improve configuration documentation
|
||||
- Fix Issue 31 in Bugs.md (word omission)
|
||||
- Improve README.md and split off some files
|
||||
- Add SECURITY.md
|
||||
- Add Hashes.md (hashes of cagebreak binaries and man pages if built reproducably)
|
||||
- Add Changelog.md (changelog for major and minor releases but not patches)
|
||||
- Add FAQ.md (updated information from the former wiki)
|
||||
- Depreciate wiki
|
||||
- Fix Issue 32 in Bugs.md
|
||||
- Improve release checklist to partially prevent the above issue
|
||||
in the future
|
||||
- Fix Issue 33 in Bugs.md
|
||||
- Fix Issue 34 in Bugs.md
|
||||
- Manage gpg keys
|
||||
- Add new cagebreak gpg signing keys
|
||||
- Add new cagebreak email contact gpg key
|
||||
- Add new project-repo AUR gpg key (relevant for cagebreak-pkgbuild)
|
||||
|
||||
37
FAQ.md
Normal file
37
FAQ.md
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
# Frequently Asked Questions
|
||||
|
||||
## How do I do a particular thing with cagebreak?
|
||||
|
||||
* Check the man pages
|
||||
* [cagebreak config](man/cagebreak-config.5.md) (probably where you find the answer)
|
||||
* [cagebreak](man/cagebreak.1.md) (command line options etc.)
|
||||
* Check the rest of this FAQ
|
||||
* [Open an issue](https://github.com/project-repo/cagebreak/issues/new) or otherwise get in touch with the development team (See section Email Contact in [SECURITY.md](SECURITY.md)).
|
||||
|
||||
Note that the feature set of cagebreak is intentionally limited.
|
||||
|
||||
## How do I remap Caps Lock?
|
||||
|
||||
Remapping Caps Lock globally seems to be the best option.
|
||||
Follow instructions [here](https://wiki.archlinux.org/title/Linux_console/Keyboard_configuration) to achieve this (should be roughly
|
||||
distribution-agnostic).
|
||||
|
||||
## How do I get firefox to run under wayland?
|
||||
|
||||
Set the following environment variables
|
||||
|
||||
* `MOZ_USE_WAYLAND=1`
|
||||
* `GDK_BACKEND=wayland`
|
||||
|
||||
to activate wayland support for firefox.
|
||||
|
||||
## Which further resources are available?
|
||||
|
||||
* [Arch Linux Wiki entry for Cagebreak](https://wiki.archlinux.org/title/Cagebreak)
|
||||
* [Sway Wiki](https://github.com/swaywm/sway/wiki)
|
||||
* [Cage Wiki](https://github.com/Hjdskes/cage/wiki)
|
||||
|
||||
## This FAQ did not help me. What now?
|
||||
|
||||
* Consider [opening an issue](https://github.com/project-repo/cagebreak/issues/new) on github or getting in touch with the
|
||||
development team (See section Email Contact in [SECURITY.md](SECURITY.md)).
|
||||
211
Hashes.md
Normal file
211
Hashes.md
Normal file
|
|
@ -0,0 +1,211 @@
|
|||
# Hashes
|
||||
|
||||
1.9.0 cagebreak
|
||||
|
||||
* sha 256: 91096b4c558970666c5ef1ebd5c16301fbb40b52b34a73589f18a14c48edf5c1
|
||||
* sha 512: 52ec9c6996377d01d35df87ea5480a33c93cd7c62645f54523f3808fa9f84578f3a6201e969c6bdb5987e69b667be7edc8ce7067091c8413193c5e33cb434883
|
||||
|
||||
1.9.0 cagebreak.1
|
||||
|
||||
* sha 256: 431909f4c62157e57e789359a8458fc650b5f266b2fccc6fc5c0e501f8c879d3
|
||||
* sha 512: f7523288ef3ca406507ee996e189fd339623fa465585973ac769cbea7948399545e8886fe585c7ddd70ca89465c81a188137dcea5b7273353966ea882d9806bd
|
||||
|
||||
1.9.0 cagebreak-config.5
|
||||
|
||||
* sha 256: 4433d8a160e48834fefb4cdd54fcec1f6038e21801c7a1dffb041b5eb238a2cc
|
||||
* sha 512: af44aa42fe05b50a773420000c383fac837e45ead248876bb617c53e44e36d09a88ae26df80c1c9ffd6cf7c4dac72acb02d369888a79fed35114ed7e88fbe159
|
||||
|
||||
1.8.2 cagebreak
|
||||
|
||||
* sha 256: f4d275d48ba3d999969f8cb3c8142d27aa8e8d362106ee7575e4b13c02173b2a
|
||||
* sha 512: 72b11cb966b0978133b9848c2a7f57574c599c7fe895ca9f1cba16930216e1ac8aeae86d976593fc01b15e94ecc1430666f474654cf2fe41eda8c1181bf03f3d
|
||||
|
||||
1.8.2 cagebreak.1
|
||||
|
||||
* sha 256: 51ee97a7c0b86268cf7622f84f7b1813df8e4a7838c00aae412a611d3693e87a
|
||||
* sha 512: 5ce826afbee9cbc1129f37463f5b6d4dfc060583f6f7816dd5039b18d66a2b7e22f7293a4aa03acc4e6c690886d0297fef5b9f85d720a4467becfd833b59a160
|
||||
|
||||
1.8.2 cagebreak-config.5
|
||||
|
||||
* sha 256: 7c780ba85211ba40c7535b3f10f12312f9edeaa10030228ba21a96724469a325
|
||||
* sha 512: 9a56ba16c2aed6f17d4098e54900a5d25602f986e3606dd6ed26563c1920c66404b210dbca9f41bfcc3284bf5a42b750263bcaa2317320f8725e8f9c66e8b893
|
||||
|
||||
1.8.1 cagebreak
|
||||
|
||||
* sha 256: e3247281d21525413790e3feceae129d9b0559497615d3fdd64ec2fc4ab9ab3d
|
||||
* sha 512: 8c7c2820be9d7c74e3f9e239c7da740ff41d7f11cd40953dbfbc59c04942077f08625f6d7ec37e6037fd9c4b6950fc4f9af23478080665fdda867c65e0a187bf
|
||||
|
||||
1.8.1 cagebreak.1
|
||||
|
||||
* sha 256: 96997afdfde9c2719533799aa48c8f036610bb04bc719130d2ab3a3617b072ee
|
||||
* sha 512: 0831f5d2e3b4f23fd5775df2b7f6486099d64962567222a8fb49e6a40e7d29ed36a7c2c16201bbdcc985ac74f1d0e034b530afbe0ce58d6a0c53d467cff0a6a0
|
||||
|
||||
1.8.1 cagebreak-config.5
|
||||
|
||||
* sha 256: bd0e2eb02ba28ec1c8f2bd0fd5cd4c84af24b615fcc477414e49e68e1963cf1b
|
||||
* sha 512: 7135a2b371294bfdc759a393c13fa0225f1789dba94bb09e96ae689796215b8030280d6cc09c9d1fe139f000f5a4748efd16bb3e5d3b9fcc74a19259802f20ef
|
||||
|
||||
1.8.0 cagebreak
|
||||
|
||||
* sha 256: ac84aa4a08c311da79ca29d92eef4254cb625674b255dbb75621ee6b171a1d79
|
||||
* sha 512: c047bb1986fd1d444547e4d64aa7ef9138b3d30327ac3ad9b4c6976e8df6638bae07c39293b5bc9c20e959c0a22b0e40eb2b23b4766d9a5531377ff954b16229
|
||||
|
||||
1.8.0 cagebreak.1
|
||||
|
||||
* sha 256: 4de43de7bde67d6d806d206dffc34389f0b5c3ba648bfef673b7bc0adeb29202
|
||||
* sha 512: 72aac9a2e9a47f2f85949222d5944dc293332a616e3b961c625fe876172f66638038057c30aa18904d6d969451f468b4fe45e918c0b204cf6952d58ea4c69c33
|
||||
|
||||
1.8.0 cagebreak-config.5
|
||||
|
||||
* sha 256: 678aadde06b5ff6bfbd9bc9460423210f9599bcaa0e50c2eae076dc6d6852781
|
||||
* sha 512: 72056018fc1c559f26bd7e007b3f1db7d478cec7ec9337620e03a1e3d06910e244a52e8f655ea4f5d73669ffe064bbd23506005d9a6c06764b0f820d7a1df43f
|
||||
|
||||
1.7.4 cagebreak
|
||||
|
||||
* sha 256: c7442db906239b13f8d09e91cbe01f9e47b2a2c75bbb4b52adefd15dfbfa820f
|
||||
* sha 512: 9c36ce706f31e1b8afacd8f9cd216c460d66030e0b2736a3dd929902b0d5fc52c5e69dbf6787205b8c495d960e00b6e7f633da86ab6e31613f1b4a9fd47c9f0e
|
||||
|
||||
1.7.4 cagebreak.1
|
||||
|
||||
* sha 256: 3dacc521e5e9b963cceeefeed6a10104c7c415d86826a72788aba5b33ce320f1
|
||||
* sha 512: 0a4c4fbff09dd403fed61056ae3211ad2b4370b4e9ed07806fc22624e5312b4a25e469dc0eef1ca4556cbb8efabb0127e7519df79852e110faa98fb17ca377de
|
||||
|
||||
1.7.4 cagebreak-config.5
|
||||
|
||||
* sha 256: ed22fed1818172f31d3fb3efbe5e66b49f135cb2367b1c85209fd880ff7532ab
|
||||
* sha 512: cc634c63962ae50b4de20a3aad8ca0970175b53156690d69e6a69fd8f370ad20d84db783cc7e94c61d4d4d89f1205d43622690e58afba549ed57ddad009e3bac
|
||||
|
||||
1.7.3 cagebreak
|
||||
|
||||
* sha 256: 8adb4911d9603fec5b8eb4f67a09be95b8f0b37e50d4ab579191da78df18f70b
|
||||
* sha 512: eddaecd7b577b9fe77b1ed4d341074f7f860967568392d0479543ea8860b4289df3eb5645885e18e35260b14843663ae50f98103f8016e857237a397632322a6
|
||||
|
||||
1.7.3 cagebreak.1
|
||||
|
||||
* sha 256: bcc623e42c86ab65bc2f8cb7e4377ca0d816ddc281527b7caeded62753e943b8
|
||||
* sha 512: b4290e1040bd6a299d478ad6b695de75cf030d0d274340b43d3ed4382cf6877f824cd4ed9d7020bfb55afe276c62de7fc07c3fbee6f6485c6440a024115afe12
|
||||
|
||||
1.7.3 cagebreak-config.5
|
||||
|
||||
* sha 256: b9789b6abd473e9afb33d4e2c7822f7d8f3c10e9eb3fb70c47b713f6331c626a
|
||||
* sha 512: c49e01cfc4a4ed272f054bea8f2845f0e3f1609cf85d1a0ce14c1b67dc207df153b11bc20ceef09c855d467f0e013e54623ce9f70c217c4278607fc54d0e3206
|
||||
|
||||
1.7.2 cagebreak
|
||||
|
||||
* sha 256: 40f4642e8e8caee338055079b046f6e0b790c87226ee307b27a64fcb2a6c6472
|
||||
* sha 512: 22c5f1986ca4262a7c08a6c03cffe36eaedd8c3c5e27e12baf12a90f94aea088ac93ee107770f162fc70148be687f6394b8fd64ad3fe14414bdf63b55b33798e
|
||||
|
||||
1.7.2 cagebreak.1
|
||||
|
||||
* sha 256: 3253e592c40c78fd3733c761163acc2efaaf5865627cf51fd33cc0bc5d9cc6e7
|
||||
* sha 512: 901305e166c10aa7e4a26b721a69e0ba4779f4f8ee690551438ceadae65929f13949457872b9397dd46c5b7bad6a6f2638d6fd6df9bc5567c914c798cbf3e9a4
|
||||
|
||||
1.7.2 cagebreak-config.5
|
||||
|
||||
* sha 256: 148ec4d80dc9a86485fe77f8daf1f7fa4cb3d1b6aaa709bb012005583779e1f7
|
||||
* sha 512: d5732572e47dd07078ac2f6d589522e6007188fc05ac79520c93442212d5c0341459f135191b88c608a75b2f56c2de4065566bd869fbc24e475936d32a54a7f8
|
||||
|
||||
1.7.1 cagebreak
|
||||
|
||||
* sha 256: 5a40797e016a2fa32b5bb70a056b35c482bef09f1795bbaf0188dbadaf8197c3
|
||||
* sha 512: 2ef327b63ac4651f23517be8d5cb8fbec99bd889f52f8abfd62a09ca6e6c0060347ab8d60e4917d39edd36db34597a673239967533f14457733acb97f6c29a7f
|
||||
|
||||
1.7.1 cagebreak.1
|
||||
|
||||
* sha 256: 0301f04254ae6e7ada7e22bbe7aee022ec0793fbce434a396868258e6f1ea4cf
|
||||
* sha 512: f0c0c5de30be907e9ba5c9cfa0bca8cef3e94c0b5f52de9e2c3681c85aa957f75e92b5e26bb894c3a5e251295cfe7a1470653cc7dc05564d7d91c6eb43b7409a
|
||||
|
||||
1.7.1 cagebreak-config.5
|
||||
|
||||
* sha 256: 6882330a77f3ff98ea642f47b4090b38d542abf0b7be3f226486c5614899efc6
|
||||
* sha 512: a572f97836e4ccc6d67aa21c7f4aaebe06adb066c70038b670ec1ef267e3750764cb53e96b8d7bc24c7f993f24c0cfabee183307b45006d049f7416559bcaca4
|
||||
|
||||
1.7.0
|
||||
|
||||
* sha 256: 5af11b84e61a82a1a276e8f91f6ebc6baafd2c98d22be3da1d01734cc9d55faa
|
||||
* sha 512: 45474115fb4c28fe1ee91ad54706bfe521b6e70bd8ea619b94a3f50bae426891bf6a0387aa9b2f7f6d18349280c4e84973e4e433d50c090e5a764c64fa67795d
|
||||
|
||||
1.6.0
|
||||
|
||||
* sha 256: aef473eae73454429afb158d66a7bd9aec75ef915845b7508de5448820357aa8
|
||||
* sha 512: 17889bc1af9f343598a5ee599b25e702987dd0bd905a9566874e8a0094c57168e413938624949fa214e6e382cbcf89d7342292b44012cd8e692947f6c01a960a
|
||||
|
||||
1.5.1
|
||||
|
||||
* sha 256: 9c6df4b94c180f5657cb424383aa2bf3aca063c8e7b40af0497be1ef7bdb858a
|
||||
* sha 512: 219f753347ae64a4dd593568797438742e9ddae380c729598d8eda863080a6ed4e5086d735fc348c48328bb795a5a5b57b0421be5dd45755744d895b24312627
|
||||
|
||||
1.5.0
|
||||
|
||||
* sha 256: 22010e2916493b0d7cfb08c2196f12589509ce11010a7107aed13ddbfd9709cc
|
||||
* sha 512: 707d6cc01326ba32402f9fb402ff8aceaeaba63ca6ba2eb157e5a4c83123515a3a74da960813479db303eddc2e7f79f39b241dff05b89d47d72d5f1d20ca6d37
|
||||
|
||||
1.4.4
|
||||
|
||||
* sha 256: c6e08e19feb17f768e136cf02f5692ef121ff289763dc60ef8678103803d3307
|
||||
* sha 512: aebf27fa9c24f93dfd0b7c96536c253e2ea603d6746c40e8de2163e06367bc57ac4e22d6c07dd1e0963cce5b18b460d373e15b5c12a5a42ae6b70787971960c9
|
||||
|
||||
1.4.3
|
||||
|
||||
* sha 256: 5e29cbaf7c0c5ca74f71a5605bb3d6e302e051798401fee9a79419720b8d8e95
|
||||
* sha 512: 8004865f8603648d9ac9bb700f3ee040e6516c222ad3d783b34219c8fa3a7bdbba6abb74fe92c4d0bd4dbbce0ec4d08be12297a8bad5032baeb589eec557e24e
|
||||
|
||||
1.4.2
|
||||
|
||||
* sha 256: 27efb9328cf9cab1f81e66627696baf8c7cc2c372339a2890f955b40f3a7c396
|
||||
* sha 512: afcdbbce0753aff4770a88ddbd7df5687a7de0c77de3a2d296f85a8b8e01813212be6a0b69548aadef58e0e7da19ffea71c4f3448572656d4b19ff7f2f2fb70a
|
||||
|
||||
1.4.1
|
||||
|
||||
* sha 256: c3e0ccceaf1078b91071c40b0ccb7c4f8e53ae38b05ee6637f9f39f7f6ece2cb
|
||||
* sha 512: fd77f39fc7a7e5376d8505a61d643ed4d8f4cfbbf38d70cf9ef6989645e8cc6cb9d4b1024d241dc689b6fd927a405c97b9c918b6994b8f9ab7406646f37b952d
|
||||
|
||||
1.4.0
|
||||
|
||||
* sha 256: 14aa93d890c62cc763b3b546a51ad8560479d5e91fa9f949858ae6bc785e80be
|
||||
* sha 512: 88f93b49792684c38553b65d2296a0e502a059814a0cfff30d05c89958870d6f66d67aac2074cfd307bad82b0d72d5c4944822a61a68f665dc161407db365fbc
|
||||
|
||||
1.3.4
|
||||
|
||||
* sha 256: ea9f634b8f6e2b9f191745a25abff4969eb7ea19cb3186b79a6138904aedeb1c
|
||||
* sha 512: 9094f9c92acbff8fd95d38e7458c5184804f8913fa8c405bc2b6a0a220fe478b06cfeadbae41bd5ef84bde8d5642c249df9dada953e39c25926aa650c30a5309
|
||||
|
||||
1.3.3
|
||||
|
||||
* sha 256: 801851ceb52afac333a1decdd236ddef55555f8b36f865e8b3a831975a496f0d
|
||||
* sha 512: ce64dd56ab99bba0a83414fecc82d85322e1ca5ca3a2ca77bdc7055b2dd10fd5e20e3ff62809a696d1b04ff0046fed88e2d7538aa447099d7c2d7df8e627b2e0
|
||||
|
||||
1.3.2
|
||||
|
||||
* sha 256: 2cefab73b8d5902b30adb0dda1bd292af2ee808d232abcc4b2a2802d522d5232
|
||||
* sha 512: 3789efde2cb6f629c77738dd6c8638646b345d5272868aa9b244b2b19c53e6a0f5911d34744e3a9ff6253c73b2b11f6714f37ae86cc21d6979e0c8539315d659
|
||||
|
||||
1.3.1
|
||||
|
||||
* sha 256: 71be224cd99d20da4f039675ec5c48213dd14ef027b804501fa3241886b2b08b
|
||||
* sha 512: d094b786e5a74b01699997a85747943e6de3544cc903dd1c5dba449c66bd925b6378de800d3734969dabf8a20c7004dc3402e3c59577db09ce107b68a1f7bd21
|
||||
|
||||
1.3.0
|
||||
|
||||
* sha 256: aecc5292f56f7250d777110cee1f11a92018a9eb2117d7d37cd51d7d3a5cbae0
|
||||
* sha 512: 1d2d220f44787a97359a32f305e33185f0369551e61a9d7066023bfa43de50849eba5bcbb0083d2dc563ac993b8d51dd733afa0adb2a823ef50ecfee5624bbc0
|
||||
|
||||
1.2.1
|
||||
|
||||
* sha 256: 803f7667dc4997062f9ec95afcdca0cac68c82a7cf057cef83fe1ccfee33b8bc
|
||||
* sha 512: 4d6b7efea10d190a153f893123b1715f290f4b131b490f3d23f489e2dd8edbb886001282849aad9575ad2f40375bbbded59c1cb6157115fcc14dd6a2a061b103
|
||||
|
||||
1.2.0
|
||||
|
||||
* sha 256: b3c6135833001a0ef600ea9628cca11f4130a524ebe748929d8f7bad034f2bf0
|
||||
* sha 512: c044a086a9f65b0d27d05e2f12a20fe5d77386fc5682991c13a1894a84804bcd337c9167235869661d6e6581133521bd710ef2330066a5d2e2703d1630042f3f
|
||||
|
||||
1.1.0
|
||||
|
||||
* sha 256: fc393e225c549f893b9e21e8b904e546d5857bac1d905b3d26334c8f8a1cda11
|
||||
* sha 512: 8b94b1069e767202bcab087cb592eadc42f0453d17ee119d48760be00bc66278cf0fa60bb09308d30cb551df6a7a3e26e2ab8b29c04f0e953cc6906542cd2d6f
|
||||
|
||||
1.0.6
|
||||
|
||||
* sha 256: 712ae9a8f17a9e589e108f0d503da203cc5eaf1c4a6ca6efb5b4c83b432ce0b8
|
||||
* sha 512: d574003023a00cfd6623aac986a5a7f397cfd0bc9114017629a8c72731b0df3977c4a31768502dfa8a6607be06930089b2ccf6ffca9b5bcd1096b7ca0aede226
|
||||
333
README.md
333
README.md
|
|
@ -1,19 +1,23 @@
|
|||
# Cagebreak: A Wayland Tiling Compositor Inspired by Ratpoison
|
||||
|
||||
This is Cagebreak, a Wayland tiling compositor. The goal of this project is to
|
||||
provide a successor to ratpoison for Wayland users. However, this is
|
||||
no reimplementation of ratpoison. Should you like to know if a feature
|
||||
will be implemented, open an issue or get in touch with the development team.
|
||||
This is Cagebreak, a Wayland tiling compositor.
|
||||
|
||||
The goal of this project is to provide a successor to ratpoison for Wayland
|
||||
users. However, this is no reimplementation of ratpoison.
|
||||
|
||||
Should you like to know if a feature will be implemented, open an issue
|
||||
or get in touch with the development team.
|
||||
|
||||
For documentation of Cagebreak, please see
|
||||
the man pages for [cagebreak](man/cagebreak.1.md) and cagebreak
|
||||
[configuration](man/cagebreak-config.5.md) and the
|
||||
[Wiki](https://github.com/project-repo/cagebreak/wiki/).
|
||||
* the man pages
|
||||
* [cagebreak](man/cagebreak.1.md)
|
||||
* [configuration](man/cagebreak-config.5.md)
|
||||
* also the [FAQ](FAQ.md)
|
||||
|
||||
Cagebreak is based on [Cage](https://github.com/Hjdskes/cage), a Wayland kiosk
|
||||
compositor.
|
||||
|
||||
Cagebreak is currently being developed under Arch Linux and uses the libraries
|
||||
Cagebreak is developed under Arch Linux and uses the libraries
|
||||
as they are obtained through pacman. However, cagebreak should also work on
|
||||
other distributions given the proper library versions.
|
||||
|
||||
|
|
@ -21,8 +25,11 @@ other distributions given the proper library versions.
|
|||
|
||||
If you are using archlinux, just use the PKGBUILDs from the aur:
|
||||
|
||||
* Using the `cagebreak` package, Cagebreak is compiled on the target system (since release 1.3.0)
|
||||
* Using `cagebreak-bin` package, the pre-built binaries are extracted to the appropriate paths on the target system (since release 1.3.2)
|
||||
* Using [cagebreak](https://aur.archlinux.org/packages/cagebreak), Cagebreak is
|
||||
compiled on the target system (since release 1.3.0)
|
||||
* Using [cagebreak-bin](https://aur.archlinux.org/packages/cagebreak-bin),
|
||||
the pre-built binaries are extracted to
|
||||
appropriate paths on the target system (since release 1.3.2)
|
||||
|
||||
See [cagebreak-pkgbuild](https://github.com/project-repo/cagebreak-pkgbuild) for details.
|
||||
|
||||
|
|
@ -59,7 +66,7 @@ $ ninja -C build
|
|||
By default, this builds a debug build. To build a release build, use `meson
|
||||
build --buildtype=release`.
|
||||
|
||||
#### Xwayland Support
|
||||
##### Xwayland Support
|
||||
|
||||
Cagebreak comes with compile-time support for XWayland. To enable this,
|
||||
first make sure that your version of wlroots is compiled with this
|
||||
|
|
@ -67,9 +74,9 @@ option. Then, add `-Dxwayland=true` to the `meson` command above. Note
|
|||
that you'll need to have the XWayland binary installed on your system
|
||||
for this to work.
|
||||
|
||||
#### Man Pages
|
||||
##### Man Pages
|
||||
|
||||
Cagebreak has man pages. To use them, make sure that you have `pandoc`
|
||||
Cagebreak has man pages. To use them, make sure that you have `scdoc`
|
||||
installed. Then, add `-Dman-pages=true` to the `meson` command.
|
||||
|
||||
### Running Cagebreak
|
||||
|
|
@ -81,24 +88,22 @@ KMS+DRM backend. For more configuration options, see the man pages.
|
|||
|
||||
## Contributing to Cagebreak
|
||||
|
||||
Cagebreak is currently developed to fit the needs of its creators. Should you desire
|
||||
to implement a feature, please let us know in advance by opening an issue. However,
|
||||
the feature set is intentionally limited (i.e. we removed support for a desktop
|
||||
background) and will continue to be so in the future.
|
||||
Cagebreak is currently developed to fit the needs of its creators. Should you
|
||||
desire to implement a feature, please let us know in advance by opening
|
||||
an issue. However, the feature set is intentionally limited (i.e. we removed
|
||||
support for a desktop background) and will continue to be so in the future.
|
||||
|
||||
Nonetheless, don't be intimidated by the (slightly lengthy) release checklist or any other
|
||||
part of this file. Do what you can, open an issue and we will collaborate
|
||||
toward a solution.
|
||||
Nonetheless, don't be intimidated by the (slightly lengthy) release checklist
|
||||
or any other part of this file. Do what you can, open an issue and we will
|
||||
collaborate toward a solution.
|
||||
|
||||
### Branching Strategy and Versioning
|
||||
|
||||
All features are to be developed on feature branches, named after the feature.
|
||||
There exists a branch `development` to which all reasonable code
|
||||
is comitted for final testing.
|
||||
|
||||
There exists a branch `development` to which all reasonable feature branches
|
||||
are merged for final testing.
|
||||
|
||||
Once `development` is ready for a release, meaning that the release checklist is fulfilled,
|
||||
it is merged into `master`, creating a new release, which is tagged and signed.
|
||||
Once `development` is ready for a release, it is merged into `master` (possibly via
|
||||
a cherry-picked branch), creating a new release, which is tagged and signed.
|
||||
|
||||
All releases are tagged according to [semantic versioning](https://semver.org) guidelines.
|
||||
|
||||
|
|
@ -107,7 +112,7 @@ In the past, our git history did not perfectly reflect this scheme.
|
|||
### Releases
|
||||
|
||||
The release checklist must be completely fulfilled in one run for a release to
|
||||
occur. Once any failure occurs the entire checklist must be completed from scratch.
|
||||
occur.
|
||||
|
||||
* [ ] `git checkout development`
|
||||
* [ ] `git pull origin development`
|
||||
|
|
@ -120,13 +125,16 @@ occur. Once any failure occurs the entire checklist must be completed from scrat
|
|||
* [ ] man/cagebreak
|
||||
* [ ] man/cagebreak-config
|
||||
* [ ] Set EPOCH to release day in man generation in meson.build
|
||||
* [ ] wiki
|
||||
* [ ] README.md Changelog for major and minor releases but not patches
|
||||
* [ ] FAQ.md
|
||||
* [ ] Changelog.md for major and minor releases but not patches
|
||||
* [ ] Check features for SECURITY.md relevance (changes to socket scope
|
||||
for example)
|
||||
* [ ] Fixed bugs documented in Bugs.md
|
||||
* [ ] Include issue description from github
|
||||
* [ ] Testing
|
||||
* [ ] Manual testing
|
||||
* [ ] Libfuzzer testing
|
||||
* [ ] Build version without xwayland support
|
||||
* [ ] Version Number
|
||||
* [ ] meson.build
|
||||
* [ ] git tag
|
||||
|
|
@ -165,6 +173,9 @@ occur. Once any failure occurs the entire checklist must be completed from scrat
|
|||
* [ ] `cp build/cagebreak-config.5 release-artefacts_version/`
|
||||
* [ ] `cp build/cagebreak-config.5.sig release-artefacts_version/`
|
||||
* [ ] `cp LICENSE release-artefacts_version/`
|
||||
* [ ] `cp README.md release-artefacts_version/`
|
||||
* [ ] `cp SECURITY.md release-artefacts_version/`
|
||||
* [ ] `cp FAQ.md release-artefacts_version/`
|
||||
* [ ] `export SOURCE_DATE_EPOCH=$(git log -1 --pretty=%ct) ; tar --sort=name --mtime= --owner=0 --group=0 --numeric-owner -czf release-artefacts_version.tar.gz release-artefacts_version`
|
||||
* [ ] Checked archive
|
||||
* [ ] tar -xvf release_version.tar.gz
|
||||
|
|
@ -204,215 +215,7 @@ For every release after 1.0.5, hashes will be provided.
|
|||
|
||||
For every release after 1.7.0, hashes will be provided for man pages too.
|
||||
|
||||
1.8.3 cagebreak
|
||||
|
||||
* sha 256: 85803b75b1be0d9bf600175ce6aa981a1632768872e5afddea7569f825c1f7c3
|
||||
* sha 512: 96c9b33804bbd7c652e32556d5001e12c2b07ab7127118a050be513bd6e0d6241fb78c80d9cce50447ae32a7b33c5c6a6cf1def36efaf3d8e8ddb028bcd769df
|
||||
|
||||
1.8.3 cagebreak.1
|
||||
|
||||
* sha 256: e583f818d73484cbcae65dbe6ffc226ea58fdad87363213ea5b1059d866216e4
|
||||
* sha 512: b96d8f9308d31bb1faa346267136fd7a53caed95065e7da09713b5f64addb42c835b27cd6cfa6bcf8c5b5d572a73b1e828f47b14e06a00b0871a77a25a286597
|
||||
|
||||
1.8.3 cagebreak-config.5
|
||||
|
||||
* sha 256: d0be008e0e5d47b876ccfb8cf70967097673b81fa93718838db45f4056b76bc0
|
||||
* sha 512: 42f8d25eb89219aebd00e927627a51fd8b7f6fda6f7c6147abbc0e4fae5de1ceb5827b79a814127a0706cc213d7717733e02cfa5275960cb0cce23eb54493b1e
|
||||
|
||||
1.8.2 cagebreak
|
||||
|
||||
* sha 256: f4d275d48ba3d999969f8cb3c8142d27aa8e8d362106ee7575e4b13c02173b2a
|
||||
* sha 512: 72b11cb966b0978133b9848c2a7f57574c599c7fe895ca9f1cba16930216e1ac8aeae86d976593fc01b15e94ecc1430666f474654cf2fe41eda8c1181bf03f3d
|
||||
|
||||
1.8.2 cagebreak.1
|
||||
|
||||
* sha 256: 51ee97a7c0b86268cf7622f84f7b1813df8e4a7838c00aae412a611d3693e87a
|
||||
* sha 512: 5ce826afbee9cbc1129f37463f5b6d4dfc060583f6f7816dd5039b18d66a2b7e22f7293a4aa03acc4e6c690886d0297fef5b9f85d720a4467becfd833b59a160
|
||||
|
||||
1.8.2 cagebreak-config.5
|
||||
|
||||
* sha 256: 7c780ba85211ba40c7535b3f10f12312f9edeaa10030228ba21a96724469a325
|
||||
* sha 512: 9a56ba16c2aed6f17d4098e54900a5d25602f986e3606dd6ed26563c1920c66404b210dbca9f41bfcc3284bf5a42b750263bcaa2317320f8725e8f9c66e8b893
|
||||
|
||||
1.8.1 cagebreak
|
||||
|
||||
* sha 256: e3247281d21525413790e3feceae129d9b0559497615d3fdd64ec2fc4ab9ab3d
|
||||
* sha 512: 8c7c2820be9d7c74e3f9e239c7da740ff41d7f11cd40953dbfbc59c04942077f08625f6d7ec37e6037fd9c4b6950fc4f9af23478080665fdda867c65e0a187bf
|
||||
|
||||
1.8.1 cagebreak.1
|
||||
|
||||
* sha 256: 96997afdfde9c2719533799aa48c8f036610bb04bc719130d2ab3a3617b072ee
|
||||
* sha 512: 0831f5d2e3b4f23fd5775df2b7f6486099d64962567222a8fb49e6a40e7d29ed36a7c2c16201bbdcc985ac74f1d0e034b530afbe0ce58d6a0c53d467cff0a6a0
|
||||
|
||||
1.8.1 cagebreak-config.5
|
||||
|
||||
* sha 256: bd0e2eb02ba28ec1c8f2bd0fd5cd4c84af24b615fcc477414e49e68e1963cf1b
|
||||
* sha 512: 7135a2b371294bfdc759a393c13fa0225f1789dba94bb09e96ae689796215b8030280d6cc09c9d1fe139f000f5a4748efd16bb3e5d3b9fcc74a19259802f20ef
|
||||
|
||||
1.8.0 cagebreak
|
||||
|
||||
* sha 256: ac84aa4a08c311da79ca29d92eef4254cb625674b255dbb75621ee6b171a1d79
|
||||
* sha 512: c047bb1986fd1d444547e4d64aa7ef9138b3d30327ac3ad9b4c6976e8df6638bae07c39293b5bc9c20e959c0a22b0e40eb2b23b4766d9a5531377ff954b16229
|
||||
|
||||
1.8.0 cagebreak.1
|
||||
|
||||
* sha 256: 4de43de7bde67d6d806d206dffc34389f0b5c3ba648bfef673b7bc0adeb29202
|
||||
* sha 512: 72aac9a2e9a47f2f85949222d5944dc293332a616e3b961c625fe876172f66638038057c30aa18904d6d969451f468b4fe45e918c0b204cf6952d58ea4c69c33
|
||||
|
||||
1.8.0 cagebreak-config.5
|
||||
|
||||
* sha 256: 678aadde06b5ff6bfbd9bc9460423210f9599bcaa0e50c2eae076dc6d6852781
|
||||
* sha 512: 72056018fc1c559f26bd7e007b3f1db7d478cec7ec9337620e03a1e3d06910e244a52e8f655ea4f5d73669ffe064bbd23506005d9a6c06764b0f820d7a1df43f
|
||||
|
||||
1.7.4 cagebreak
|
||||
|
||||
* sha 256: c7442db906239b13f8d09e91cbe01f9e47b2a2c75bbb4b52adefd15dfbfa820f
|
||||
* sha 512: 9c36ce706f31e1b8afacd8f9cd216c460d66030e0b2736a3dd929902b0d5fc52c5e69dbf6787205b8c495d960e00b6e7f633da86ab6e31613f1b4a9fd47c9f0e
|
||||
|
||||
1.7.4 cagebreak.1
|
||||
|
||||
* sha 256: 3dacc521e5e9b963cceeefeed6a10104c7c415d86826a72788aba5b33ce320f1
|
||||
* sha 512: 0a4c4fbff09dd403fed61056ae3211ad2b4370b4e9ed07806fc22624e5312b4a25e469dc0eef1ca4556cbb8efabb0127e7519df79852e110faa98fb17ca377de
|
||||
|
||||
1.7.4 cagebreak-config.5
|
||||
|
||||
* sha 256: ed22fed1818172f31d3fb3efbe5e66b49f135cb2367b1c85209fd880ff7532ab
|
||||
* sha 512: cc634c63962ae50b4de20a3aad8ca0970175b53156690d69e6a69fd8f370ad20d84db783cc7e94c61d4d4d89f1205d43622690e58afba549ed57ddad009e3bac
|
||||
|
||||
1.7.3 cagebreak
|
||||
|
||||
* sha 256: 8adb4911d9603fec5b8eb4f67a09be95b8f0b37e50d4ab579191da78df18f70b
|
||||
* sha 512: eddaecd7b577b9fe77b1ed4d341074f7f860967568392d0479543ea8860b4289df3eb5645885e18e35260b14843663ae50f98103f8016e857237a397632322a6
|
||||
|
||||
1.7.3 cagebreak.1
|
||||
|
||||
* sha 256: bcc623e42c86ab65bc2f8cb7e4377ca0d816ddc281527b7caeded62753e943b8
|
||||
* sha 512: b4290e1040bd6a299d478ad6b695de75cf030d0d274340b43d3ed4382cf6877f824cd4ed9d7020bfb55afe276c62de7fc07c3fbee6f6485c6440a024115afe12
|
||||
|
||||
1.7.3 cagebreak-config.5
|
||||
|
||||
* sha 256: b9789b6abd473e9afb33d4e2c7822f7d8f3c10e9eb3fb70c47b713f6331c626a
|
||||
* sha 512: c49e01cfc4a4ed272f054bea8f2845f0e3f1609cf85d1a0ce14c1b67dc207df153b11bc20ceef09c855d467f0e013e54623ce9f70c217c4278607fc54d0e3206
|
||||
|
||||
1.7.2 cagebreak
|
||||
|
||||
* sha 256: 40f4642e8e8caee338055079b046f6e0b790c87226ee307b27a64fcb2a6c6472
|
||||
* sha 512: 22c5f1986ca4262a7c08a6c03cffe36eaedd8c3c5e27e12baf12a90f94aea088ac93ee107770f162fc70148be687f6394b8fd64ad3fe14414bdf63b55b33798e
|
||||
|
||||
1.7.2 cagebreak.1
|
||||
|
||||
* sha 256: 3253e592c40c78fd3733c761163acc2efaaf5865627cf51fd33cc0bc5d9cc6e7
|
||||
* sha 512: 901305e166c10aa7e4a26b721a69e0ba4779f4f8ee690551438ceadae65929f13949457872b9397dd46c5b7bad6a6f2638d6fd6df9bc5567c914c798cbf3e9a4
|
||||
|
||||
1.7.2 cagebreak-config.5
|
||||
|
||||
* sha 256: 148ec4d80dc9a86485fe77f8daf1f7fa4cb3d1b6aaa709bb012005583779e1f7
|
||||
* sha 512: d5732572e47dd07078ac2f6d589522e6007188fc05ac79520c93442212d5c0341459f135191b88c608a75b2f56c2de4065566bd869fbc24e475936d32a54a7f8
|
||||
|
||||
1.7.1 cagebreak
|
||||
|
||||
* sha 256: 5a40797e016a2fa32b5bb70a056b35c482bef09f1795bbaf0188dbadaf8197c3
|
||||
* sha 512: 2ef327b63ac4651f23517be8d5cb8fbec99bd889f52f8abfd62a09ca6e6c0060347ab8d60e4917d39edd36db34597a673239967533f14457733acb97f6c29a7f
|
||||
|
||||
1.7.1 cagebreak.1
|
||||
|
||||
* sha 256: 0301f04254ae6e7ada7e22bbe7aee022ec0793fbce434a396868258e6f1ea4cf
|
||||
* sha 512: f0c0c5de30be907e9ba5c9cfa0bca8cef3e94c0b5f52de9e2c3681c85aa957f75e92b5e26bb894c3a5e251295cfe7a1470653cc7dc05564d7d91c6eb43b7409a
|
||||
|
||||
1.7.1 cagebreak-config.5
|
||||
|
||||
* sha 256: 6882330a77f3ff98ea642f47b4090b38d542abf0b7be3f226486c5614899efc6
|
||||
* sha 512: a572f97836e4ccc6d67aa21c7f4aaebe06adb066c70038b670ec1ef267e3750764cb53e96b8d7bc24c7f993f24c0cfabee183307b45006d049f7416559bcaca4
|
||||
|
||||
1.7.0
|
||||
|
||||
* sha 256: 5af11b84e61a82a1a276e8f91f6ebc6baafd2c98d22be3da1d01734cc9d55faa
|
||||
* sha 512: 45474115fb4c28fe1ee91ad54706bfe521b6e70bd8ea619b94a3f50bae426891bf6a0387aa9b2f7f6d18349280c4e84973e4e433d50c090e5a764c64fa67795d
|
||||
|
||||
1.6.0
|
||||
|
||||
* sha 256: aef473eae73454429afb158d66a7bd9aec75ef915845b7508de5448820357aa8
|
||||
* sha 512: 17889bc1af9f343598a5ee599b25e702987dd0bd905a9566874e8a0094c57168e413938624949fa214e6e382cbcf89d7342292b44012cd8e692947f6c01a960a
|
||||
|
||||
1.5.1
|
||||
|
||||
* sha 256: 9c6df4b94c180f5657cb424383aa2bf3aca063c8e7b40af0497be1ef7bdb858a
|
||||
* sha 512: 219f753347ae64a4dd593568797438742e9ddae380c729598d8eda863080a6ed4e5086d735fc348c48328bb795a5a5b57b0421be5dd45755744d895b24312627
|
||||
|
||||
1.5.0
|
||||
|
||||
* sha 256: 22010e2916493b0d7cfb08c2196f12589509ce11010a7107aed13ddbfd9709cc
|
||||
* sha 512: 707d6cc01326ba32402f9fb402ff8aceaeaba63ca6ba2eb157e5a4c83123515a3a74da960813479db303eddc2e7f79f39b241dff05b89d47d72d5f1d20ca6d37
|
||||
|
||||
1.4.4
|
||||
|
||||
* sha 256: c6e08e19feb17f768e136cf02f5692ef121ff289763dc60ef8678103803d3307
|
||||
* sha 512: aebf27fa9c24f93dfd0b7c96536c253e2ea603d6746c40e8de2163e06367bc57ac4e22d6c07dd1e0963cce5b18b460d373e15b5c12a5a42ae6b70787971960c9
|
||||
|
||||
1.4.3
|
||||
|
||||
* sha 256: 5e29cbaf7c0c5ca74f71a5605bb3d6e302e051798401fee9a79419720b8d8e95
|
||||
* sha 512: 8004865f8603648d9ac9bb700f3ee040e6516c222ad3d783b34219c8fa3a7bdbba6abb74fe92c4d0bd4dbbce0ec4d08be12297a8bad5032baeb589eec557e24e
|
||||
|
||||
1.4.2
|
||||
|
||||
* sha 256: 27efb9328cf9cab1f81e66627696baf8c7cc2c372339a2890f955b40f3a7c396
|
||||
* sha 512: afcdbbce0753aff4770a88ddbd7df5687a7de0c77de3a2d296f85a8b8e01813212be6a0b69548aadef58e0e7da19ffea71c4f3448572656d4b19ff7f2f2fb70a
|
||||
|
||||
1.4.1
|
||||
|
||||
* sha 256: c3e0ccceaf1078b91071c40b0ccb7c4f8e53ae38b05ee6637f9f39f7f6ece2cb
|
||||
* sha 512: fd77f39fc7a7e5376d8505a61d643ed4d8f4cfbbf38d70cf9ef6989645e8cc6cb9d4b1024d241dc689b6fd927a405c97b9c918b6994b8f9ab7406646f37b952d
|
||||
|
||||
1.4.0
|
||||
|
||||
* sha 256: 14aa93d890c62cc763b3b546a51ad8560479d5e91fa9f949858ae6bc785e80be
|
||||
* sha 512: 88f93b49792684c38553b65d2296a0e502a059814a0cfff30d05c89958870d6f66d67aac2074cfd307bad82b0d72d5c4944822a61a68f665dc161407db365fbc
|
||||
|
||||
1.3.4
|
||||
|
||||
* sha 256: ea9f634b8f6e2b9f191745a25abff4969eb7ea19cb3186b79a6138904aedeb1c
|
||||
* sha 512: 9094f9c92acbff8fd95d38e7458c5184804f8913fa8c405bc2b6a0a220fe478b06cfeadbae41bd5ef84bde8d5642c249df9dada953e39c25926aa650c30a5309
|
||||
|
||||
1.3.3
|
||||
|
||||
* sha 256: 801851ceb52afac333a1decdd236ddef55555f8b36f865e8b3a831975a496f0d
|
||||
* sha 512: ce64dd56ab99bba0a83414fecc82d85322e1ca5ca3a2ca77bdc7055b2dd10fd5e20e3ff62809a696d1b04ff0046fed88e2d7538aa447099d7c2d7df8e627b2e0
|
||||
|
||||
1.3.2
|
||||
|
||||
* sha 256: 2cefab73b8d5902b30adb0dda1bd292af2ee808d232abcc4b2a2802d522d5232
|
||||
* sha 512: 3789efde2cb6f629c77738dd6c8638646b345d5272868aa9b244b2b19c53e6a0f5911d34744e3a9ff6253c73b2b11f6714f37ae86cc21d6979e0c8539315d659
|
||||
|
||||
1.3.1
|
||||
|
||||
* sha 256: 71be224cd99d20da4f039675ec5c48213dd14ef027b804501fa3241886b2b08b
|
||||
* sha 512: d094b786e5a74b01699997a85747943e6de3544cc903dd1c5dba449c66bd925b6378de800d3734969dabf8a20c7004dc3402e3c59577db09ce107b68a1f7bd21
|
||||
|
||||
1.3.0
|
||||
|
||||
* sha 256: aecc5292f56f7250d777110cee1f11a92018a9eb2117d7d37cd51d7d3a5cbae0
|
||||
* sha 512: 1d2d220f44787a97359a32f305e33185f0369551e61a9d7066023bfa43de50849eba5bcbb0083d2dc563ac993b8d51dd733afa0adb2a823ef50ecfee5624bbc0
|
||||
|
||||
1.2.1
|
||||
|
||||
* sha 256: 803f7667dc4997062f9ec95afcdca0cac68c82a7cf057cef83fe1ccfee33b8bc
|
||||
* sha 512: 4d6b7efea10d190a153f893123b1715f290f4b131b490f3d23f489e2dd8edbb886001282849aad9575ad2f40375bbbded59c1cb6157115fcc14dd6a2a061b103
|
||||
|
||||
1.2.0
|
||||
|
||||
* sha 256: b3c6135833001a0ef600ea9628cca11f4130a524ebe748929d8f7bad034f2bf0
|
||||
* sha 512: c044a086a9f65b0d27d05e2f12a20fe5d77386fc5682991c13a1894a84804bcd337c9167235869661d6e6581133521bd710ef2330066a5d2e2703d1630042f3f
|
||||
|
||||
1.1.0
|
||||
|
||||
* sha 256: fc393e225c549f893b9e21e8b904e546d5857bac1d905b3d26334c8f8a1cda11
|
||||
* sha 512: 8b94b1069e767202bcab087cb592eadc42f0453d17ee119d48760be00bc66278cf0fa60bb09308d30cb551df6a7a3e26e2ab8b29c04f0e953cc6906542cd2d6f
|
||||
|
||||
1.0.6
|
||||
|
||||
* sha 256: 712ae9a8f17a9e589e108f0d503da203cc5eaf1c4a6ca6efb5b4c83b432ce0b8
|
||||
* sha 512: d574003023a00cfd6623aac986a5a7f397cfd0bc9114017629a8c72731b0df3977c4a31768502dfa8a6607be06930089b2ccf6ffca9b5bcd1096b7ca0aede226
|
||||
See [Hashes.md](Hashes.md)
|
||||
|
||||
#### GPG Signatures
|
||||
|
||||
|
|
@ -441,6 +244,8 @@ keys.
|
|||
* 8F872885968EB8C589A32E9539ACC012896D450F
|
||||
* 896B92AF738C974E0065BF42F2576BD366156BB9
|
||||
* AA927AFD50AF7C6810E69FE8274F2C605359E31B
|
||||
* BE2DED372287BC4EB2213E13A0C743848A638955
|
||||
* 0F3476E4B2404F95EC41600683D5810F7911B020
|
||||
|
||||
Should we at any point retire a key, we will only replace it with keys signed
|
||||
by at least one of the above collection.
|
||||
|
|
@ -520,61 +325,19 @@ issue](https://github.com/project-repo/cagebreak/issues/new) on
|
|||
Fixed bugs are to be assigned a number and summarized inside Bugs.md for future reference
|
||||
independent of github, in case this service is unavailable.
|
||||
|
||||
### Security Bugs
|
||||
Mail contact: `cagebreak @ project-repo . co`
|
||||
|
||||
Should you want to get in touch with the developers of cagebreak to report a
|
||||
security vulnerability or a different issue confidentially, contact
|
||||
`cagebreak @ project-repo . co`.
|
||||
|
||||
We will try to respond to everything that is not obvious spam.
|
||||
|
||||
Please encrypt your email with the appropriate GPG key found in `keys/`.
|
||||
GPG Fingerprints:
|
||||
|
||||
* B15B92642760E11FE002DE168708D42451A94AB5
|
||||
* F8DD9F8DD12B85A28F5827C4678E34D2E753AA3C
|
||||
* 3ACEA46CCECD59E4C8222F791CBEB493681E8693
|
||||
|
||||
Note that the keys are signed by cagebreak signing keys.
|
||||
|
||||
If you want us to respond via GPG-encrypted mail, please include your own
|
||||
public key or provide the fingerprint and directions to obtain the key.
|
||||
See [SECURITY.md](SECURITY.md) for details.
|
||||
|
||||
## Changelog
|
||||
|
||||
### Release 1.0.0
|
||||
|
||||
Adds basic tiling window manager functionality to cage.
|
||||
|
||||
### Release 1.1.0
|
||||
|
||||
Unifies commands and actions. See Issue 4 in Bugs.md.
|
||||
|
||||
### Release 1.2.0
|
||||
|
||||
Adds output configuration as described in the man pages.
|
||||
|
||||
### Release 1.3.0
|
||||
|
||||
Adds IPC as described in the man pages.
|
||||
|
||||
### Release 1.4.0
|
||||
|
||||
Adds close command for windows as described in the man pages.
|
||||
|
||||
### Release 1.5.0
|
||||
|
||||
Adds options to disable or enable outputs. See Issue 22 in Bugs.md and Issue #2 on github.
|
||||
|
||||
### Release 1.6.0
|
||||
|
||||
Adds support for non-build dependencies and an option for builds without pandoc.
|
||||
|
||||
### Release 1.7.0
|
||||
|
||||
Improve window ordering.
|
||||
|
||||
### Release 1.8.0
|
||||
|
||||
Adds libinput configuration and virtual keyboard and pointer support.
|
||||
See [Changelog.md](Changelog.md)
|
||||
|
||||
## Contributors
|
||||
|
||||
|
|
|
|||
91
SECURITY.md
Normal file
91
SECURITY.md
Normal file
|
|
@ -0,0 +1,91 @@
|
|||
# Security
|
||||
|
||||
The main possibility for security bugs to occur in cagebreak is by privilege
|
||||
escalation using the socket. Indeed, any program with access to the socket
|
||||
immediately gains arbitrary code execution rights. As of right now, the socket
|
||||
is world-writable. If you disagree with this threat model, you may contact
|
||||
us via email (See section Email Contact below.) or [open an issue on github](https://github.com/project-repo/cagebreak/issues/new).
|
||||
|
||||
Should any problem with the github issue system arise or any other reason
|
||||
for (potentially confidential) contact with the Cagebreak authors appear,
|
||||
you may contact us via email (See section Email Contact below.).
|
||||
|
||||
## Supported Versions
|
||||
|
||||
The latest release always contains the latest bug fixes and features.
|
||||
There are no official backports for security vulnerabilities. Builds
|
||||
are reproducible under conditions outlined in [README.md](README.md).
|
||||
|
||||
## Bug Reports
|
||||
|
||||
For normal bugs you may [open an issue on github](https://github.com/project-repo/cagebreak/issues/new).
|
||||
|
||||
For everything else, an email contact (with gpg encryption and signature)
|
||||
is available below.
|
||||
|
||||
## Email Contact
|
||||
|
||||
Should you want to get in touch with the developers of cagebreak to report
|
||||
a security vulnerability or anything else via email, contact
|
||||
`cagebreak @ project-repo . co`.
|
||||
|
||||
We will try to respond to everything that is not obvious spam.
|
||||
|
||||
### GPG-Encrypted Emails
|
||||
|
||||
If you can, please encrypt your email with the appropriate GPG key found
|
||||
in `keys/` and sign your message with your own key.
|
||||
|
||||
* B15B92642760E11FE002DE168708D42451A94AB5
|
||||
* F8DD9F8DD12B85A28F5827C4678E34D2E753AA3C
|
||||
* 3ACEA46CCECD59E4C8222F791CBEB493681E8693
|
||||
|
||||
Note that our keys are signed by cagebreak signing keys.
|
||||
|
||||
If you want us to respond via GPG-encrypted email, please include your own
|
||||
public key or provide the fingerprint and directions to obtain the key.
|
||||
|
||||
## Threat Model
|
||||
|
||||
Cagebreak is a wayland compositor, which is run by the user of the system
|
||||
and thus has access to whichever resources this user has access to.
|
||||
Cagebreak can restrict other programs in no way, because this would hamper
|
||||
usability (consider a web browser unable to write a downloaded file to disk
|
||||
for instance). There is no transmission of information by cagebreak other
|
||||
than to the screens, ipc and potentially other documented local channels.
|
||||
|
||||
### STRIDE Threat List
|
||||
|
||||
This is not a thorough analysis, just an overview of the ways in which cagebreak
|
||||
has/does not have an attack surface.
|
||||
|
||||
#### Spoofing
|
||||
|
||||
Not applicable - Using cagebreak already requires a login as a user.
|
||||
|
||||
#### Tampering
|
||||
|
||||
Not applicable - Cagebreak must allow system manipulation for user software.
|
||||
|
||||
#### Repudiation
|
||||
|
||||
Not applicable - There are no prohibited operations (See Tampering above.).
|
||||
While cagebreak does send events over documented channels there is no logging
|
||||
activated by default, though, of course, this can be changed by the user
|
||||
by logging socket output for example.
|
||||
|
||||
#### Information Disclosure
|
||||
|
||||
Not applicable - Information disclosure over documented channels is a feature
|
||||
and any software run by the user may exfiltrate any data the user has access to.
|
||||
|
||||
#### Denial of Service
|
||||
|
||||
Not applicable - Cagebreak offers functionality to terminate itself, which is
|
||||
available to all user software over the socket.
|
||||
|
||||
#### Elevation of privilege
|
||||
|
||||
Software may gain arbitrary code execution rights if it has access to the
|
||||
Cagebreak socket. Privilege escalation to root is unlikely since privileges
|
||||
are dropped before any user input is accepted.
|
||||
10
cagebreak.c
10
cagebreak.c
|
|
@ -77,14 +77,6 @@ set_sig_handler(int sig, void (*action)(int)) {
|
|||
}
|
||||
}
|
||||
|
||||
void
|
||||
sig_chld_handler(int signal) {
|
||||
int pid = 1;
|
||||
while(pid > 0) {
|
||||
pid = waitpid(WAIT_ANY, NULL, WNOHANG);
|
||||
}
|
||||
}
|
||||
|
||||
static bool
|
||||
drop_permissions(void) {
|
||||
if(getuid() != geteuid() || getgid() != getegid()) {
|
||||
|
|
@ -316,8 +308,6 @@ main(int argc, char *argv[]) {
|
|||
wl_event_loop_add_signal(event_loop, SIGALRM, handle_signal, &server);
|
||||
server.event_loop = event_loop;
|
||||
|
||||
set_sig_handler(SIGCHLD, sig_chld_handler);
|
||||
|
||||
backend = wlr_backend_autocreate(server.wl_display);
|
||||
if(!backend) {
|
||||
wlr_log(WLR_ERROR, "Unable to create the wlroots backend");
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ bind N nextscreen
|
|||
bind P prevscreen
|
||||
bind a time
|
||||
bind C-n movetonextscreen
|
||||
bind C-p movetoprevscreen
|
||||
bind H exchangeleft
|
||||
bind J exchangedown
|
||||
bind K exchangeup
|
||||
|
|
@ -33,6 +34,7 @@ bind k focusup
|
|||
bind l focusright
|
||||
bind t exec xterm
|
||||
bind C-k close
|
||||
#bind m message Hello World!
|
||||
definekey resize h resizeleft
|
||||
definekey resize l resizeright
|
||||
definekey resize j resizedown
|
||||
|
|
@ -42,6 +44,20 @@ definekey resize Escape setmode top
|
|||
######################
|
||||
#Workspaces
|
||||
######################
|
||||
bind 1 screen 1
|
||||
bind 2 screen 2
|
||||
bind 3 screen 3
|
||||
bind 4 screen 4
|
||||
bind 5 screen 5
|
||||
bind 6 screen 6
|
||||
|
||||
bind A-1 movetoscreen 1
|
||||
bind A-2 movetoscreen 2
|
||||
bind A-3 movetoscreen 3
|
||||
bind A-4 movetoscreen 4
|
||||
bind A-5 movetoscreen 5
|
||||
bind A-6 movetoscreen 6
|
||||
|
||||
definekey top A-1 workspace 1
|
||||
definekey top A-2 workspace 2
|
||||
definekey top A-3 workspace 3
|
||||
|
|
@ -78,6 +94,7 @@ definekey top XF86MonBrightnessUp exec xbacklight -inc 1
|
|||
#output eDP-1 pos 0 0 res 1366x768 rate 60
|
||||
#output eDP-1 disable
|
||||
#output eDP-1 enable
|
||||
#output eDP-1 prio 1
|
||||
|
||||
#####################
|
||||
#Input configuration
|
||||
|
|
|
|||
32
keybinding.c
32
keybinding.c
|
|
@ -1,6 +1,7 @@
|
|||
#define _POSIX_C_SOURCE 200809L
|
||||
|
||||
#include <string.h>
|
||||
#include <sys/wait.h>
|
||||
#include <unistd.h>
|
||||
#include <wayland-server-core.h>
|
||||
#include <wlr/backend/multi.h>
|
||||
|
|
@ -718,7 +719,12 @@ keybinding_show_info(struct cg_server *server) {
|
|||
}
|
||||
|
||||
void
|
||||
keybinding_move_view_to_next_output(struct cg_server *server) {
|
||||
keybinding_display_message(struct cg_server *server, char *msg) {
|
||||
message_printf(server->curr_output, "%s", msg);
|
||||
}
|
||||
|
||||
void
|
||||
keybinding_move_view_to_cycle_output(struct cg_server *server, bool reverse) {
|
||||
if(wl_list_length(&server->outputs) <= 1) {
|
||||
return;
|
||||
}
|
||||
|
|
@ -927,20 +933,23 @@ run_action(enum keybinding_action action, struct cg_server *server,
|
|||
case KEYBINDING_SPLIT_VERTICAL:
|
||||
keybinding_split_vertical(server);
|
||||
break;
|
||||
case KEYBINDING_RUN_COMMAND:
|
||||
if(fork() == 0) {
|
||||
into_process(data.c);
|
||||
case KEYBINDING_RUN_COMMAND: {
|
||||
int pid;
|
||||
if((pid = fork()) == 0) {
|
||||
if(fork() == 0) {
|
||||
into_process(data.c);
|
||||
}
|
||||
_exit(0);
|
||||
} else if(pid > 0) {
|
||||
waitpid(pid, NULL, 0);
|
||||
}
|
||||
break;
|
||||
} break;
|
||||
case KEYBINDING_CYCLE_VIEWS:
|
||||
keybinding_cycle_views(server, data.b);
|
||||
break;
|
||||
case KEYBINDING_CYCLE_TILES:
|
||||
keybinding_cycle_tiles(server, data.b);
|
||||
break;
|
||||
case KEYBINDING_CYCLE_OUTPUT:
|
||||
keybinding_cycle_outputs(server, data.b);
|
||||
break;
|
||||
case KEYBINDING_SWITCH_WORKSPACE:
|
||||
keybinding_switch_ws(server, data.u);
|
||||
break;
|
||||
|
|
@ -959,6 +968,9 @@ run_action(enum keybinding_action action, struct cg_server *server,
|
|||
case KEYBINDING_SHOW_INFO:
|
||||
keybinding_show_info(server);
|
||||
break;
|
||||
case KEYBINDING_DISPLAY_MESSAGE:
|
||||
keybinding_display_message(server, data.c);
|
||||
break;
|
||||
case KEYBINDING_RESIZE_TILE_HORIZONTAL:
|
||||
resize_tile(server, data.i, 0);
|
||||
break;
|
||||
|
|
@ -1017,8 +1029,8 @@ run_action(enum keybinding_action action, struct cg_server *server,
|
|||
->focused_tile);
|
||||
break;
|
||||
}
|
||||
case KEYBINDING_MOVE_VIEW_TO_NEXT_OUTPUT: {
|
||||
keybinding_move_view_to_next_output(server);
|
||||
case KEYBINDING_MOVE_VIEW_TO_CYCLE_OUTPUT: {
|
||||
keybinding_move_view_to_cycle_output(server, data.b);
|
||||
break;
|
||||
}
|
||||
case KEYBINDING_DEFINEKEY:
|
||||
|
|
|
|||
24
keybinding.h
24
keybinding.h
|
|
@ -20,15 +20,17 @@ enum keybinding_action {
|
|||
KEYBINDING_SPLIT_HORIZONTAL,
|
||||
KEYBINDING_CHANGE_TTY, // data.u is the desired tty
|
||||
KEYBINDING_LAYOUT_FULLSCREEN,
|
||||
KEYBINDING_CYCLE_VIEWS, // data.b is 0 if forward, 1 if reverse
|
||||
KEYBINDING_CYCLE_TILES, // data.b is 0 if forward, 1 if reverse
|
||||
KEYBINDING_CYCLE_OUTPUT, // data.b is 0 if forward, 1 if reverse
|
||||
KEYBINDING_CONFIGURE_OUTPUT, // data.o_cfg is the desired output
|
||||
// configuration
|
||||
KEYBINDING_CONFIGURE_INPUT, // data.i_cfg is the desired input
|
||||
// configuration
|
||||
KEYBINDING_CYCLE_VIEWS, // data.b is 0 if forward, 1 if reverse
|
||||
KEYBINDING_CYCLE_TILES, // data.b is 0 if forward, 1 if reverse
|
||||
KEYBINDING_CYCLE_OUTPUT, // data.b is 0 if forward, 1 if reverse
|
||||
KEYBINDING_CONFIGURE_OUTPUT, // data.o_cfg is the desired output
|
||||
// configuration
|
||||
KEYBINDING_CONFIGURE_MESSAGE, // data.m_cfg is the desired config
|
||||
KEYBINDING_CONFIGURE_INPUT, // data.i_cfg is the desired input
|
||||
// configuration
|
||||
KEYBINDING_QUIT,
|
||||
KEYBINDING_NOOP,
|
||||
KEYBINDING_SWITCH_OUTPUT, // data.u is the desired output
|
||||
KEYBINDING_SWITCH_WORKSPACE, // data.u is the desired workspace
|
||||
KEYBINDING_SWITCH_MODE, // data.u is the desired mode
|
||||
KEYBINDING_SWITCH_DEFAULT_MODE, // data.u is the desired mode
|
||||
|
|
@ -36,10 +38,13 @@ enum keybinding_action {
|
|||
// to the current width
|
||||
KEYBINDING_RESIZE_TILE_VERTICAL, // data.i is the number of pixels to add to
|
||||
// the current height
|
||||
KEYBINDING_MOVE_VIEW_TO_WORKSPACE, // data.u is the desired workspace
|
||||
KEYBINDING_MOVE_VIEW_TO_NEXT_OUTPUT,
|
||||
KEYBINDING_MOVE_VIEW_TO_WORKSPACE, // data.u is the desired workspace
|
||||
KEYBINDING_MOVE_VIEW_TO_OUTPUT, // data.u is the desired output
|
||||
KEYBINDING_MOVE_VIEW_TO_CYCLE_OUTPUT, // data.b is 0 if forward, 1 if
|
||||
// reverse
|
||||
KEYBINDING_SHOW_TIME,
|
||||
KEYBINDING_SHOW_INFO,
|
||||
KEYBINDING_DISPLAY_MESSAGE,
|
||||
|
||||
KEYBINDING_SWAP_LEFT,
|
||||
KEYBINDING_SWAP_RIGHT,
|
||||
|
|
@ -66,6 +71,7 @@ union keybinding_params {
|
|||
struct keybinding *kb;
|
||||
struct cg_output_config *o_cfg;
|
||||
struct cg_input_config *i_cfg;
|
||||
struct cg_message_config *m_cfg;
|
||||
};
|
||||
|
||||
struct keybinding {
|
||||
|
|
|
|||
|
|
@ -1,123 +1,76 @@
|
|||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
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
|
||||
LA==
|
||||
=UJ+r
|
||||
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
|
||||
PbvoKi4FeWdszeakeWuqdmKEi/+ltIk=
|
||||
=uqsg
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
|
|
|
|||
123
keys/cagebreak@project-repo.co.pub-legacy-2
Normal file
123
keys/cagebreak@project-repo.co.pub-legacy-2
Normal file
|
|
@ -0,0 +1,123 @@
|
|||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
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
|
||||
LA==
|
||||
=UJ+r
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
76
keys/cagebreak_signing_key_10@project-repo.co.pub
Normal file
76
keys/cagebreak_signing_key_10@project-repo.co.pub
Normal file
|
|
@ -0,0 +1,76 @@
|
|||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
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
|
||||
PbvoKi4FeWdszeakeWuqdmKEi/+ltIk=
|
||||
=uqsg
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
64
keys/cagebreak_signing_key_9@project-repo.co.pub
Normal file
64
keys/cagebreak_signing_key_9@project-repo.co.pub
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
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
|
||||
=gLvW
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
cagebreak-config(1) "Version 1.8.3" "Cagebreak Manual"
|
||||
cagebreak-config(5) "Version 1.9.0" "Cagebreak Manual"
|
||||
|
||||
# NAME
|
||||
|
||||
*cagebreak-config* — Cagebreak config file
|
||||
*cagebreak-config* — Cagebreak configuration file
|
||||
|
||||
# SYNOPSIS
|
||||
|
||||
|
|
@ -10,91 +10,135 @@ cagebreak-config(1) "Version 1.8.3" "Cagebreak Manual"
|
|||
|
||||
# DESCRIPTION
|
||||
|
||||
The cagebreak configuration file is a simple plain text file which configures
|
||||
the way cagebreak behaves.
|
||||
Each line constitutes a separate command which is parsed
|
||||
independently from the rest of the file. Comments can be added
|
||||
by prepending a line with the # symbol.
|
||||
The cagebreak configuration is a plain text file.
|
||||
|
||||
Each line consists of a comment or a command and its arguments which
|
||||
are parsed sequentially but independently from the rest of the file.
|
||||
|
||||
Each line starting with a "#" is a comment.
|
||||
|
||||
See *KEY DEFINITIONS* for details on modifier keys and *MODES* for details
|
||||
on modes.
|
||||
|
||||
## COMMANDS
|
||||
|
||||
*abort*
|
||||
Return to the default mode without running any command
|
||||
Return to default mode
|
||||
|
||||
*background - Set background color*
|
||||
Set the background color. This command expects three floating point numbers
|
||||
between 0 and 1, specifying the r, g and b values respectively.
|
||||
(e.g. "background 1.0 0.0 0.0" sets to background color to red)
|
||||
There is no support for specifying a background image.
|
||||
*background <r> <g> <b>*
|
||||
Set RGB of background - <[r|g|b]> are floating point numbers
|
||||
between 0 and 1.
|
||||
There is no support for background images.
|
||||
|
||||
*bind - Bind key to command in root mode*
|
||||
This command requires a key (see *KEY DEFINITIONS*) and a command (see *COMMANDS*) as an argument.
|
||||
Subsequently, pressing this key while in command mode executes the
|
||||
supplied action. bind <key> <command> is equivalent to
|
||||
definekey root <key> <command>
|
||||
```
|
||||
# Set background to red
|
||||
background 1.0 0.0 0.0
|
||||
```
|
||||
|
||||
*close - Close current window*
|
||||
This command closes the current window. It may be useful for windows of applications which
|
||||
do not offer any method of closing them.
|
||||
*bind <key> <command>*
|
||||
Bind <key> to execute <command> if pressed in root mode
|
||||
|
||||
*definekey - Bind key to action in arbitrary mode*
|
||||
This command behaves similarly to the *bind* command with the
|
||||
difference that the mode in which the keybinding is activated is
|
||||
specified by the user. A call to this function is to be structured as follows:
|
||||
```
|
||||
bind <key> <command>
|
||||
# is equivalent to
|
||||
definekey root <key> <command>
|
||||
```
|
||||
|
||||
definekey <mode> <key> <command>
|
||||
*close*
|
||||
Close current window - This may be useful for windows of
|
||||
applications which do not offer any method of closing them.
|
||||
|
||||
*definemode*
|
||||
This command requires a single argument; the name of the mode to be defined.
|
||||
Subsequent to a call to this function, the defined mode may be used along with
|
||||
the definekey command to create a custom key mapping. Synopsis:
|
||||
configure_message [font <font description>|[f|b]g_color <r> <g> b> <a>|display_time <n>]
|
||||
Configure message characteristics -
|
||||
- font <font description> sets
|
||||
- <font description> is
|
||||
- X core font description or
|
||||
- FreeType font description via pango
|
||||
- fg_color <r> <g> <b> <a> sets RGBA of foreground
|
||||
- bg_color <r> <g> <b> <a> sets RGBA of background
|
||||
- display_time <n> sets display time in seconds
|
||||
|
||||
definemode <mode>
|
||||
```
|
||||
# Set font
|
||||
## Set example X code font
|
||||
configure_message font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
|
||||
## Set example FreeType font description
|
||||
configure_message font pango:monospace 10
|
||||
|
||||
*escape*
|
||||
Defines the key with which the current mode can be changed to "root".
|
||||
escape <key> is equivalent to definekey top <key> switch_mode root
|
||||
# Set foreground RGBA to red
|
||||
configure_message fg_color 1.0 0.0 0.0 1.0
|
||||
|
||||
# Set background RGBA to red
|
||||
configure_message bg_color 1.0 0.0 0.0 1.0
|
||||
|
||||
# Set duration for message display to four seconds
|
||||
configure_message display_time 4
|
||||
```
|
||||
|
||||
*definekey <mode> <key> <command>*
|
||||
Bind <key> to execute <command> if pressed in <mode> -
|
||||
*definekey* is a more general version of *bind*.
|
||||
|
||||
*definemode <mode>*
|
||||
Define new mode <mode> - After a call to *definemode*,
|
||||
<mode> can be used with *definekey* to create a custom key mapping.
|
||||
|
||||
```
|
||||
# define new mode and create a mapping for it
|
||||
definemode foo
|
||||
definekey foo C-t abort
|
||||
```
|
||||
|
||||
*escape <key>*
|
||||
Set <key> to switch to root mode to execute one command
|
||||
|
||||
```
|
||||
escape <key>
|
||||
# is equivalent to
|
||||
definekey top <key> mode root
|
||||
```
|
||||
|
||||
*exchangedown*
|
||||
Exchange the current window with the window in the tile to the bottom
|
||||
Exchange current window with window in the tile to the bottom
|
||||
|
||||
*exchangeleft*
|
||||
Exchange the current window with the window in the tile to the left
|
||||
Exchange current window with window in the tile to the left
|
||||
|
||||
*exchangeright*
|
||||
Exchange the current window with the window in the tile to the right
|
||||
Exchange current window with window in the tile to the right
|
||||
|
||||
*exchangeup*
|
||||
Exchange the current window with the window in the tile to the top
|
||||
Exchange current window with window in the tile to the top
|
||||
|
||||
*exec*
|
||||
Executes the supplied shell command using *sh -c "<command>"*. Synopsis:
|
||||
|
||||
exec <command>
|
||||
*exec <command>*
|
||||
Execute <command> using *sh -c*
|
||||
|
||||
*focus*
|
||||
Focus next tile
|
||||
|
||||
*focusdown*
|
||||
Focus the tile to the bottom
|
||||
Focus tile to the bottom
|
||||
|
||||
*focusleft*
|
||||
Focus the tile to the left
|
||||
Focus tile to the left
|
||||
|
||||
*focusprev*
|
||||
Focus previous tile
|
||||
|
||||
*focusright*
|
||||
Focus the tile to the right
|
||||
Focus tile to the right
|
||||
|
||||
*focusup*
|
||||
Focus the tile to the top
|
||||
Focus tile to the top
|
||||
|
||||
*hsplit*
|
||||
Split current tile horizontally
|
||||
|
||||
*input <identifier> <setting> <value>*
|
||||
Set the setting "<setting>" to "<value>" for device "<identifier>". The identifier can either be "\*" (wildcard), of the form "type:<device_type>" or the identifier of the device as printed for example by *cagebreak -s*. The supported input types are
|
||||
Set <setting> to <value> for device <identifier> -
|
||||
<identifier> can be "\*" (wildcard), of the form
|
||||
"type:<device_type>" or the identifier of the device as printed
|
||||
for example by *cagebreak -s*. The supported input types are
|
||||
- touchpad
|
||||
- pointer
|
||||
- keyboard
|
||||
|
|
@ -103,121 +147,145 @@ by prepending a line with the # symbol.
|
|||
- tablet_pad
|
||||
- switch
|
||||
|
||||
Configurations are applied sequentially. Currently, only libinput devices may be configured. The available settings and their corresponding values are as follows:
|
||||
Configurations are applied sequentially. Currently, only libinput
|
||||
devices may be configured. The available settings and their
|
||||
corresponding values are as follows:
|
||||
|
||||
*accel_profile adaptive|flat*
|
||||
Sets the pointer acceleration profile for the specified input device.
|
||||
Set pointer acceleration profile for specified input device
|
||||
|
||||
*calibration_matrix <6 space-separated floating point values>*
|
||||
Sets the calibration matrix.
|
||||
Set calibration matrix
|
||||
|
||||
*click_method none|button_areas|clickfinger*
|
||||
Changes the click method for the specified device.
|
||||
Change click method for the specified device
|
||||
|
||||
*drag enabled|disabled*
|
||||
Enables or disables tap-and-drag for specified input device.
|
||||
Enable or disable tap-and-drag for specified input device
|
||||
|
||||
*drag_lock enabled|disabled*
|
||||
Enables or disables drag lock for specified input device.
|
||||
Enable or disable drag lock for specified input device
|
||||
|
||||
*dwt enabled|disabled*
|
||||
Enables or disables disable-while-typing for the specified input device.
|
||||
Enable or disable disable-while-typing for specified input
|
||||
device
|
||||
|
||||
*enabled|disabled|disabled_on_external_mouse*
|
||||
Enables or disables send_events for specified input device. Disabling
|
||||
send_events disables the input device.
|
||||
*event enabled|disabled|disabled_on_external_mouse*
|
||||
Enable or disable send_events for specified input device -
|
||||
Disabling send_events disables the input device.
|
||||
|
||||
*left_handed enabled|disabled*
|
||||
Enables or disables left handed mode for specified input device.
|
||||
Enable or disable left handed mode for specified input device
|
||||
|
||||
*middle_emulation enabled|disabled*
|
||||
Enables or disables middle click emulation.
|
||||
Enable or disable middle click emulation
|
||||
|
||||
*natural_scroll enabled|disabled*
|
||||
Enables or disables natural (inverted) scrolling for the specified input
|
||||
device.
|
||||
Enable or disable natural (inverted) scrolling for specified
|
||||
input device
|
||||
|
||||
*pointer_accel [<-1|1>]*
|
||||
Changes the pointer acceleration for the specified input device.
|
||||
Change the pointer acceleration for specified input device
|
||||
|
||||
*scroll_button disable|<event-code-or-name>*
|
||||
Sets the button used for scroll_method on_button_down. The button can
|
||||
be given as an event name or code, which can be obtained from *libinput
|
||||
debug-events*. If set to
|
||||
_disable_, it disables the scroll_method on_button_down.
|
||||
Set button used for scroll_method on_button_down - The button
|
||||
can be given as an event name or code, which can be obtained from
|
||||
*libinput debug-events*. If set to _disable_, it disables the
|
||||
scroll_method on_button_down.
|
||||
|
||||
*scroll_factor <floating point value>*
|
||||
Changes the scroll factor for the specified input device. Scroll speed will
|
||||
be scaled by the given value, which must be non-negative.
|
||||
Change the scroll factor for the specified input device - Scroll
|
||||
speed will be scaled by the given value, which must be non-negative.
|
||||
|
||||
*scroll_method none|two_finger|edge|on_button_down*
|
||||
Changes the scroll method for the specified input device.
|
||||
Change scroll method for specified input device
|
||||
|
||||
*tap enabled|disabled*
|
||||
Enables or disables tap for specified input device.
|
||||
Enable or disable tap for specified input device
|
||||
|
||||
*tap_button_map lrm|lmr*
|
||||
Specifies which button mapping to use for tapping. _lrm_ treats 1 finger as
|
||||
left click, 2 fingers as right click, and 3 fingers as middle click. _lmr_
|
||||
treats 1 finger as left click, 2 fingers as middle click, and 3 fingers as
|
||||
right click.
|
||||
Specify which button mapping to use for tapping - _lrm_ treats 1
|
||||
finger as left click, 2 fingers as right click, and 3 fingers as
|
||||
middle click. _lmr_ treats 1 finger as left click, 2 fingers as
|
||||
middle click, and 3 fingers as right click.
|
||||
|
||||
message <text>
|
||||
Display a line of arbitrary text.
|
||||
|
||||
*mode <mode>*
|
||||
Enter mode "<mode>". After a keybinding is processed, return to default mode
|
||||
Enter mode "<mode>" - Returns to default mode, after a command is
|
||||
executed.
|
||||
|
||||
*movetonextscreen*
|
||||
Move the current window to the next screen
|
||||
Move currently focused window to next screen
|
||||
|
||||
*movetoprevscreen*
|
||||
Move currently focused window to previous screen
|
||||
|
||||
*movetoscreen <n>*
|
||||
Move currently focused window to <n>-th screen
|
||||
|
||||
*movetoworkspace <n>*
|
||||
Move the currently focused window to the n-th workspace
|
||||
Move currently focused window to <n>-th workspace
|
||||
|
||||
*next*
|
||||
Focus next window in current tile
|
||||
|
||||
*nextscreen*
|
||||
Focus the next screen
|
||||
Focus next screen
|
||||
|
||||
*only*
|
||||
Remove all splits and make the 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>] | enable | disable]*
|
||||
Configure the output "<name>". <xpos> and <ypos> are the position of the monitor
|
||||
in pixels. The top-left monitor should have the coordinates 0 0. <width> and
|
||||
<height> specify the resolution in pixels and <rate> sets the refresh rate of
|
||||
the monitor (often this is 50 or 60). The options enable and disable
|
||||
enable or disable the output <name>. Note that if <output> is the only enabled
|
||||
output, *output <output> disable* has no effect.
|
||||
*output <name> [[pos <xpos> <ypos> res <width>x<height> rate <rate>] | enable | disable | prio <n> ]*
|
||||
Configure output "<name>" -
|
||||
- <xpos> and <ypos> are the position of the
|
||||
monitor in pixels. The top-left monitor should have the coordinates 0 0.
|
||||
- <width> and <height> specify the resolution in pixels.
|
||||
- <rate> sets the refresh rate of the monitor (often this is 50 or 60).
|
||||
- enable and disable enable or disable <name>. Note that if
|
||||
<output> is the only enabled output, *output <output> disable* has
|
||||
no effect.
|
||||
- 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
|
||||
and have a numerical priority of -1. Using prio <n> it is possible
|
||||
to set priorities for outputs, where <n> >= 1. The larger <n> is,
|
||||
the higher the priority is, that is to say, the earlier the output
|
||||
will appear in the list of outputs.
|
||||
|
||||
*prev*
|
||||
Focus previous window in current tile
|
||||
|
||||
*prevscreen*
|
||||
Focus the previous screen
|
||||
Focus previous screen
|
||||
|
||||
*quit*
|
||||
Exit cagebreak
|
||||
|
||||
*resizedown*
|
||||
Resize the current tile towards the bottom
|
||||
Resize current tile towards the bottom
|
||||
|
||||
*resizeleft*
|
||||
Resize the current tile towards the left
|
||||
Resize current tile towards the left
|
||||
|
||||
*resizeright*
|
||||
Resize the current tile towards the right
|
||||
Resize current tile towards the right
|
||||
|
||||
*resizeup*
|
||||
Resize the current tile towards the top
|
||||
Resize current tile towards the top
|
||||
|
||||
*screen <n>*
|
||||
Change to <n>-th screen
|
||||
|
||||
*show_info*
|
||||
Display info about the current setup. In particular, print the identifiers
|
||||
Display information about the current setup - In particular, print the identifiers
|
||||
of the available inputs and outputs.
|
||||
|
||||
*setmode <mode>*
|
||||
Set the default mode to <mode>
|
||||
Set default mode to <mode>
|
||||
|
||||
*switchvt <n>*
|
||||
Switch to tty n
|
||||
Switch to tty <n>
|
||||
|
||||
*time*
|
||||
Display time
|
||||
|
|
@ -226,31 +294,37 @@ by prepending a line with the # symbol.
|
|||
Split current tile vertically
|
||||
|
||||
*workspace <n>*
|
||||
Change to the n-th workspace
|
||||
Change to <n>-th workspace
|
||||
|
||||
*workspaces*
|
||||
Requires a single integer larger than 1 and less than 30 as an argument. Sets the number of
|
||||
workspaces to the supplied number
|
||||
*workspaces <n>*
|
||||
Set number of workspaces to <n> - <n> is a single integer larger than 1
|
||||
and less than 30.
|
||||
|
||||
# MODES
|
||||
|
||||
By default, three modes are defined:
|
||||
|
||||
*top*
|
||||
The default mode. Keybindings defined in this mode can be accessed
|
||||
directly, without the use of an escape key.
|
||||
Default mode - Keybindings defined in this mode can be accessed
|
||||
directly.
|
||||
- *definekey* can be used to set keybindings for top mode.
|
||||
- *setmode* can be used to set a different default mode.
|
||||
|
||||
*root*
|
||||
The command mode. Keybindings defined in this mode can be accessed
|
||||
after pressing the key defined by the *escape* command.
|
||||
Command mode - Keybindings defined in this mode can be accessed
|
||||
after pressing the key defined by *escape*.
|
||||
- *bind* can be used to set keybindings for root mode.
|
||||
|
||||
*resize*
|
||||
Resize mode. This mode is used for resizing tiles.
|
||||
Resize mode - Used to resize tiles.
|
||||
|
||||
*definemode* can be used to create additional modes.
|
||||
|
||||
# KEY DEFINITIONS
|
||||
|
||||
Keys are specified by their names as displayed for example by *xev*.
|
||||
In addition, modifiers can be specified using the following syntax:
|
||||
|
||||
Modifiers can be specified using the following syntax:
|
||||
|
||||
<mod>-<key>
|
||||
|
||||
|
|
@ -270,9 +344,11 @@ The supported modifiers are:
|
|||
|
||||
*5 - Mod 5*
|
||||
|
||||
For example to specify the keybinding Control+t, the expression:
|
||||
For example to specify the keybinding Control+t, the expression
|
||||
|
||||
C-t
|
||||
```
|
||||
C-t
|
||||
```
|
||||
|
||||
is used.
|
||||
|
||||
|
|
@ -284,10 +360,20 @@ is used.
|
|||
|
||||
See GitHub Issues: <https://github.com/project-repo/cagebreak/issues>
|
||||
|
||||
Mail contact: `cagebreak @ project-repo . co`
|
||||
|
||||
GPG Fingerprints:
|
||||
|
||||
- B15B92642760E11FE002DE168708D42451A94AB5
|
||||
- F8DD9F8DD12B85A28F5827C4678E34D2E753AA3C
|
||||
- 3ACEA46CCECD59E4C8222F791CBEB493681E8693
|
||||
|
||||
# LICENSE
|
||||
|
||||
Copyright (c) 2020-2022 The Cagebreak authors
|
||||
|
||||
Copyright (c) 2018-2020 Jente Hidskes
|
||||
|
||||
Copyright (c) 2019 The Sway authors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
cagebreak(1) "Version 1.8.3" "Cagebreak Manual"
|
||||
cagebreak(1) "Version 1.9.0" "Cagebreak Manual"
|
||||
|
||||
# NAME
|
||||
|
||||
cagebreak - A Wayland tiling compositor to the likes of ratpoison
|
||||
cagebreak - A Wayland tiling compositor
|
||||
|
||||
# SYNOPSIS
|
||||
|
||||
|
|
@ -73,10 +73,20 @@ are displayed in a message box at the top right of the screen.
|
|||
|
||||
See GitHub Issues: <https://github.com/project-repo/cagebreak/issues>
|
||||
|
||||
Mail contact: `cagebreak @ project-repo . co`
|
||||
|
||||
GPG Fingerprints:
|
||||
|
||||
- B15B92642760E11FE002DE168708D42451A94AB5
|
||||
- F8DD9F8DD12B85A28F5827C4678E34D2E753AA3C
|
||||
- 3ACEA46CCECD59E4C8222F791CBEB493681E8693
|
||||
|
||||
# LICENSE
|
||||
|
||||
Copyright (c) 2020-2022 The Cagebreak authors
|
||||
|
||||
Copyright (c) 2018-2020 Jente Hidskes
|
||||
|
||||
Copyright (c) 2019 The Sway authors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
|
|
|
|||
24
meson.build
24
meson.build
|
|
@ -1,5 +1,5 @@
|
|||
project('cagebreak', 'c',
|
||||
version: '1.8.3',
|
||||
version: '1.9.0',
|
||||
license: 'MIT',
|
||||
default_options: [
|
||||
'c_std=c11',
|
||||
|
|
@ -206,16 +206,16 @@ reproducible_build_versions = {
|
|||
'wayland_server': '1.19.0',
|
||||
'wayland_client': '1.20.0',
|
||||
'wayland_cursor': '1.20.0',
|
||||
'wlroots': '0.15.0',
|
||||
'xkbcommon': '1.3.1',
|
||||
'fontconfig': '2.13.94',
|
||||
'libinput': '1.19.3',
|
||||
'libevdev': '1.12.0',
|
||||
'wlroots': '0.15.1',
|
||||
'xkbcommon': '1.4.0',
|
||||
'fontconfig': '2.14.0',
|
||||
'libinput': '1.20.1',
|
||||
'libevdev': '1.12.1',
|
||||
'libudev': '250',
|
||||
'pixman': '0.40.0',
|
||||
'pango': '1.50.3',
|
||||
'cairo': '1.17.4',
|
||||
'pangocairo': '1.50.3',
|
||||
'pango': '1.50.7',
|
||||
'cairo': '1.17.6',
|
||||
'pangocairo': '1.50.7',
|
||||
'math': '-1'
|
||||
}
|
||||
|
||||
|
|
@ -241,7 +241,7 @@ foreach name, dep : cagebreak_dependencies_dict
|
|||
endforeach
|
||||
|
||||
reproducible_build_compiler = 'gcc'
|
||||
reproducible_build_compiler_version = '11.1.0'
|
||||
reproducible_build_compiler_version = '11.2.0'
|
||||
|
||||
if cc.get_id() != reproducible_build_compiler
|
||||
warning('The compiler "' + cc.get_id() + '" differs from the one used to generate to binary specified in the README section "Reproducible Builds" (' + reproducible_build_compiler + ').')
|
||||
|
|
@ -270,7 +270,7 @@ if get_option('man-pages')
|
|||
output : 'cagebreak.1',
|
||||
input : 'man/cagebreak.1.md',
|
||||
capture : true,
|
||||
command : [sh, '-c', 'export SOURCE_DATE_EPOCH=1638785664 ; @0@ < @INPUT@'.format(scdoc.path())],
|
||||
command : [sh, '-c', 'export SOURCE_DATE_EPOCH=1650564686 ; @0@ < @INPUT@'.format(scdoc.path())],
|
||||
install: true,
|
||||
install_dir: mandir1
|
||||
)
|
||||
|
|
@ -279,7 +279,7 @@ if get_option('man-pages')
|
|||
output : 'cagebreak-config.5',
|
||||
input : 'man/cagebreak-config.5.md',
|
||||
capture : true,
|
||||
command : [sh, '-c', 'export SOURCE_DATE_EPOCH=1638785664 ; @0@ < @INPUT@'.format(scdoc.path())],
|
||||
command : [sh, '-c', 'export SOURCE_DATE_EPOCH=1650564686 ; @0@ < @INPUT@'.format(scdoc.path())],
|
||||
install: true,
|
||||
install_dir: mandir5
|
||||
)
|
||||
|
|
|
|||
|
|
@ -16,6 +16,13 @@ enum cg_message_align {
|
|||
CG_MESSAGE_CENTER,
|
||||
};
|
||||
|
||||
struct cg_message_config {
|
||||
char *font;
|
||||
int display_time;
|
||||
float bg_color[4];
|
||||
float fg_color[4];
|
||||
};
|
||||
|
||||
struct cg_message {
|
||||
struct wlr_box *position;
|
||||
struct wlr_texture *message;
|
||||
|
|
|
|||
2
output.c
2
output.c
|
|
@ -29,7 +29,9 @@
|
|||
#include <wlr/types/wlr_xcursor_manager.h>
|
||||
#include <wlr/util/log.h>
|
||||
#include <wlr/util/region.h>
|
||||
#if CG_HAS_XWAYLAND
|
||||
#include <wlr/xwayland.h>
|
||||
#endif
|
||||
|
||||
#include "keybinding.h"
|
||||
#include "message.h"
|
||||
|
|
|
|||
8
output.h
8
output.h
|
|
@ -23,11 +23,18 @@ struct cg_output {
|
|||
struct cg_workspace **workspaces;
|
||||
struct wl_list messages;
|
||||
int curr_workspace;
|
||||
int priority;
|
||||
struct cg_view *last_scanned_out_view;
|
||||
|
||||
struct wl_list link; // cg_server::outputs
|
||||
};
|
||||
|
||||
struct cg_output_priorities {
|
||||
char *ident;
|
||||
int priority;
|
||||
struct wl_list link;
|
||||
};
|
||||
|
||||
enum output_status { OUTPUT_ENABLE, OUTPUT_DISABLE, OUTPUT_DEFAULT };
|
||||
|
||||
struct cg_output_config {
|
||||
|
|
@ -35,6 +42,7 @@ struct cg_output_config {
|
|||
struct wlr_box pos;
|
||||
char *output_name;
|
||||
float refresh_rate;
|
||||
int priority;
|
||||
struct wl_list link; // cg_server::output_config
|
||||
};
|
||||
|
||||
|
|
|
|||
157
parse.c
157
parse.c
|
|
@ -8,6 +8,7 @@
|
|||
|
||||
#include "input_manager.h"
|
||||
#include "keybinding.h"
|
||||
#include "message.h"
|
||||
#include "output.h"
|
||||
#include "parse.h"
|
||||
#include "server.h"
|
||||
|
|
@ -122,7 +123,7 @@ parse_input_config(char **saveptr, char **errstr) {
|
|||
char *ident = NULL;
|
||||
if(cfg == NULL) {
|
||||
*errstr =
|
||||
log_error("Failed to allocate memory for output configuration");
|
||||
log_error("Failed to allocate memory for input configuration");
|
||||
goto error;
|
||||
}
|
||||
|
||||
|
|
@ -340,6 +341,9 @@ parse_input_config(char **saveptr, char **errstr) {
|
|||
"Invalid option \"%s\" to setting \"tap_button_map\"", value);
|
||||
goto error;
|
||||
}
|
||||
} else {
|
||||
*errstr = log_error("Invalid option to command \"input\"");
|
||||
goto error;
|
||||
}
|
||||
|
||||
free(value);
|
||||
|
|
@ -503,6 +507,8 @@ parse_output_config_keyword(char *key_str, enum output_status *status) {
|
|||
}
|
||||
if(strcmp(key_str, "pos") == 0) {
|
||||
*status = OUTPUT_DEFAULT;
|
||||
} else if(strcmp(key_str, "prio") == 0) {
|
||||
*status = OUTPUT_DEFAULT;
|
||||
} else if(strcmp(key_str, "enable") == 0) {
|
||||
*status = OUTPUT_ENABLE;
|
||||
} else if(strcmp(key_str, "disable") == 0) {
|
||||
|
|
@ -521,6 +527,11 @@ parse_output_config(char **saveptr, char **errstr) {
|
|||
log_error("Failed to allocate memory for output configuration");
|
||||
goto error;
|
||||
}
|
||||
cfg->status = OUTPUT_DEFAULT;
|
||||
cfg->pos.x = -1;
|
||||
cfg->output_name = NULL;
|
||||
cfg->refresh_rate = 0;
|
||||
cfg->priority = -1;
|
||||
char *name = strtok_r(NULL, " ", saveptr);
|
||||
if(name == NULL) {
|
||||
*errstr =
|
||||
|
|
@ -529,7 +540,7 @@ parse_output_config(char **saveptr, char **errstr) {
|
|||
}
|
||||
char *key_str = strtok_r(NULL, " ", saveptr);
|
||||
if(parse_output_config_keyword(key_str, &(cfg->status)) != 0) {
|
||||
*errstr = log_error("Expected keyword \"pos\", \"enable\" or "
|
||||
*errstr = log_error("Expected keyword \"pos\", \"prio\", \"enable\" or "
|
||||
"\"disable\" in output configuration for output %s",
|
||||
name);
|
||||
goto error;
|
||||
|
|
@ -539,6 +550,18 @@ parse_output_config(char **saveptr, char **errstr) {
|
|||
return cfg;
|
||||
}
|
||||
|
||||
if(strcmp(key_str, "prio") == 0) {
|
||||
cfg->priority = parse_uint(saveptr, " ");
|
||||
if(cfg->priority < 0) {
|
||||
*errstr = log_error(
|
||||
"Error parsing priority of output configuration for output %s",
|
||||
name);
|
||||
goto error;
|
||||
}
|
||||
cfg->output_name = strdup(name);
|
||||
return cfg;
|
||||
}
|
||||
|
||||
cfg->pos.x = parse_uint(saveptr, " ");
|
||||
if(cfg->pos.x < 0) {
|
||||
*errstr = log_error(
|
||||
|
|
@ -606,6 +629,74 @@ error:
|
|||
return NULL;
|
||||
}
|
||||
|
||||
struct cg_message_config *
|
||||
parse_message_config(char **saveptr, char **errstr) {
|
||||
struct cg_message_config *cfg = calloc(1, sizeof(struct cg_message_config));
|
||||
if(cfg == NULL) {
|
||||
*errstr =
|
||||
log_error("Failed to allocate memory for message configuration");
|
||||
goto error;
|
||||
}
|
||||
|
||||
cfg->bg_color[0] = -1;
|
||||
cfg->fg_color[0] = -1;
|
||||
cfg->display_time = -1;
|
||||
cfg->font = NULL;
|
||||
|
||||
char *setting = strtok_r(NULL, " ", saveptr);
|
||||
if(setting == NULL) {
|
||||
*errstr = log_error(
|
||||
"Expected setting to be set for message configuration, got none");
|
||||
goto error;
|
||||
}
|
||||
|
||||
if(strcmp(setting, "font") == 0) {
|
||||
cfg->font = strdup(*saveptr);
|
||||
if(cfg->font == NULL) {
|
||||
*errstr = log_error("Unable to allocate memory for font descrition "
|
||||
"in command \"message\"");
|
||||
goto error;
|
||||
}
|
||||
} else if(strcmp(setting, "display_time") == 0) {
|
||||
cfg->display_time = parse_uint(saveptr, " ");
|
||||
if(cfg->display_time < 0) {
|
||||
*errstr =
|
||||
log_error("Error parsing command \"configure_message "
|
||||
"display_time\", expected a non-negative integer");
|
||||
goto error;
|
||||
}
|
||||
} else if(strcmp(setting, "bg_color") == 0) {
|
||||
for(int i = 0; i < 4; ++i) {
|
||||
cfg->bg_color[i] = parse_float(saveptr, " ");
|
||||
if(cfg->bg_color[i] == FLT_MIN) {
|
||||
*errstr = log_error(
|
||||
"Error parsing command \"configure_message bg_color\", "
|
||||
"expected 4 float values separated by spaces");
|
||||
goto error;
|
||||
}
|
||||
}
|
||||
} else if(strcmp(setting, "fg_color") == 0) {
|
||||
for(int i = 0; i < 4; ++i) {
|
||||
cfg->fg_color[i] = parse_float(saveptr, " ");
|
||||
if(cfg->fg_color[i] == FLT_MIN) {
|
||||
*errstr = log_error(
|
||||
"Error parsing command \"configure_message bg_color\", "
|
||||
"expected 4 float values separated by spaces");
|
||||
goto error;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
*errstr = log_error("Invalid option to command \"configure_message\"");
|
||||
goto error;
|
||||
}
|
||||
return cfg;
|
||||
|
||||
error:
|
||||
wlr_log(WLR_ERROR, "Message configuration must be of the form "
|
||||
"'configure_message <setting> <value>'");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
int
|
||||
parse_command(struct cg_server *server, struct keybinding *keybinding,
|
||||
char *saveptr, char **errstr) {
|
||||
|
|
@ -641,6 +732,15 @@ parse_command(struct cg_server *server, struct keybinding *keybinding,
|
|||
keybinding->action = KEYBINDING_LAYOUT_FULLSCREEN;
|
||||
} else if(strcmp(action, "abort") == 0) {
|
||||
keybinding->action = KEYBINDING_NOOP;
|
||||
} else if(strcmp(action, "message") == 0) {
|
||||
keybinding->action = KEYBINDING_DISPLAY_MESSAGE;
|
||||
if(saveptr == NULL) {
|
||||
*errstr =
|
||||
log_error("Not enough paramaters to \"message\". Expected "
|
||||
"string to display.");
|
||||
return -1;
|
||||
}
|
||||
keybinding->data.c = strdup(saveptr);
|
||||
} else if(strcmp(action, "time") == 0) {
|
||||
keybinding->action = KEYBINDING_SHOW_TIME;
|
||||
} else if(strcmp(action, "nextscreen") == 0) {
|
||||
|
|
@ -669,6 +769,23 @@ parse_command(struct cg_server *server, struct keybinding *keybinding,
|
|||
} else if(strcmp(action, "resizeup") == 0) {
|
||||
keybinding->action = KEYBINDING_RESIZE_TILE_VERTICAL;
|
||||
keybinding->data.i = -10;
|
||||
} else if(strcmp(action, "screen") == 0) {
|
||||
keybinding->action = KEYBINDING_SWITCH_OUTPUT;
|
||||
char *noutp_str = strtok_r(NULL, " ", &saveptr);
|
||||
if(noutp_str == NULL) {
|
||||
*errstr =
|
||||
log_error("Expected argument for \"output\" action, got none.");
|
||||
return -1;
|
||||
}
|
||||
|
||||
long outp = strtol(noutp_str, NULL, 10);
|
||||
if(outp < 1) {
|
||||
*errstr = log_error("Workspace number must be an integer number "
|
||||
"larger or equal to 1. Got %ld",
|
||||
outp);
|
||||
return -1;
|
||||
}
|
||||
keybinding->data.u = outp;
|
||||
} else if(strcmp(action, "workspace") == 0) {
|
||||
keybinding->action = KEYBINDING_SWITCH_WORKSPACE;
|
||||
char *nws_str = strtok_r(NULL, " ", &saveptr);
|
||||
|
|
@ -686,12 +803,29 @@ parse_command(struct cg_server *server, struct keybinding *keybinding,
|
|||
return -1;
|
||||
}
|
||||
keybinding->data.u = ws - 1;
|
||||
} else if(strcmp(action, "movetoscreen") == 0) {
|
||||
keybinding->action = KEYBINDING_MOVE_VIEW_TO_OUTPUT;
|
||||
char *noutp_str = strtok_r(NULL, " ", &saveptr);
|
||||
if(noutp_str == NULL) {
|
||||
*errstr = log_error(
|
||||
"Expected argument for \"movetoscreen\" action, got none.");
|
||||
return -1;
|
||||
}
|
||||
|
||||
long outp = strtol(noutp_str, NULL, 10);
|
||||
if(outp < 1) {
|
||||
*errstr = log_error("Output number must be an integer larger or "
|
||||
"equal to 1. Got %ld",
|
||||
outp);
|
||||
return -1;
|
||||
}
|
||||
keybinding->data.u = outp;
|
||||
} else if(strcmp(action, "movetoworkspace") == 0) {
|
||||
keybinding->action = KEYBINDING_MOVE_VIEW_TO_WORKSPACE;
|
||||
char *nws_str = strtok_r(NULL, " ", &saveptr);
|
||||
if(nws_str == NULL) {
|
||||
*errstr = log_error(
|
||||
"Expected argument for \"workspace\" action, got none.");
|
||||
"Expected argument for \"movetoworkspace\" action, got none.");
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
|
@ -720,7 +854,11 @@ parse_command(struct cg_server *server, struct keybinding *keybinding,
|
|||
} else if(strcmp(action, "focusdown") == 0) {
|
||||
keybinding->action = KEYBINDING_FOCUS_BOTTOM;
|
||||
} else if(strcmp(action, "movetonextscreen") == 0) {
|
||||
keybinding->action = KEYBINDING_MOVE_VIEW_TO_NEXT_OUTPUT;
|
||||
keybinding->action = KEYBINDING_MOVE_VIEW_TO_CYCLE_OUTPUT;
|
||||
keybinding->data.b = false;
|
||||
} else if(strcmp(action, "movetoprevscreen") == 0) {
|
||||
keybinding->action = KEYBINDING_MOVE_VIEW_TO_CYCLE_OUTPUT;
|
||||
keybinding->data.b = true;
|
||||
} else if(strcmp(action, "switchvt") == 0) {
|
||||
keybinding->action = KEYBINDING_CHANGE_TTY;
|
||||
char *ntty = strtok_r(NULL, " ", &saveptr);
|
||||
|
|
@ -735,13 +873,12 @@ parse_command(struct cg_server *server, struct keybinding *keybinding,
|
|||
keybinding->action = KEYBINDING_SWITCH_MODE;
|
||||
char *mode = strtok_r(NULL, " ", &saveptr);
|
||||
if(mode == NULL) {
|
||||
*errstr =
|
||||
log_error("Expected mode after \"switch_mode\". Got nothing.");
|
||||
*errstr = log_error("Expected mode after \"mode\". Got nothing.");
|
||||
return -1;
|
||||
}
|
||||
int mode_idx = get_mode_index_from_name(server->modes, mode);
|
||||
if(mode_idx == -1) {
|
||||
*errstr = log_error("Unknown mode \"%s\" for switch_mode", mode);
|
||||
*errstr = log_error("Unknown mode \"%s\" for \"mode\"", mode);
|
||||
return -1;
|
||||
}
|
||||
keybinding->data.u = (unsigned int)mode_idx;
|
||||
|
|
@ -808,6 +945,12 @@ parse_command(struct cg_server *server, struct keybinding *keybinding,
|
|||
if(keybinding->data.i_cfg == NULL) {
|
||||
return -1;
|
||||
}
|
||||
} else if(strcmp(action, "configure_message") == 0) {
|
||||
keybinding->action = KEYBINDING_CONFIGURE_MESSAGE;
|
||||
keybinding->data.m_cfg = parse_message_config(&saveptr, errstr);
|
||||
if(keybinding->data.m_cfg == NULL) {
|
||||
return -1;
|
||||
}
|
||||
} else {
|
||||
*errstr = log_error("Error, unsupported action \"%s\".", action);
|
||||
return -1;
|
||||
|
|
|
|||
1
seat.c
1
seat.c
|
|
@ -138,7 +138,6 @@ remove_touch(struct cg_seat *seat, struct cg_touch *touch) {
|
|||
if(!touch) {
|
||||
return;
|
||||
}
|
||||
wl_list_remove(&touch->link);
|
||||
wlr_cursor_detach_input_device(seat->cursor, touch->device->wlr_device);
|
||||
--seat->num_touch;
|
||||
free(touch);
|
||||
|
|
|
|||
BIN
signatures/1.8.3-cagebreak-config.5.sig
Normal file
BIN
signatures/1.8.3-cagebreak-config.5.sig
Normal file
Binary file not shown.
BIN
signatures/1.8.3-cagebreak.1.sig
Normal file
BIN
signatures/1.8.3-cagebreak.1.sig
Normal file
Binary file not shown.
BIN
signatures/1.8.3.sig
Normal file
BIN
signatures/1.8.3.sig
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -6,6 +6,7 @@
|
|||
*
|
||||
* See the LICENSE file accompanying this file.
|
||||
*/
|
||||
#include "config.h"
|
||||
|
||||
#include <X11/Xutil.h>
|
||||
#include <stdbool.h>
|
||||
|
|
@ -14,7 +15,9 @@
|
|||
#include <wlr/types/wlr_output_layout.h>
|
||||
#include <wlr/util/box.h>
|
||||
#include <wlr/util/log.h>
|
||||
#if CG_HAS_XWAYLAND
|
||||
#include <wlr/xwayland.h>
|
||||
#endif
|
||||
|
||||
#include "output.h"
|
||||
#include "server.h"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue