KDE, la migration plasma 5

Quelques notes non publiées avant la migration.

Gwenview, à l’ouverture d’une photo, il met 3h pour charger la photo suivante car il doit (surement) lire toutes les autres photos du dossier, en effet, c’est instantanée dans un dossier avec peu d’images, très long dans un dossier avec beaucoup d’images.

Gwenview qui bug après l’affichage d’une photo « mal formée » (segmentation fault).

Dolphin, la touche F1 pour l’aide ouvre la page d’aide dans Kate car c’est un fichier d’aide en HTML… très pro… très open source.

Dolphin, qui à chaque lancement, oublie mes préférences. Bordel, je ne veux plus de confirmation pour la suppression des fichiers.

Puis il y a eu la migration. C’est la migration vers quoi exactement ? C’est suite à cette annonce, je me suis dit que cela devait être suffisamment stable pour faire le grand saut. C’est donc une migration de plasma 4 vers plasma 5.5.4 début février, puis 5.5.5 début mars. KDE Frameworks et les logiciels de la suite KDE sont eux toujours mis à jour en rolling release.

Pourquoi plasma n’est pas mis à jour en rolling release ? car c’est un composant clé de KDE, c’est l’espace de travail. Une migration peut donc être bloquante, c’est un bon point d’Arch linux de ne pas la forcer.

La migration a corrigé les deux bugs avec Dolphin. Cela n’a rien changé pour Gwenview, il bug toujours sur certaines photos (ce qui est normal, cf ci-dessus), et il met toujours autant de temps pour charger la photo suivante: 3 secondes dans un dossier de 185 fichiers, par contre en le fermant et relançant tout va plus vite (merci le cache).

La migration a heureusement ajouté de nouveaux bugs. Commençons par le plus chiant: un beau segmentation fault quand j’utilise la barre de recherche d’application du menu KDE, très gros point noir.

Ensuite, le fonctionnement du son a changé à l’insu de mon plein gré, alsa a été remplacé par pulseaudio. Je ne m’en serait pas rendu compte si je n’avais pas eu de problème. Maintenant, une seule application simultanément ne peut émettre du son. Je ne peux pas avoir une vidéo dans mon navigateur et une vidéo dans mon player multimedia. La seconde vidéo lancée sera bloquée par la première, et, à la fermeture de la première, la seconde est immédiatement débloquée. COOL.

J’ai trouvé une solution, mais putain de bordel de merde, quitte à faire migrer sur pulseaudio, ils auraient pu mettre les bons réglages !

Puis à nouveau un bug très chiant:

# xlsclients -la
Maximum number of clients reachedxlsclients: unable to open display « :0 »

Cela me le fait avec mplayer, smplayer exactement. Impossible d’ouvrir de nouveaux fichiers. Niveau message d’erreur, aucun bien sûr, ceux-ci ne sont pas gérés, il ne faut pas rêver. Dans smplayer, il faut prendre l’initiative d’aller voir dans les « journaux », le cheminement est le meu « Options » puis « Journaux » et enfin « mplayer ». Madame michou est ravie qu’il soit nécessaire de faire tout cela pour découvrir pourquoi la vidéo ne charge pas, et surtout pourquoi en fait la vidéo actuelle continue de tourner (heureusement, elle n’utilise pas linux). En effet, si smplayer lit une vidéo, en cliquant sur une autre dans Dolphin, rien ne se passe, la vidéo continue d’être lue sans l’interrompre, ni charger la nouvelle, comme si l’ordre de chargement de la nouvelle vidéo n’était pas envoyée. D’où ma critique sur l’absence de message d’erreur, c’est un peu se foutre du monde de ne pas être capable d’indiquer qu’une vidéo n’a pas été chargé.

Bref, ce bug se produit parce qu’il y a trop de connexion sur le serveur X. C’est con, je n’avais malheureusement presque aucune application en cours d’exécution. La magie réside dans KDE qui est de la merde. Après quelques recherches où j’ai découvert la commande xlsclients ci-dessus, censée aider dans ce genre de problème mais qui ne sert à rien en fait, j’ai trouvé des cas de bug similaire dans chromium mais le problème provient bien de KDE et de Klauncher. Ce qui est logique puisque c’est Klauncher qui doit lancer l’application quand on ouvre un fichier dans Dolphin. Du coup un kill de klauncher résout le problème… jusqu’à la prochaine saturation. Merci KDE.

Ensuite, encore un bug ultra chiant, le menu K (l’équivalent du menu démarré): quand je clique dessus, le menu s’affiche puis disparait immédiatement avec le beau fondu de fermeture. La solution, est de faire un click sur le bureau (droit ou gauche peu importe), et là ça remarche. Ca ne remarche qu’une fois, si je le ferme, le bug se produit à nouveau, je dois cliquer encore sur le bureau pour que ça remarche.

Fun fact: ce bug concerne en fait toute la barre des tâches: l’horloge avec la calendrier, l’icone du son avec kmix, etc. Ce bug est moins pire que le segmentation fault de la barre de recherche car le menu est quand même utilisable, mais il est très dérangeant.

D’autres cochonneries se sont glissées, en particulier quelqu’un a décidé qu’il ne serait plus possible de verrouiller automatiquement son écran au delà de 99 minutes. Merci de décider pour moi ce qui est bien, 99 étant une limite pas du tout arbitraire et très réfléchie. J’en tombe dans l’insulte, bande de connards.

C’est dans « Configuration du système > Comportement de l’espace de travail > Verrouillage de l’écran > Verrouiller l’écran automatiquement après », on notera le problème d’ergonomie qui affiche une zone de saisie de 3 kilomètres pour limiter la saisie à 2 caractères, bravo ahahah. Car non, ça ne fait pas plus beau en long. A cela, quand on ajoute un troisième caractère, il n’y a aucun message d’erreur, une info-bulle pour indiquer le min/max aurait été la bienvenue, car j’ai vraiment cru à un problème d’interface au début parce que jamais j’aurai pensé qu’un abruti limiterai la saisie à 99 minutes. Ou encore, pour toutes valeurs au dessus de max, alors utiliser la valeur max. Exemple, la valeur est 25, si j’ajoute un 1 pour faire 125, alors la valeur devient 99, au lieu de rester à 25 comme actuellement.

Je me souviens quand je développais sous Delphi, il existait un composant qui s’appelait TSpinEdit. J’ai testé (merci wine) avec un programme que j’avais compilé en 2006, donc il y a 10 ans de cela, en mettant une valeur supérieur à max, alors la valeur devient max, on comprend tout de suite qu’on a dépassé la limite, même chose avec la valeur minimale. Alors je me demande POURQUOI DIX ANS PLUS TARD (et je suis gentil car ça existait il y a plus de dix ans) ce comportement n’est pas un standard d’ergonomie ? Es-ce un problème de Qt ? (version 5.5.1 d’après la fenêtre A propos du logiciel) Leur composant est pourri ? Ou es-ce la faute des dev de KDE qui font de la merde ? Ca me gonfle ces petits détails ergonomiques qui montrent l’absence totale de qualité. Même Firefox, avec un input type number, affiche les bords du champ en rouge quand on dépasse pour indiquer un problème, ce qui me surprend car c’est sans CSS particulier et ce n’est pas du tout standard.

Pour revenir sur la dimension de la zone de saisie, à titre d’exemple: « Configuration du système > Réseau > Configuration > Cache > Taille du cache disque » est un champ à 2 caractères dont la taille est adaptée à 2 caractères. Quand on veut, on peut. D’ailleurs je ne comprends pas trop cette option, un cache disque limité à 99 KiB max ? C’est très peu mais comme je ne sais pas à quoi cela s’applique… Firefox ? je ne pense pas vu qu’il possède ses propres options, Chromium ? pareil j’espère. Par contre j’espère que les préférences SSL sont correctement prise en compte par Chromium, pour Firefox je sais qu’il possède ses propres options SSL cet idiot, c’est cool de configurer deux fois les choses Mozilla. Oh wait, ces options doivent être pour Konqueror… ou pas, je viens de vérifier, Konqueror possède ses propres options de cache (et de taille du cache). Exclusivité KDE: les options qui ne servent à rien.

