2016-03-06 2 views
2

Je suis juste en train de jouer avec tkinter en python, mais j'ai quelques "problèmes" avec mon gestionnaire de fenêtres i3 (en mosaïque).Comment faire tkinter Fenêtre flottante dans i3 windowmanager

Je veux créer une fenêtre flottante pour entrer une valeur (similaire à une boîte de dialogue "Ouvrir un fichier"). Cela doit être possible, car Gimp par exemple fonctionne aussi avec des fenêtres flottantes dans i3. Bien sûr, je ne sais pas si c'est possible avec tkinter.

Est-ce que quelqu'un connaît le problème et a trouvé la solution? Je suppose qu'il doit y avoir une sorte de drapeau à définir sur le widget tkinter.Tk().

Répondre

1

Si vous connaissez le titre de la fenêtre, ou tout motif du titre, vous pouvez ajouter la ligne suivante dans votre fichier de configuration i3 pour faire flotter au démarrage:

for_window [title="title of your window"] floating enable 

Par exemple, j'utiliser cette config pour faire mon gnome-keyring flottant à chaque fois qu'il me demande un mot de passe:

for_window [title="Unlock private key"] floating enable 

EDIT:

Selon cette https://faq.i3wm.org/question/61/forcing-windows-as-always-floating.1.html:

"i3 définit les fenêtres de dialogue, d'utilitaire, de barre d'outils et d'éclaboussure flottantes."

+0

Pas encore exactement ce que je cherche, mais merci. Devinez qui résout pour le moment. –

+0

@ J.Doe Désolé pour mon erreur. Je pense que pour que l'i3 le reconnaisse automatiquement comme flottant, vous devez définir le type de fenêtre comme "fenêtre de dialogue, utilitaire ou splash". J'ai ajouté la référence dans la réponse. Cependant, je ne connais pas Tkinter. Avez-vous essayé de créer des boîtes de dialogue de base dans i3? –

1

Vous pouvez dire que ce i3wm est une boîte de dialogue en réglant votre attribut de l'élément racine type à dialog

from Tkinter import Tk 
root = Tk() 
root.attributes('-type', 'dialog') 
root.mainloop() 

i3 ouvrira la fenêtre automatiquement en mode flottant au lieu de carrelage.