PROJET AUTOBLOG


Planet-Libre

source: Planet-Libre

⇐ retour index

miamondo : Labortablo, une interface de bureau codée en Python sur une base Archlinux/Openbox (2ème partie)

dimanche 20 décembre 2020 à 01:07

La barre de tâches

Sommaire

1. La boucle

2. Récupérer et convertir les icônes avec xprop

3. Iconifier et déiconifier les fenêtres


Voici le deuxième article sur mon interface de bureau moulé à la louche. Il traite de la barre des tâches. Le processus fonctionne de manière tout à fait satisfaisante mais il m’a vraiment donné du fil à retordre. Cette zone qui se trouve en bas de l’écran, affiche:

Le rôle de ces derniers est triple: iconifier, déiconifier ou bien fermer la fenêtre qui lui est associée. Les boutons sont des valeurs stockées dans un dictionnaire. Les clés de ce dernier sont les identifiants obtenus avec la commande wmctrl -l.

Dans la capture d’écran ci-dessous, on peut constater que trois applications sont ouvertes, mon agenda, chromium et Libre-Office Calc.

  1. La boucle

Toute la difficulté de cette barre de tâches est qu’il faut créer une boucle qui récupère les informations sur chaque fenêtre d’application ouverte et surtout qui affiche l’icône qui lui est associée.

Voici donc le déroulé des opérations:

La boucle commence par exécuter wmctrl -l (voir capture d’écran ci-dessus) et stocke les informations obtenues dans une variable que nous allons baptiser old_running_applications. Cette variable doit être hors de la boucle.

La boucle exécute une nouvelle fois wmctrl -l et stocke les informations dans une variable baptisée new_running_applications. Cette variable se trouve dans la boucle.

Le contenu des deux variables est comparé (en excluant les lignes contenant N/A). Le programme détermine quelles sont les fenêtres ouvertes, il splitte chaque ligne, c’est-à dire qu’il les transforme en liste, pour en extraire le numéro d’identification (par exemple 0x008000007), ainsi que le titre de la fenêtre (par exemple Agenda). Le titre de la fenêtre va s’afficher sur le bouton qui lui correspond.

Si une nouvelle fenêtre a été ouverte, la boucle demande au script taskbar.py de créer le bouton correspondant. En revanche, si une fenêtre a été fermée, elle lui demande de détruire le bouton corespondant. Bien sûr, le script taskbar.py ne s’amuse pas à détruire et à recréer une nouvelle barre à chaque changement. Il ne rajoute ou ne détruit que les boutons impactés par une modification. Puis, en fin de boucle, après avoir effectué les modifications et actualisé la barre des tâches, le script met à jour le contenu de la variable old_running_applications, qui est hors de la boucle.

old_running_applications = new_running_applications

2. Récupérer les icônes avec xprop, puis les convertir au format *.png pour les afficher à la volée

Il s’agit sans aucun doute de la partie la plus délicate. Je dois vous avouer que le titre de l’article n’est pas correct. Je prétends que l’interface de bureau est codée tout en Python, mais il y a tout de même un fichier *.sh. J’ai déniché ce script à cette adresse.

 #!/bin/bash

path=$1
id=$2
xprop -id "$id" -notype 32c _NET_WM_ICON |
    perl -0777 -pe '@_=/\\d+/g;
    printf "P7\\nWIDTH %d\\nHEIGHT %d\\nDEPTH 4\\nMAXVAL 255\\nTUPLTYPE RGB_ALPHA\\nENDHDR\\n", splice@_,0,2;
    $_=pack "N*", @_;
    s/(.)(...)/$2$1/gs' > "$path"/"$id".pam

convert "$path"/"$id".pam "$path"/"$id".png

Il est manifestement l’oeuvre d’un dénommé Stéphane Chazelas. Bien sûr, je l’ai adapté à ma sauce. Il prend deux paramètres en arguments (le répertoire courant et le numéro d’identification). La mission de ce script est d’exécuter xprop et de générer des fichiers portant l’extension .pam. Ceux-ci sont immédiatement convertis en fichiers .png pour être affichés à la volée sur les boutons respectifs. Si l’identifiant de la fenêtre est 0x00800007, alors l’icône qui lui est associé, s’appelle 0x00800007.png.

Ça marche presque à tous les coups. Seule quelques applications résistent et refusent de convertir le fichier *.pam. C’est le cas de Shotwell par exemple. Lorsque cela se produit, elles sont capturées dans une exception.

