small software-rendered rust tty
bendn 4 weeks ago
parent bce3b1d · commit 5cfc847
-rw-r--r--Cargo.toml4
-rw-r--r--src/term.rs5
-rw-r--r--src/term/cells.rs1
3 files changed, 9 insertions, 1 deletions
diff --git a/Cargo.toml b/Cargo.toml
index 2bee2f9..f3fb998 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -21,8 +21,10 @@ libc = "0.2.172"
minifb = "0.28.0"
nix = { version = "0.30.1", features = ["process", "term"] }
parking_lot = "0.12.3"
+serde = { version = "1.0.228", features = ["derive"] }
swash = "0.2.4"
-winit = { version = "0.31.0-beta.2", default-features = false, features = ["x11"] }
+winit = { version = "0.31.0-beta.2", default-features = false, features = ["wayland", "x11"] }
+winit-wayland = "=0.31.0-beta.2"
[profile.release]
debug = 0
diff --git a/src/term.rs b/src/term.rs
index 076f101..f713d40 100644
--- a/src/term.rs
+++ b/src/term.rs
@@ -7,6 +7,7 @@ use ctlfun::TerminalInput::*;
use ctlfun::{ControlFunction, TerminalInputParser};
use dsb::cell::Style;
+#[derive(serde::Deserialize, serde::Serialize)]
pub struct Terminal {
pub style: Style,
pub cursor: (u16, u16),
@@ -14,7 +15,9 @@ pub struct Terminal {
pub view_o: Option<usize>,
pub cells: Cells,
+ #[serde(skip)]
pub p: TerminalInputParser,
+ #[serde(skip)]
pub mode: Mode,
pub alternate: Option<Box<Self>>,
@@ -39,7 +42,9 @@ impl Terminal {
}
}
}
+#[derive(Default)]
pub enum Mode {
+ #[default]
Normal,
Raw,
}
diff --git a/src/term/cells.rs b/src/term/cells.rs
index 034a60f..136fc64 100644
--- a/src/term/cells.rs
+++ b/src/term/cells.rs
@@ -1,4 +1,5 @@
// one-indexed cell array
+#[derive(serde::Deserialize, serde::Serialize)]
pub struct Cells {
pub size: (u16, u16),
pub cells: Vec<Cell>,