Autre problème, à l’écran d’accueil, cela indique à présent la « langue » du clavier, mais si ce n’est pas du tout clair car c’est écrit « Configuration », mais voici pourquoi j’ai déduit que c’était la langue du clavier. Quand j’ai commencé à taper mon mot de passe, c’est passé en « fr ». Du coup je me suis dis que ça doit être la langue du clavier, car qui irait choisir la langue de la session avant de se connecter ? Quand un compte est créé sur le système, l’utilisateur choisit sa langue et c’est terminé, il ne va pas la changer à chaque connexion (au mieux on change son environnement de bureau à la connexion, comme choisir entre Gnome ou KDE/Plasma, ça c’est utile). Bref, j’ai supposé à tort que c’était la langue du clavier. Du coup quand j’ai vu « fr » je me suis dis que mon clavier a été détecté comme FR et j’écris en azerty. Donc la toute première fois après la migration, je commence à taper mon mot de passe, il me dit qu’il est invalide, j’essaie encore au cas où je me serai trompé, même problème. Je me dis « putain de merde »… puis comme j’utilise le bépo, je me suis dis que je vais tenter en bépo, et ça a marché.

Afficher la langue et la disposition du clavier ça a clairement du sens et même Windows le fait. Mais afficher la « Configuration » c’est vraiment débile, surtout quand on ne peut pas la changer: j’avais « us » initialement et quand j’ai tapé mon mot de passe c’est passé en « fr », mais pas possible de remettre « us ». CA ME SAOULE CETTE INCOHÉRENCE. Et pour couronner le tout, impossible de saisir un nom d’utilisateur, donc impossible de vérifier le layout du clavier. clap clap KDE. Je n’ai pas testé mais si il y a 30 utilisateurs sur la machine, j’espère qu’il ne faut pas scroller pour se chercher dans la liste…

Pour finir sur cet écran d’accueil, il y a un bouton « Actualiser », comme on en trouve dans les navigateurs. Je passe le curseur dessus, AUCUNE INFO-BULLE, je tente en cliquant dessus en pensant que ça va remettre à zéro l’écran de sélection d’utilisateur (et le mot de passe saisie). Pas du tout, cela fait un redémarrage sans confirmation. Merci KDE, on pensera à l’info-bulle la prochaine fois ? Ou bien ca coute trop cher en ces temps de crise ? Ce n’est pas comme si le libellé et les traductions n’existaient pas déjà vu que le même bouton est dans le menu K, mais avec une icône différente, il ne faut pas déconner (mais cela dépend du thème, je ne devrai pas leur jeter la pierre pour ça).

D’ailleurs en redémarrant avec ce bouton, j’ai eu un bug: A stop job is running for Session c2 of user xxx (duration / 1min 30s). Ce n’est pas un bug de systemd mais bien de la manière dont le reboot est lancé… avec ce bouton dans l’écran d’accueil ça fait de la merde, avec le même bouton quand on est dans une session ça marche nickel. Merci KDE.

Pour résumer, je suis énormément déçu de cette nouvelle version. A cela les bugs que j’avais avec kate/kwrite n’ont pas été corrigé (xvkbd), bref, c’est une vraie catastrophe. On parle d’un environnement de bureau, merde, pas d’une application codé par Kevin qui n’a pas travaillé les info-bulles ou qui n’a pas utilisé les bons composants pour saisir les donnés (l’input number) ou encore qui ne sait pas faire de segmentation fault… c’est un travail très brouillon, ça ressemble à Michel dans son garage qui a fait son petit environnement du bureau pour lui tout seul et ça lui convient.

Mon usage très basique qui consiste à surfer sur Internet me permet de survivre, j’abuse des raccourcis pour palier au bug du menu K qui se masque, mais je n’arrive pas à comprendre comment KDE en est arrivé à ce point, tombé tellement bas.

A vrai dire, le fait que le menu K bug me fait difficilement tenir le coup. La recherche d’une alternative est en cours, d’un OS alternatif, et comme je ne supporte pas Gnome/GTK, ça sera vers Windows que je me tournerai (je m’étonne moi-même!). Windows 10, dont je repousse au plus tard la migration car cet OS a fait beaucoup de bruit, mais je ne doute pas que je saurai le bidouiller pour limiter la casse.