Le processus xprop prend un peu de temps, si bien qu’il était possible que le bouton affiche seulement le texte et pas l’icône. Afin de remédier à ce problème et être ceinture-bretelles, j’ai modifié le code pour que le processus soit de nouveau lancé à chaque début de boucle. Les boutons qui n’ont que le texte, tentent de récupérer leur icône. Si vraiment, l’icône n’a pas éte convertie au format png, alors le bouton s’affiche quand-même. Tout ce processus est invisible pour l’utilisateur. Il n’y a aucun retard. C’est instantané.

Les fichiers générés par xprop et portant l’extension *.pam, ainsi que les fichiers au format *.png sont conservés provisoirement dans le répertoire courant. Ils sont détruits à l’extinction, au redémarrage ou à la déconnexion, d’une part pour ne pas encombrer le répertoire, et d’autre part pour être certain qu’à la prochaine session, ils ne seront pas réattribués à une mauvaise application. Le cas s’est déjà produit. Le bouton de thunar affichait l’icône de Chromium!

3. Iconifier et déiconifier les fenêtres en utilisant un simple clic de souris

Cette opération est bien moins évidente qu’il n’y parait. Il ne s’agit pas seulement d’alterner la commande d’un bouton pour qu’il réduise sa fenêtre puis qu’il l’agrandisse. En se contentant de faire ça, une fenêtre ouverte mais totalement cachée va d’abord se réduire puis s’agrandir au-dessus des autres, ce qui va donner l’illusion d’un double-clic un peu énervant.

Il faut donc faire en sorte de créer une condition pour que le bouton qui iconifie une fenêtre puisse aussi être celui qui va la passer au premier plan si cette dernière n’a pas le focus. Pour ce qui est de la déiconification, c’est beaucoup plus simple puisqu’on demande juste au bouton d’agrandir et de passer sa fenêtre au premier plan.

C’est la commande xdotool getwindowfocus getwindowname qui se charge de déterminer quelle fenêtre a le focus. Ensuite, selon le cas, c’est xdotool windowminimize qui va iconifier la fenêtre ou bien wmctrl -i -a qui va la placer au-dessus de toutes les autres, et par conséquent la rendre visible.

def iconify_window(self, ID, tb):
    """iconifies the window"""

    self.ID = ID
    self.taskbar_button = tb

    process = subprocess.Popen(['xdotool', 'getwindowfocus', 'getwindowname'], text=True, stdout=subprocess.PIPE)
    for line in process.stdout.readlines():
        if line.strip()==self.taskbar_button['text'].strip():
            subprocess.Popen(['xdotool', 'windowminimize', self.ID], text=True, stdout=subprocess.PIPE)
            self.taskbar_button.bind('', lambda event, ID=self.ID,
                                                  tb=self.taskbar_button: self.deiconify_window(ID, tb))
        else:
            subprocess.Popen(['wmctrl', '-i', '-a', self.ID], text=True, stdout=subprocess.PIPE)
            self.taskbar_button.bind('', lambda event, ID=self.ID,
                                                  tb=self.taskbar_button: self.iconify_window(ID, tb))

Conclusion

Voilà pour ce qui concerne la barre des tâches. Elle fonctionne très bien mais il reste tout de même quelques points d’amélioration.

Ajouter de la transparence et opacifier la barre des tâches au survol de la souris. Malgré la méthode root.attributes(‘-alpha’, 0.5), je n’y parviens pas.

Je souhaiterais également que mes deux écrans affichent une barre de tâches qui corresponde aux fenêtres ouvertes sur chacun d’entre eux. Pour l’instant, les deux barres sont des clônes. Mais j’ai peut-être déjà la solution…

Et pour celles et ceux que ça intéresse, le code est ici:

https://gitlab.com/miamondo/labortablo

Gravatar de miamondo
Original post of miamondo.Votez pour ce billet sur Planet Libre.

blog-libre : Windows et l’utilisateur

samedi 19 décembre 2020 à 12:00

Bientôt 14 ans que je travaille dans l’informatique. J’ai peu parlé de mon expérience de sysadmin Windows pourtant il s’agit de 10 ans de ma vie. Je n’ai jamais détesté Windows ni Microsoft, je ne suis pas un hater. J’aime l’informatique, Windows fait partie de son histoire.

Aujourd’hui l’informatique

Source

Comment en installant un système d’exploitation bureautique en est-on arrivé à parler de publicité ?

Windows 10 est un très bon « produit »… et une honte absolue dans l’Histoire de l’informatique. À se demander dans « système d’exploitation » qui est exploité…

