diff --git a/neode-ui/index.html b/neode-ui/index.html index 479bb621..17fb9817 100644 --- a/neode-ui/index.html +++ b/neode-ui/index.html @@ -2,16 +2,16 @@ - - - - - - - - - - + + + + + + + + + + @@ -21,7 +21,7 @@ - + Archipelago OS diff --git a/neode-ui/public/assets/img/icons/bitcoin-symbol.svg b/neode-ui/public/assets/img/icons/bitcoin-symbol.svg new file mode 100644 index 00000000..ba471b2e --- /dev/null +++ b/neode-ui/public/assets/img/icons/bitcoin-symbol.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/neode-ui/src/App.vue b/neode-ui/src/App.vue index da444850..97d47ab1 100644 --- a/neode-ui/src/App.vue +++ b/neode-ui/src/App.vue @@ -100,9 +100,22 @@ function onUserActivity() { function onKeyDown(e: KeyboardEvent) { const isMac = navigator.platform.toUpperCase().includes('MAC') const mod = isMac ? e.metaKey : e.ctrlKey - if (mod && e.key === 'k') { + // Cmd+K / Ctrl+K or plain K (when not typing in input) + const target = e.target as HTMLElement + const isInput = target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.isContentEditable + if ((mod && e.key === 'k') || ((e.key === 'k' || e.key === 'K') && !isInput)) { e.preventDefault() spotlightStore.toggle() + return + } + // 's' key activates screensaver when authenticated (skip if typing in input) + if (e.key === 's' || e.key === 'S') { + const target = e.target as HTMLElement + const isInput = target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.isContentEditable + if (!isInput && appStore.isAuthenticated && !screensaverStore.isActive) { + e.preventDefault() + screensaverStore.activate() + } } } diff --git a/neode-ui/src/components/AnimatedLogo.vue b/neode-ui/src/components/AnimatedLogo.vue index 09b91f24..c255c277 100644 --- a/neode-ui/src/components/AnimatedLogo.vue +++ b/neode-ui/src/components/AnimatedLogo.vue @@ -1,8 +1,14 @@