zshell

Konfigurasi

Semua opsi Zshell yang tersimpan, fungsinya, dan lokasi penyimpanannya.

Sebagian besar pengaturan Zshell yang tersimpan berada dalam satu berkas:

~/.config/zshell/config.toml

Jendela Pengaturan (Cmd+,) menulis berkas yang sama. Beberapa pengaturan milik macOS, yaitu bahasa dan pembaruan otomatis, disimpan di tempat lain dan dijelaskan di akhir halaman.

Konfigurasi baru mengaktifkan petunjuk perintah Vim, pemulihan riwayat sesi, dan notifikasi perintah gagal. Unduhan pembaruan otomatis juga aktif secara bawaan. Konfigurasi yang ada dan pilihan tersimpan tetap dipertahankan.

Perilaku berkas

Sebelum menyunting secara manual, perhatikan:

  • Perubahan dibaca saat aplikasi berjalan. Suntingan eksternal yang valid diterapkan otomatis; pengaturan untuk terminal baru tetap memerlukan panel baru. Berkas tak terbaca atau sintaks salah mempertahankan pengaturan valid terakhir. Berkas yang sengaja kosong memulihkan nilai bawaan setelah jeda singkat.
  • Zshell menulis ulang berkas saat pengaturan yang disimpan di dalamnya berubah. Berkas dibuat ulang dari awal, sehingga komentar dan kunci yang tidak dikenali akan hilang ketika kontrol tersebut digunakan lagi. Pilih satu cara menyunting, atau simpan salinan utama di dotfiles Anda.
  • Sebagian besar nilai bawaan tidak ditulis. font-size, terminal.vim-command-hints, terminal.restore-history, terminal.notify-on-error selalu disimpan. Menghapus salah satu dari tiga kunci terminal tersebut dalam berkas yang ada mematikan fiturnya; menghapus kunci lain memulihkan nilai bawaan.
  • Parser sengaja sederhana. Parser mendukung kunci datar, kunci bertitik, judul [table], komentar #, serta nilai string/angka/boolean. Array, tabel sebaris, dan string multibaris tidak didukung.
  • Nilai salah menggunakan cadangan yang aman. Ukuran di luar rentang, backend tidak dikenal, atau salah eja tema tidak menghalangi Zshell untuk dibuka.

Penyimpanan mempertahankan tautan simbolis berkas dan direktori, memperbarui target secara atomik serta menjaga izinnya. Suntingan eksternal tidak menulis ulang komentar atau kunci tak dikenal; penyimpanan berikutnya dari Pengaturan tetap membuat ulang berkas seperti dijelaskan di atas.

Tampilan aplikasi

app-presence

"dock" · "dock-and-menu-bar" · "menu-bar" — bawaan "dock"

Pilih Pengaturan → Umum → Tampilkan Zshell di untuk langsung beralih. "dock" hanya menampilkan ikon Dock, "dock-and-menu-bar" menampilkan keduanya, dan "menu-bar" hanya menampilkan ikon bilah menu.

Bilah menu membuka ruang kerja saat ini, Terminal Cepat, pengaturan, dan pemeriksaan pembaruan. Pada kedua mode bilah menu, menutup jendela ruang kerja terakhir menyembunyikannya sementara terminal dan tugas tetap berjalan. Buka ruang kerja mengembalikan jendela, proyek, dan sesi yang sama. Menutup jendela lain, panel, atau proyek tetap mengakhiri tugasnya. Keluar mengikuti terminal.preserve-sessions; Keluar dan akhiri semua sesi mengakhiri semuanya. Mode disimpan saat aplikasi dijalankan ulang.

Tampilan

theme

"system" · "light" · "dark" — bawaan "system"

Memilih tampilan aplikasi. "system" mengikuti macOS; dua pilihan lainnya menetapkan satu tampilan untuk Zshell.

theme-dark dan theme-light

String — bawaan "Default Dark" dan "Default Light"

Tema warna untuk setiap tampilan. Tema mewarnai panel terminal, bingkai jendela, bilah samping, editor, dan tampilan perbedaan sekaligus. Tema bawaan mempertahankan bilah samping tembus pandang; tema lain mewarnainya sesuai palet.

Pengaturan menampilkan katalog tema pilihan yang digunakan kedua backend. Nama yang ditulis manual harus sama persis dengan nama tampilannya, termasuk huruf besar/kecil, atau Zshell memakai tema bawaan yang sesuai.

