Confort du terminal, reconnexion, et hotes deja connus de ssh
Zoom de police : Ctrl+molette et Ctrl+ +/-, Ctrl+0 pour revenir a la taille par defaut. La taille choisie est memorisee entre deux lancements. Barre de defilement de l'historique. pyte ne sait defiler que par demi-pages : la barre est donc graduee en pages plutot qu'en lignes, ce qui donne un repere visuel de position et permet de faire glisser. Maj+PagePrec/Suiv au clavier, Ctrl+Fin pour revenir a la vue en direct. Recherche dans l'historique (Ctrl+F) : la barre apparait en bas de l'onglet et la recherche remonte l'historique page par page jusqu'a trouver, en selectionnant la correspondance — donc visible et directement copiable. Reconnexion en un clic : un bouton apparait dans la barre de l'onglet des que la connexion tombe. La fabrication de la connexion a ete extraite dans _create_connection(), ce qui permet de la recreer a l'identique sans ressaisir quoi que ce soit. Utile avec des serveurs de test qui redemarrent souvent. Les hotes deja approuves par la commande ssh (~/.ssh/known_hosts) sont desormais reconnus, ce qui evite de reconfirmer une empreinte que votre ssh connait deja. paramiko ne reecrit jamais ce fichier : les nouvelles cles continuent d'aller dans celui de l'application. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
30
app/theme.py
30
app/theme.py
@@ -129,6 +129,36 @@ def save_theme(theme: str) -> None:
|
||||
pass
|
||||
|
||||
|
||||
DEFAULT_FONT_SIZE = 10
|
||||
|
||||
|
||||
def load_font_size() -> int:
|
||||
try:
|
||||
data = json.loads(SETTINGS_FILE.read_text(encoding="utf-8"))
|
||||
size = int(data.get("font_size", DEFAULT_FONT_SIZE))
|
||||
return size if 6 <= size <= 32 else DEFAULT_FONT_SIZE
|
||||
except (OSError, json.JSONDecodeError, TypeError, ValueError):
|
||||
return DEFAULT_FONT_SIZE
|
||||
|
||||
|
||||
def save_font_size(size: int) -> None:
|
||||
_update_settings("font_size", size)
|
||||
|
||||
|
||||
def _update_settings(key: str, value) -> None:
|
||||
DATA_DIR.mkdir(parents=True, exist_ok=True)
|
||||
data = {}
|
||||
try:
|
||||
data = json.loads(SETTINGS_FILE.read_text(encoding="utf-8"))
|
||||
except (OSError, json.JSONDecodeError):
|
||||
pass
|
||||
data[key] = value
|
||||
try:
|
||||
SETTINGS_FILE.write_text(json.dumps(data, indent=2), encoding="utf-8")
|
||||
except OSError:
|
||||
pass
|
||||
|
||||
|
||||
def current_theme() -> str:
|
||||
return _current_theme
|
||||
|
||||
|
||||
Reference in New Issue
Block a user