Terminal-Config (Theme/Icon/Titel), UI-Überarbeitung, i18n de/en

- Terminal-Einstellungen pro Projekt in ai-control.json: 5 Themes
  (Paletten in terminal.ts, Fenster-BG gespiegelt in terminal.rs),
  Dock-Icon (PNG/ICNS via NSApplication in RunEvent::Ready),
  Fenstertitel mit Fallback Projektname; Zahnrad-Dialog mit Datei-Picker
  (tauri-plugin-dialog)
- UI: Catppuccin-Mocha-Token, JetBrains Mono für Namen/Pfade/Chips,
  feste Tabellenspalten, Status-Punkt mit Glow, Pool-Projekte als
  Hover-Popover, Buttons ausgerichtet (Zahnrad links von Starten/Beenden)
- i18n: vue-i18n, Deutsch/Englisch, Umschalter im Header (localStorage)
- generate_context nur noch einmal expandiert (Release-Build-Fehler)
This commit is contained in:
marcus.hinz
2026-07-04 12:58:25 +02:00
parent f7473797a9
commit fc560d4e5f
14 changed files with 1309 additions and 365 deletions
+16 -7
View File
@@ -1,11 +1,14 @@
<script setup lang="ts">
import { onMounted, ref } from "vue";
import { enable, disable, isEnabled } from "@tauri-apps/plugin-autostart";
import { useI18n } from "vue-i18n";
import ProjectList from "./components/ProjectList.vue";
import PoolList from "./components/PoolList.vue";
import { setLocale } from "./i18n";
const tab = ref<"projects" | "pools">("projects");
const autostart = ref(false);
const { locale } = useI18n();
onMounted(async () => {
autostart.value = await isEnabled();
@@ -23,19 +26,25 @@ async function toggleAutostart() {
<template>
<header>
<h1>AI Control</h1>
<h1>ai-control</h1>
<nav>
<button :class="{ active: tab === 'projects' }" @click="tab = 'projects'">
Projekte
{{ $t("app.projects") }}
</button>
<button :class="{ active: tab === 'pools' }" @click="tab = 'pools'">
Pools
{{ $t("app.pools") }}
</button>
</nav>
<label class="autostart">
<input type="checkbox" :checked="autostart" @change="toggleAutostart" />
Autostart
</label>
<div class="header-right">
<div class="lang">
<button :class="{ active: locale === 'de' }" @click="setLocale('de')">DE</button>
<button :class="{ active: locale === 'en' }" @click="setLocale('en')">EN</button>
</div>
<label class="autostart">
<input type="checkbox" :checked="autostart" @change="toggleAutostart" />
{{ $t("app.autostart") }}
</label>
</div>
</header>
<main>
<ProjectList v-if="tab === 'projects'" />