Arch Linux + Hyprland (v0.56.2) + Quickshell (v0.3.1) için kişisel dotfiles deposu.
dotfiles/
├── hypr/ # Hyprland konfigürasyonu (Lua)
│ ├── hyprland.lua # Ana giriş — modülleri yükler
│ ├── monitors.lua # Ekran çözünürlük / konum / scale
│ ├── env_vars.lua # Wayland / Qt / XDG çevre değişkenleri
│ ├── programs.lua # Varsayılan uygulamalar + autostart
│ ├── look_feel.lua # Tema, dekorasyon, animasyonlar
│ ├── input_rules.lua # Klavye / fare / touchpad / gesture
│ ├── binds.lua # Tuş atamaları
│ ├── rules.lua # Pencere & layer kuralları
│ ├── rec_toggle.sh # Ekran kaydı toggle (wf-recorder)
│ └── scripts/
│ ├── force_close.sh # Aktif pencereyi SIGKILL ile kapat (Steam-aware)
│ └── mute.sh # Aktif pencerenin PipeWire akışını mute/unmute
└── quickshell/ # Quickshell status bar (QML)
├── shell.qml # Giriş noktası (symlink → shell-bar.qml / shell-pills.qml)
├── shell-bar.qml # Klasik tam genişlik bar layout
├── shell-pills.qml # Floating hap (pill) layout
├── Theme.qml # Tasarım tokenları (renk, boyut, animasyon)
├── switch-layout.sh # Layout değiştirici
├── .layout # Aktif layout durumu (bar / pills)
├── bar/ # Bar widget'ları
├── osd/ # OSD popup'ları
├── popups/ # Diyalog & paneller
├── components/ # Yeniden kullanılabilir QML bileşenleri
└── notification/ # Bildirim merkezi
~/.config/hypr ve ~/.config/quickshell bu repoya symlink ile bağlıdır.
| Paket | Amaç |
|---|---|
hyprland 0.56+ |
Wayland compositor |
quickshell 0.3+ |
QML desktop shell |
kitty |
Varsayılan terminal (programs.lua:6) |
yazi |
Varsayılan dosya yöneticisi (opsiyonel) |
mpvpaper |
Video duvar kağıdı |
grim + slurp + wl-copy |
Ekran görüntüsü |
wf-recorder |
Ekran kaydı (VAAPI h264_vaapi) |
wpctl (pipewire) + wireplumber |
Ses kontrolü |
brightnessctl |
Parlaklık |
playerctl |
Medya tuşları |
NetworkManager (nmcli) |
WiFi |
jq + pactl |
mute.sh / force_close.sh |
catppuccin-mocha-light-cursors |
İmleç teması |
Arch'ta hızlı kurulum:
sudo pacman -S hyprland quickshell kitty thunar mpvpaper grim slurp wl-clipboard \
wf-recorder pipewire wireplumber brightnessctl playerctl networkmanager jq
yay -S catppuccin-mocha-cursors # veya hyprcursor paketigit clone https://github.com/ByPythonCoder/My-dotfiles.git ~/dotfiles
# Mevcut configleri yedekle
mv ~/.config/hypr ~/.config/hypr.bak 2>/dev/null
mv ~/.config/quickshell ~/.config/quickshell.bak 2>/dev/null
ln -s ~/dotfiles/hypr ~/.config/hypr
ln -s ~/dotfiles/quickshell ~/.config/quickshellAlternatif: GNU Stow kullanıyorsan stow hypr quickshell de olur (repo kökü stow uyumlu değilse yukarıdaki symlink yöntemi tercih edilir).
hyprland.lua otomatik olarak autostart yapar (programs.lua:13):
dbus-update-activation-environment— systemd / Wayland entegrasyonuquickshell &— barmpvpaper DP-1 ... /home/qwerty/Videolar/Wallpaper/SelectedWallpaper/wallpaper.mp4— video duvar kağıdı
Duvar kağıdı yolu sabittir. Kendi videonu
~/Videolar/Wallpaper/SelectedWallpaper/wallpaper.mp4yoluna koy veyahypr/programs.lua:28satırını düzenle.
quickshell -c ~/.config/quickshell/shell.qml
# veya config dizini vererek:
quickshell -c ~/.config/quickshellHyprland içinde zaten exec-once ile başlıyor; elle kill/restart için:
killall quickshell || quickshell -c ~/.config/quickshell &| Dosya | Açıklama |
|---|---|
hyprland.lua:15-21 |
Tüm modülleri sırayla require eder — ayar değiştirmek için ilgili dosyaya bak |
monitors.lua:6-11 |
DP-1 → 1920x1080@180, 0x0, scale 1 |
env_vars.lua |
HYPRCURSOR_THEME/SIZE, GDK_BACKEND, QT_QPA_PLATFORM, SDL_VIDEODRIVER, XDG_*, QT_* |
programs.lua |
_G.terminal=kitty, _G.fileManager=thunar, gsettings koyu tema, quickshell & mpvpaper autostart |
look_feel.lua:5-83 |
gaps_in=5, gaps_out=20, border_size=2, rounding=10, blur, shadow, dwindle layout |
look_feel.lua:91-118 |
Bezier + spring eğrileri, 17 animasyon tanımı |
input_rules.lua:6-20 |
kb_layout=tr, follow_mouse=1, touchpad, 3-parmak yatay gesture → workspace |
binds.lua |
Tüm kısayollar (aşağıya bak) |
rules.lua |
suppress-maximize, XWayland drag fix, hyprland-run float |
mainMod = SUPER (Windows tuşu)
| Kısayol | Eylem |
|---|---|
SUPER + Q |
Terminal (kitty) |
SUPER + E |
Dosya yöneticisi (thunar) |
SUPER + R |
App Launcher (quickshell ipc call launcher toggle) |
SUPER + C |
Pencereyi kapat |
SUPER + SHIFT + C |
Force kill (scripts/force_close.sh — Steam için özel mantık) |
SUPER + V |
Float toggle |
SUPER + P |
Pseudo layout |
SUPER + J |
Dwindle split toggle |
SUPER + F |
Fullscreen toggle |
SUPER + B |
Quickshell restart (killall quickshell || quickshell) |
SUPER + W |
Video duvar kağıdını yeniden başlat (mpvpaper) |
SUPER + N |
Aktif pencereyi mute/unmute (scripts/mute.sh) |
| Kısayol | Eylem |
|---|---|
PRINT |
Alan seç → ~/Pictures/<tarih>_grim.png olarak kaydet |
SHIFT + PRINT |
Alan seç → panoya kopyala (wl-copy) |
Pause |
Tüm ekran kaydı (sessiz) |
ALT + Pause |
Tüm ekran kaydı (sesli) |
SHIFT + Pause |
Alan kaydı (sessiz) |
SHIFT + ALT + Pause |
Alan kaydı (sesli) — tekrar basınca durur, ~/Videolar/recording_*.mp4 |
| Kısayol | Eylem |
|---|---|
SUPER + M |
Hyprland'den çık (hyprshutdown varsa onu, yoksa hyprctl dispatch exit) |
SUPER + CTRL + M |
Kapat (systemctl poweroff) |
SUPER + SHIFT + M |
Yeniden başlat (systemctl reboot) |
SUPER + ALT + M |
Uyku (systemctl sleep) |
| Kısayol | Eylem |
|---|---|
SUPER + ←/→/↑/↓ |
Odak yön değiştir |
SUPER + 1..0 |
Workspace 1..10'a geç (0 = 10) |
SUPER + SHIFT + 1..0 |
Pencereyi workspace 1..10'a taşı |
SUPER + S |
Scratchpad (special:magic) toggle |
SUPER + SHIFT + S |
Pencereyi scratchpad'e taşı |
SUPER + Scroll |
Workspace ileri/geri |
SUPER + Sol Sürükle |
Pencere taşı |
SUPER + Sağ Sürükle |
Pencere boyutlandır |
Ses (wpctl), parlaklık (brightnessctl), medya (playerctl) — ekran kilitliyken de çalışır (locked=true):
XF86AudioRaiseVolume/LowerVolume/Mute/MicMute, XF86MonBrightnessUp/Down, XF86AudioNext/Prev/Play/Pause
Detaylı dokümantasyon için quickshell/README.md dosyasına bak.
| Layout | Dosya | Açıklama |
|---|---|---|
| Bar | shell-bar.qml |
Üstte tam genişlik tek şerit |
| Pills | shell-pills.qml |
İki yüzen hap — sol (logo + workspaces + media), sağ (clock + stats + ses + batarya + ağ) |
Aktif layout shell.qml symlink'i ve .layout dosyasıyla takip edilir.
Layout değiştir:
~/.config/quickshell/switch-layout.sh
# veya Hyprland içinden: SUPER + BScript quickshell'i öldürür, .layout'ı çevirir (bar ↔ pills), symlink'i günceller ve yeniden başlatır.
Workspaces, Clock, Media, SysStats, Volume, Brightness, Battery, Network, Power, PowerProfile, Tray, BarSep
Network (WiFi scan/connect), WiFi Connect Dialog, Bluetooth, Media, Audio, Calendar, Power Menu, Workspace Overview, Volume/Brightness/Network/Battery/Media/Calendar OSD'leri — hepsi components/PopupManager.qml üzerinden yönetilir (ESC ile kapanır).
Tüm renk/boyut/animasyon tokenları Theme.qml içinde merkezi. Catppuccin Mocha paleti, archBlue=mauve, archCyan=sapphire, animDuration=320ms OutCubic, fontFamily=monospace.
Özelleştirmek için Theme.qml içindeki readonly property değerlerini düzenle — örn. fontu değiştirmek için Theme.qml:111.
- Monitör:
hypr/monitors.lua:6-11— kendi çıkış adınıhyprctl monitorsile öğren,mode/position/scalegüncelle. - Klavye:
hypr/input_rules.lua:7—kb_layout(örn.us,tr),kb_variant,kb_options(örn.caps:escape). - Görsel:
hypr/look_feel.lua:9-23—gaps_in/out,border_size,rounding,active_borderrenkleri. - Animasyon:
hypr/look_feel.lua:91-118— eğrileri / hızları değiştir veyaanimations.enabled=falseile kapat. - Varsayılan uygulamalar:
hypr/programs.lua:6-7—_G.terminal/_G.fileManager. - Duvar kağıdı:
hypr/programs.lua:28vehypr/binds.lua:26içindekimpvpaperyolunu kendi dosyanla değiştir.
hypr/rec_toggle.sh [full|fullaudio|area|audio]—wf-recorderile VAAPIh264_vaapikayıt,~/Videolar/recording_*.mp4. Çalışıyorsapkill -INTile durdurur.hypr/scripts/force_close.sh—hyprctl activewindow -j | jq .pid→kill -9; Steam ise child process'ler dahil öldürür.hypr/scripts/mute.sh— Aktif pencereninsink-input'larınıpactlile toggle mute (SUPER+N).
- Bar görünmüyor:
quickshell -c ~/.config/quickshellçıktısına bak;Theme.qml/ QML import hatalarını kontrol et. - Video duvar kağıdı yok:
mpvpaperyüklü mü, video yolu doğru mu (ls ~/Videolar/Wallpaper/SelectedWallpaper/),DP-1yerinehyprctl monitorsçıktısındaki ismi kullan. - Ses/parlaklık tuşları çalışmıyor:
wpctl,brightnessctl,playerctlyüklü mü,groupsiçindevideo/inputvar mı kontrol et. - Ekran görüntüsü panoya yapışmıyor:
wl-copy(wl-clipboard) yüklü mü.