Daily Use: Screen Tools – Screen Recording Tools

An Omarchy-powered Hyprland desktop includes built-in screen recording support via wf-recorder and wl-screenrec. These utilities, alongside the slurp selector, enable you to capture both regions and entire displays with a single keypress or command.

Index


Overview

Omarchy automates installation of screen recorders based on GPU hardware.

  • NVIDIA & Intel: Installs wf-recorder.
  • Other GPUs: Installs wl-screenrec.
  • Region Selection: Uses slurp to pick an area.
  • Default Keybindings: Pre-configured in your Hyprland bindings .

This yields a seamless “press-and-capture” experience out of the box.


Installation & Migrations

The following migrations ensure screen recording tools are available:

Migration Script Action Citation
1752885858.sh Install slurp + wl-screenrec for Wayland
1753176520.sh Install wf-recorder for NVIDIA hardware
1755548643.sh Install wf-recorder for Intel-based devices

After running Omarchy’s migrations, confirm installation:

command -v wf-recorder wl-screenrec slurp

Keybindings

Omarchy’s default Hyprland config maps your screen recording tools:

Shortcut Action Command
ALT + PrintScreen Record a selected region omarchy-cmd-screenrecord
CTRL + ALT + PrintScreen Record entire display omarchy-cmd-screenrecord output

These bindings reside in your Hyprland bindings.conf .


Commands & Usage

omarchy-cmd-screenrecord

This wrapper script selects the appropriate recorder and handles region vs. full-screen workflows.

#!/bin/bash
# bin/omarchy-cmd-screenrecord

# Load user dirs
[[ -f ~/.config/user-dirs.dirs ]] && source ~/.config/user-dirs.dirs
OUTPUT_DIR="${OMARCHY_SCREENRECORD_DIR:-${XDG_VIDEOS_DIR:-$HOME/Videos}}"

# Ensure output directory exists
if [[ ! -d "$OUTPUT_DIR" ]]; then
  notify-send "Screen recording directory does not exist: $OUTPUT_DIR" -u critical -t 3000
  exit 1
fi

# Recording function
screenrecording() {
  filename="$OUTPUT_DIR/screenrecording-$(date +'%Y-%m-%d_%H-%M-%S').mp4"
  notify-send "Screen recording starting..." -t 1000
  sleep 1

  # Choose recorder based on GPU
  if lspci | grep -Eqi 'nvidia|intel.*graphics'; then
    wf-recorder -f "$filename" -c libx264 -p crf=23 -p preset=medium -p movflags=+faststart "$@"
  else
    wl-screenrec -f "$filename" \
      --ffmpeg-encoder-options="-c:v libx264 -crf 23 -preset medium -movflags +faststart" "$@"
  fi
}

# Toggle recording
if pgrep -x wl-screenrec >/dev/null || pgrep -x wf-recorder >/dev/null; then
  pkill -x wl-screenrec wf-recorder
  notify-send "Screen recording saved to $OUTPUT_DIR" -t 2000
elif [[ "$1" == "output" ]]; then
  screenrecording
else
  region=$(slurp) || exit 1
  screenrecording -g "$region"
fi

Key points:

  • Region Capture: Default action (no args) uses slurp to pick a region.
  • Full Display: Pass output to record the entire screen.
  • Output Directory: Respects OMARCHY_SCREENRECORD_DIR or $XDG_VIDEOS_DIR.
  • Notification: Desktop notification on start/stop.

omarchy-cmd-screenrecord-stop

Stop any ongoing recording and notify you:

#!/bin/bash
# bin/omarchy-cmd-screenrecord-stop

if pgrep -x wl-screenrec >/dev/null || pgrep -x wf-recorder >/dev/null; then
  pkill -x wl-screenrec wf-recorder
  notify-send "Screen recording stopped" -t 2000
fi

Invoke this manually or bind it to a separate key if desired.


Customization

  • Change Keybindings: Edit ~/.config/hypr/bindings.conf.

  • Override Output Path:

    export OMARCHY_SCREENRECORD_DIR="$HOME/MyRecordings"
    
  • FFmpeg Options: Modify wf-recorder or wl-screenrec flags in the script.

  • Automate Start/Stop: Integrate omarchy-cmd-screenrecord-stop into custom hotkeys.


Troubleshooting

  • “Directory does not exist” Error: Create the directory or set OMARCHY_SCREENRECORD_DIR.

  • Recorder Missing: Ensure migrations ran successfully and rerun:

    omarchy-pkg-add wf-recorder wl-screenrec slurp
    
  • No Notification: Confirm notify-send (from libnotify) is installed.

  • Low Performance: Tweak crf and preset FFmpeg options inside the script.

With these tools at your fingertips, daily screen recording on your Arch + Hyprland desktop is just a keystroke away!