Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | 5x 5x 3x 3x 2x 2x 2x 2x 2x 2x 1x 2x | import { app } from 'electron';
import * as fs from 'fs';
import * as path from 'path';
export interface WindowState {
x: number;
y: number;
width: number;
height: number;
isMaximized: boolean;
displayId: number;
}
/**
* WindowStateStore persists window bounds and display across sessions.
* Stores at: ~/.valksor/mehrhof/window-state.json
*/
export class WindowStateStore {
private storePath: string;
constructor() {
const homeDir = app.getPath('home');
this.storePath = path.join(homeDir, '.valksor', 'mehrhof', 'window-state.json');
}
load(): WindowState | null {
try {
if (fs.existsSync(this.storePath)) {
const content = fs.readFileSync(this.storePath, 'utf-8');
return JSON.parse(content) as WindowState;
}
} catch {
// First run or corrupted file
}
return null;
}
save(state: WindowState): void {
try {
const dir = path.dirname(this.storePath);
if (!fs.existsSync(dir)) {
fs.mkdirSync(dir, { recursive: true });
}
fs.writeFileSync(this.storePath, JSON.stringify(state, null, 2));
} catch (error) {
console.error('Failed to save window state:', error);
}
}
}
|