aboutsummaryrefslogtreecommitdiffstats
path: root/src/widgets
diff options
context:
space:
mode:
authorDaniel Jankowski <daniel.jankowski@rub.de>2023-08-31 22:35:27 +0200
committerDaniel Jankowski <daniel.jankowski@rub.de>2023-08-31 22:35:27 +0200
commitea771fca01837e6f6ee390189360205c0ac0f3ea (patch)
tree7fc4ef8aa27ce8a706a36af1459c08759ebb7ef1 /src/widgets
parentfix: crash on tab creation (diff)
downloadsl0pstatus-ea771fca01837e6f6ee390189360205c0ac0f3ea.tar.gz
sl0pstatus-ea771fca01837e6f6ee390189360205c0ac0f3ea.tar.xz
sl0pstatus-ea771fca01837e6f6ee390189360205c0ac0f3ea.zip
feat: add session plugin
Diffstat (limited to 'src/widgets')
-rw-r--r--src/widgets/mod.rs1
-rw-r--r--src/widgets/session.rs26
2 files changed, 27 insertions, 0 deletions
diff --git a/src/widgets/mod.rs b/src/widgets/mod.rs
index c88bd21..3011d3c 100644
--- a/src/widgets/mod.rs
+++ b/src/widgets/mod.rs
@@ -1,4 +1,5 @@
pub mod datetime;
pub mod mode;
+pub mod session;
pub mod tabs;
pub mod widget;
diff --git a/src/widgets/session.rs b/src/widgets/session.rs
new file mode 100644
index 0000000..1849edc
--- /dev/null
+++ b/src/widgets/session.rs
@@ -0,0 +1,26 @@
+use std::collections::BTreeMap;
+
+use super::widget::Widget;
+
+pub struct SessionWidget {}
+
+impl SessionWidget {
+ pub fn new(_config: BTreeMap<String, String>) -> Self {
+ Self {}
+ }
+}
+
+impl Widget for SessionWidget {
+ fn process(&self, state: crate::ZellijState) -> String {
+ let session = state
+ .sessions
+ .into_iter()
+ .filter(|s| s.is_current_session)
+ .next();
+
+ match session {
+ Some(s) => s.name,
+ None => "".to_string(),
+ }
+ }
+}