Client ou utilisateur

La durée du support pour les éditions Famille et Professionnel de Windows 10 est de 18 mois, le client est contraint de suivre le rythme. Windows as a Service.

Vendre un logiciel propriétaire est dépassé, le client peut l’utiliser X années sans repasser par la caisse (mon dieu !), sans envoyer constamment des données personnelles (sacrilège !), le réinstaller voire même abuser de sa licence en l’installant sur plus d’un poste (criminel !). Un service que le client renouvelle fréquemment et qui s’arrête brusquement dès qu’il cesse de payer ou de respecter les conditions d’utilisation, voilà l’avenir ! Le contrôle total de l’utilisation du « produit », aucune échappatoire, à tout moment les règles et conditions du service peuvent changer. L’accomplissement de la logique propriétaire, RIEN DE MIEUX que vendre un service. Qu’une entreprise veuille gagner de l’argent dans un monde capitaliste ok, que sa mécanique de vente aille jusqu’à éteindre tous droits et privilèges de l’utilisateur… Avec un service si tu n’es plus client… tu n’es plus utilisateur.

Microsoft Office n’est pas disponible pour Linux, un choix délibéré de Microsoft nullement une impossibilité technique. L’utilisateur n’est pas au centre de sa stratégie, le client oui. Un logiciel utile pour l’utilisateur mais non rentable n’a aucun avenir, voilà la différence fondamentale entre client et utilisateur.

On s’éloigne d’une logique répondant aux besoins de l’utilisateur pour entrer dans une stratégie où le client est une cible. Le terme utilisateur est devenu un simple outil de communication, bon pour la documentation et la publicité.

Le choix de l’utilisateur : Windows ou Windows ?

Je fais une nette distinction entre ce que propose (ou plutôt impose) Windows et ce que souhaiterait un utilisateur dans l’idéal. Dans l’environnement professionnel il est rare de pouvoir choisir son système d’exploitation et 9 fois sur 10 l’employé est sur Windows. Je doute que la publicité sur Windows soit très appréciée. Une majorité d’utilisateurs ne peut refuser l’utilisation de Microsoft Teams quand son entreprise l’utilise.

La contrainte est forte, les intérêts de l’utilisateur et de Windows divergent.

Lutter contre, construire avec

Windows 10 tu luttes contre. Sitôt installé il faut supprimer les bloatwares, se débarrasser de la télémétrie et des mouchards, désactiver la publicité.

Source

J’entends l’acceptation et la résignation de certains : « Avec Privatezilla le sujet est réglé en quelques clics », « On est déjà pisté de partout avec Android, un peu plus ou un peu moins, ça change quoi ? ». Se faire pister par Google ET par Microsoft n’est pas la même chose. Les informations collectées sur un smartphone ont peu de choses à voir avec celles collectées sur un pc, les usages sont différents et complémentaires comme vos données personnelles…

Dark patterns, anti-fonctionnalités : Il n’est plus possible de créer un compte local lors de l’installation de Windows 10, Microsoft impose désormais la création et l’utilisation d’un compte Microsoft pour ouvrir une session (contournement).

Debian (distribution que j’utilise) tu construis avec… c’est tout en fait. Pas d’installation silencieuse (les « mises à jour » qui remettent ce que tu avais supprimé), de fonctionnalités et outils imposés (Edge, Cortana, OneDrive), de contenus non désirés (il faut vivre une fois la pub sur Windows, magique). On appelle cela le respect de l’utilisateur, indirectement notre confiance grandit envers l’outil.

Bugs

Ma mère s’occupait de la compta de mon père du temps où ils n’étaient pas encore retraités. J’ai naturellement installé du Windows. On attend tous d’un système d’exploitation qu’il fonctionne et nous foute la paix.

Ma mère me dit qu’elle ne peut plus enregistrer aucun mot de passe sur Windows. De mon point de vue le pc est inutilisable, pas inutilisable car il bugue dans tous les sens, inutilisable pour un utilisateur. Rendez-vous compte :

Le pc serait passé par la fenêtre avec moi. Je lance une recherche en Anglais, un article en parle, en creusant on trouve même un article chez Microsoft. Le souci a été remonté en avril, pas de correctif en 6 mois, le client a pudiquement le droit à un workaround (solution de contournement).

