[READ-ONLY] Mirror of https://github.com/probablykasper/ferrum. Music library app for Mac, Linux and Windows ferrum.kasper.space
electron linux macos music music-library music-player napi windows
0

Configure Feed

Select the types of activity you want to include in your feed.

Add [`Shift+`]`Ctrl+Tab` shortcut

Kasper (Sep 12, 2024, 5:21 AM +0200) 7690d280 3e22dba4

+36 -2
+1
CHANGELOG.md
··· 6 6 - Add playback history to queue panel 7 7 - Redesign queue panel 8 8 - Add queue panel slide-out transition 9 + - Add `Ctrl+Tab` and `Ctrl+Shift+Tab` to select next/previous playlist 9 10 - Make time & volume sliders look ok 10 11 - Fix dragging tracks to up next/autoplay queue boundary 11 12 - Fix button edge not clickable due to zoom
+15 -2
src/components/Sidebar.svelte
··· 2 2 import SidebarItems, { type SidebarItemHandle } from './SidebarItems.svelte' 3 3 import Filter from './Filter.svelte' 4 4 import { isMac, trackListsDetailsMap, page, movePlaylist } from '../lib/data' 5 - import { ipcRenderer } from '../lib/window' 5 + import { ipcListen, ipcRenderer } from '../lib/window' 6 6 import { writable } from 'svelte/store' 7 - import { setContext, tick } from 'svelte' 7 + import { onDestroy, setContext, tick } from 'svelte' 8 8 import { dragged } from '../lib/drag-drop' 9 9 import { tracklist_actions } from '@/lib/page' 10 10 ··· 13 13 } 14 14 let viewport: HTMLElement 15 15 const itemHandle = setContext('itemHandle', writable(null as SidebarItemHandle | null)) 16 + 17 + onDestroy( 18 + ipcListen('Select Previous List', () => { 19 + console.log('Select Previous List') 20 + $itemHandle?.handleKey(new KeyboardEvent('keydown', { key: 'ArrowUp' })) 21 + }), 22 + ) 23 + onDestroy( 24 + ipcListen('Select Next List', () => { 25 + console.log('Select Next List') 26 + $itemHandle?.handleKey(new KeyboardEvent('keydown', { key: 'ArrowDown' })) 27 + }), 28 + ) 16 29 17 30 async function onContextMenu() { 18 31 await ipcRenderer.invoke('showTracklistMenu', {
+17
src/electron/menubar.ts
··· 253 253 { 254 254 label: 'Window', 255 255 submenu: [ 256 + { 257 + id: 'Select Next List', 258 + label: 'Select Next List', 259 + accelerator: 'Ctrl+Tab', 260 + click: () => { 261 + webContents.send('Select Next List') 262 + }, 263 + }, 264 + { 265 + id: 'Select Previous List', 266 + label: 'Select Previous List', 267 + accelerator: 'Ctrl+Shift+Tab', 268 + click: () => { 269 + webContents.send('Select Previous List') 270 + }, 271 + }, 272 + { type: 'separator', visible: is.mac }, 256 273 { role: 'minimize' }, 257 274 { role: 'zoom' }, 258 275 { type: 'separator', visible: is.mac },
+3
src/electron/typed_ipc.ts
··· 119 119 | 'Delete from Library', 120 120 ) => void 121 121 122 + 'Select Next List': () => void 123 + 'Select Previous List': () => void 124 + 122 125 'context.playlist.edit': (id: TrackID) => void 123 126 'context.playlist.delete': (id: TrackID) => void 124 127 'context.Remove from Queue': () => void