Basic "command" parser
This commit is contained in:
parent
d1e153eac7
commit
1d988b7e38
|
@ -134,7 +134,7 @@ async fn main() -> Result<()> {
|
||||||
// starved by x11 events. Probably unnecessary, but better safe than sorry.
|
// starved by x11 events. Probably unnecessary, but better safe than sorry.
|
||||||
tokio::select! {
|
tokio::select! {
|
||||||
biased;
|
biased;
|
||||||
Some(s) = recv.recv() => msg_listener::on_recv(s).await?,
|
Some(s) = recv.recv() => msg_listener::on_recv(s, &mut manager, &mut conn).await?,
|
||||||
Ok(ev) = conn.wait_for_event_async() => process_event(ev, &mut manager, &mut conn, root).await?,
|
Ok(ev) = conn.wait_for_event_async() => process_event(ev, &mut manager, &mut conn, root).await?,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,9 @@
|
||||||
// You should have received a copy of the GNU General Public License
|
// You should have received a copy of the GNU General Public License
|
||||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
use crate::x11::client::XcrabWindowManager;
|
||||||
use crate::Result;
|
use crate::Result;
|
||||||
|
use breadx::AsyncDisplay;
|
||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
use tokio::io::AsyncReadExt;
|
use tokio::io::AsyncReadExt;
|
||||||
use tokio::net::UnixListener;
|
use tokio::net::UnixListener;
|
||||||
|
@ -44,7 +46,14 @@ pub async fn listener_task(socket_path: &Path, sender: UnboundedSender<String>)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub async fn on_recv(data: String) -> Result<()> {
|
pub async fn on_recv<Dpy: AsyncDisplay + ?Sized>(
|
||||||
println!("{}", data);
|
data: String,
|
||||||
|
manager: &mut XcrabWindowManager,
|
||||||
|
conn: &mut Dpy,
|
||||||
|
) -> Result<()> {
|
||||||
|
match &*data {
|
||||||
|
"close" => manager.remove_focused_client(conn).await?,
|
||||||
|
_ => println!("{}", data),
|
||||||
|
}
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue