[awesome wm] toutes les fenêtres flottent, impossible d'avoir de "tile" (résolu bizarrement)

Xorg, Compiz, KDE / Gnome / Xfce / Fluxbox / e17 / fvwm ... GDM/KDM/XDM...
bitperfect
Hankyu
Messages : 31
Inscription : jeu. 21 août 2014, 11:25

[awesome wm] toutes les fenêtres flottent, impossible d'avoir de "tile" (résolu bizarrement)

Message par bitperfect »

Bonjour,

Depuis la dernière mise-à-jour d'awesome wm mon interface ne fonctionne plus convenablement, toutes les fenêtres sont en flottant contrairement à la disposition "tile" que j'avais avant.

Je n'ai absolument rien changé à mon fichier de configuration et je n'ai aucune erreur lors du lancement de la session awesome mais voilà, les fenêtres flottent (ce qui est vraiment horrible à utiliser).

Je suis repassé au fichier de configuration par défaut et ça marche, j'ai beau le décortiquer histoire de voir si il y a eu des changements mais impossible à trouver, tout semble correct.

Il y a eut des changements que j'ai raté ? Suis-je le seul à avoir ce problème ?

Voici ma configuration, qui est relativement simple :

Code : Tout sélectionner

-- Chargement des librairies
local gears   = require ("gears")
local awful   = require ("awful")
awful.rules   = require ("awful.rules")
require ("awful.autofocus")
local naughty = require ("naughty")
local menubar = require ("menubar")
local wibox   = require ("wibox")
local beautiful = require ("beautiful") 


beautiful.init ("/home/bpf/.config/awesome/theme/theme.lua")


-- Configuration générale
modkey   = "Mod4"
terminal = "urxvt"
editor   = "emacs"


-- Configuration des tags
tags     = {}
for i = 1, screen.count () do
   tags [i] = awful.tag ({" 1 ", " 2 ", " 3 ", " 4     "}, i, awful.layout.suit.tile)
end


-- Configuration générale de la barre de menu
menubar.utils.terminal = terminal
os.setlocale ("fr_FR.UTF-8")


-- Boutons des tags
boutons_tags = awful.util.table.join (
   awful.button ({}, 1, awful.tag.viewonly)
)


-- Boutons de la barre des taches
boutons_barre_tache = awful.util.table.join (
   awful.button ({}, 1, function (c)
	 if c == client.focus then c.minimized = true
	 else
	    c.minimized = false	    
	    if not c : isvisible() then awful.tag.viewonly (c : tags () [1]) end
	    client.focus = c
	    c : raise ()
	 end
   end),
   
   awful.button ({}, 3, function ()
	 if instance then
	    instance : hide ()
	       instance = nil
	 else
	    instance = awful.menu.clients ({theme = {width = 250}})
	 end
   end),
   
   awful.button ({}, 4, function ()
	 awful.client.focus.byidx (1)
	 if client.focus then client.focus : raise () end
   end),
   
   awful.button ({}, 5, function ()
	 awful.client.focus.byidx (-1)
	 if client.focus then client.focus : raise () end
end))




-- Création de l'interface
local prompt = {}
for i = 1, screen.count () do
   barre = awful.wibox ({position = "bottom",
			 screen = i,
			 height = "22"})
   
   gauche    = wibox.layout.fixed.horizontal () -- Conteneur de gauche
   droite    = wibox.layout.fixed.horizontal () -- Conteneur de droite
   conteneur = wibox.layout.align.horizontal () -- Conteneur global
   
   conteneur : set_left (gauche)
   conteneur : set_right (droite)
   barre     : set_widget (conteneur)

   -- Widget Heure
   heure = awful.widget.textclock ("    %H:%M    ")
   droite : add (heure)

   -- Widget barre des tâches   
   taches = awful.widget.tasklist (i, awful.widget.tasklist.filter.currenttags, boutons_barre_tache)
   conteneur : set_middle (taches)
   
   -- Widget des tags   
   liste_tags = awful.widget.taglist (i, awful.widget.taglist.filter.all, boutons_tags)
   gauche : add (liste_tags)
   
   -- Widget prompt
   prompt [i] = awful.widget.prompt ()
   gauche : add (prompt [i])
end
   

