3 Commits

Author SHA1 Message Date
ebd4e8fd31 Bump version 2020-08-14 22:42:00 +10:00
2ac4101019 Khui 2020-08-14 22:27:44 +10:00
3e2cea8dc0 Got rid of some unwraps. 2020-08-03 23:29:45 +03:00
7 changed files with 134 additions and 9 deletions

View File

@ -1,7 +1,7 @@
# Maintainer: Alexandr Bogomyakov (ultradesu) <ab@hexor.ru> # Maintainer: Alexandr Bogomyakov (ultradesu) <ab@hexor.ru>
pkgname=swkb pkgname=swkb
pkgver=0.2.1 pkgver=0.2.3
pkgrel=1 pkgrel=1
pkgdesc="swkb" pkgdesc="swkb"
url="https://github.com/house-of-vanity/swkb.git" url="https://github.com/house-of-vanity/swkb.git"

2
Cargo.lock generated
View File

@ -536,7 +536,7 @@ dependencies = [
[[package]] [[package]]
name = "swkb" name = "swkb"
version = "0.2.0" version = "0.2.3"
dependencies = [ dependencies = [
"async-std", "async-std",
"failure", "failure",

View File

@ -1,6 +1,6 @@
[package] [package]
name = "swkb" name = "swkb"
version = "0.2.1" version = "0.2.3"
authors = ["Alexandr Bogomyakov <abogomyakov@iponweb.net>"] authors = ["Alexandr Bogomyakov <abogomyakov@iponweb.net>"]
edition = "2018" edition = "2018"
@ -21,3 +21,7 @@ unstable = []
#[dependencies.swayipc] #[dependencies.swayipc]
#features = ["async", "event_stream"] #features = ["async", "event_stream"]
[packaging]
depends = ["sway"]
makedepends = ["cargo", "git"]

33
PKGBUILD Normal file
View File

@ -0,0 +1,33 @@
# Maintainer:
pkgname=
pkgver=
pkgrel=1
pkgdesc=
url=
arch=($CARCH)
license=
depends=()
makedepends=()
source=("git+https://github.com/house-of-vanity/$pkgname")
sha512sums=('SKIP')
pkgver() {
cd "$srcdir/$pkgname"
git describe --long --tags | awk -F '-' '{print $1}'| sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g'
}
prepare() {
cd "$srcdir/$pkgname"
cargo fetch --target $CARCH-unknown-linux-gnu
}
build() {
cd "$srcdir/$pkgname"
cargo build --release --frozen --all-targets --all-features
}
package() {
cd "$srcdir/$pkgname"
install -Dt "$pkgdir/usr/bin" target/release/$pkgname
}

33
assets/PKGBUILD.jinja Normal file
View File

@ -0,0 +1,33 @@
# Maintainer: {{ config.authors }}
pkgname={{ config.name }}
pkgver={{ config.version }}
pkgrel=1
pkgdesc={{ config.desc }}
url={{ config.url }}
arch=($CARCH)
license={{ config.licence }}
depends=({{ config.depends }})
makedepends=({{ config.makedepends }})
source=("git+https://github.com/house-of-vanity/$pkgname")
sha512sums=('SKIP')
pkgver() {
cd "$srcdir/$pkgname"
git describe --long --tags | awk -F '-' '{print $1}'| sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g'
}
prepare() {
cd "$srcdir/$pkgname"
cargo fetch --target $CARCH-unknown-linux-gnu
}
build() {
cd "$srcdir/$pkgname"
cargo build --release --frozen --all-targets --all-features
}
package() {
cd "$srcdir/$pkgname"
install -Dt "$pkgdir/usr/bin" target/release/$pkgname
}

View File

@ -7,10 +7,14 @@ use swayipc::{Connection, EventType, Fallible};
async fn get_input_id() -> Vec<String> { async fn get_input_id() -> Vec<String> {
let mut connection = Connection::new().await.unwrap(); let mut connection = Connection::new().await.unwrap();
let inputs = connection.get_inputs().await.unwrap();
let mut ids: Vec<String> = Vec::new(); let mut ids: Vec<String> = Vec::new();
for i in inputs { match connection.get_inputs().await {
ids.push(i.identifier); Ok(inputs) => {
for i in inputs {
ids.push(i.identifier);
}
}
_ => {}
} }
ids ids
} }
@ -48,15 +52,21 @@ async fn main() -> Fallible<()> {
while let Some(event) = events.next().await { while let Some(event) = events.next().await {
match event { match event {
Ok(Event::Input(event)) => { Ok(Event::Input(event)) => {
println!("Input: {:?}", event);
let layouts_list = event.input.xkb_layout_names; let layouts_list = event.input.xkb_layout_names;
let layout_name = event.input.xkb_active_layout_name.unwrap(); let layout_name = event.input.xkb_active_layout_name.unwrap_or("none".to_string());
let index = layouts_list.iter().position(|r| *r == layout_name).unwrap() as i64; if layout_name == "none" {
continue
}
let index = layouts_list.iter().position(|r| *r == layout_name).unwrap_or(0) as i64;
let mut layouts = layouts.lock().unwrap(); let mut layouts = layouts.lock().unwrap();
let current_window = get_focus_id().await; let current_window = get_focus_id().await;
//println!("Layout saved [{:?}] for {:?}", layout_name, current_window); //println!("Layout saved [{:?}] for {:?}", layout_name, current_window);
layouts.insert(current_window, index); layouts.insert(current_window, index);
} }
Ok(Event::Window(event)) => match event.change { Ok(Event::Window(event)) => {
println!("Window: {:?}", event);
match event.change {
swayipc::reply::WindowChange::Focus => { swayipc::reply::WindowChange::Focus => {
let layouts = layouts.lock().unwrap(); let layouts = layouts.lock().unwrap();
let mut connection = Connection::new().await?; let mut connection = Connection::new().await?;
@ -84,6 +94,7 @@ async fn main() -> Fallible<()> {
} }
} }
_ => (), _ => (),
}
}, },
_ => (), _ => (),
} }

44
tmp_builder.py Normal file
View File

@ -0,0 +1,44 @@
from jinja2 import Environment, PackageLoader, FileSystemLoader
cargo = dict()
# async-std = { version = "1.6", features = ["attributes", "unstable"], optional = true }
def parse_line(val):
result = dict()
attr, value = line.split("=", maxsplit=1)
result[value] = dict()
return result
def parse(filename='Cargo.toml'):
with open(filename) as cargo_file:
level = ''
for line in cargo_file.readlines():
if line[0] == '#' or line[0] == '\n':
continue
print("line is ", (line, len(line)))
if line[0] == '[':
attr = line.replace('[', '').replace(']', '').strip()
cargo[attr] = dict()
level = attr
continue
value = parse_line(line)
print(value)
cargo[level] += value
print(cargo)
config = {}
with open("PKGBUILD", "w") as rcfile_obj:
file_loader = Environment(loader=FileSystemLoader('assets'))
template = file_loader.get_template('PKGBUILD.jinja')
output = template.render(config=config)
rcfile_obj.write(output+ "\n")