Traduction automatique du turc (Cloudflare Workers AI), non relue par l'auteur. Lire l'original en turc

← Articles

OmaNotes pour Omarchy Linux : un gestionnaire de notes et de tâches de style Google Keep, avec E2EE zero-knowledge

Note —

L'architecture et la sortie d'OmaNotes : interface entièrement en Quickshell, moteur en Rust, utilisation sans clavier (mouse-first) et sauvegarde chiffrée de bout en bout (AES-256-GCM) vers Google Drive et Git.

· 4 min de lecture
Sommaire

Résumé : OmaNotes est une application de notes qui fonctionne avec des cartes colorées à la manière de Google Keep, dotée d'une interface Quickshell et d'un moteur Rust. Elle présente des fonctions d'utilisation à la souris comme la création d'une note en un clic depuis le presse-papiers et des modèles, le chiffrement avec PBKDF2 et AES-256-GCM, la sauvegarde via rclone et Git, ainsi que les 15 tests que l'application a passés.

Sur un bureau Linux, prendre rapidement note d'une idée, d'un lien ou d'une liste de tâches qui nous vient à l'esprit au fil de la journée se retrouve souvent coincé entre deux extrêmes : soit nous nous livrons à des applications de notes cloud propriétaires où les grandes entreprises technologiques scannent toutes nos données et entraînent leurs modèles d'intelligence artificielle, soit nous devons nous contenter d'outils locaux en mode texte, lents et dépourvus de l'élégance d'une interface graphique.

Afin d'éliminer ce dilemme, je suis heureux d'annoncer OmaNotes, que nous avons conçu pour l'écosystème du bureau Omarchy Linux.

OmaNotes est une extension de bureau indépendante et open source qui combine l'ergonomie des cartes colorées et des listes de tâches à la manière de Google Keep, l'interface Wayland fluide de Quickshell 4.0, un moteur système à noyau Rust et une architecture de chiffrement de bout en bout (E2EE) AES-256-GCM à connaissance nulle (zero-knowledge).

Ergonomie sans clavier (Mouse & Touch-First)

