mirror of
https://github.com/0x1d/nix.git
synced 2025-12-14 22:02:25 +01:00
add hyprland config
This commit is contained in:
164
docs/hyprland.md
Normal file
164
docs/hyprland.md
Normal file
@@ -0,0 +1,164 @@
|
||||
# Hyprland Desktop Configuration
|
||||
|
||||
This directory contains the Hyprland desktop configuration for NixOS with i3-style keybindings.
|
||||
|
||||
## What is Hyprland?
|
||||
|
||||
Hyprland is a dynamic tiling Wayland compositor that doesn't sacrifice on its looks. It supports multiple layouts, window rules, and a highly customizable configuration system.
|
||||
|
||||
## Features
|
||||
|
||||
- **Dynamic Tiling**: Automatic window management with multiple layout options
|
||||
- **Wayland Native**: Modern display protocol support
|
||||
- **Highly Customizable**: Extensive configuration options
|
||||
- **Performance**: Optimized for smooth animations and responsiveness
|
||||
- **Swiss Keyboard Layout**: Pre-configured for Swiss German layout (ch)
|
||||
- **i3-Style Keybindings**: Familiar navigation for i3 users
|
||||
|
||||
## Included Components
|
||||
|
||||
### Core Applications
|
||||
- **Hyprland**: The compositor itself
|
||||
- **Waybar**: Status bar with workspace management
|
||||
- **Dunst**: Notification daemon
|
||||
- **Alacritty**: Terminal emulator (with transparency)
|
||||
- **Thunar**: File manager (XFCE)
|
||||
- **Wofi**: Application launcher
|
||||
|
||||
### Utilities
|
||||
- **Grim + Slurp**: Screenshot tools
|
||||
- **Hyprpicker**: Color picker
|
||||
- **Swww**: Wallpaper utility
|
||||
- **Wl-clipboard**: Clipboard management
|
||||
- **Cliphist**: Clipboard history
|
||||
- **Pavucontrol**: Volume control
|
||||
- **Brightnessctl**: Brightness control
|
||||
|
||||
## Usage
|
||||
|
||||
### Building the Configuration
|
||||
|
||||
To build the Hyprland configuration:
|
||||
|
||||
```bash
|
||||
cd /home/master/src/nix
|
||||
nix build .#hyprland
|
||||
```
|
||||
|
||||
### Switching to Hyprland
|
||||
|
||||
After building, you can switch to the Hyprland configuration:
|
||||
|
||||
```bash
|
||||
sudo nixos-rebuild switch --flake .#hyprland
|
||||
```
|
||||
|
||||
### Logging In
|
||||
|
||||
When you log in, select "Hyprland" from your display manager. If you're using a tty, you can start Hyprland directly with:
|
||||
|
||||
```bash
|
||||
Hyprland
|
||||
```
|
||||
|
||||
## Key Bindings (i3-Style)
|
||||
|
||||
### **Navigation & Focus:**
|
||||
- **Super + h/j/k/l** OR **Super + arrow keys** - Move focus (vim-style, like i3)
|
||||
- **Super + 1-0** - Switch to workspace 1-10
|
||||
- **Super + Shift + 1-0** - Move window to workspace 1-10
|
||||
|
||||
### **Window Management:**
|
||||
- **Super + Control + h/j/k/l** OR **Super + Control + arrow keys** - Resize windows
|
||||
- **Super + Shift + h/j/k/l** OR **Super + Shift + arrow keys** - Move windows
|
||||
- **Super + f** - Toggle fullscreen
|
||||
- **Super + v** - Toggle floating mode
|
||||
- **Super + s** - Toggle split direction
|
||||
|
||||
### **Applications:**
|
||||
- **Super + d** - Application launcher (wofi)
|
||||
- **Super + Return** - Terminal (alacritty)
|
||||
- **Super + Q** - Close active window
|
||||
|
||||
### **System Controls:**
|
||||
- **Super + Shift + q** - Exit Hyprland
|
||||
- **Super + Shift + r** - Reload Hyprland config
|
||||
- **Super + p** - Screenshot selected area
|
||||
- **Volume keys** - Audio control
|
||||
- **Brightness keys** - Screen brightness
|
||||
|
||||
### **Mouse:**
|
||||
- **Super + Left Click** - Move windows
|
||||
- **Super + Right Click** - Resize windows
|
||||
|
||||
## Customization
|
||||
|
||||
### Hyprland Configuration
|
||||
|
||||
The main configuration is in `/etc/xdg/hypr/hyprland.conf`. You can modify this file to customize:
|
||||
|
||||
- Window decorations and animations
|
||||
- Key bindings
|
||||
- Workspace behavior
|
||||
- Monitor configuration
|
||||
- Input settings
|
||||
|
||||
### Waybar Configuration
|
||||
|
||||
The status bar configuration is in `/etc/xdg/waybar/config` and styling in `/etc/xdg/waybar/style.css`.
|
||||
|
||||
### Dunst Configuration
|
||||
|
||||
Notification settings are in `/etc/xdg/dunst/dunstrc`.
|
||||
|
||||
## Configuration Files
|
||||
|
||||
The system automatically creates these configuration files:
|
||||
|
||||
- **Hyprland**: `/etc/xdg/hypr/hyprland.conf`
|
||||
- **Waybar**: `/etc/xdg/waybar/config` and `/etc/xdg/waybar/style.css`
|
||||
- **Dunst**: `/etc/xdg/dunst/dunstrc`
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
|
||||
1. **Applications not starting**: Ensure the application supports Wayland
|
||||
2. **Screen tearing**: Check if `allow_tearing = true` is set in hyprland.conf
|
||||
3. **Performance issues**: Try disabling animations or reducing blur effects
|
||||
4. **Keybindings not working**: Check if there are conflicts with other applications
|
||||
|
||||
### Logs
|
||||
|
||||
Hyprland logs are available in:
|
||||
- `journalctl --user -f` (for user session)
|
||||
- `~/.local/share/hyprland/hyprland.log`
|
||||
|
||||
### XWayland Support
|
||||
|
||||
XWayland is enabled by default for compatibility with X11 applications. If you experience issues, you can disable it by setting `xwayland.enable = false` in the configuration.
|
||||
|
||||
## Building as VM
|
||||
|
||||
To build and test the Hyprland configuration as a virtual machine:
|
||||
|
||||
```bash
|
||||
./ctl.sh os rebuild hyprland
|
||||
```
|
||||
|
||||
## Resources
|
||||
|
||||
- [Hyprland Wiki](https://wiki.hyprland.org/)
|
||||
- [Waybar Documentation](https://github.com/Alexays/Waybar/wiki)
|
||||
- [Dunst Documentation](https://dunst-project.org/documentation/)
|
||||
- [i3 User's Guide](https://i3wm.org/docs/userguide.html) (for keybinding reference)
|
||||
|
||||
## Notes
|
||||
|
||||
- This configuration is optimized for Swiss German keyboard layout
|
||||
- All configuration files are managed by NixOS and will be restored on rebuild
|
||||
- Custom user configurations should be placed in `~/.config/hypr/` to override system defaults
|
||||
- Keybindings follow i3 conventions for easy transition from i3wm
|
||||
- **Dual navigation**: Both vim-style (h/j/k/l) and arrow keys work for all functions
|
||||
- **Intuitive modifiers**: Control for resizing, Shift for moving windows
|
||||
- Monitor configuration is set for a 1920x1080@144 display (customize as needed)
|
||||
Reference in New Issue
Block a user