feat(machine): landscape layout and fullscreen mode

- Switch Electron window to landscape (1920x1080) with fullscreen fallback
- Rearrange IdleView for horizontal layout (logo+badges left, action cards right)
- Fix hostname command in provision/build scripts (use ip route instead of hostname -I)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Patrick Mulligan 2026-02-18 20:43:49 -05:00
commit 722635a5a6
5 changed files with 28 additions and 37 deletions

View file

@ -44,9 +44,9 @@ const isDev =
process.env.ELECTRON_FORCE_PROD !== '1' &&
(process.env.NODE_ENV === 'development' || !app.isPackaged)
// Window dimensions (vertical ATM display)
const WINDOW_WIDTH = 1080
const WINDOW_HEIGHT = 1920
// Window dimensions (landscape ATM display)
const WINDOW_WIDTH = 1920
const WINDOW_HEIGHT = 1080
let mainWindow: BrowserWindow | null = null
@ -57,6 +57,7 @@ function createWindow() {
resizable: isDev, // Allow resize in dev for debugging
frame: isDev, // Show window frame in dev
kiosk: !isDev, // Kiosk mode in production
fullscreen: !isDev, // Ensure fullscreen even if kiosk fails
webPreferences: {
preload: path.join(__dirname, 'preload.js'),
contextIsolation: true,

View file

@ -59,7 +59,7 @@ function handleCashOut() {
</script>
<template>
<div class="flex flex-1 flex-col items-center justify-center gap-12 p-8">
<div class="flex flex-1 items-center justify-center gap-12 p-8">
<!-- Logo -->
<div class="flex flex-col items-center gap-2">
<img
@ -68,6 +68,12 @@ function handleCashOut() {
class="h-40 w-40 animate-float drop-shadow-[0_0_24px_var(--primary)]"
/>
<h1 class="text-4xl font-bold text-primary">Bitcoinmat</h1>
<!-- Footer badges -->
<div class="mt-4 flex items-center gap-4">
<Badge variant="outline" class="border-success text-success">No KYC</Badge>
<Badge variant="outline" class="border-primary text-primary">No Registration</Badge>
<Badge variant="outline" class="border-bitcoin text-bitcoin">Just Bitcoin</Badge>
</div>
</div>
<!-- Action Buttons -->
@ -97,13 +103,6 @@ function handleCashOut() {
</Card>
</div>
<!-- Footer -->
<div class="flex items-center gap-4">
<Badge variant="outline" class="border-success text-success">No KYC</Badge>
<Badge variant="outline" class="border-primary text-primary">No Registration</Badge>
<Badge variant="outline" class="border-bitcoin text-bitcoin">Just Bitcoin</Badge>
</div>
<!-- Dev QR buttons -->
<div v-if="atmStore.debugMode" class="flex items-center gap-4">
<Button