Terminalda ishlash uchun to'liq sozlangan muhit. Kodni tahrirlash, git, web dasturlash va sessiyalarni boshqarish — hammasi bitta oynada, sichqonchasiz.
Tarkibi:
| Dastur | Vazifasi |
|---|---|
| Ghostty | terminal oynasi (tez, shaffof fon bilan) |
| tmux | sessiyalar va panellar: terminalni yopsangiz ham ish saqlanadi |
| Neovim | kod muharriri (LSP, autocomplete, fayl daraxti) |
| Starship | promptdagi papka nomi va ❯ belgisi |
Ranglar sxemasi: Catppuccin Mocha — uchala dasturda ham bir xil.
- Nima kerak bo'ladi
- macOS'ga o'rnatish
- Linux'ga o'rnatish
- Windows'ga o'rnatish
- Sozlamalarni qo'yish
- Birinchi ishga tushirish
- Foydalanish
- Web dasturlash
- Sozlamalarni o'zgartirish
- Muammolar va yechimlar
| Dastur | Nima uchun |
|---|---|
git |
plaginlarni yuklab olish uchun |
neovim (0.10+) |
muharrirning o'zi |
tmux (3.2+) |
sessiyalar |
| Nerd Font shrift | ikonkalar ko'rinishi uchun (busiz kvadratchalar chiqadi) |
| Dastur | Nima beradi |
|---|---|
ripgrep |
loyiha bo'ylab matn qidirish (Probel fg) |
fd |
fayl qidirishni tezlashtiradi |
lazygit |
git uchun qulay interfeys (Probel gg) |
gitmux |
tmux panelida git branch ko'rinishi |
starship |
prompt |
node (18+) |
web dasturlash uchun til serverlari |
Avval Homebrew kerak. Bo'lmasa:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"So'ng hammasini bir buyruq bilan:
# Terminal, muharrir va yordamchilar
brew install --cask ghostty
brew install neovim tmux git ripgrep fd lazygit gitmux starship node
# Nerd Font shrifti (ikonkalar uchun)
brew install --cask font-jetbrains-mono-nerd-fontKeyin 5-bo'limga o'ting.
sudo apt update
sudo apt install -y git tmux ripgrep fd-find curl build-essential
# Neovim — apt'dagi versiya ko'pincha eski, shuning uchun rasmiy build:
curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim-linux-x86_64.tar.gz
sudo tar -C /opt -xzf nvim-linux-x86_64.tar.gz
sudo ln -sf /opt/nvim-linux-x86_64/bin/nvim /usr/local/bin/nvim
# Starship
curl -sS https://starship.rs/install.sh | sh
# lazygit
LAZYGIT_VERSION=$(curl -s "https://api.github.com/repos/jesseduffield/lazygit/releases/latest" | grep -Po '"tag_name": *"v\K[^"]*')
curl -Lo lazygit.tar.gz "https://github.com/jesseduffield/lazygit/releases/latest/download/lazygit_${LAZYGIT_VERSION}_Linux_x86_64.tar.gz"
tar xf lazygit.tar.gz lazygit && sudo install lazygit /usr/local/binsudo pacman -S ghostty neovim tmux git ripgrep fd lazygit starship nodejs npmGhostty rasmiy .deb paketini
chiqarilmalar sahifasidan
yuklab oling yoki manbadan yig'ing. Ghostty bo'lmasa ham muhim emas —
sozlama har qanday terminalda ishlaydi (faqat shaffoflik va o'lcham
sozlamalari ishlamaydi).
mkdir -p ~/.local/share/fonts
cd ~/.local/share/fonts
curl -fLO https://github.com/ryanoasis/nerd-fonts/releases/latest/download/JetBrainsMono.zip
unzip -o JetBrainsMono.zip && rm JetBrainsMono.zip
fc-cache -fvSo'ng terminal sozlamalarida shriftni JetBrainsMono Nerd Font qilib tanlang.
Muhim: Ghostty'ning Windows uchun versiyasi yo'q. Ikki yo'l bor.
Linux muhitini Windows ichida ishga tushirasiz va hamma narsa ishlaydi.
-
PowerShell'ni administrator sifatida ochib:
wsl --install -d Ubuntu
Kompyuterni qayta yoqing.
-
Ubuntu'ni ochib, 3-bo'limdagi Ubuntu ko'rsatmalarini bajaring.
-
Terminal sifatida Windows Terminal dan foydalaning (Microsoft Store'da bepul). Uning sozlamalarida:
- shrift:
JetBrainsMono Nerd Font - shriftni Windows tomonida ham o'rnatish kerak:
nerd-fonts dan
JetBrainsMono.zipni yuklab, ichidagi.ttffayllarni belgilab, o'ng tugma → Install
- shrift:
-
Sozlamalarni qo'yish — 5-bo'lim, buyruqlar WSL ichida bajariladi.
tmux Windows'da ishlamaydi, ya'ni sessiyalar va yuqoridagi panel bo'lmaydi. Faqat Neovim qismi ishlaydi:
winget install Neovim.Neovim Git.Git BurntSushi.ripgrep.MSVC sharkdp.fd
winget install JesseDuffield.lazygit Starship.Starship OpenJS.NodeJSSozlama fayli %LOCALAPPDATA%\nvim\init.lua ga qo'yiladi.
git clone https://github.com/Go-Dasturchi/Ghostty.git
cd Ghostty
chmod +x install.sh
./install.shSkript nima qiladi:
- sozlamalarni joyiga ko'chiradi (
~/.config/ghostty,~/.config/tmux,~/.config/nvim,~/.config/starship) - eski sozlamalaringizni zaxiraga oladi — yo'qolmaydi, ekranda zaxira papkasining nomi yoziladi
- tmux plaginlar menejerini (TPM) o'rnatadi
Qo'lda bajariladigan bitta qadam: zsh/zshrc-qismi.zsh faylini ochib,
ichidagini o'zingizning ~/.zshrc faylingiz oxiriga ko'chiring.
Qo'lda qo'ymoqchi bo'lsangiz, fayllar shu joylarga boradi:
Repodagi fayl Qayerga ghostty/config~/.config/ghostty/configtmux/tmux.conf~/.config/tmux/tmux.conftmux/tmux.reset.conf~/.config/tmux/tmux.reset.confnvim/init.lua~/.config/nvim/init.luanvim/QOLLANMA.md~/.config/nvim/QOLLANMA.mdstarship/starship.toml~/.config/starship/starship.toml
-
Terminalni butunlay yoping va qayta oching. Ghostty'da:
Cmd+Q(macOS). Shundan keyin u avtomatik tmux'ga ulanadi. -
tmux plaginlarini o'rnating:
Ctrl+Abosing, qo'yib yuboring, keyin kattaI(Shift+i). Pastda o'rnatish jarayoni ko'rinadi, bir necha soniya kutasiz. -
Neovim'ni oching:
nvim. Plaginlar o'zi yuklab olinadi — birinchi safar 1-2 daqiqa ketishi mumkin. Tugagachqbosing. -
Til serverlarini o'rnating (kerakli tillarni tanlang):
# Web (HTML, CSS, JS/TS, Emmet) npm install -g vscode-langservers-extracted typescript@5 \ typescript-language-server @olrtg/emmet-language-server live-server # Go go install golang.org/x/tools/gopls@latest # Python npm install -g pyright
-
Tekshirish:
nvimichida:checkhealthyozing — nimadir yetishmasa, shu yerda ko'rsatiladi.
tmux sessiyasi — ishingizning saqlangan holati. Terminalni yopsangiz
ham, kompyuterni o'chirsangiz ham sessiya saqlanib qoladi va qaytib
kelganingizda o'sha joydan davom etasiz (tmux-resurrect +
tmux-continuum plaginlari har 5 daqiqada saqlab turadi).
Prefix — tmux buyruqlaridan oldin bosiladigan tugma. Bu sozlamada u
Ctrl+A. Ya'ni "Ctrl+A keyin o" degani: Ctrl+A ni bosib qo'yib
yuborasiz, so'ng o ni bosasiz.
Leader — Neovim buyruqlaridan oldin bosiladigan tugma. Bu yerda u probel.
| Tugma | Nima qiladi |
|---|---|
Ctrl+A o |
sessiyalar ro'yxati (qidiruv bilan) |
Ctrl+A p |
suzuvchi terminal — kod ustida qalqib turadi |
Ctrl+A c |
yangi oyna |
Ctrl+A s |
gorizontal bo'lish |
Ctrl+A v |
vertikal bo'lish |
Ctrl+A h/j/k/l |
qo'shni panelga o'tish |
Ctrl+A z |
panelni kattalashtirish / qaytarish |
Ctrl+A d |
sessiyadan chiqish (fon rejimida qoladi) |
Ctrl+A $ |
sessiya nomini o'zgartirish |
Ctrl+A R |
sozlamani qayta yuklash |
| Tugma | Nima qiladi |
|---|---|
i |
yozishga o'tish. Chiqish — Esc |
yy |
qatorni nusxalash |
p |
qo'yish |
dd |
qatorni o'chirish |
u |
bekor qilish |
Ctrl+r |
bekor qilinganni qaytarish |
/so'z |
qidirish, n — keyingisi |
Ctrl+s |
saqlash |
:q |
chiqish |
Probel ? |
barcha tugmalar ro'yxati |
| Tugma | Nima qiladi |
|---|---|
Ctrl+n |
fayl daraxti |
Ctrl+t |
pastki terminal |
Probel ff |
fayl topish |
Probel fg |
loyiha bo'ylab matn qidirish |
Probel fk |
tugmalarni qidirish |
Probel k |
to'liq qo'llanma (qidiruvli) |
Probel gg |
LazyGit |
gd |
funksiya ta'rifiga o'tish |
K |
hujjat / ma'lumot |
Probel rn |
nomini hamma joyda o'zgartirish |
| Tugma | Nima qiladi |
|---|---|
a |
yangi fayl. Papka uchun oxiriga / qo'ying: yangi/ |
d |
o'chirish |
r |
nomini o'zgartirish |
x / c / p |
kesish / nusxalash / qo'yish |
Istalgan tugmani bosib 0.4 soniya kuting — which-key o'zi ro'yxat
chiqaradi. Masalan d bossangiz, o'chirishning barcha variantlari
ko'rinadi. Yoki Probel k — to'liq qo'llanma, qidiruv bilan.
To'liq ro'yxat: nvim/QOLLANMA.md
HTML, CSS va JavaScript uchun autocomplete, Emmet va brauzerda jonli ko'rish sozlangan.
HTML faylida yozib, to'ldirish ro'yxatidan tanlang:
| Yozasiz | Chiqadi |
|---|---|
html:5 |
to'liq HTML andozasi |
div.box |
<div class="box"></div> |
ul>li*3 |
<ul> ichida 3 ta <li> |
CSS'da ham: df → display: flex;, m10 → margin: 10px;
| Tugma | Nima qiladi |
|---|---|
Probel ws |
brauzerda ochish — fayl saqlansa sahifa o'zi yangilanadi |
Probel wq |
to'xtatish |
Terminalda (Ctrl+t), xuddi boshqa tillardagidek:
node fayl.js # JavaScript
go run main.go # Go
python3 fayl.py # Pythonnode --watch fayl.js — fayl saqlanganda o'zi qayta ishga tushadi.
Eslatma: brauzer uchun yozilgan JavaScript (
document,addEventListener)nodebilan ishlamaydi — terminalda sahifa yo'q. Bunday kod faqat brauzerda ishlaydi.
| Nimani | Qayerda |
|---|---|
| Shrift o'lchami, shaffoflik | ~/.config/ghostty/config |
| tmux paneli, tugmalari | ~/.config/tmux/tmux.conf |
| Neovim — hammasi | ~/.config/nvim/init.lua |
| Prompt ko'rinishi | ~/.config/starship/starship.toml |
init.lua ni tezda ochish: Probel f c → Config.
Fayllar ichida o'zbekcha izohlar bor: har bir sozlama nima qilishi va nega shunday yozilgani tushuntirilgan.
~/.config/ghostty/config ichida:
background-opacity = 0.82 # 1 = qattiq, 0 = ko'rinmas
background-blur = 40 # xiralashtirish kuchi
Nerd Font o'rnatilmagan yoki terminalda tanlanmagan. Terminal
sozlamalarida shriftni JetBrainsMono Nerd Font qiling.
Plaginlar o'rnatilmagan: Ctrl+A keyin katta I bosing.
Agar Neovim'dan noto'g'ri chiqilgan bo'lsa, panel yashiringancha qolishi mumkin (Neovim ochilganda u ataylab yashiriladi). Qaytarish:
tmux set status onBirinchi ishga tushirishda plaginlar yuklanadi — bu normal. Keyingi
safar tez bo'ladi. Tekshirish: nvim ichida :Lazy profile.
Til serveri o'rnatilmagan bo'lishi mumkin. Tekshirish: faylni ochib
:LspInfo yozing. Bo'sh bo'lsa — 6-bo'limdagi
til serverlarini o'rnating.
npm install -g live-serverinstall.sh eski sozlamalaringizni ~/.config-zaxira-<sana> papkasiga
saqlab qo'ygan. Undagi fayllarni joyiga qaytaring.
MIT — xohlagancha foydalaning, o'zgartiring, tarqating.