PROJET AUTOBLOG


Planet-Libre

source: Planet-Libre

⇐ retour index

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.

Journal du hacker : Liens intéressants Journal du hacker semaine #50

lundi 14 décembre 2020 à 00:01

Pour la 50ème semaine de l'année 2020, voici 15 liens intéressants que vous avez peut-être ratés, relayés par le Journal du hacker, votre source d’informations pour le Logiciel Libre francophone !

Pour ne plus rater aucun article de la communauté francophone, voici :

De plus le site web du Journal du hacker est « adaptatif (responsive) ». N’hésitez pas à le consulter depuis votre smartphone ou votre tablette !

Le Journal du hacker fonctionne de manière collaborative, grâce à la participation de ses membres. Rejoignez-nous pour proposer vos contenus à partager avec la communauté du Logiciel Libre francophone et faire connaître vos projets !

Et vous ? Qu’avez-vous pensé de ces articles ? N’hésitez pas à réagir directement dans les commentaires de l’article sur le Journal du hacker :)

Gravatar de Journal du hacker
Original post of Journal du hacker.Votez pour ce billet sur Planet Libre.

Articles similaires

Full Circle Magazine FR : Bonnes fêtes

samedi 12 décembre 2020 à 12:09

Bonjour à nos fidèles lecteurs et lectrices ! Notre petite équipe de traduction est fière de vous présenter le numéro 163, celui de novembre, en français. Comme toujours, il est disponible à la lecture et au téléchargement sur notre page NUMÉROS ou peut être récupéré directement en cliquant sur la photo de couverture ci-dessous.

