Dotfiles_ArchAP/portal/README.md

4.6 KiB
Raw Blame History

Yazi comme FileChooser du portail

Package GNU Stow : stow -d ~/.dotfiles -t ~ portal. Les fichiers actifs dans ~/.config/xdg-desktop-portal/ et ~/.config/xdg-desktop-portal-termfilechooser/ sont des liens Stow. La règle SwayFX est dans le package sway.

Dépendances

Arch Linux : xdg-desktop-portal, xdg-desktop-portal-gtk, xdg-desktop-portal-wlr, kitty, yazi, jq, swayfx, libinih, libsystemd, meson, ninja et scdoc pour une compilation complète. Le backend retenu est hunkyburrito/xdg-desktop-portal-termfilechooser, version 1.4.3, commit bcb2387949e4eb38a35390ebf1693f92869e619d dans l'installation testée. Le paquet AUR xdg-desktop-portal-termfilechooser-hunkyburrito-git existe aussi.

Cette machine utilise une installation Meson utilisateur sous ~/.local, sans changer les backends système. Les fichiers nécessaires sont ~/.local/libexec/xdg-desktop-portal-termfilechooser, ~/.local/share/dbus-1/services/org.freedesktop.impl.portal.desktop.termfilechooser.service et ~/.local/share/xdg-desktop-portal/portals/termfilechooser.portal. La procédure de reproduction, conservée dans ce dépôt indépendamment du cache de construction, est la suivante (sans l'exécuter pendant une simple publication) :

git clone https://github.com/hunkyburrito/xdg-desktop-portal-termfilechooser.git
cd xdg-desktop-portal-termfilechooser
git checkout --detach bcb2387949e4eb38a35390ebf1693f92869e619d
meson setup build --prefix="$HOME/.local"
meson compile -C build
meson install -C build

Contrôler ensuite les trois chemins ci-dessus et la configuration Stow de ce dossier. Le dépôt source et le répertoire build sont temporaires et ne font pas partie des dotfiles. Cette procédure installe uniquement dans le préfixe utilisateur ; elle ne remplace aucun paquet système. Après installation ou mise à jour du backend, recharger seulement xdg-desktop-portal.service après avoir vérifié qu'aucune session de partage d'écran ou requête portal n'est en cours.

Routage et fenêtre

FileChooser utilise termfilechooser, ScreenCast et Screenshot utilisent wlr, Secret utilise gnome-keyring, et les autres interfaces disponibles gardent gtk. XDG_CURRENT_DESKTOP=sway:wlroots:swayfx sélectionne la configuration utilisateur portals.conf avant les fichiers système propres à Sway. Le wrapper lance Kitty avec --class labfy-yazi-filechooser ; SwayFX flotte et centre uniquement cet app_id. Kitty calcule au lancement une taille de 1000 × 650, bornée à la sortie SwayFX active avec une marge de 40 pixels. La fenêtre reste redimensionnable et sur le workspace courant. Le thème Kitty et le thème Yazi Catppuccin Mocha sont ceux de la configuration habituelle.

Firefox 157 utilise le portail FileChooser en mode automatique quand il est disponible. Aucun GTK_USE_PORTAL global ni préférence de profil n'est nécessaire dans cette installation. Pour diagnostiquer un profil différent, vérifier widget.use-xdg-desktop-portal.file-picker dans about:config : 1 force le portail, 0 le désactive, 2 suit le mode automatique.

Utilisation

Dans le sélecteur, o ou Entrée valide le ou les fichiers survolés ou sélectionnés. Espace sélectionne chaque fichier en mode multiple. q annule un choix de fichier ; Q annule aussi et ne transmet pas le dossier courant. Pour un dossier, entrer dedans puis appuyer sur q ; Q annule. M ouvre le menu des supports, g puis Espace permet de saisir un chemin. Ouvrir un fichier via Yazi sans mode chooser n'est pas la même opération : ici, le wrapper utilise --chooser-file pour remettre les chemins à l'application.

Pour « Enregistrer sous », le backend crée un fichier provisoire annoté. Le déplacer avec x, naviguer vers la destination, le déposer avec p, puis le renommer avec r si nécessaire. Valider le fichier avec o ou Entrée, puis répondre o au prompt de confirmation du wrapper. Le prompt avertit que l'application peut écraser une destination existante ; répondre autrement annule. Q dans Yazi annule également et le backend supprime le provisoire resté à son emplacement d'origine. Si le provisoire a été déplacé avant une annulation, supprimer manuellement ce fichier déplacé. Les essais doivent utiliser un dossier temporaire et éviter tout écrasement de données réelles.

Les applications GTK/Qt qui utilisent leurs dialogues natifs plutôt que le portail conservent leur comportement. Ce réglage ne change aucune association MIME et ne remplace pas les portails d'autres interfaces.