Tout système d’exploitation (et plus généralement logiciel) vient avec des bugs. L’important n’est pas vraiment le nombre de bugs, ce qu’on peut réellement juger est la rapidité et la qualité des correctifs. Je bosse depuis 3 ans sur Linux, j’ai utilisé Windows pendant plus de 15 ans dont quasiment 10 ans à travailler dessus. J’ai moins de soucis sur Linux, moins souvent/longtemps/grave.

Évidemment je tire cette constatation de mon expérience personnelle, il est probable que d’autres feront le constat inverse. Je vais toutefois rappeler un détail dans le point suivant.

Smicard et milliardaire

Globalement le Libre manque de moyens notamment d’argent. Certains gros projets reçoivent des dons, quelques développeurs rémunérés par leur entreprise bossent sur : Le noyau Linux, Debian, Ubuntu, Gnome… La majorité des autres projets crèvent la dalle, citons OpenBSD (1, 2, 3, 4) qui développe OpenSSH.

Microsoft : Plus de 150 000 employés dont 40% affectés à l’ingénierie, seconde capitalisation boursière ***mondiale*** de 1 592 milliards USD, 37,2 milliards de dollars de chiffre d’affaires et 13,9 milliards de bénéfices nets au dernier trimestre.

On compare un O.S Linux avec Windows à jeu égal ? Microsoft et Windows devrait atomiser Linux et les distributions Linux, le rapport de force est de 100 contre 1.

Pourtant on compare… ne vous y trompez pas, le simple fait de mettre Linux et Windows côte à côte démontre à quel point Windows se fout de l’utilisateur.

Rien à vendre. Rien à gagner ?

Ce qui sauve les distributions Linux est un grain de sable, une valeur ancrée au plus profond de l’Histoire du logiciel libre et de Linux : L’utilisateur au centre. Tout est fait autour de l’utilisateur, tout est fait pour lui.

Parfois malheureusement c’est insuffisant, les logiciels libres sont souvent moches, peu ergonomique, ces critiques sont justifiées. Nous manquons de moyens et de bras, des graphistes, designers, communicants.

Linux n’a rien à vendre mais comme utilisateurs nous avons tout à gagner à le soutenir.

Gravatar de blog-libre
Original post of blog-libre.Votez pour ce billet sur Planet Libre.

genma : Nextcloud - Le Dasboard 01/N

mercredi 16 décembre 2020 à 09:00

Ce billet est le second d'une série de billet sur la fonctionnalité Dashboard de Nextcloud, apparue avec la version 20. Ces billet sont co-écrits par Genma & Brume.3

Introduction

Dans ce billet, nous listons les "Widgets" disponibles au moment de la publication du présent billet.
Le but est de pouvoir faire un état des lieux des widgets et avoir des points d'entrées sur des codes sources pour comprendre comment sont structurées les widgets afin de rédiger un tutoriel sur la création d'un widget (sujet des futurs billets de cette série).

Analytics

-Catégorie : Tableau de bord, Bureautique & texte, Flux
-Description : Propose des graphiques de statistiques sur l'utilisation du serveur Nextcloud en temps réél.
-Lien : https://apps.nextcloud.com/apps/analytics

Discourse integration

-Catégorie : Tableau de bord, Intégration
-Description : Widget pour Dashboard qui affiche les dernières noticifations et converations de Discourse.
-Lien : https://apps.nextcloud.com/apps/integration_discourse

GitHub integration

-Catégorie : Tableau de bord, Intégration
-Description : Permet d'avoir les dernières notifications de GitHub sur son Dashboard.
-Lien : https://apps.nextcloud.com/apps/integration_github

GitLab integration

-Catégorie : Tableau de bord, Intégration
-Description : Permet d'avoir les dernières notifications de GitLab sur son Dashboard.
-Lien : https://apps.nextcloud.com/apps/integration_gitlab

Jira integration

-Catégorie : Tableau de bord, Intégration
-Description : Widget pour Dashboard qui affiche les dernières noticifations et converations de Jira.
-Lien : https://apps.nextcloud.com/apps/integration_jira

Mastodon integration

-Catégorie : Tableau de bord, Intégration
-Description : Widget pour Dashboard qui affiche les dernières noticifations et converations de Mastodon.
-Lien : https://apps.nextcloud.com/apps/integration_mastodon

Moodle integration

-Catégorie : Tableau de bord, Intégration
-Description : Widget pour Dashboard qui affiche les dernières noticifations et converations de Mastodon.
-Lien : https://apps.nextcloud.com/apps/integration_moodle

OneDrive integration

-Catégorie : Tableau de bord, Intégration
-Description : L'intégration de Microsoft OneDrive vous permet d'importer automatiquement vos fichiers OneDrive dans Nextcloud.
-Lien : https://apps.nextcloud.com/apps/integration_onedrive