Concernant GTK, ça me fait grave chier d’avoir des applications qui se comportent différemment dans un même environnement. Firefox utilise GTK, quand on clique quelque part dans la barre de scroll, ça positionne le contenu directement à la position du click, tandis qu’avec les autres applications (Chrome/Kate par exemple), cela décale la position du contenu d’un écran vers la position du click. C’est TRÈS chiant quand on utilise une application GTK et l’autre en Qt en même temps. Ah, c’est con, ça correspond à mon usage basique avec Internet: Firefox et Chrome.

J’ajouterai que j’ai dans l’ensemble des ralentissement incompréhensibles. Mais face aux autres problèmes, cela n’a pas trop eu de poids dans ma décision de quitter linux. J’aime résoudre les problèmes, j’aime bidouiller, mais l’accumulation me décourage d’une part, et me montre surtout que je perds mon temps vu la piètre qualité des logiciels.

Je doute que ces problèmes soient liés à mon matériel, et ils sont reproductibles dans une session vierge. Cette baisse constante de qualité est dommage et aura eu raison de moi. Ceci n’est finalement que la continuité des problèmes évoqués dans mes précédents billets.

Je ne peux m’empêcher de penser à une citation du forum arch linux dans un de mes précédents articles où je parlais déjà de plasma 5 et de la transition qui était en cours:

I am a litle sad to see that each time a new version of the desktop (any desktop…) is released, we have something bugy for a year or two before it become stable. As a consequence, we are left most of the time with beta software.

A year, or two… or three xD Cela fait un an déjà, dans deux ans ça sera peut-être bon, mais ça sera trop tard pour moi. Surtout que comme indiqué dans la citation, il y aura surement quelque chose de nouveau encore, et le cycle recommencera.

Publicités

QtCreator, WTF

C’est l’exemple typique qui fait que je déteste linux au sens général. Je développe sur Windows pour le fun avec qtcreator un projet cross-platforme. C’est une application basique en ligne de commande.

Après un bon moment de stand-by, j’effectue une évolution sur Windows et je me devais de faire un petit test sur linux. Je lance QtCreator sur linux, je fais quelques trucs, puis un beau crash avec segmentation fault.

Je retente, je refais mes trucs, et cela semble le copier-coller qui fait crasher l’application. Je me fais donc chier et je tape le texte à la main dans l’immédiat, je fais CTRL+S pour sauvegarder et un beau crash encore!

J’en déduit que je ne peux plus utiliser les raccourcis clavier. Très ironique pour quelqu’un sous linux.

Je n’en reste pas là, je sais que j’utilise xbindkeys pour des raccourcis clavier avancés avec xvkbd. Je désactive xbindkeys et là par magie cela marche. Je constate donc une belle régression pour QtCreator et Qt5 plus généralement car je pense que c’est dû à Qt5.

Quoi qu’il en soit, cela me tape bien sur le système que du jour au lendemain, les choses les plus basiques du système ne fonctionnent plus. Problème de X ? Puisque c’est xbindkeys et xvkbd ? Mais ils n’ont pas été mis à jour, c’est donc plus un problème de Qt5… ou de QtCreator tout simplement. Vivement Wayland ?

À noter, j’ai remarqué une autre regression. J’ai configuré l’éditeur pour n’utiliser que des tabulations, comme pour Windows. Sauf que ça ne marche plus. Décevant. Mais pour le coup, il se trouve que la configuration s’effectue ailleurs…

La qualité sous linux, la qualité Open Source…

Qt ou GTK

Qt qui s’écrit comme je viens de le faire, et surtout pas QT comme beaucoup de français le font. Cela veut dire qu’ils ne comprennent même pas ce que cela veut dire, en effet Qt se prononce « cute » et qui signfie mignon. GTK s’écrit comme je viens de le faire car c’est un acronyme pour Graphic Tool Kit.

