clippy
This commit is contained in:
+3
-3
@@ -114,11 +114,11 @@ pub async fn run_daemon(config_path: Option<PathBuf>) -> Result<()> {
|
|||||||
let (ev_tx, mut ev_rx) = mpsc::channel(1);
|
let (ev_tx, mut ev_rx) = mpsc::channel(1);
|
||||||
let mut watcher = RecommendedWatcher::new(
|
let mut watcher = RecommendedWatcher::new(
|
||||||
move |res: notify::Result<Event>| {
|
move |res: notify::Result<Event>| {
|
||||||
if let Ok(event) = res {
|
if let Ok(event) = res
|
||||||
if event.kind.is_modify() || event.kind.is_create() {
|
&& (event.kind.is_modify() || event.kind.is_create())
|
||||||
|
{
|
||||||
let _ = ev_tx.blocking_send(());
|
let _ = ev_tx.blocking_send(());
|
||||||
}
|
}
|
||||||
}
|
|
||||||
},
|
},
|
||||||
NotifyConfig::default(),
|
NotifyConfig::default(),
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -114,11 +114,11 @@ impl BacklightDaemon {
|
|||||||
let (ev_tx, ev_rx) = mpsc::channel();
|
let (ev_tx, ev_rx) = mpsc::channel();
|
||||||
let mut watcher = RecommendedWatcher::new(
|
let mut watcher = RecommendedWatcher::new(
|
||||||
move |res: notify::Result<Event>| {
|
move |res: notify::Result<Event>| {
|
||||||
if let Ok(event) = res {
|
if let Ok(event) = res
|
||||||
if event.kind.is_modify() {
|
&& event.kind.is_modify()
|
||||||
|
{
|
||||||
let _ = ev_tx.send(());
|
let _ = ev_tx.send(());
|
||||||
}
|
}
|
||||||
}
|
|
||||||
},
|
},
|
||||||
NotifyConfig::default(),
|
NotifyConfig::default(),
|
||||||
)
|
)
|
||||||
|
|||||||
+18
-26
@@ -137,51 +137,43 @@ impl WaybarModule for BtModule {
|
|||||||
match action.as_str() {
|
match action.as_str() {
|
||||||
"connect" => {
|
"connect" => {
|
||||||
if let Some(mac) = args.get(1) {
|
if let Some(mac) = args.get(1) {
|
||||||
if let Ok(session) = bluer::Session::new().await {
|
if let Ok(session) = bluer::Session::new().await
|
||||||
if let Ok(adapter) = session.default_adapter().await {
|
&& let Ok(adapter) = session.default_adapter().await
|
||||||
if let Ok(addr) = mac.parse::<bluer::Address>() {
|
&& let Ok(addr) = mac.parse::<bluer::Address>()
|
||||||
if let Ok(device) = adapter.device(addr) {
|
&& let Ok(device) = adapter.device(addr)
|
||||||
|
{
|
||||||
let _ = device.connect().await;
|
let _ = device.connect().await;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
trigger_robust_poll(state.clone());
|
trigger_robust_poll(state.clone());
|
||||||
}
|
}
|
||||||
return Ok(WaybarOutput::default());
|
return Ok(WaybarOutput::default());
|
||||||
}
|
}
|
||||||
"disconnect" if bt_state.connected => {
|
"disconnect" if bt_state.connected => {
|
||||||
if let Ok(session) = bluer::Session::new().await {
|
if let Ok(session) = bluer::Session::new().await
|
||||||
if let Ok(adapter) = session.default_adapter().await {
|
&& let Ok(adapter) = session.default_adapter().await
|
||||||
if let Ok(addr) = bt_state.device_address.parse::<bluer::Address>() {
|
&& let Ok(addr) = bt_state.device_address.parse::<bluer::Address>()
|
||||||
if let Ok(device) = adapter.device(addr) {
|
&& let Ok(device) = adapter.device(addr)
|
||||||
|
{
|
||||||
let _ = device.disconnect().await;
|
let _ = device.disconnect().await;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
trigger_robust_poll(state.clone());
|
trigger_robust_poll(state.clone());
|
||||||
return Ok(WaybarOutput::default());
|
return Ok(WaybarOutput::default());
|
||||||
}
|
}
|
||||||
"menu_data" => {
|
"menu_data" => {
|
||||||
let mut devs = Vec::new();
|
let mut devs = Vec::new();
|
||||||
if let Ok(session) = bluer::Session::new().await {
|
if let Ok(session) = bluer::Session::new().await
|
||||||
if let Ok(adapter) = session.default_adapter().await {
|
&& let Ok(adapter) = session.default_adapter().await
|
||||||
if let Ok(addresses) = adapter.device_addresses().await {
|
&& let Ok(addresses) = adapter.device_addresses().await
|
||||||
|
{
|
||||||
for addr in addresses {
|
for addr in addresses {
|
||||||
if let Ok(device) = adapter.device(addr) {
|
if let Ok(device) = adapter.device(addr)
|
||||||
if device.is_paired().await.unwrap_or(false) {
|
&& device.is_paired().await.unwrap_or(false)
|
||||||
let alias = device
|
{
|
||||||
.alias()
|
let alias = device.alias().await.unwrap_or_else(|_| addr.to_string());
|
||||||
.await
|
|
||||||
.unwrap_or_else(|_| addr.to_string());
|
|
||||||
devs.push(format!("{} ({})", alias, addr));
|
devs.push(format!("{} ({})", alias, addr));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return Ok(WaybarOutput {
|
return Ok(WaybarOutput {
|
||||||
text: devs.join("\n"),
|
text: devs.join("\n"),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
|
|||||||
+4
-5
@@ -89,16 +89,15 @@ impl DndDaemon {
|
|||||||
let mut stream = props_proxy.receive_properties_changed().await?;
|
let mut stream = props_proxy.receive_properties_changed().await?;
|
||||||
while let Some(signal) = stream.next().await {
|
while let Some(signal) = stream.next().await {
|
||||||
let args = signal.args()?;
|
let args = signal.args()?;
|
||||||
if args.interface_name == "org.erikreider.swaync.control" {
|
if args.interface_name == "org.erikreider.swaync.control"
|
||||||
if let Some(val) = args.changed_properties.get("dnd") {
|
&& let Some(val) = args.changed_properties.get("dnd")
|
||||||
if let Ok(is_dnd) = bool::try_from(val) {
|
&& let Ok(is_dnd) = bool::try_from(val)
|
||||||
|
{
|
||||||
let _ = tx.send(DndState { is_dnd });
|
let _ = tx.send(DndState { is_dnd });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Err(anyhow::anyhow!("DND stream ended or daemon not found"))
|
Err(anyhow::anyhow!("DND stream ended or daemon not found"))
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -76,21 +76,17 @@ impl KeyboardDaemon {
|
|||||||
.args(["devices", "-j"])
|
.args(["devices", "-j"])
|
||||||
.output()
|
.output()
|
||||||
.await
|
.await
|
||||||
|
&& let Ok(json) = serde_json::from_slice::<serde_json::Value>(&output.stdout)
|
||||||
|
&& let Some(keyboards) = json.get("keyboards").and_then(|v| v.as_array())
|
||||||
|
&& let Some(main_kb) = keyboards.last()
|
||||||
{
|
{
|
||||||
if let Ok(json) = serde_json::from_slice::<serde_json::Value>(&output.stdout) {
|
|
||||||
if let Some(keyboards) = json.get("keyboards").and_then(|v| v.as_array()) {
|
|
||||||
if let Some(main_kb) = keyboards.last() {
|
|
||||||
// The last active one is usually the main one
|
// The last active one is usually the main one
|
||||||
if let Some(layout) = main_kb.get("active_keymap").and_then(|v| v.as_str())
|
if let Some(layout) = main_kb.get("active_keymap").and_then(|v| v.as_str()) {
|
||||||
{
|
|
||||||
let _ = tx.send(KeyboardState {
|
let _ = tx.send(KeyboardState {
|
||||||
layout: layout.to_string(),
|
layout: layout.to_string(),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
while let Ok(Some(line)) = lines.next_line().await {
|
while let Ok(Some(line)) = lines.next_line().await {
|
||||||
if let Some(payload) = line.strip_prefix("activelayout>>") {
|
if let Some(payload) = line.strip_prefix("activelayout>>") {
|
||||||
|
|||||||
@@ -156,16 +156,16 @@ impl MprisDaemon {
|
|||||||
artist = a.to_string();
|
artist = a.to_string();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if let Some(v) = metadata.get("xesam:title") {
|
if let Some(v) = metadata.get("xesam:title")
|
||||||
if let Ok(t) = <&str>::try_from(v) {
|
&& let Ok(t) = <&str>::try_from(v)
|
||||||
|
{
|
||||||
title = t.to_string();
|
title = t.to_string();
|
||||||
}
|
}
|
||||||
}
|
if let Some(v) = metadata.get("xesam:album")
|
||||||
if let Some(v) = metadata.get("xesam:album") {
|
&& let Ok(a) = <&str>::try_from(v)
|
||||||
if let Ok(a) = <&str>::try_from(v) {
|
{
|
||||||
album = a.to_string();
|
album = a.to_string();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// Only send if changed
|
// Only send if changed
|
||||||
let current = tx.borrow();
|
let current = tx.borrow();
|
||||||
|
|||||||
+6
-6
@@ -36,18 +36,18 @@ impl WaybarSignaler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn send_signal(&mut self, signal_num: i32) {
|
fn send_signal(&mut self, signal_num: i32) {
|
||||||
if let Some(last) = self.last_signal_sent.get(&signal_num) {
|
if let Some(last) = self.last_signal_sent.get(&signal_num)
|
||||||
if last.elapsed() < Duration::from_millis(50) {
|
&& last.elapsed() < Duration::from_millis(50)
|
||||||
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
let mut valid_pid = false;
|
let mut valid_pid = false;
|
||||||
if let Some(pid) = self.cached_pid {
|
if let Some(pid) = self.cached_pid
|
||||||
if kill(pid, None).is_ok() {
|
&& kill(pid, None).is_ok()
|
||||||
|
{
|
||||||
valid_pid = true;
|
valid_pid = true;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if !valid_pid {
|
if !valid_pid {
|
||||||
self.cached_pid = self.find_waybar_pid();
|
self.cached_pid = self.find_waybar_pid();
|
||||||
|
|||||||
Reference in New Issue
Block a user