mirror of
https://github.com/BoostIo/Boostnote
synced 2025-12-13 09:46:22 +00:00
hotkey config
This commit is contained in:
@@ -1,43 +1,9 @@
|
||||
const electron = require('electron')
|
||||
const app = electron.app
|
||||
const ipc = electron.ipcMain
|
||||
const Menu = electron.Menu
|
||||
const globalShortcut = electron.globalShortcut
|
||||
const jetpack = require('fs-jetpack')
|
||||
const mainWindow = require('./main-window')
|
||||
const nodeIpc = require('@rokt33r/node-ipc')
|
||||
const _ = require('lodash')
|
||||
|
||||
const OSX = global.process.platform === 'darwin'
|
||||
|
||||
const defaultKeymap = {
|
||||
toggleFinder: OSX ? 'Cmd + Alt + S' : 'Super + Alt + S',
|
||||
toggleMain: OSX ? 'Cmd + Alt + L' : 'Super + Alt + E'
|
||||
}
|
||||
const keymapFilename = 'keymap.json'
|
||||
|
||||
var userDataPath = app.getPath('userData')
|
||||
|
||||
function getKeymap () {
|
||||
var userDataPath = app.getPath('userData')
|
||||
if (jetpack.cwd(userDataPath).exists(keymapFilename)) {
|
||||
try {
|
||||
return JSON.parse(jetpack.cwd(userDataPath).read(keymapFilename, 'utf-8'))
|
||||
} catch (err) {}
|
||||
}
|
||||
return {}
|
||||
}
|
||||
|
||||
function saveKeymap () {
|
||||
var content
|
||||
try {
|
||||
content = JSON.stringify(global.keymap)
|
||||
} catch (e) {
|
||||
global.keymap = {}
|
||||
content = JSON.stringify(global.keymap)
|
||||
}
|
||||
jetpack.cwd(userDataPath).file(keymapFilename, { content })
|
||||
}
|
||||
|
||||
function emitToFinder (type, data) {
|
||||
var payload = {
|
||||
@@ -71,31 +37,22 @@ function toggleMain () {
|
||||
}
|
||||
}
|
||||
|
||||
// Init
|
||||
global.keymap = Object.assign({}, defaultKeymap, getKeymap())
|
||||
|
||||
function registerKey (name, callback) {
|
||||
if (_.isString(global.keymap[name]) && global.keymap[name].trim().length > 0) {
|
||||
globalShortcut.register(global.keymap[name], callback)
|
||||
}
|
||||
}
|
||||
|
||||
function registerAllKeys (broadcast) {
|
||||
if (broadcast == null) broadcast = true
|
||||
ipc.on('CONFIG_RENEW', (e, payload) => {
|
||||
globalShortcut.unregisterAll()
|
||||
var { config } = payload
|
||||
|
||||
var errors = []
|
||||
try {
|
||||
registerKey('toggleFinder', toggleFinder)
|
||||
globalShortcut.register(config.hotkey.toggleFinder, toggleFinder)
|
||||
} catch (err) {
|
||||
errors.push('toggleFinder')
|
||||
}
|
||||
try {
|
||||
registerKey('toggleMain', toggleMain)
|
||||
globalShortcut.register(config.hotkey.toggleMain, toggleMain)
|
||||
} catch (err) {
|
||||
errors.push('toggleMain')
|
||||
}
|
||||
|
||||
if (broadcast) {
|
||||
if (!config.silent) {
|
||||
if (errors.length === 0) {
|
||||
mainWindow.webContents.send('APP_SETTING_DONE', {})
|
||||
} else {
|
||||
@@ -104,13 +61,4 @@ function registerAllKeys (broadcast) {
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
registerAllKeys(false)
|
||||
|
||||
ipc.on('hotkeyUpdated', function (event, newKeymap) {
|
||||
global.keymap = Object.assign({}, defaultKeymap, global.keymap, newKeymap)
|
||||
saveKeymap()
|
||||
globalShortcut.unregisterAll()
|
||||
registerAllKeys()
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user