-- Raccourcis généraux
raccourcis = awful.util.table.join (
   -- Awesome
   awful.key ({modkey},            "Left",  awful.tag.viewprev),
   awful.key ({modkey},            "Right", awful.tag.viewnext),
   awful.key ({modkey},            "r",     function () prompt [mouse.screen] : run () end),
   awful.key ({modkey, "Control"}, "r",     awesome.restart),
   awful.key ({modkey, "Shift"  }, "q",     awesome.quit),
   awful.key ({modkey},            "x",     function () awful.screen.focus_relative (1) end),
   awful.key ({modkey, "Shift"  }, "p",     function () awful.util.spawn ("urxvt -e shutdown -h now") end),
   
   -- Manipulation sur les tags
   awful.key({ modkey, "Shift"  }, "j",     function () awful.client.swap.byidx (1) end)
)


-- Basculer d'un tag à l'autre
for i = 1, 4 do
   raccourcis = awful.util.table.join (raccourcis,
				       -- Changer le tag
				       awful.key ({modkey}, "#" .. i + 9,
					  function ()
					     local screen = mouse.screen
					     local tag = awful.tag.gettags (screen) [i]
					     if tag then awful.tag.viewonly (tag) end
				       end),
				       
				       -- Déplacer une fenêtre entre tag
				       awful.key ({modkey, "Shift"}, "#" .. i + 9,
					  function ()
					     if client.focus then
						local tag = awful.tag.gettags (client.focus.screen) [i]
						if tag then awful.client.movetotag (tag) end
					     end
				       end)
   )
end


root.keys (raccourcis)


-- Raccourcis propres aux fenêtres
raccourcis_fenetres = awful.util.table.join (
   awful.key ({modkey},            "w",     function (c) c : kill () end),
   awful.key ({modkey},            "o",     awful.client.movetoscreen)
)


-- Règle à appliquer à l'ouverture des fenêtres
awful.rules.rules = {
   -- Commun à chaque fenêtre
   {rule = {},
    properties = {border_width = beautiful.border_width,
		  border_color = beautiful.border_normal,
		  focus = awful.client.focus.filter,
		  raise = true,
		  keys = raccourcis_fenetres,
		  size_hints_honor = false,
		  buttons = boutons_fenetres}},
}


-- Événements sur les fenêtres
client.connect_signal ("manage",
		       function (c, startup)
			  -- Focus au passage de la souris
			  c : connect_signal ("mouse::enter", function (c)
						 if awful.layout.get (c.screen) ~= awful.layout.suit.magnifier
						 and awful.client.focus.filter (c) then
						    client.focus = c
						 end
					     end)
end)
Si jamais (bien que je pense que cela ne joue pas) j'utilise le driver propriétaire NVIDIA.

Si l'un d'entre vous a eu le même problème que moi et a trouvé une solution je lui en serai grandement reconnaissant, c'est vraiment la mort à utiliser là, obligé de repasser sous Windows :(

Merci d'avance !
Dernière modification par bitperfect le lun. 08 juin 2015, 13:53, modifié 2 fois.
Avatar de l’utilisateur
floflo77890
Maître du Kyudo
Messages : 1266
Inscription : lun. 29 juil. 2013, 21:05
Localisation : île de france

Re: [awesome wm] toutes les fenêtres flottent, impossible d'avoir de "tile"

Message par floflo77890 »

Moi personnellement sa fonctionne très bien chez moi mais mon fichier de conf est légèrement modifier. mais bon dans ton fichier tout me semble correct.
Avatar de l’utilisateur
Stdrome1209
yeomen
Messages : 266
Inscription : sam. 29 nov. 2014, 19:39

Re: [awesome wm] toutes les fenêtres flottent, impossible d'avoir de "tile"

Message par Stdrome1209 »

Alors je ne vais pas t'apporter la solution car tu connais sans doute bien mieux Awesome que moi et je ne vois vraiment pas ou se trouve le problème :(

Par contre j'ai essayé Awessome parmi tout les Tilling WM que j'ai testé, et je me suis contenté d'apporter de simple modification au fichier de config de base qui est bien plus grand que ton fichier, dois-je en déduire que tu l'a créer de toute pièces ? Et que la plupart des choses que l'on trouve dans le fichiers de base sont dispensables ?
Gaming desktop : Corsair Obsidian 350D, Intel Core I5 4690, Nvidia GTX 770, Asus H97M-E, 8 Go de DDR3, SSD 120 Go, HDD 500 Go, Powered by Arch Linux.

Notebook : Asus PU500CA, Intel Core i5-3317U, 4 Go de DDR3, SSD 240 Go, Powered by Arch Linux.

