Files
nix-config/home/base/gui/terminal/ghostty.nix
T
ryan4yin | 二花 d8b298019a refactor(shells): use native Home Manager Nushell and Nushell login on non-desktop hosts (#513)
* refactor(shells): use native Home Manager Nushell environment

Replace the Bash login-shell wrapper and hand-maintained Nushell PATH with programs.nushell.loadSessionVariables and home.sessionPath. Launch Nushell directly from Kitty, Ghostty, and Zed, with the macOS config-home override and Ghostty's vendor autoload directory.

Upstream feature: https://github.com/nix-community/home-manager/pull/9666

Assisted-by: DeepSeek Harness (deepseek-flash)

* feat(hosts): use Nushell as login shell on Ruby and Kana

Set the per-user shell explicitly and add Nushell to the system shell list. The system default shell and root remain unchanged.

Assisted-by: DeepSeek Harness (deepseek-flash)

* fix(ssh): preserve tuios session marker across SSH

Forward TUIOS_SESSION and accept it on NixOS sshd, so an SSH session opened from inside tuios does not auto-attach a nested remote tuios.

Assisted-by: DeepSeek Harness (deepseek-flash)

* feat(nixos): use Nushell login shell on non-desktop hosts

Enable the Nushell login shell through a shared module imported by the server and agent profiles. Desktop profiles continue to use Bash.

Assisted-by: DeepSeek Harness (deepseek-flash)

* fix(tuios): skip auto-attach in SSH sessions

Remote interactive shells now stay plain Nushell instead of starting a nested TUIOS when the SSH client is already inside a local TUIOS session. Local TUIOS auto-start is unchanged.

Assisted-by: DeepSeek Harness (deepseek-flash)
2026-11-03 22:31:24 +08:00

44 lines
1.2 KiB
Nix

{
config,
lib,
pkgs,
...
}:
###########################################################
#
# Ghostty Configuration
#
# TUIOS provides tabs, panes, scrollback and copy mode, so ghostty
# only needs a font, transparency and the kitty graphics protocol
# (built in).
#
###########################################################
{
programs.ghostty = {
enable = true;
package =
if pkgs.stdenv.hostPlatform.isDarwin then
null # installed via Homebrew cask on darwin
else
pkgs.ghostty;
enableBashIntegration = false;
installBatSyntax = false;
settings = {
font-family = "Maple Mono NF CN";
font-size = lib.mkDefault 13; # macOS overrides this in home/darwin/terminal.nix
# hide title bar/header bar (Linux only; on macOS it would remove the traffic lights too)
window-decoration = pkgs.stdenv.hostPlatform.isDarwin;
# transparency
background-opacity = 0.85;
background-blur-radius = 10; # macOS only
# Start fullscreen on macOS; window managers control this on Linux.
fullscreen = pkgs.stdenv.hostPlatform.isDarwin;
command = "${lib.getExe config.programs.nushell.package} --config-home ${config.programs.nushell.configDir}";
};
};
}