mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-18 04:36:44 +02:00
- renommage : « Jean » devient « AJEAN » dans tous les textes visibles (titre de l'UI, proprietes du binaire Windows, barre de menus macOS / zone de notification, messages du terminal, README). La commande, les services, les chemins et le depot ne changent pas. - nouveau thème « AJEAN sombre » (même habillage pixel, palette nuit) ; les regles de mise en page sont partagees via [data-theme^="ajean"]. - l'IA montre ce qu'elle ecrit : les outils edit / mem_add / mem_edit renvoient un diff ligne a ligne, affiche en vert (+) et rouge (-) dans la bulle d'outil et persiste avec la conversation (chat_diff.go). - ecritures idempotentes : si la modification est deja en place, edit et mem_edit repondent « deja a jour » au lieu d'une erreur trompeuse ; un appel d'outil rigoureusement identique n'est plus rejoue dans le meme tour. - saisie du chat auto-agrandissante (une ligne au repos en thème ChatGPT, deux ailleurs), bouton d'envoi enfin aligne, astuce clavier detachee de la carte. - editeur de preset relu pour le thème AJEAN (plus de double encadrement), champ + bouton de telechargement recolles dans tous les thèmes, interrupteurs carres. - emojis retires de l'interface (les glyphes monochromes restent).
46 lines
1.3 KiB
Go
46 lines
1.3 KiB
Go
//go:build darwin
|
|
|
|
package jean
|
|
|
|
// sys_tray_darwin.go — icône de Jean dans la barre de menus macOS (en haut à
|
|
// droite, à côté de l'horloge), pendant exact du system tray Windows : quand on
|
|
// ouvre Jean.app, l'UI web s'ouvre dans le navigateur ET l'icône apparaît, avec
|
|
// le menu « Ouvrir Jean » / « Quitter ».
|
|
//
|
|
// Contrairement à Windows, systray passe ici par Cocoa → CGO obligatoire : les
|
|
// binaires macOS sont donc compilés sur un runner macOS (voir release.yml), et
|
|
// le bundle est marqué LSUIElement (pas d'icône dans le Dock, uniquement la
|
|
// barre de menus).
|
|
|
|
import (
|
|
"os"
|
|
|
|
"github.com/getlantern/systray"
|
|
)
|
|
|
|
// runTray fait tourner l'icône de la barre de menus. Bloque jusqu'à « Quitter ».
|
|
// À appeler depuis la goroutine principale : Cocoa exige le thread main.
|
|
func runTray(url string) {
|
|
systray.Run(func() {
|
|
systray.SetIcon(trayIconPNG())
|
|
systray.SetTooltip("AJEAN — votre IA locale")
|
|
mOpen := systray.AddMenuItem("Ouvrir AJEAN", "Ouvrir l'interface")
|
|
systray.AddSeparator()
|
|
mQuit := systray.AddMenuItem("Quitter", "Arrêter AJEAN")
|
|
|
|
go func() {
|
|
for {
|
|
select {
|
|
case <-mOpen.ClickedCh:
|
|
_ = openBrowser(url)
|
|
case <-mQuit.ClickedCh:
|
|
systray.Quit()
|
|
return
|
|
}
|
|
}
|
|
}()
|
|
}, func() {
|
|
os.Exit(0) // « Quitter » → arrête tout le process (serveur inclus)
|
|
})
|
|
}
|