Vous y trouverez les tutoriels familiers, Python, Podcasts et Inkscape, avec une présentation de MicroPad (voir photo). Outre les autres bonnes choses habituelles, il y a des critiques : celle de Xubuntu 20.10 (en gros, il n'y a aucun changement depuis la 20.04 LTS ! Pourquoi ? À vous de voir...) et celle du Kit de Raspberry Pi 400, où quasiment rien ne manque à part un écran. Avec une batterie sur USB, il peut même être mobile et pour un tout petit prix !

La troisième critique concerne deux jeux Open Source en 4X basés sur Master of Orion (1993) avec des graphismes époustouflants et une magnifique bande son. Free Orion n'est pas encore à la version 1.0 et Remnants of the Precursors est en version bêta, mais, d'après les développeurs, c'est pleinement jouable. Laissez vous tenter !

Bonne lecture et bonnes fêtes de fin d'année, malgré la pandémie. Surtout, restez en bonne santé !

Bab, scribeur et relecteur, d52fr, traducteur et relecteur, et moi-même, AuntieE, traductrice et relectrice

Gravatar de Full Circle Magazine FR
Original post of Full Circle Magazine FR.Votez pour ce billet sur Planet Libre.

Articles similaires

mart-e : Accéder à un système LUKS manuellement

samedi 12 décembre 2020 à 11:59

Après la mise à jour journalière de mon pc portable (sous Archlinux) et le redémarrage hebdomadaire, le drame : on entre le mot de passe de déchiffrement (LUKS) et…

_

Oui, juste « _ »

Pas d’erreur, rien.

_

Première étape : on augmente le loglevel et on retire le quiet dans la ligne de GRUB (voir CentOS / RHEL 6 : How to change the verbosity of debug logs during booting). De mon coté, le déchiffrement fonctionne (c’est-à-dire, il accède au contenu du disque et commence la procédure de boot) mais s’arrête abruptement sans plus d’info.

Ce que l’on peut voir avec loglevel supérieur

Pas des plus informatif sur la source du problème mais au moins, il arrive à démarrer (filmez votre écran et rejouez la vidéo en image par image).

Dans l’attente d’un message d’erreur lors du boot

Pas beaucoup d’info mais pas de stress, on crée un live USB (j’ai pris une clef USB Ubuntu, il n’est pas obligatoire d’utiliser le même OS que celui installé). On démarre et on lance un terminal:

$ sudo fdisk -l
..
Disk /dev/nvme0n1: 238.49 GiB, 256060514304 bytes, 500118192 sectors
Disk model: PC SN520 NVMe WDC 256GB
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: EECB8607-5D1A-4B49-BF5E-7D2012C5FB97
Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 411647 409600 200M EFI System
/dev/nvme0n1p2 411648 500118158 499706511 238.3G Linux filesystem

Voici mon disque, une partition boot, en clair, sur nvme0n1p1 et une partition chiffrée avec LUKS sur nvme0n1p2. On va donc les monter pour y accéder:

$ sudo mount /dev/nvme0n1p2 /mnt/
mount: /mnt: unknown filesystem type 'crypto_LUKS'.
$ sudo cryptsetup luksOpen /dev/nvme0n1p2 mydisk
Enter passphrase for /dev/nvme0n1p2: *****
$ sudo vgscan
Found volume group "MyVolGroup" using metadata type lvm2
$ ls /dev/mapper/
control mydisk MyVolGroup-root
$ sudo mount /dev/mapper/MyVolGroup-root /mnt/
$ sudo mount /dev/nvme0n1p1 /mnt/boot/
$ sudo mount -B /dev /mnt/dev
$ sudo mount -B /dev/pts /mnt/dev/pts
$ sudo mount -B /proc /mnt/proc
$ sudo mount -B /sys /mnt/sys
$ sudo mount -B /run /mnt/run
$ sudo cp /etc/resolv.conf /mnt/etc/resolv.conf

Toutes ces commandes me permettent d’avoir un système fonctionnel dans le dossier /mnt. La dernière commande permet d’avoir accès à internet lors du chroot.

$ sudo chroot /mnt
# pacman -Syu
…
-> Running build hook: [encrypt]
-> Running build hook: [lvm2]
-> Running build hook: [filesystems]
-> Running build hook: [keyboard]
-> Running build hook: [fsck]
==> Generating module dependencies
==> Creating gzip-compressed initcpio image: /boot/initramfs-linux-fallback.img
==> Image generation successful
(11/17) Reloading system bus configuration…
Running in chroot, ignoring command 'try-reload-or-restart'
(12/17) Probing GDK-Pixbuf loader modules…
(13/17) Probing 32-bit GDK-Pixbuf loader modules…
(14/17) Updating icon theme caches…
(15/17) Updating the info directory file…
(16/17) Updating the desktop file MIME type cache…
(17/17) Updating the MIME type database…

Dans mon cas, il s’agissait probablement d’une mise à jour corrompue. Donc, mettre à jour le système (avec une mise à jour du paquet linux en bonus) a réglé le souci. Si vous aviez un autre problème (GRUB mal installé par exemple), le chroot est également une bonne façon de procéder. Une fois les manipulations finies, on sort du chroot et on referme tous les disques.

# exit
ubuntu@ubuntu:~$ sudo umount /mnt/dev/pts
ubuntu@ubuntu:~$ sudo umount /mnt/dev/
ubuntu@ubuntu:~$ sudo umount /mnt/sys
ubuntu@ubuntu:~$ sudo umount /mnt/run
ubuntu@ubuntu:~$ sudo umount /mnt/proc
ubuntu@ubuntu:~$ sudo umount /mnt/boot
ubuntu@ubuntu:~$ sudo umount /mnt
ubuntu@ubuntu:~$ sudo cryptsetup close MyVolGroup-root
ubuntu@ubuntu:~$ sudo cryptsetup close mydisk
ubuntu@ubuntu:~$ sudo reboot

Et après un redémarrage et un peu de sueur froide, le système redémarre correctement !

 Limberger's Victory (cinema 1915)

Gravatar de mart-e
Original post of mart-e.Votez pour ce billet sur Planet Libre.