Reserve bottom space for fullscreen terminal

This commit is contained in:
jocayn
2026-06-13 12:39:48 +08:00
parent a7d435e59e
commit 47cb0123e6
2 changed files with 17 additions and 2 deletions
+6
View File
@@ -11,6 +11,7 @@
--danger: #d65a4a; --danger: #d65a4a;
--danger-soft: #fff1ee; --danger-soft: #fff1ee;
--shadow: 0 18px 48px rgba(21, 58, 58, 0.09); --shadow: 0 18px 48px rgba(21, 58, 58, 0.09);
--terminal-safe-bottom: 52px;
} }
* { * {
@@ -281,6 +282,11 @@ input[type="file"].form-control {
min-height: 0; min-height: 0;
} }
#terminal .xterm.fullscreen {
padding-bottom: var(--terminal-safe-bottom);
background: #0f1720;
}
#waiter { #waiter {
position: fixed; position: fixed;
inset: 0; inset: 0;
+11 -2
View File
@@ -300,6 +300,14 @@ jQuery(function($){
term.fitAddon.fit(); term.fitAddon.fit();
} }
function terminal_safe_bottom() {
var value = window.getComputedStyle(document.documentElement)
.getPropertyValue('--terminal-safe-bottom'),
parsed = window.parseInt(value, 10);
return parsed > 0 ? parsed : 0;
}
function current_geometry(term) { function current_geometry(term) {
if (!style.width || !style.height) { if (!style.width || !style.height) {
@@ -310,8 +318,9 @@ jQuery(function($){
} }
} }
var cols = parseInt(window.innerWidth / style.width, 10) - 1; var height = window.innerHeight - terminal_safe_bottom(),
var rows = parseInt(window.innerHeight / style.height, 10); cols = Math.max(2, parseInt(window.innerWidth / style.width, 10) - 1),
rows = Math.max(1, parseInt(height / style.height, 10));
return {'cols': cols, 'rows': rows}; return {'cols': cols, 'rows': rows};
} }