Tag: grim slurp

  • Hyprland Cheatsheet

    Hyprland Cheatsheet

    Dynamic tiling Wayland compositor – Highly customizable, performant, and animated
    Hyprland v0.45.0 (released Dec 2025): Kernel 6.12+ support, improved NVIDIA compatibility, new animations, and Rust-based plugins. Runs on Fedora Workstation/Server with Wayland.
    Install via COPR repo. Config in ~/.config/hypr/hyprland.conf. All commands run in terminal (Konsole on Fedora).


    1. Installation on Fedora

    TaskCommand / Action
    Enable COPR reposudo dnf copr enable solopasha/hyprland
    Install Hyprlandsudo dnf install hyprland hyprland-plugins
    Install dependencies (Wayland, audio, etc.)sudo dnf install wayland-devel mesa-libEGL-devel libseat-devel hwdata-devel libgbm-devel libsystemd-devel libdrm-devel mesa-libgbm-devel libxkbcommon-devel libxkbcommon-x11-devel pixman-devel libinput-devel libcap-devel libxml2-devel libpng-devel wayland-protocols-devel libliftoff-devel cairo-devel pango-devel vulkan-devel vulkan-validation-layers-devel mesa-vulkan-devel glslang-devel libdisplay-info-devel libdecor-devel pipewire-jack-audio-connection-kit-devel libva-devel ffmpeg-devel libvdpau-devel hwloc-devel mesa-libOpenCL-devel opencl-headers-devel mesa-libd3d-devel spirv-headers-devel spirv-tools-devel vulkan-headers-devel vulkan-loader-devel vulkan-tools-devel vulkan-validation-layers-devel glslang-devel libva-devel libvdpau-devel hwloc-devel libX11-devel libxcb-devel libXext-devel libXrender-devel xcb-proto-devel libXfixes-devel libxkbfile-devel libXfont2-devel libXres-devel libXtst-devel libXdamage-devel libXrandr-devel libXi-devel libXcomposite-devel libXcursor-devel libXmu-devel libXpm-devel libXt-devel libXaw-devel libXmuu-devel libXScrnSaver-devel libXv-devel libXinerama-devel libXxf86vm-devel libXvMC-devel libXdmcp-devel libXau-devel xorg-x11-proto-devel libICE-devel libSM-devel libXtst-devel libXScrnSaver-devel libXvMC-devel libXinerama-devel libXxf86vm-devel libXdmcp-devel libXau-devel xorg-x11-proto-devel libICE-devel libSM-devel libXtst-devel libXScrnSaver-devel libXvMC-devel libXinerama-devel libXxf86vm-devel (long, but essential for full features)
    Install extras (clipboard, portal)sudo dnf install wl-clipboard xdg-desktop-portal-hyprland
    Start HyprlandLogout → Select “Hyprland” session in GDM/Sway login manager
    First runHyprland auto-creates ~/.config/hypr/hyprland.conf – edit as needed

    Note: For NVIDIA: Install proprietary drivers first (sudo dnf install akmod-nvidia). Fedora 43+ has better Wayland support. If issues, add exec-once = hyprctl setcursor Adwaita 24 to config.


    2. Updating Hyprland

    TaskCommand
    Update system & Hyprlandsudo dnf upgrade --refresh (includes COPR packages)
    Check current versionhyprctl version
    Rebuild if needed (plugins)sudo dnf reinstall hyprland-plugins
    Clean cachesudo dnf clean all
    Rollback (if broken)sudo dnf history undo last

    Pro Tip: Subscribe to COPR notifications or check GitHub releases. For bleeding-edge: Build from source (clone repo, sudo dnf install cmake gcc-c++ libstdc++-devel pkgconfig dbus-devel libevdev-devel libev-devel hidapi-devel libgbm-devel libxkbcommon-devel libGLESv2-devel vulkan-headers seatd-devel systemd-devel libdrm-devel wayland-devel wayland-protocols-devel cairo-devel pango-devel libjpeg-turbo-devel libwebp-devel, then make all && sudo make install).


    3. Configuration Basics

    TaskCommand / Action
    Edit confignano ~/.config/hypr/hyprland.conf (or vim/emacs)
    Reload confighyprctl reload (or Super + Shift + R)
    Set monitorAdd to config: monitor=DP-1,1920x1080@144,0x0,1 (resolution@refresh,xpos ypos,scale)
    Set wallpaperAdd: exec-once = hyprpaper & (install hyprpaper first) → Edit ~/.config/hypr/hyprpaper.conf
    Add keybindExample: bind = SUPER, T, exec, kitty
    Environment varsAdd to config: env = XCURSOR_SIZE,24 (for cursor size)
    Gestures (touchpad)Add: gestures { workspace_swipe = on }
    Backup configcp ~/.config/hypr/hyprland.conf ~/hypr-backup.conf

    Config Structure: Sections like general {}, input {}, binds {}, animations {}, decoration {}. Use # for comments. Full template on GitHub wiki.


    4. Default Shortcuts (Super Key = Windows Key)

    Window Management

    ActionShortcut
    Open terminalSuper + Return
    Close windowSuper + Q
    Toggle fullscreenSuper + F
    Toggle floatingSuper + Space
    Move focusSuper + Arrow Keys (or HJKL)
    Resize windowSuper + Ctrl + Arrow Keys
    Switch workspaceSuper + 1-0 (workspaces 1-10)
    Move window to workspaceSuper + Shift + 1-0
    Cycle windowsSuper + Tab

    System

    ActionShortcut
    Reload configSuper + Shift + R
    Lock screenSuper + L (if hyprlock installed)
    LogoutSuper + Shift + E
    Screenshot (region)Super + Shift + S (with grim/slurp)
    Toggle touchpadSuper + Shift + T

    Mouse

    ActionShortcut
    Move windowSuper + Left Click Drag
    Resize windowSuper + Right Click Drag

    Customize: Edit binds {} in config. Example: bind = SUPER, P, exec, rofi -show drun for app launcher.


    5. Adding Waybar (Status Bar)

    TaskCommand / Action
    Install Waybarsudo dnf install waybar
    Config Waybarmkdir -p ~/.config/waybar → cp /etc/xdg/waybar/* ~/.config/waybar/ → Edit ~/.config/waybar/config.jsonc and style.css
    Auto-start in HyprlandAdd to hyprland.conf: exec-once = waybar
    Reload Waybarpkill waybar && waybar &
    Modules (example)In config.jsonc: "modules-left": ["hyprland/workspaces", "cpu", "memory"]
    ThemesInstall fonts: sudo dnf install fontawesome-fonts → Customize CSS

    Waybar Tips: For Hyprland integration, add "hyprland/window" module. Use waybar --bar main-bar for testing.


    6. Plugins & Extensions

    ActionCommand
    Install official pluginssudo dnf install hyprland-plugins
    Enable plugin (e.g., hyprbars)Add to config: plugin { hyprbars { bar_height = 30 } }
    List loaded pluginshyprctl plugins
    Third-party (Rust)Clone repo → cargo build --release → Add path to config: plugin = /path/to/libplugin.so

    7. Troubleshooting

    IssueCommand
    No audiosudo dnf install pipewire-pulse → Restart
    Cursor invisibleAdd to config: env = XCURSOR_THEME,Adwaita → env = XCURSOR_SIZE,24
    NVIDIA flickeringAdd: env = WLR_NO_GPU,1 (disable hardware cursors)
    Log errorsjournalctl -u hyprland or Hyprland (debug mode)
    Reset configrm ~/.config/hypr/hyprland.conf → Restart

    8. One-Liners

    # Quick update
    sudo dnf upgrade hyprland --refresh && hyprctl reload
    
    # Backup & edit config
    cp ~/.config/hypr/hyprland.conf{,.bak} && nano ~/.config/hypr/hyprland.conf
    
    # Test Waybar
    waybar -c ~/.config/waybar/config.jsonc -s ~/.config/waybar/style.css
    
    # Screenshot full screen
    grim ~/Pictures/screenshot-$(date +%Y%m%d-%H%M%S).png
    
    # Toggle animations off
    hyprctl keyword animations:enabled 0

    9. Useful Tools to Install

    sudo dnf install waybar hyprpaper hyprlock grim slurp rofi-wayland wl-clipboard pavucontrol

    10. Hyprland Resources

    Official Docs: https://wiki.hyprland.org
    GitHub: https://github.com/hyprwm/Hyprland
    Fedora COPR: https://copr.fedorainfracloud.org/coprs/solopasha/hyprland

    # Check COPR status
    dnf copr list | grep hyprland

    Pro Tip: For Fedora, use xdg-desktop-portal-hyprland for screen sharing. Customize animations in animations {} for buttery smooth UX. Join r/hyprland for configs.