toolbar.visibility

"hide" · "auto" · "always" — bawaan "hide"

Mengontrol bilah alat ringkas di bawah tab aktif:

  • "hide" menyembunyikannya dari jendela.
  • "auto" menampilkannya hanya jika direktori proyek adalah repositori Git.
  • "always" mempertahankan akses Git di setiap proyek, termasuk status Tidak Ada Repositori Git.

Lihat Bilah alat Git untuk isinya.

Teks

font-family

String — bawaan "", yang berarti JetBrains Mono bawaan

Terminal, editor, dan penampil perbedaan memakai keluarga huruf Latin yang sama. Berikan nama keluarga, bukan gaya: "IBM Plex Mono", bukan "IBM Plex Mono Regular". Keluarga yang tidak dikenal atau tidak monospace digantikan font bawaan.

Urutan cadangan terminal adalah keluarga Latin, keluarga CJK opsional di bawah, Symbols Nerd Font bawaan, lalu cadangan sistem backend. Editor dan penampil perbedaan tetap memakai cadangan macOS/WebKit biasanya.

terminal.font-fallback-family

String — bawaan "", berarti cadangan backend/sistem

Menambahkan satu keluarga CJK terpasang ke urutan cadangan terminal. Pemilih Pengaturan memuat keluarga dengan contoh glif Mandarin, Jepang, atau Korea. Keluarga itu tidak wajib sepenuhnya monospace karena hanya memasok glif yang tidak ada dalam font Latin utama.

font-size

Angka, 8–32 — bawaan 13

Ukuran font bersama untuk terminal, editor, dan perbedaan dalam poin. Ini satu-satunya kunci yang ditulis Zshell meskipun bernilai bawaan.

interface.scale

Angka, 0.9–1.5 — bawaan 1

Mengubah skala tab, ikon, tombol, bilah samping, dan antarmuka lain. Konten terminal, editor, dan perbedaan mempertahankan ukuran font terpisah di atas.

sidebar.font-size

Angka, 9–24 — bawaan 14

Ukuran teks dasar kedua bilah samping. Judul bagian, baris, metadata, dan kontrol mempertahankan hierarki relatif ketika ukuran dasar berubah.

terminal.font-thicken

Boolean — bawaan false

Merender glif terminal dengan goresan sedikit lebih tebal, mirip penghalusan font macOS klasik. Kedua backend mendukungnya, dan pratinjau Pengaturan memperlihatkan hasilnya. Konfigurasi lama font-thicken masih dibaca, lalu ditulis ulang memakai kunci bertitik yang baru.

terminal.font-thicken-strength

Bilangan bulat, 0–255 — bawaan 255

Mengatur penebalan ketika terminal.font-thicken bernilai true. Nol adalah penebalan paling ringan, bukan mati. Ghostty menggunakan kekuatan asli macOS; Alacritty memetakan rentang yang sama ke goresan CoreText. Arah dan batasnya sama, tetapi piksel hasil rasterisasi bisa berbeda.

terminal.line-height

Angka, 0.75–2 — bawaan 1

Mengalikan tinggi sel alami masing-masing backend, sambil menjaga glif terpusat vertikal. Hanya baris terminal yang berubah, bukan jarak editor atau perbedaan.

Zshell tidak menyediakan kontrol bobot font dasar. Ghostty memilih gaya bernama atau sumbu variasi, sedangkan Alacritty/CoreText menentukan wajah reguler dan tebal berdasarkan atribut. Satu nilai bersama tidak akan menjaga perbedaan reguler/tebal dan bobot cadangan secara konsisten di font statis maupun variabel.

editor.wrap-lines

Boolean — bawaan true

Membungkus baris panjang sesuai lebar panel dalam editor berkas. Jika false, baris panjang digulir horizontal. Pembungkusan terminal dan perbedaan tidak berubah.

Terminal

terminal.startup-program / terminal.startup-arguments

String — bawaan tidak diatur

Memilih executable dan vektor argumen untuk terminal yang dibuat setelah perubahan. Tanpa terminal.startup-program, Zshell tetap memakai shell login akun dengan -l. Program harus berupa jalur absolut yang dapat dieksekusi; jalur hilang atau tidak executable akan kembali ke shell login, bukan membuka panel yang tidak berfungsi.