OmaNotes a été conçu pour être géré en un clic depuis la barre supérieure droite du bureau, sans jamais toucher au clavier lors de l'usage quotidien :

  1. Création d'une note en un clic depuis le presse-papiers : le bouton Paste from Clipboard (intégration de wl-paste) qui transforme en carte, en un clic et sans avoir à la saisir, tout texte, lien ou liste de tâches copié dans le presse-papiers.
  2. Modèles rapides prêts à l'emploi :
    • Groceries (liste de courses prête avec des articles d'exemple)
    • Priorities (priorités du jour et tâches de concentration)
    • Idea (modèle de brouillon d'idée)
  3. Puces de filtre en direct (Zero Typing) : au lieu de taper dans la barre de recherche pour chercher une note, il suffit de cliquer sur All, Pinned, Checklist et sur les points de couleur (jaune, vert, bleu, violet, rouge, couleur pierre) pour filtrer instantanément les cartes.
  4. Actions rapides sur les cartes : cocher une case en un clic (le texte est barré), changer la couleur de la carte en un clic depuis la palette inférieure, épingler, dupliquer et supprimer en toute sécurité.

Chiffrement de bout en bout à connaissance nulle (Zero-Knowledge E2EE)

Au cœur d'OmaNotes se trouve une couche de chiffrement mathématique qui garantit que personne d'autre que vous (y compris le fournisseur cloud) ne peut accéder à vos données :

  • Dérivation de clé cryptographique : le mot de passe principal que vous définissez est transformé en une clé de chiffrement de 256 bits via le standard PBKDF2-HMAC-SHA256, avec 10 000 itérations et un sel cryptographique aléatoire de 16 octets.
  • Chiffrement authentifié AES-256-GCM (AEAD) : un nonce aléatoire à usage unique de 12 octets est généré à chaque opération de chiffrement. Lors du chiffrement des données, une étiquette d'authentification (auth tag) est également produite, offrant une protection totale contre les altérations au niveau des octets dans le cloud (attaques par bit-flipping).
  • Aucune fuite de texte en clair : le paquet notes.enc transféré vers le coffre cloud ne contient aucun en-tête, contenu ou étiquette en clair (plaintext).

Sauvegarde multi-cloud et reprise après sinistre (Disaster Recovery)

Conservez vos notes sur Google Drive ou dans votre propre dépôt Git privé :

  • Google Drive / Nextcloud / WebDAV (rclone) : synchronisation chiffrée en un clic via les connexions distantes rclone du système.
  • Coffre Git privé (git) : sauvegarde du fichier chiffré notes.enc dans votre propre dépôt Git privé, avec versionnage via git commit & push.
  • Reprise après sinistre (--pull) : même si vous reformatez votre ordinateur ou passez à un nouvel appareil, vous pouvez télécharger le paquet chiffré depuis le cloud en un clic et restaurer toutes vos cartes en quelques secondes avec votre mot de passe principal.

Architecture de sécurité et normes Omarcom (AGENTS.md)

OmaNotes a été construit pour se conformer intégralement et sans exception aux directives de sécurité officielles de l'écosystème Omarchy Linux (AGENTS.md) :

Domaine de sécurité Règle d'architecture appliquée
Groupes de processus isolés Les sous-processus sont exécutés dans un groupe de processus indépendant (cmd.process_group(0)).
E/S non bloquantes Les tubes sont lus sans blocage grâce à O_NONBLOCK + poll() POSIX.
Échéances monotones Les blocages sont évités par un contrôle d'expiration absolue de 30 secondes.
SIGKILL inconditionnel En cas d'expiration, SIGTERM -> 5ms -> SIGKILL, afin de ne laisser aucun processus petit-fils en arrière-plan.
Écriture atomique 0600 / 0700 Les fichiers sont écrits via .tmp_* puis déplacés après sync_all par un rename atomique avec les permissions 0600 ; les symlinks sont refusés.
Garantie de texte brut Dans tous les textes utilisateur et de presse-papiers côté QML, textFormat: Text.PlainText est imposé, ce qui empêche l'injection XSS/HTML.

Suite de 15/15 tests automatisés

OmaNotes a obtenu la note maximale à l'ensemble des 15 tests unitaires, de sécurité, de stress et de chaos de l'infrastructure de test Rust :

  • Tests unitaires (5/5) : stockage atomique 0600, prévention du buffer overrun, échéance monotone, aller-retour cryptographique, rejet d'un mot de passe erroné.
  • Tests avancés de sécurité et de chaos (6/6) :
    1. Test de bit-flipping : lorsqu'un seul octet du paquet chiffré est altéré, la vérification AEAD rejette les données.
    2. Injection shell et fuzzing : lorsque des commandes comme ; rm -rf / ; touch /tmp/pwned sont injectées dans le titre d'une note, les commandes système sont bloquées.
    3. Récupération de fichier corrompu : simulation d'une coupure de courant soudaine en écrivant un JSON tronqué dans notes.json, et auto-réparation du moteur sans plantage.
    4. Test de stress : balayage de 1 000 notes en < 50ms et transfert de données volumineuses de 64 KB.
    5. Concurrence : ajout simultané de notes par 10 threads distincts sans création de condition de course.
    6. Coupure réseau : retour d'une erreur propre sans blocage sur des cibles Git/rclone inaccessibles.
  • Tests d'intégration (4/4) : rejet d'une attaque par symlink, nettoyage des processus petits-fils récalcitrants, robustesse de la CLI, boucle cloud Git de bout en bout.

Installation et utilisation

Sur votre système doté d'Omarchy Linux, vous pouvez ajouter le dépôt et commencer à l'utiliser avec une seule commande :

# 1. Eklentiyi sisteme ekleyin
omarchy plugin add https://github.com/ozdil/omarchy-omanotes.git

# 2. Güvenli kaynaktan yerel derlemeyi yapın
cd ~/.config/omarchy/plugins/ozdil.omanotes
cargo build --release --locked
install -m 755 target/release/omanotes-engine ./omanotes-engine

# 3. Omarchy barınıza ekleyin (~/.config/omarchy/shell.json içine)
# "bar.layout.right" altına: { "id": "ozdil.omanotes" }

# 4. Shell'i yenileyin
omarchy-restart-shell

Pour une vérification rapide de l'état depuis le terminal :

~/.config/omarchy/plugins/ozdil.omanotes/omanotes-status

Ma lecture

  • Le cloud ne voit que le paquet chiffré : les notes sont chiffrées avant de quitter l'appareil, même les titres ne sont pas en clair.
  • La sauvegarde peut être conservée à deux endroits : Drive ou WebDAV avec rclone, dépôt personnel avec Git.
  • Les tests couvrent aussi les cas d'erreur : les scénarios de fichier corrompu, de coupure réseau et d'écriture simultanée ont été testés.

Ressources

  • Dépôt GitHub : ozdil/omarchy-omanotes
  • Licence : Licence MIT
  • Curateur & Standard : Omarchy Linux (CONTRIBUTING.md) & directives de sécurité