Les deux « outils » permettent de créer des interfaces utilisateurs graphique (GUI), c’est à dire des fenêtres en gros, avec tout ce qu’il faut dedans (bouton, case à cocher, etc). GTK est créé à l’origine pour GIMP, Qt a été développé par Trolltech et est à présent dans les mains de Nokia. Qt possède une license commerciale mais aussi Open source pour les projets libres.

Qt est utilisé par KDE, c’est l’outil principal utilisé pour les fenêtres, et GTK est utilisé pour Gnome. Cela donne l’impression qu’une application GTK ne fonctionnera pas sur KDE et réciproquement (une application Qt sur Gnome). C’est faux heureusement, sauf si l’application utilise des fonctionnalités propres à l’environnement de bureau (par exemple KatePart qui est un composant de KDE comme on a pu le voir tout à l’heure). Par contre il va y avoir une différence de rendu visuel: le thème. Une application GTK sera moche sur KDE, et une application Qt sera moche sur Gnome… ou pas. Qt 4+ est cute sur beaucoup d’environnements, dont Gnome. Il s’adapte parfaitement, à quelques exceptions prêts. Par contre GTK est moche de partout, sauf sur Gnome. Même sur Windows, c’est moche, mal intégré, mais ça marche et c’est l’essentiel (sauf pour le grand public). Bon ce n’est pas toujours si moche, pidgin est assez correct mais on sent qu’il est différent des autres applications KDE.

Un autre problème est si vous êtes sur KDE par exemple, et que vous voulez utiliser une et seulement une seule application GTK, il va falloir télécharger tous les paquets GTK. Cela représente des mégaoctets, juste pour une seule application. C’est d’ailleurs également valable pour Windows, à la différence sur linux, c’est que cela fonctionne par paquet, qui eux sont dépendants de la distribution, et si la distribution est pourrie alors GTK a mal été packagé et l’installation de GTK peut faire plusieurs centaines de méga. C’est réciproque pour Qt pour un environnement Gnome, alors la solution consiste à utiliser une meilleure distribution.

Sur linux il y a donc des trolls entre Qt et GTK, de qui est mieux, du pourquoi, du comment. Que Qt est maintenu par Nokia et non par la « communauté » (pas de l’anneau). Mais d’un autre coté cela stimule la compétition, tout en fragmentant les applications: il y a généralement deux versions d’une application: une en Qt, une en GTK, quand ce n’est pas 50 en Qt, 50 en GTK, et 25 avec des toolkits nouveaux ou exotiques.

Lequel est mieux, lequel est pire ? Généralement avec cette question facheuse, le camp qui se sent du coté du pire va tout simplement répondre: il y a des besoins différents… qui est pourtant le même: afficher une fenêtre et des boutons. Derrière cela se cache d’autres raisons, si c’est Qt le pire:

  • soit parce qu’on a pas envie d’apprendre un nouvel outil par fénéantise ou par manque d’utilité (à quoi bon connaître deux outils identiques)
  • soit parce qu’on aime pas Qt
  • soit parce qu’on est dans l’idéologie libriste et on refuse de toucher à Qt car c’est Nokia qu’il le gère (note: mais accepte les contributions externes)
  • soit parce que c’est pour le plaisir de la diversité
  • soit parce qu’on a participé à GTK et qu’on ne le laissera pas tomber par principe

ou toutes autres raisons auxquelles je ne pense pas actuellement. Pour GTK c’est la même chose, sauf pour l’idéologie libriste. Pour ma part, j’ai du mal à comparer les deux, je me suis servi de GTK à l’université et j’ai détesté, et je me suis servi de Qt et j’ai accroché. La notion Signal/Slot est très puissante, bien que l’on retrouve presque la même chose dans GTK, mais surtout Qt est un framework plutot qu’un simple outil dédié à l’UI, qui du coup peut sembler plus lourd mais il est découpé en module et permet de faire beaucoup plus de choses en beaucoup moins de lignes. Le framework Qt est cross-plateforme, utiliser ce que fourni le framework est alors préférable pour faciliter le portage.

Voici deux applications que j’apprécie et qui fonctionnent aussi bien sur Windows que Linux: Mumble et KVirc. Une application bien utile en GTK était aMSN, entièrement mal intégrée quand utilisée sur Windows, et pire sur KDE.