Netbook : LDLC Mercure MA1-2-S Slim, Intel Celeron N2830, 2 Go de DDR3, SSD 60 Go, Powered by Arch Linux.
bitperfect
Hankyu
Messages : 31
Inscription : jeu. 21 août 2014, 11:25

Re: [awesome wm] toutes les fenêtres flottent, impossible d'avoir de "tile"

Message par bitperfect »

J'ai en effet écrit mon fichier de configuration depuis zéro (mais en m'inspirant grandement du fichier de configuration par défaut bien évidemment).
Pour une question de lisibilité j'ai retiré du fichier posté sur ce forum mes raccourcis, la gestion du thème, fonds d'écrans et quelques widgets perso n'ayant pas rapport avec mon problème.
Je tiens à préciser que ce fichier a fonctionné parfaitement pendant plus d'un an, c'est vraiment depuis la dernière mise-à-jour que le soucis des fenêtres est arrivé.

Pour répondre à ta question, il est en effet possible de retirer pas mal de chose du fichier ce configuration de base. J'ai entrepris la réécriture complète pour mieux comprendre le fonctionnement d'awesome, ayant pour objectif de me faire une interface vraiment sur mesure (un exemple parmi d'autre : par défaut lorsqu'on utilise la molette de la souris sur le "bureau" cela change de tag, fonction dont je n'avais pas besoin privilégiant les raccourcis claviers).
J'ai donc un fichier plus simple et plus lisible, sans les fonctions que je n'utilisais pas pour partir sur une base plus propre et y voir plus clair ;)

Enfin j'ai peut-être été trop ambitieux et supprimé du code relatif au fonctionnement des fenêtres, mais en comparant le fichier de configuration de base et le mien je n'arrive pas à trouver où ça cloche, je fais vraiment comme eux pour la définition des tags et du tilling... :(
jojos
Daikyu
Messages : 61
Inscription : ven. 04 nov. 2011, 21:55

Re: [awesome wm] toutes les fenêtres flottent, impossible d'avoir de "tile"

Message par jojos »

J'ai testé ton fichier chez moi et awesome m'a sortie une erreur à la ligne 119. En supprimant la virgule du dessus, ton fichier est passé nickel et les fenêtres s'ouvraient en fullscreen.
bitperfect
Hankyu
Messages : 31
Inscription : jeu. 21 août 2014, 11:25

Re: [awesome wm] toutes les fenêtres flottent, impossible d'avoir de "tile"

Message par bitperfect »

Merci d'avoir essayé.

L'erreur de la virgule est due au fait que j'ai supprimé mes propres raccourcis d'applications pour gagner en lisibilité (je corrige sur mon premier message au passage).

Mais es-tu sûr de bien avoir la dernière version d'awesome ? J'ai testé avec le fichier que j'ai posté et j'ai toujours le problème (que je n'avais donc pas avant la mise-à-jour).
jojos
Daikyu
Messages : 61
Inscription : ven. 04 nov. 2011, 21:55

Re: [awesome wm] toutes les fenêtres flottent, impossible d'avoir de "tile"

Message par jojos »

Oui oui, j'ai la dernière version. Je suis d'ailleurs aussi emmer**é avec... Ca m'a fait planté mon rc.lua (pb avec le os.setlocal) et mes commandes pulseaudio ne fonctionnent plus :(

Tu as aucune erreur qui sort dans awesome ??? Tu n'es pas tout simplement sur un mauvais layout ??
bitperfect
Hankyu
Messages : 31
Inscription : jeu. 21 août 2014, 11:25

Re: [awesome wm] toutes les fenêtres flottent, impossible d'avoir de "tile"

Message par bitperfect »

En effet j'oubliais d'afficher les erreurs, autant pour moi.

J'ai donc bien une erreur, la voici :

Code : Tout sélectionner

/usr/share/awesome/lib/awful/layout/init.lua:83: bad argument #2 to '__index' (number expected, got string)
J'ai donc regardé ce fichier, l'erreur est située dans la fonction layout.arrange (qui prend un numéro d'écran en paramètre).
Vu l'erreur c'est visiblement un nombre qui est envoyé sous forme de string mais comme cette fonction n'est pas appelé directement depuis mon fichier de configuration il va falloir que je remonte.

Je vous tien au courant, si quelqu'un a une solution qu'il n'hésite pas :D

Edit : lol j'ai supprimé la ligne os.setlocale ("fr_FR.UTF-8") et tout fonctionne comme avant... comme quoi jojos même problème que toi mais pas les mêmes effets ;)

Je passe en résolu, néanmoins je reste curieux quant à la cause de ce problème.
Répondre