Skip to content

Instantly share code, notes, and snippets.

@pythoninthegrass
Last active May 28, 2025 17:06
Show Gist options
  • Save pythoninthegrass/5267c624b782165d4836503fdcafd28a to your computer and use it in GitHub Desktop.
Save pythoninthegrass/5267c624b782165d4836503fdcafd28a to your computer and use it in GitHub Desktop.
Ghosty config (i.e., $HOME/.config/ghostty/config )
title = " "
maximize = true
working-directory = "home"
# TODO: fix `command` / `initial-command` error
# shell-integration = "bash"
# initial-command = "~/.config/ghostty/startup.sh bash"
# command = "bash $HOME/.config/ghostty/startup.sh"
quit-after-last-window-closed = true
quick-terminal-screen = mouse
quick-terminal-autohide = true
scrollback-limit = 524288000
clipboard-read = allow
clipboard-write = allow
clipboard-paste-protection = false
clipboard-paste-bracketed-safe = true
copy-on-select = clipboard
window-inherit-working-directory = false
window-save-state = "always"
window-padding-x = 10
window-padding-y = 10
window-height = 40
window-width = 150
theme = "AdventureTime"
font-size = 14
font-family = "Hack Nerd Font Mono"
keybind = global:cmd+grave_accent=toggle_quick_terminal
keybind = global:cmd+shift+enter=toggle_fullscreen
mouse-hide-while-typing = true
app-notifications = no-clipboard-copy
macos-titlebar-proxy-icon = "hidden"
# TODO: alt doesn't work to move to the right tab or word boundaries in zellij
# ! https://github.com/ghostty-org/ghostty/discussions/3483
# command = "/bin/bash -c /opt/homebrew/bin/zellij"
# macos-option-as-alt = true
# keybind = alt+left=unbind
# keybind = alt+right=unbind
copy-on-select = clipboard
app-notifications = no-clipboard-copy
window-save-state = "always"
scrollback-limit = 524288000
quick-terminal-position = "top"
quick-terminal-screen = "main"
quick-terminal-autohide = true
window-width = 150
window-height = 40
window-padding-x = 10
window-padding-y = 10
auto-update = "check"
auto-update-channel = "tip"
macos-icon = "custom-style"
macos-icon-frame = "beige"
macos-icon-screen-color = 1f1d45
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"padding": {
"top": 5,
"right": 6
}
},
"modules": [
"break",
{
"type": "custom",
"format": "\u001b[90m┌──────────────────────Hardware──────────────────────┐"
},
{
"type": "host",
"key": " PC",
"keyColor": "green"
},
{
"type": "cpu",
"key": "│ ├",
"showPeCoreCount": true,
"keyColor": "green"
},
{
"type": "gpu",
"key": "│ ├",
"detectionMethod": "pci",
"keyColor": "green"
},
{
"type": "display",
"key": "│ ├󱄄",
"keyColor": "green"
},
{
"type": "disk",
"key": "│ ├󰋊",
"keyColor": "green"
},
{
"type": "memory",
"key": "│ ├",
"keyColor": "green"
},
{
"type": "swap",
"key": "└ └󰓡 ",
"keyColor": "green",
},
{
"type": "custom",
"format": "\u001b[90m└────────────────────────────────────────────────────┘"
},
"break",
{
"type": "custom",
"format": "\u001b[90m┌──────────────────────Software──────────────────────┐"
},
{
"type": "os",
"key": " OS",
"keyColor": "yellow"
},
{
"type": "kernel",
"key": "│ ├",
"keyColor": "yellow"
},
{
"type": "packages",
"key": "│ ├󰏖",
"keyColor": "yellow"
},
{
"type": "shell",
"key": "└ └",
"keyColor": "yellow"
},
"break",
{
"type": "de",
"key": " DE",
"keyColor": "blue"
},
{
"type": "wm",
"key": "│ ├",
"keyColor": "blue"
},
{
"type": "wmtheme",
"key": "│ ├󰉼",
"keyColor": "blue"
},
{
"type": "icons",
"key": "│ ├󰀻",
"keyColor": "blue",
},
{
"type": "cursor",
"key": "│ ├",
"keyColor": "blue",
},
{
"type": "terminalfont",
"key": "│ ├",
"keyColor": "blue",
},
{
"type": "terminal",
"key": "└ └",
"keyColor": "blue"
},
{
"type": "custom",
"format": "\u001b[90m└────────────────────────────────────────────────────┘"
},
"break",
{
"type": "custom",
"format": "\u001b[90m┌────────────────────Uptime / Age────────────────────┐"
},
{
"type": "command",
"key": " OS Age ",
"keyColor": "magenta",
"text": "birth_install=$(stat -c %W /); current=$(date +%s); time_progression=$((current - birth_install)); days_difference=$((time_progression / 86400)); echo $days_difference days"
},
{
"type": "uptime",
"key": " Uptime ",
"keyColor": "magenta"
},
{
"type": "custom",
"format": "\u001b[90m└────────────────────────────────────────────────────┘"
},
"break",
]
}
#!/usr/bin/env bash
# shellcheck disable=SC1091
set -euo pipefail
shopt -s nullglob
# $USER
if [[ "$(uname)" = 'Darwin' ]]; then
logged_in_user=$(echo "show State:/Users/ConsoleUser" | scutil | awk '/Name :/ && ! /loginwindow/ {print $3}')
elif [[ "$(uname)" = 'Linux' ]]; then
[[ -n $(logname >/dev/null 2>&1) ]] && logged_in_user=$(logname) || logged_in_user=$(whoami)
else
echo "Unknown OS: $(uname). Exiting..."
exit 1
fi
# $UID
# logged_in_uid=$(id -u "${logged_in_user}")
# $HOME
logged_in_home=$(eval echo "~${logged_in_user}")
# Source ~/.bashrc
. "${logged_in_home}/.bashrc"
if [[ $TERM == "xterm-ghostty" ]] || [[ $TERM = "xterm-256color" ]]; then
exec "$SHELL" -li -c "bash" "fastfetch -c ${logged_in_home}/.config/fastfetch.jsonc"
fi
@pythoninthegrass
Copy link
Author

@pythoninthegrass
Copy link
Author

pythoninthegrass commented Mar 25, 2025

mkdir -p ~/.config/ghostty
git clone [email protected]:5267c624b782165d4836503fdcafd28a.git ghostty_config && cd $_
ln -s $(pwd)/config ~/.config/ghostty/config
ln -s $(pwd)/startup.sh ~/.config/ghostty/startup.sh
ln -s $(pwd)/fastfetch.jsonc ~/.config/fastfetch.jsonc

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment