-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathCargo.toml
More file actions
142 lines (121 loc) · 5.83 KB
/
Cargo.toml
File metadata and controls
142 lines (121 loc) · 5.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
[package]
name = "term39"
version = "1.5.1"
edition = "2024"
license = "MIT"
authors = ["Alejandro Quintanar"]
description = "A modern, retro-styled terminal multiplexer with a classic MS-DOS aesthetic"
repository = "https://github.com/alejandroqh/term39"
homepage = "https://github.com/alejandroqh/term39"
readme = "README.md"
keywords = ["terminal", "multiplexer", "tui", "dos", "retro"]
categories = ["command-line-utilities"]
exclude = [
"assets/*",
".github/*",
".git/*",
]
[features]
default = ["clipboard", "framebuffer-backend", "battery", "lockscreen"]
clipboard = ["dep:arboard"]
framebuffer-backend = ["dep:framebuffer", "dep:memmap2", "dep:flate2"]
battery = ["dep:starship-battery"]
lockscreen = ["dep:pam-client", "dep:windows-sys"]
# Build profiles (use with --no-default-features --features <profile>)
termux = ["clipboard"] # Android Termux
tty = ["clipboard", "battery"] # TTY terminal only
minimal = [] # Bare minimum
full = ["clipboard", "framebuffer-backend", "battery", "lockscreen"] # Everything
# BSD-specific profiles (framebuffer is Linux-only)
bsd = ["clipboard", "battery", "lockscreen"] # FreeBSD with PAM
bsd-minimal = ["clipboard"] # OpenBSD/NetBSD (no PAM lockscreen, no battery)
[profile.release]
strip = true
lto = true
codegen-units = 1
[dependencies]
chrono = "0.4.42"
crossterm = { version = "0.29.0", default-features = false, features = ["events", "bracketed-paste", "windows", "filedescriptor"] }
portable-pty = "0.9"
vte = "0.15"
libc = "0.2"
filedescriptor = "0.8"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
unicode-width = "0.2"
tui-banner = "0.2"
toml = "0.9"
dirs = "6.0"
directories = "6.0"
clap = { version = "4.5", features = ["derive"] }
arboard = { version = "3.4", optional = true }
starship-battery = { version = "0.10", optional = true }
sha2 = "0.10"
# Framebuffer backend dependencies (Linux only)
[target.'cfg(target_os = "linux")'.dependencies]
framebuffer = { version = "0.3", optional = true }
memmap2 = { version = "0.9", optional = true }
flate2 = { version = "1.0", optional = true }
# PAM lockscreen dependencies (Linux and BSD)
[target.'cfg(any(target_os = "linux", target_os = "freebsd", target_os = "netbsd"))'.dependencies]
pam-client = { version = "0.5", default-features = false, optional = true }
# Windows lockscreen dependencies
[target.'cfg(target_os = "windows")'.dependencies]
windows-sys = { version = "0.61", features = ["Win32_Security", "Win32_Foundation"], optional = true }
[build-dependencies]
winres = "0.1"
# cargo-binstall support
# See: https://github.com/cargo-bins/cargo-binstall/blob/main/SUPPORT.md
[package.metadata.binstall]
pkg-url = "{ repo }/releases/download/v{ version }/term39-{ version }-{ target-family }-{ target-arch }-binary{ archive-suffix }"
bin-dir = "{ bin }{ binary-ext }"
pkg-fmt = "tgz"
# Target-specific overrides for the custom naming convention
[package.metadata.binstall.overrides]
# Linux x86_64
x86_64-unknown-linux-gnu.pkg-url = "{ repo }/releases/download/v{ version }/term39-{ version }-linux-64bit-x86-binary.tar.gz"
x86_64-unknown-linux-musl.pkg-url = "{ repo }/releases/download/v{ version }/term39-{ version }-linux-64bit-x86-binary.tar.gz"
# Linux i686 (32-bit)
i686-unknown-linux-gnu.pkg-url = "{ repo }/releases/download/v{ version }/term39-{ version }-linux-32bit-x86-binary.tar.gz"
i686-unknown-linux-musl.pkg-url = "{ repo }/releases/download/v{ version }/term39-{ version }-linux-32bit-x86-binary.tar.gz"
# Linux ARM64
aarch64-unknown-linux-gnu.pkg-url = "{ repo }/releases/download/v{ version }/term39-{ version }-linux-64bit-arm-binary.tar.gz"
aarch64-unknown-linux-musl.pkg-url = "{ repo }/releases/download/v{ version }/term39-{ version }-linux-64bit-arm-binary.tar.gz"
# macOS x86_64 (Intel)
x86_64-apple-darwin.pkg-url = "{ repo }/releases/download/v{ version }/term39-{ version }-macos-64bit-x86-binary.tar.gz"
# macOS ARM64 (Apple Silicon)
aarch64-apple-darwin.pkg-url = "{ repo }/releases/download/v{ version }/term39-{ version }-macos-64bit-arm-binary.tar.gz"
# Windows x86_64
x86_64-pc-windows-msvc.pkg-url = "{ repo }/releases/download/v{ version }/term39-{ version }-windows-64bit-x86-binary.zip"
x86_64-pc-windows-msvc.pkg-fmt = "zip"
# Windows i686 (32-bit)
i686-pc-windows-msvc.pkg-url = "{ repo }/releases/download/v{ version }/term39-{ version }-windows-32bit-x86-binary.zip"
i686-pc-windows-msvc.pkg-fmt = "zip"
# Windows ARM64
aarch64-pc-windows-msvc.pkg-url = "{ repo }/releases/download/v{ version }/term39-{ version }-windows-64bit-arm-binary.zip"
aarch64-pc-windows-msvc.pkg-fmt = "zip"
# FreeBSD x86_64
x86_64-unknown-freebsd.pkg-url = "{ repo }/releases/download/v{ version }/term39-{ version }-freebsd-64bit-x86-binary.tar.gz"
[package.metadata.deb]
maintainer = "Alejandro Quintanar <a@q39.dev>"
copyright = "2025, Alejandro Quintanar <a@q39.dev>"
license-file = ["LICENSE", "4"]
extended-description = """\
A modern, retro-styled terminal multiplexer with a classic MS-DOS aesthetic. \
Features a full-screen text-based interface with authentic DOS-style rendering, \
supporting both Unicode and ASCII rendering modes. Includes optional framebuffer \
backend for direct Linux console rendering with pixel-perfect DOS text modes."""
depends = "$auto"
section = "utils"
priority = "optional"
assets = [
["target/release/term39", "usr/bin/", "755"],
["README.md", "usr/share/doc/term39/README.md", "644"],
]
[package.metadata.generate-rpm]
license = "MIT"
assets = [
{ source = "target/release/term39", dest = "/usr/bin/term39", mode = "755" },
{ source = "README.md", dest = "/usr/share/doc/term39/README.md", mode = "644" },
{ source = "LICENSE", dest = "/usr/share/doc/term39/LICENSE", mode = "644" },
]