mirror of
https://github.com/house-of-vanity/swkb.git
synced 2025-07-07 19:24:07 +00:00
Compare commits
4 Commits
Author | SHA1 | Date | |
---|---|---|---|
989893ae41 | |||
80d5fd1c80 | |||
341c9b1b4e | |||
e76841e0d8 |
2
.github/workflows/PKGBUILD
vendored
2
.github/workflows/PKGBUILD
vendored
@ -1,7 +1,7 @@
|
||||
# Maintainer: Alexandr Bogomyakov (ultradesu) <ab@hexor.ru>
|
||||
|
||||
pkgname=swkb
|
||||
pkgver=0.2.0
|
||||
pkgver=0.2.1
|
||||
pkgrel=1
|
||||
pkgdesc="swkb"
|
||||
url="https://github.com/house-of-vanity/swkb.git"
|
||||
|
24
Cargo.lock
generated
24
Cargo.lock
generated
@ -521,18 +521,6 @@ dependencies = [
|
||||
"winapi",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "sway-layout"
|
||||
version = "0.2.0"
|
||||
dependencies = [
|
||||
"async-std",
|
||||
"failure",
|
||||
"futures-core",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"swayipc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "swayipc"
|
||||
version = "2.7.0"
|
||||
@ -546,6 +534,18 @@ dependencies = [
|
||||
"serde_json",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "swkb"
|
||||
version = "0.2.0"
|
||||
dependencies = [
|
||||
"async-std",
|
||||
"failure",
|
||||
"futures-core",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"swayipc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "syn"
|
||||
version = "1.0.35"
|
||||
|
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "swkb"
|
||||
version = "0.2.0"
|
||||
version = "0.2.1"
|
||||
authors = ["Alexandr Bogomyakov <abogomyakov@iponweb.net>"]
|
||||
edition = "2018"
|
||||
|
||||
|
3
README
Normal file
3
README
Normal file
@ -0,0 +1,3 @@
|
||||
swkb - simple per-window keyboard layout switching daemon for Sway WM.
|
||||
|
||||
prebuild ArchLinux packages here - https://repo.hexor.ru/
|
@ -46,8 +46,8 @@ async fn main() -> Fallible<()> {
|
||||
let subs = [EventType::Input, EventType::Window];
|
||||
let mut events = connection.subscribe(&subs).await?;
|
||||
while let Some(event) = events.next().await {
|
||||
match event.unwrap() {
|
||||
Event::Input(event) => {
|
||||
match event {
|
||||
Ok(Event::Input(event)) => {
|
||||
let layouts_list = event.input.xkb_layout_names;
|
||||
let layout_name = event.input.xkb_active_layout_name.unwrap();
|
||||
let index = layouts_list.iter().position(|r| *r == layout_name).unwrap() as i64;
|
||||
@ -56,7 +56,7 @@ async fn main() -> Fallible<()> {
|
||||
//println!("Layout saved [{:?}] for {:?}", layout_name, current_window);
|
||||
layouts.insert(current_window, index);
|
||||
}
|
||||
Event::Window(event) => match event.change {
|
||||
Ok(Event::Window(event)) => match event.change {
|
||||
swayipc::reply::WindowChange::Focus => {
|
||||
let layouts = layouts.lock().unwrap();
|
||||
let mut connection = Connection::new().await?;
|
||||
|
Reference in New Issue
Block a user