datlechin/flarum-keyboard-shortcuts

Navigate your forum without touching the mouse.

Maintainers

Package info

github.com/datlechin/flarum-keyboard-shortcuts

Homepage

Forum

Language:TypeScript

Type:flarum-extension

pkg:composer/datlechin/flarum-keyboard-shortcuts

Transparency log

Statistics

Installs: 2 172

Dependents: 0

Suggesters: 0

Stars: 2

Open Issues: 1

v1.0.0 2026-08-26 08:00 UTC

This package is auto-updated.

Last update: 2026-08-26 08:16:04 UTC


README

License Latest Stable Version Total Downloads

A Flarum extension. Navigate your forum without touching the mouse.

Press ? anywhere on the forum for the full list.

The cheat sheet open over the forum, listing every shortcut grouped by where it applies

Members can rebind any shortcut for themselves, one group at a time.

The customisation form, with a tab per group and a recorder field per shortcut

Administrators set the forum-wide bindings by pressing the keys they mean.

The admin page: behaviour settings in a card, and a table of every binding

Installation

composer require datlechin/flarum-keyboard-shortcuts:"*"

Updating

composer update datlechin/flarum-keyboard-shortcuts:"*"
php flarum migrate
php flarum cache:clear

Shortcuts

Every binding below is a default: administrators can change them for the whole forum, and members can then rebind any of them for themselves.

Anywhere

Shortcut Action
? Show keyboard shortcuts
/ Search
C Start a discussion
N Toggle notifications
Shift F Toggle flags
U Toggle the user menu
Shift L Log in
Shift S Sign up
Shift T Switch colour scheme
Backspace Go back

Go to

Shortcut Action
G then H All discussions
G then N Notifications
G then P Your profile
G then S Your settings

Discussion list

Shortcut Action
J Next discussion
K Previous discussion
Enter Open the selected discussion
Shift M Mark all as read
Shift R Refresh the list

Discussion

Shortcut Action
R Reply
F Follow or unfollow
J Next post
K Previous post
O Jump to the first post
L Jump to the last post
Shift E Rename the discussion
Alt P Pin or unpin the discussion list

Composer

Shortcut Action
Mod Shift F Toggle full screen
Mod Shift M Minimise the composer

Mod is on Apple devices and Ctrl everywhere else.

Configuration

Administrators configure the forum-wide bindings on the extension's page, by pressing the keys they want rather than typing them out. The page also carries three settings:

  • whether shortcuts are on by default;
  • whether members may choose their own keys;
  • how long a multi-step shortcut waits for its next key.

Members can turn shortcuts off, and rebind any of them, from their settings page or from the cheat sheet. Only the bindings they actually change are stored, so everything else keeps following the forum — including later changes an administrator makes.

For extension developers

Shortcuts are registered through app.shortcuts, which is a ShortcutManager. Adding one is enough to have it appear in the cheat sheet, in the customisation form, and in the matcher:

import { extend } from 'flarum/common/extend';
import ShortcutManager from '@datlechin/flarum-keyboard-shortcuts/forum/ShortcutManager';

extend(ShortcutManager.prototype, 'shortcutItems', function (items) {
  items.add('acme.jumpToTag', {
    id: 'acme.jumpToTag',
    group: 'navigation',
    label: () => app.translator.trans('acme-tags.forum.shortcuts.jump_to_tag'),
    defaultBinding: 'g t',
    when: () => app.current.matches(IndexPage),
    action: () => m.route.set(app.route('tags')),
  });
});

A shortcut's action may return false to decline a key press, which leaves the browser's own behaviour intact. when scopes it to a page, allowInInput lets it fire while text is being typed, and visible keeps it out of the cheat sheet when it does not apply.

Namespace your ids (acme-tags.jumpToTag), since they are the storage keys for personal bindings.

Links