Reddit integration

-Catégorie : Tableau de bord, Intégration
-Description : Widget pour Dashboard qui affiche les dernières noticifations de Reddit.
-Lien : https://apps.nextcloud.com/apps/integration_reddit

SuiteCRM integration

-Catégorie : Tableau de bord, Intégration
-Description : L'intégration de SuiteCRM fournit un widget affichant vos notifications importantes, un moteur de recherche et des notifications d'activité dans SuiteCRM.
-Lien : https://apps.nextcloud.com/apps/integration_suitecrm

Twitter integration

-Catégorie : Tableau de bord, Intégration
-Description : Widget pour Dashboard qui affiche les dernières noticifations de Twitter.
-Lien : https://apps.nextcloud.com/apps/integration_twitter

Zammad integration

-Catégorie : Tableau de bord, Intégration
-Description : Widget pour Dashboard qui affiche les dernières noticifations de Zammad
-Lien : https://apps.nextcloud.com/apps/integration_zammad

Gravatar de genma
Original post of genma.Votez pour ce billet sur Planet Libre.

miamondo : Labortablo, une interface de bureau codée en Python sur une base Archlinux/Openbox (1ère partie)

lundi 14 décembre 2020 à 12:24

Dans cet article, je vais vous présenter un projet personnel qui certes, m’a pris un peu de temps, mais que j’ai réussi à mener jusqu’à son terme, après plusieurs échecs. Il est construit sur une base Archlinux et Openbox. Pour le coder, j’ai utilisé un bien bel outil qui fera sans doute l’objet d’un prochain article. Il s’agit de pycharm, en version Community gratuite et open source. C’est un vrai plaisir de coder avec cet environnement de développement intégré, dont le thème Material se marie à merveille avec le design de mon projet.

Alors de quoi s’agit-il au juste? Il s’agit d’une interface de bureau entièrement codé en Python, à l’exception d’un petit script en bash. Je l’ai baptisé Labortablo ce qui, en espéranto, signifie tout simplement bureau. Il est composé d’un menu de douze catégories (Accessoires, Internet, Bureautique etc…), lesquelles se décomposent en autant de menus d’applications (par exemple, Chromium, Brave, Falkon pour le menu Internet). Cette interface de bureau est juste un projet expérimental mais j’ai pris soin de le coder aussi proprement que me le permettent mes capacités. Vous trouverez le code ici.

Le fond d’écran est celui d’Openbox mais il est habillé d’une image grâce à cette commande, placée dans le fichier ~/.config/openbox/autostart.

hsetroot -center "/chemin/vers/image.png" &
Fond d’écran Openbox personnalisé avec hsetroot

L’avantage de ce fond d’écran est qu’il est déjà configuré pour pouvoir déclencher par un clic gauche, un petit menu de secours qui n’est autre que le menu d’Openbox. Il est en espéranto et je l’ai réduit au strict minimum car je le conçois juste comme un canot de sauvetage en cas de naufrage de l’application. Je n’en parlerai donc pas davantage.

Canot de sauvetage

Au centre de ce fond d’écran, on trouve une sorte d’image style polaroid avec une légende. Il s’agit en fait d’un boutton Tkinter qui, lorsqu’on clique dessus, laisse la place au menu principal, constitué de douze catégories. Voici tout d’abord le bouton, illustré d’une image représentant le pont de Rakotz, en Allemagne. Il ressemble un peu à la porte des étoiles.

Le Rakotzbrücke

Et voici le menu principal constitué de douze boutons tkinter. Il sera possible à très court terme, de rajouter ou de supprimer une catégorie. C’est en cours de programmation. L’effet ombré est obtenu grâce au compositeur xcompmgr qu’il faut installer au préalable. La commande xcompmgr -c -f & doit être placée dans le fichier ~/.config/openbox/autostart.

xcompmgr -c -f &

Ce menu s’ouvre et se ferme également en cliquant sur le bouton situé tout en bas de l’écran à gauche. L’icône représente un ordinateur de bureau.

Cliquons sur le bouton le plus à gauche de la rangée du milieu. Il correspond à Bureautique en français. Toutes les catégories disparaissent et laissent la place aux applications de la catégorie sélectionnée.

Ouvrons maintenant LibreOffice. Le sous-menu des applications disparait et laisse la place à l’image du Pont de Rakotz. Veuillez noter que grâce au module multiprocessing, cette interface de bureau est multi-écrans. Comme, vous pouvez le voir sur la capture d’écran ci-dessous, Labortablo fonctionne au moins avec deux moniteurs.