terminal.startup-arguments dipecah menjadi argumen tanpa menjalankan shell. Tanda kutip dan garis miring terbalik mempertahankan batas, termasuk spasi dan argumen kosong, tetapi variabel, glob, dan substitusi perintah tidak diperluas. Kutipan tidak valid juga kembali ke shell login. Argv eksplisit dari CLI Zshell tetap didahulukan untuk terminal itu.

terminal.backend

"libghostty" · "alacritty" — bawaan "libghostty"

Memilih emulator untuk terminal yang dibuat setelah perubahan. Panel yang sudah ada mempertahankan backend awalnya. Keduanya native, dipercepat GPU, mendukung gambar, dan menggunakan tema Zshell yang sama; Alacritty biasanya memakai memori lebih sedikit.

Lihat Backend terminal untuk variabel lingkungan dan ketentuan kompatibilitas.

terminal.macos-option-as-alt

Boolean — bawaan false

Jika true, kombinasi Option dikirim ke program terminal sebagai pintasan Alt/Meta. Bawaan membiarkan Option pada sumber input macOS aktif agar tata letak seperti Polish Pro dapat mengetik karakter gabungan.

terminal.bell

Boolean — bawaan true

Mengontrol suara peringatan dan perhatian visual macOS saat program terminal membunyikan bel. Jika false, Zshell tidak memutar suara, mengirim notifikasi bel terminal, atau meminta perhatian di Dock. Teknologi aksesibilitas tetap menerima bel sebagai pengumuman semantik. Kedua backend mendukungnya.

terminal.vim-command-hints

Boolean — bawaan true

Menampilkan perintah Vim / Neovim sesuai mode di bawah informasi sesi dalam bilah samping Info. Berlaku segera pada kedua backend, termasuk editor melalui SSH yang dapat dikenali. Lihat Petunjuk perintah Vim untuk persyaratan deteksi mode.

terminal.restore-history

Boolean — bawaan true

Memulihkan keluaran sebelumnya di atas shell baru saat aplikasi dibuka kembali. Konten yang dipulihkan adalah teks statis, bukan proses yang masih berjalan.

Riwayat disimpan di disk, sehingga rahasia yang tampil di terminal mungkin ikut tersimpan. Proyek, tab, dan tata letak panel tetap dipulihkan dalam kedua keadaan.

Otomatisasi

ai.enabled

Boolean — bawaan true

Memungkinkan agen pemrograman yang didukung mengoordinasikan panel Zshell di latar belakang melalui permintaan bahasa biasa, serta menampilkan status siklus hidup dari penyedia. Zshell tidak menyimpulkan status dari teks terminal. Sebaiknya gunakan sakelar Pengaturan karena kesalahan ditampilkan langsung dan konfigurasi lama yang berkonflik dibiarkan utuh.

Alur pengguna dijelaskan dalam Bekerja dengan agen AI.

Saat berbagi app-server Codex, Zshell mencocokkan ID percakapan terverifikasi dengan panel latar depan. Kecocokan ambigu tidak ditautkan. Integrasi terkelola menambahkan session-id ke judul terminal Codex tanpa menghapus item judul lain.

ai.resume-conversations

boolean — bawaan true

Saat panel terminal dipulihkan dan PTY asal tidak tersedia, melanjutkan percakapan asli yang tepat dan tercatat dari Claude Code, Codex, Pi, atau OpenCode. Memerlukan ai.enabled = true. Panel tanpa percakapan terverifikasi membuka shell baru; Zshell tidak pernah memilih percakapan terbaru berdasarkan direktori.

Atur melalui Pengaturan → Otomatisasi → Lanjutkan percakapan agen. Opsi ini terpisah dari terminal.restore-history.

Pengaturan tambahan

