mirror of
https://github.com/cupcakearmy/volta.git
synced 2024-11-01 01:34:14 +01:00
Implement auto dark mode
This commit is contained in:
parent
7e411b125d
commit
94bac96245
BIN
src/battery_dark.png
Normal file
BIN
src/battery_dark.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 6.7 KiB After Width: | Height: | Size: 6.7 KiB |
@ -27,7 +27,16 @@ body,
|
||||
width: 100%;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#app.dark {
|
||||
background: #333;
|
||||
color: #f2f2f2;
|
||||
}
|
||||
|
||||
#app.light {
|
||||
background: #F7FFF7;
|
||||
color: #3B252C;
|
||||
}
|
||||
|
||||
hr {
|
||||
|
@ -3,6 +3,7 @@ const {
|
||||
shell,
|
||||
remote
|
||||
} = require('electron')
|
||||
const darkMode = require('dark-mode')
|
||||
|
||||
let rangeSlider
|
||||
let autoLaunch
|
||||
@ -14,6 +15,14 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
document.getElementById('close').addEventListener('click', () => {
|
||||
remote.getCurrentWindow().hide()
|
||||
})
|
||||
|
||||
darkMode.isDark().then((dark) => {
|
||||
if (dark) {
|
||||
document.querySelector('#app').classList.add('dark')
|
||||
} else {
|
||||
document.querySelector('#app').classList.add('light')
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
function iniSlider() {
|
||||
|
31
src/main.js
31
src/main.js
@ -4,6 +4,7 @@ const {
|
||||
ipcMain,
|
||||
Tray,
|
||||
nativeImage,
|
||||
nativeTheme,
|
||||
Notification,
|
||||
electron
|
||||
} = require('electron')
|
||||
@ -40,17 +41,32 @@ app.on('window-all-closed', () => {
|
||||
app.quit()
|
||||
})
|
||||
|
||||
const createTray = () => {
|
||||
const icon = nativeImage.createFromPath(path.join(__dirname, 'battery.png')).resize({
|
||||
const createIcon = (image) => {
|
||||
return nativeImage.createFromPath(path.join(__dirname, image)).resize({
|
||||
width: 24,
|
||||
height: 24
|
||||
})
|
||||
}
|
||||
|
||||
const createTray = () => {
|
||||
let icon
|
||||
if (nativeTheme.shouldUseDarkColors) {
|
||||
icon = createIcon('battery_dark.png')
|
||||
} else {
|
||||
icon = createIcon('battery_light.png')
|
||||
}
|
||||
tray = new Tray(icon)
|
||||
tray.on('right-click', toggleWindow)
|
||||
tray.on('double-click', toggleWindow)
|
||||
tray.on('click', toggleWindow)
|
||||
}
|
||||
|
||||
nativeTheme.on('updated', function() {
|
||||
tray.destroy()
|
||||
createTray()
|
||||
window.reload()
|
||||
})
|
||||
|
||||
const getWindowPosition = () => {
|
||||
const windowBounds = window.getBounds()
|
||||
const trayBounds = tray.getBounds()
|
||||
@ -72,7 +88,10 @@ const createWindow = () => {
|
||||
frame: false,
|
||||
fullscreenable: false,
|
||||
resizable: false,
|
||||
transparent: true
|
||||
transparent: true,
|
||||
webPreferences: {
|
||||
nodeIntegration: true
|
||||
}
|
||||
})
|
||||
window.loadURL(`file://${path.join(__dirname, 'index.html')}`)
|
||||
|
||||
@ -82,9 +101,9 @@ const createWindow = () => {
|
||||
|
||||
window.webContents.on('did-finish-load', sendCurrentValues)
|
||||
|
||||
// window.openDevTools({
|
||||
// mode: 'detach'
|
||||
// })
|
||||
window.openDevTools({
|
||||
mode: 'detach'
|
||||
})
|
||||
}
|
||||
|
||||
const toggleWindow = () => {
|
||||
|
Loading…
Reference in New Issue
Block a user