diff --git a/README.md b/README.md index 812dd93..f0c0666 100644 --- a/README.md +++ b/README.md @@ -1,32 +1,52 @@ -# Extra wayland shell event loop +# Extra wayland shell event loop and their iced bindings + +We want to make program with iced for layershell and sessionlock, so we made this project. Take winit as reference a lot, to make easilier program on layershell and ext-session-lock. This project bind `ext-session-lock` and `layershell` with the similar way of winit, which storing message and handle it in callback -Here are five subprojects +## Here are five subprojects -## waycrate_xkbkeycode +### waycrate_xkbkeycode [![Crates.io](https://img.shields.io/crates/v/waycrate_xkbkeycode.svg)](https://crates.io/crates/waycrate_xkbkeycode) Take a lot of reference from winit (mainly from winit). Mainly handle the xkbcommon events. -## layershellev +### layershellev [![Crates.io](https://img.shields.io/crates/v/layershellev.svg)](https://crates.io/crates/layershellev) -Winit like layershell event crate +Winit like layershell event crate. + +We use it make a virtual-keyboard program, please take a look at `starcolorkeyboard`. Next we will make the program with iced-layershell instead, to provide a more beautiful virtual-keyboard program. -## sessionlockev +### sessionlockev [![Crates.io](https://img.shields.io/crates/v/sessionlockev.svg)](https://crates.io/crates/sessionlockev) -Winit like sessionlock event crate +Winit like sessionlock event crate. It handles the sessionlock event, like lock and unlock, and provides base support for iced binding for sessionlock -## iced-layershell +### iced-layershell [![Crates.io](https://img.shields.io/crates/v/iced-layershell.svg)](https://crates.io/crates/iced-layershell) iced binding for layershell -## iced-sessionlock +#### Feature: + +- support to open new layershell and support popup window. +- support ext-virtual-keyboard + +![example](./misc/iced_layershell_example.png) + +With crate, you can use iced to build your kde-shell, notification application, and etc. + +### iced-sessionlock [![Crates.io](https://img.shields.io/crates/v/iced-sessionlock.svg)](https://crates.io/crates/iced-sessionlock) iced binding for sessionlock + +Session lock is the wayland protocol for lock. This protocol is supported in river, sway and etc. We use it make a beautiful lock program in [twenty](https://github.com/waycrate/twenty). You can also use it to build your sessionlock. This will become very easy to use our crate with pam crate. + + +## Help Us + +in iced 0.13, there will be breaking changes, we need someone who are familiar with iced to help us. And text-input-v3 and input-method also not handled, we also need some help since ime feature will be support in iced 0.13, we think this feature is very important, we need prepare for it. diff --git a/iced_sessionlock/README.md b/iced_sessionlock/README.md index 7f6d008..f18cbb4 100644 --- a/iced_sessionlock/README.md +++ b/iced_sessionlock/README.md @@ -4,6 +4,8 @@ iced-layershell provides binding for iced and sessionlock. +Session lock is the wayland protocol for lock. This protocol is supported in river, sway and etc. We use it make a beautiful lock program in [twenty](https://github.com/waycrate/twenty). You can also use it to build your sessionlock. This will become very easy to use our crate with pam crate. + The smallest example is like ```rust diff --git a/layershellev/README.md b/layershellev/README.md index dd1aa24..2b8f123 100644 --- a/layershellev/README.md +++ b/layershellev/README.md @@ -2,6 +2,15 @@ Layershelleventloop, take lot reference from winit, amin to make a easy way to create layershell window. +## Feature: + +- support to open new layershell and support popup window. +- support ext-virtual-keyboard + +With crate, you can use iced to build your kde-shell, notification application, and etc. + +## Example + you can take `./examples/simplelayer.rs` for example ```rust diff --git a/misc/iced_layershell_example.png b/misc/iced_layershell_example.png new file mode 100644 index 0000000..e16b4b4 Binary files /dev/null and b/misc/iced_layershell_example.png differ diff --git a/waycrate_xkbkeycode/Cargo.toml b/waycrate_xkbkeycode/Cargo.toml index 66279ef..5ca5479 100644 --- a/waycrate_xkbkeycode/Cargo.toml +++ b/waycrate_xkbkeycode/Cargo.toml @@ -5,9 +5,9 @@ edition.workspace = true version.workspace = true license.workspace = true repository.workspace = true -description.workspace = true keywords.workspace = true -readme.workspace = true +readme = "README.md" +description = "something about xkbcommon, used in iced-layershell" [dependencies] xkbcommon-dl.workspace = true diff --git a/waycrate_xkbkeycode/README.md b/waycrate_xkbkeycode/README.md new file mode 100644 index 0000000..abcf78f --- /dev/null +++ b/waycrate_xkbkeycode/README.md @@ -0,0 +1,5 @@ +# waycrate_xkbkeycode + +A crate to handle xkbcommon. Most code is from winit. Be used in layershellev and sessionlockev. + +xkbcommon is too difficult for me. I can just understand part of the code, but it works