KunciBawaanNilai / rentangEfek
app-icon"default""default" / "light" / "dark"Ikon aplikasi
editor.external-editor"default""default" / "vscode" / "zed" / "cursor"Editor eksternal untuk berkas dan folder
terminal.theme-onlyfalseBooleanTerapkan palet hanya pada terminal
terminal.cursor-shape"bar""bar" / "block" / "underline"Bentuk kursor terminal
terminal.cursor-blinkingtrueBooleanKedipan kursor
terminal.copy-on-selecttrueBooleanSalin teks terminal yang dipilih
terminal.focus-follows-mousefalseBooleanFokus mengikuti mouse
terminal.shift-enter-newlinetrueBooleanKirim urutan baris baru yang diperluas lewat Shift+Enter; memerlukan dukungan aplikasi
terminal.background-opacity10.2–1Opasitas latar terminal
terminal.background-blurfalseBooleanBuramkan latar tembus pandang
terminal.notify-finish-seconds00 / 5 / 10 / 30 / 60Beri notifikasi saat perintah yang berjalan minimal selama durasi ini selesai di terminal zsh baru; 0 menonaktifkan
terminal.notify-on-errortrueBooleanNotifikasi kegagalan perintah di terminal zsh baru
quick-terminal.mode"reuse""reuse", "fresh"Gunakan kembali ruang kerja / Ruang kerja baru setiap kali
quick-terminal.size0.750.35–0.95Ukuran Terminal Cepat relatif terhadap layar
quick-terminal.opacity0.50.05–1Opasitas latar Terminal Cepat
quick-terminal.shortcutCmd+IRekam di PengaturanRekam pintasan global di Pengaturan; kode tombol disimpan otomatis
panes.show-focus-ringtrueBooleanTampilkan bingkai fokus di panel aktif
panes.focus-ring-opacity0.850.05–1Opasitas bingkai fokus

Pencadangan dan migrasi

Gunakan Zshell → Ekspor Pengaturan… untuk menyimpan berkas TOML dan Impor Pengaturan… untuk memuatnya. Impor meminta konfirmasi penggantian dan mencoba mencadangkan berkas saat ini sebagai config.toml.bak di direktori yang sama.

Impor membaca semua pengaturan yang didukung. Kunci yang dihilangkan mengikuti nilai bawaan pembaca; tanpa ai.enabled, pengaturan AI saat ini tetap digunakan. Bahasa dan variabel lingkungan proyek atau tab disimpan terpisah.

Contoh lengkap

~/.config/zshell/config.toml
theme = "dark"
theme-dark = "Catppuccin Mocha"
theme-light = "Catppuccin Latte"
font-family = "IBM Plex Mono"
font-size = 14
interface.scale = 1.25
sidebar.font-size = 13
toolbar.visibility = "auto"
terminal.font-fallback-family = "PingFang SC"
terminal.font-thicken = true
terminal.font-thicken-strength = 180
terminal.line-height = 1.15
terminal.macos-option-as-alt = false
terminal.bell = false
terminal.startup-program = "/opt/homebrew/bin/fish"
terminal.startup-arguments = "--no-config"
terminal.backend = "alacritty"
terminal.restore-history = true
editor.wrap-lines = true
ai.enabled = true
ai.resume-conversations = true

Semua kunci opsional. Hapus kunci untuk mengembalikan pengaturannya ke nilai bawaan.

Pintasan keyboard

Buka Pengaturan → Pintasan untuk merekam pintasan baru bagi perintah inti. Zshell menolak kombinasi yang berkonflik dan menyebutkan perintah yang sudah memakainya. Pulihkan Pintasan Bawaan menghapus semua penggantian. Referensi keyboard mencantumkan pintasan bawaan.

Pengaturan di luar berkas ini

  • Bahasa. Pengaturan menyediakan Bawaan Sistem dan 17 bahasa yang sama dengan situs. Perubahan berlaku langsung sambil sesi terminal tetap berjalan. Pilihan menggunakan preferensi bahasa per aplikasi macOS, sehingga disimpan dalam preferensi Zshell, bukan TOML. Bawaan Sistem mengikuti urutan bahasa macOS.
  • Pembaruan otomatis. Sakelar pemeriksaan, unduhan, dan pemasangan otomatis di Pengaturan → Pembaruan memakai preferensi aplikasi di luar TOML dan mengingat pilihan antarpeluncuran. Pemasangan hanya ditampilkan selama unduhan otomatis aktif. Lihat Instalasi.
  • Status jendela dan tata letak. Ukuran jendela, lebar bilah samping, panel yang dipilih, proyek, tab, panel konten, URL browser, dan preferensi kontrol perbedaan tersimpan dalam preferensi macOS dan cuplikan sesi Zshell.
  • Berkas konfigurasi backend. Zshell tidak membaca ~/.config/ghostty atau konfigurasi Alacritty. Pengaturan Zshell adalah cara yang didukung untuk keduanya.