Add browser forward/back hotkeys (#155)

This commit is contained in:
jeffvli 2023-09-22 17:52:00 -07:00
parent 0cba405b45
commit 8cbc25a932
4 changed files with 17 additions and 2 deletions

View file

@ -11,6 +11,8 @@ import { SettingsOptions } from '/@/renderer/features/settings/components/settin
const ipc = isElectron() ? window.electron.ipc : null;
const BINDINGS_MAP: Record<BindingActions, string> = {
browserBack: 'Browser back',
browserForward: 'Browser forward',
globalSearch: 'Global search',
localSearch: 'In-page search',
next: 'Next track',

View file

@ -1,12 +1,17 @@
import { Divider, Stack } from '@mantine/core';
import isElectron from 'is-electron';
import { WindowHotkeySettings } from './window-hotkey-settings';
import { HotkeyManagerSettings } from '/@/renderer/features/settings/components/hotkeys/hotkey-manager-settings';
export const HotkeysTab = () => {
return (
<Stack spacing="md">
<WindowHotkeySettings />
<Divider />
{isElectron() && (
<>
<WindowHotkeySettings />
<Divider />
</>
)}
<HotkeyManagerSettings />
</Stack>
);

View file

@ -1,5 +1,6 @@
import { lazy } from 'react';
import isElectron from 'is-electron';
import { useNavigate } from 'react-router';
import styled from 'styled-components';
import {
useWindowSettings,
@ -54,6 +55,7 @@ export const DefaultLayout = ({ shell }: DefaultLayoutProps) => {
const { windowBarStyle } = useWindowSettings();
const { opened, ...handlers } = useCommandPalette();
const { bindings } = useHotkeySettings();
const navigate = useNavigate();
const localSettings = isElectron() ? window.electron.localSettings : null;
const settings = useGeneralSettings();
const { setSettings } = useSettingsStoreActions();
@ -78,6 +80,8 @@ export const DefaultLayout = ({ shell }: DefaultLayoutProps) => {
useHotkeys([
[bindings.globalSearch.hotkey, () => handlers.open()],
[bindings.browserBack.hotkey, () => navigate(-1)],
[bindings.browserForward.hotkey, () => navigate(1)],
...(isElectron() ? zoomHotkeys : []),
]);

View file

@ -81,6 +81,8 @@ type MpvSettings = {
};
export enum BindingActions {
BROWSER_BACK = 'browserBack',
BROWSER_FORWARD = 'browserForward',
GLOBAL_SEARCH = 'globalSearch',
LOCAL_SEARCH = 'localSearch',
MUTE = 'volumeMute',
@ -221,6 +223,8 @@ const initialState: SettingsState = {
},
hotkeys: {
bindings: {
browserBack: { allowGlobal: false, hotkey: '', isGlobal: false },
browserForward: { allowGlobal: false, hotkey: '', isGlobal: false },
globalSearch: { allowGlobal: false, hotkey: 'mod+k', isGlobal: false },
localSearch: { allowGlobal: false, hotkey: 'mod+f', isGlobal: false },
next: { allowGlobal: true, hotkey: '', isGlobal: false },