C’est tout pour aujourd’hui. Demain ou après-demain, je vous montrerai comment j’ai procédé pour coder la barre des tâches. C’est sans aucun doute, la partie qui m’a donné le plus de fil à retordre. Je vous présenterai également mes idées d’amélioration:

Petite vidéo de présentation en mode muet, compte tenu de mon phrasé hésitant et écorché.

Labortablo

Gravatar de miamondo
Original post of miamondo.Votez pour ce billet sur Planet Libre.

genma : Nextcloud - Le Dasboard 00/N

lundi 14 décembre 2020 à 09:00

Ce billet est le premier d'une potentielle série de billet sur la fonctionnalité Dashboard de Nextcloud, apparue avec la version 20.
Ces billet sont co-écrits par Genma & Brume.

Objectifs de cette série

Présenter la fonctionnalité Dashboard de Nextcloud et la démarche de recherche d'informations, des tutoriels, en vue de pouvoir ajouter des fonctionnalités dans ce Dashoard.

Introduction

Depuis Nextcloud 20, un Dashboard a été intégré à Nextcloud. Il est sur la page d'accueil de l'application et permet en un clin d'oeil d'être au courant des dernières notifications : mails, conversations, derniers fichiers édités... mais également des notifications sur d'autres sites : des intégrations. Il est par exemple possible de voir ses dernières notifications GitHub, Facebook, Mastodon...

Chaque élément sur ce Dashboard est un widget. Notre but ici, est de récolter le plus d'informations possibles à ce sujet, afin d'essayer d'en créer.

- Présentation du Dashboard sur le site de Nextcloud : https://nextcloud.com/dashboard/
- Documentation de Nextcloud sur le Dashboard, en anglais : https://docs.nextcloud.com/server/20/developer_manual/digging_deeper/dashboard.html

Une application Dashboard ?

Pour commencer, il est important de savoir qu'avant la version 20, il existait déjà un Dashboard, sous forme d'application Nextcloud. Le code de l'application a donc été intégré à Nextcloud, et l'application est devenue obsolète. Nous pouvons donc nous demander si les tutoriels pour cette application sont toujours valables ou non à l'heure actuelle.

Le dépôt de l'application obsolète (archivé) : https://github.com/nextcloud/dashboard

Les technologies utilisées

Nextcloud utilise principalement du PHP et le framework VueJS. Cependant, l'environement de développement est assez poussé, et il ne suffit pas de connaïtre ses deux langages, il est aussi nécessaire de connaitre l'environnement de développement de Nextcloud.

Applications et widgets

Il est nécessaire de créer une application pour créer un widget, le widget n'étant qu'un pont entre l'application et le Dashboard.

Il sera donc pertinent, en plus de se focaliser sur la partie "Widget" pure, d'approfondir (et de partager les connaissances) autour de la création d'une application Nextcloud.

Quelques ressources

Posts du forum pertinents

-Vue.js setup for app development : Ce post parle de l'enviromnement Vue.js sur Nextcloud. Il donne un lien intéressant : https://github.com/skjnldsv/vueexample, un exemple d'application Nextcloud en Vue. Il explique que le templace HTML est juste un `div` vide, que Vue va utiliser pour le remplacer par son code. Il liste également tous les fichiers notables de l'application, ce qui serait intéressant de décortiquer.
-App development setup Ce post exprime la difficulté d'une personne à mettre en place son setup de développement Nextcloud. Il n'y a pas énormément d'informations qui pourront nous être utiles, mais il reste intéressant. Il y est d'ailleurs mentionné une série de vidéos tutoriel sur Nextcloud, mais elles sont en allemand.

Vidéos pertinentes

-Nextcloud App Entwicklung #1 - Entwicklungsumgebung Ces vidéos tutoriel en allemand ont l'air bien, mais malheureusement peu accessibles pour les non germanophones.
-[Tech Talk] Create your first Nextcloud-App @ DO !Hack 2017 Conférence en allemand sur la création d'application dans Nextcloud (27 minutes)
Working with Nextcloud's JavaScript APIs - Christoph Wurst Cette vidéo de 4 minutes, en anglais, parle de la toute récente API front-end de Nextcloud.

Fin de ce premier billet d'intégration.

Gravatar de genma
Original post of genma.Votez pour ce billet sur Planet Libre.

I'm richer than you! infinity loop