From 89c49945bab967e9df7a124cb6867bfae73fa68b Mon Sep 17 00:00:00 2001 From: Mihai Fufezan Date: Fri, 12 Jul 2024 16:46:10 +0300 Subject: [PATCH 1/2] notification: reword summary/body --- src/tailscale/peer.rs | 16 +++++++++++----- src/tray/menu.rs | 15 +++++++++------ 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/src/tailscale/peer.rs b/src/tailscale/peer.rs index 6baf98a..ca8898d 100644 --- a/src/tailscale/peer.rs +++ b/src/tailscale/peer.rs @@ -10,7 +10,11 @@ pub fn check_peer_ip(peer_ip: &str) { } } -pub fn copy_peer_ip(peer_ip: &str, notif_title: &str) -> Result<(), Box> { +pub fn copy_peer_ip( + peer_ip: &str, + notif_body: &str, + host: bool, +) -> Result<(), Box> { check_peer_ip(peer_ip); copy_to_clipboard(peer_ip)?; @@ -18,14 +22,16 @@ pub fn copy_peer_ip(peer_ip: &str, notif_title: &str) -> Result<(), Box Vec> { let my_ip = self.ctx.ip.clone(); + let message = format!( + "This device: {} ({})", + self.ctx.status.this_machine.display_name, self.ctx.ip + ); + let mut my_sub = Vec::new(); let mut serv_sub = Vec::new(); for (_, peer) in self.ctx.status.peers.iter() { let ip = peer.ips[0].clone(); let name = &peer.display_name; - let title = name.to_string(); let sub = match name { PeerKind::DNSName(_) => &mut serv_sub, PeerKind::HostName(_) => &mut my_sub, }; - let peer_ip = ip.to_owned(); - let peer_title = title.to_owned(); + let peer_title = format!("{} ({})", name, ip); let menu = MenuItem::Standard(StandardItem { - label: format!("{}\t({})", title, ip), + label: format!("{}\t({})", name, ip), activate: Box::new(move |_: &mut Self| { - if let Err(e) = copy_peer_ip(&peer_ip, &peer_title) { + if let Err(e) = copy_peer_ip(&ip, &peer_title, false) { eprintln!("failed to copy peer ip: {}", e); } }), @@ -187,7 +190,7 @@ impl Tray for SysTray { self.ctx.status.this_machine.display_name, self.ctx.ip ), activate: Box::new(move |_| { - if let Err(e) = copy_peer_ip(&my_ip, "Peer IP copied to clipboard!") { + if let Err(e) = copy_peer_ip(&my_ip, message.as_str(), true) { eprintln!("failed to copy ip for this device: {}", e); } }), From e9f5274f23f727ef3b2e1f1964d450debbb1906b Mon Sep 17 00:00:00 2001 From: Mihai Fufezan Date: Fri, 12 Jul 2024 16:46:34 +0300 Subject: [PATCH 2/2] menu: fix icons --- src/tailscale/peer.rs | 2 +- src/tray/menu.rs | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/tailscale/peer.rs b/src/tailscale/peer.rs index ca8898d..775bf9e 100644 --- a/src/tailscale/peer.rs +++ b/src/tailscale/peer.rs @@ -32,7 +32,7 @@ pub fn copy_peer_ip( Notification::new() .summary(&summary) .body(¬if_body) - .icon("info") + .icon("tailscale") .show()?; Ok(()) diff --git a/src/tray/menu.rs b/src/tray/menu.rs index 74caa8b..66e3064 100644 --- a/src/tray/menu.rs +++ b/src/tray/menu.rs @@ -159,7 +159,7 @@ impl Tray for SysTray { vec![ StandardItem { label: "Connect".into(), - icon_name: "network-transmit-receive".into(), + icon_name: "network-transmit-receive-symbolic".into(), enabled: !self.enabled(), visible: true, activate: Box::new(|this: &mut Self| { @@ -172,7 +172,7 @@ impl Tray for SysTray { .into(), StandardItem { label: "Disconnect".into(), - icon_name: "network-offline".into(), + icon_name: "network-offline-symbolic".into(), enabled: self.enabled(), visible: true, activate: Box::new(|this: &mut Self| { @@ -189,6 +189,7 @@ impl Tray for SysTray { "This device: {} ({})", self.ctx.status.this_machine.display_name, self.ctx.ip ), + icon_name: "computer-symbolic".into(), activate: Box::new(move |_| { if let Err(e) = copy_peer_ip(&my_ip, message.as_str(), true) { eprintln!("failed to copy ip for this device: {}", e); @@ -199,6 +200,7 @@ impl Tray for SysTray { .into(), SubMenu { label: "Network Devices".into(), + icon_name: "network-wired-symbolic".into(), submenu: vec![ SubMenu { label: "My Devices".into(), @@ -217,7 +219,8 @@ impl Tray for SysTray { } .into(), StandardItem { - label: "Admin Consoleā€¦".into(), + label: "Admin Console".into(), + icon_name: "applications-system-symbolic".into(), activate: Box::new(|_| { let admin_url = std::env::var("TAILRAY_ADMIN_URL").unwrap_or_else(|_| { "https://login.tailscale.com/admin/machines".to_string()