bannière du site

Framadsense : la pub utile !

Rédigé par sogal Aucun commentaire
J'ai cru à un bon gros poisson d'avril (et ça ne m'aurait pas étonné plus que ça), mais non, ils l'ont fait pour de vrai : Framasoft lance son alternative à la régie publicitaire type Gougoule AdSense.

Mais vous vous en doutez, il n'est pas question de faire de la pub pour des chaussures, des tondeuses ou autres cochonneries, mais dans le but de promouvoir des logiciels et projets libres !
En fonction de l'origine du visiteur (le « referer » transmis par le navigateur Web), la pub affichée sera différente.

C'est tout simplement brillant, aussi c'est avec un très grand plaisir que j'ai installé de la pub sur ce blog ! Vous pouvez voir ça dans la barre latérale à droite, en bas.

Merci Framasoft !
Classé dans : Non classé Mots clés : libre

Écouter sa musique avec mpd et ncmpcpp et être notifié dans Gnome

Rédigé par mistervolt Aucun commentaire

Note : cet article est un repost sur mon blog de celui que j'ai écrit pour Alionet, la communauté openSUSE francophone.

Dans cet article, je vous propose de découvrir ou redécouvrir un trio de logiciels qui va bien pour gérer sa musique : mpd (un démon lecteur de musique en mode serveur), mpc (un client en CLI) et ncmpcpp (un client évolué en ncurses écrit en C++), configurer leurs raccourcis clavier et obtenir des notifications intégrées à notre environnement de bureau :

Ces deux paquets sont disponibles dans le dépôt Packman pour openSUSE :

zypper ar -f http://packman.inode.at/suse/openSUSE_Leap_42.2 Packman
zypper install mpd mpclient ncmpcpp

Ou pour Debian :

apt-get install mpd mpc ncmpcpp

Note: le nom d'utilisateur dans les fichiers qui suivent, ici sogal, est bien entendu à adapter !
Configuration du serveur de musique mpd :

Nous allons nous inspirer de la configuration proposée en exemple :

mkdir ~/.config/mpd
mkdir ~/.config/mpd/playlists
# Sous openSUSE :
cp /usr/share/doc/packages/mpd/mpdconf.example ~/.config/mpd/mpd.conf
vim ~/.config/mpd/mpd.conf
# Sous Debian :
cp /usr/share/doc/mpd/mpdconf.example.gz ~
gunzip mpdconf.example.gz
mv mpdconf.example ~/.config/mpd/mpd.conf
vim ~/.config/mpd/mpd.conf

Voici, pour exemple, les passages de ma configuration :

grep -v "^#|^$" ~/.config/mpd/mpd.conf
music_directory         "/path/to/music"
playlist_directory              "~/.config/mpd/playlists"
db_file                 "~/.config/mpd/mpd.db"
log_file                        "~/.config/mpd/log"
pid_file                        "~/.config/mpd/mpd.pid"
state_file                      "~/.config/mpd/mpdstate"
sticker_file                    "~/.config/mpd/sticker.sql"
user                            "sogal"
bind_to_address         "localhost"
port                            "6600"
log_level                       "default"
restore_paused "yes"
input {
        plugin "curl"
}
audio_output {
        type            "pulse"
        name            "Pulse MPD Output"
}
audio_output {
    type        "fifo"
    name        "mpd_fifo"
    path        "/tmp/mpd.fifo"
    format      "44100:16:2"
}
filesystem_charset              "UTF-8"

Il est surtout important de bien configurer l'emplacement de vos fichiers audio ainsi que la sortie sonore.
Ici j'utilise Pulseaudio mais la configuration inclus un modèle pour une sortie avec ALSA seul.
J'ai ajouté une sortie vers un fifo qui nous servira avec ncmpcpp pour activer le visualiseur graphique (oui, oui dans un terminal !).

Activer mpd en tant que service systemd en espace utilisateur :

Nous allons configurer le serveur de musique mpd en tant que service systemd en espace utilisateur.
De la sorte, mpd démarrera avec votre session.

mkdir -p ~/.config/systemd/user
cp /usr/lib/systemd/system/mpd.service ~/.config/systemd/user
vim ~/.config/systemd/user/mpd.service
[Unit]
Description=Music Player Daemon

[Service]
ExecStart=/usr/bin/mpd --no-daemon /home/sogal/.config/mpd/mpd.conf
ExecStop=/usr/bin/mpd --kill
PIDFile=/home/sogal/.config/mpd/mpd.pid

[Install]
WantedBy=default.target

Il est nécessaire de mettre les chemins absolus dans ce fichier.

Puis nous démarrons et activons le service :

systemctl --user start mpd
systemctl --user enable mpd

Note : sous Debian, le service système est activé par défaut après installation. Vous pouvez faire le choix d'utiliser ce dernier ou bien un service en environnement utilisateur comme présenté ici. Dans ce cas, il faut désactiver le service système ou préciser un autre port.

Configuration de ncmpcpp :

mkdir ~/.ncmpcpp
cp /usr/share/doc/packages/ncmpcpp/config ~/.ncmpcpp/
vim ~/.ncmpcpp/config
# Sous Debian :
mkdir ~/.ncmpcpp
cp /usr/share/doc/ncmpcpp/examples/config.gz ~
gunzip config.gz
mv config ~/.ncmpcpp/
vim ~/.ncmpcpp/config

Je vous propose à nouveau ma configuration :

grep -v "^#|^$" ~/.ncmpcpp/config
ncmpcpp_directory = ~/.ncmpcpp
lyrics_directory = ~/.ncmpcpp/lyrics
mpd_host = localhost
mpd_port = 6600
mpd_connection_timeout = 5
mpd_music_dir = /path/to/music
mpd_crossfade_time = 5
visualizer_fifo_path = /tmp/mpd.fifo
visualizer_output_name = mpd_fifo
visualizer_in_stereo = yes
visualizer_sync_interval = 30
visualizer_type = ellipse
visualizer_look = ▮●
visualizer_color = 41, 83, 119, 155, 185, 215, 209, 203, 197, 161
system_encoding = "UTF-8"
playlist_disable_highlight_delay = 5
message_delay_time = 5
song_list_format = {%a - }{%t}|{$8%f$9}$R{$3(%l)$9}
song_status_format = {{%a{ "%b"{ (%y)}} - }{%t}}|{%f}
song_library_format = {%n - }{%t}|{%f}
alternative_header_first_line_format = $b$1$aqqu$/a$9 {%t}|{%f} $1$atqq$/a$9$/b
alternative_header_second_line_format = {{$4$b%a$/b$9}{ - $7%b$9}{ ($4%y$9)}}|{%D}
now_playing_prefix = $b
now_playing_suffix = $/b
song_window_title_format = {%a - }{%t}|{%f}
browser_sort_mode = name
browser_sort_format = {%a - }{%t}|{%f} {(%l)}
song_columns_list_format = (20)[]{a} (6f)[green]{NE} (50)[white]{t|f:Title} (20)[cyan]{b} (7f)[magenta]{l}
playlist_show_mpd_host = no
playlist_show_remaining_time = yes
playlist_shorten_total_times = no
playlist_separate_albums = no
playlist_display_mode = columns
browser_display_mode = classic
search_engine_display_mode = classic
playlist_editor_display_mode = classic
incremental_seeking = yes
seek_time = 1
volume_change_step = 2
autocenter_mode = yes
centered_cursor = yes
progressbar_look = =>
default_place_to_search_in = database
user_interface = alternative
media_library_primary_tag = genre
default_find_mode = wrapped
header_visibility = yes
statusbar_visibility = yes
titles_visibility = yes
header_text_scrolling = yes
cyclic_scrolling = yes
lines_scrolled = 2
follow_now_playing_lyrics = yes
fetch_lyrics_for_current_song_in_background = yes
store_lyrics_in_song_dir = yes
allow_for_physical_item_deletion = no
screen_switcher_mode = browser, media_library, visualizer
startup_screen = playlist
startup_slave_screen = "visualizer"
startup_slave_screen_focus = no
locked_screen_width_part = 50
jump_to_now_playing_song_at_start = yes
ask_before_clearing_playlists = yes
clock_display_seconds = no
display_volume_level = yes
display_bitrate = no
display_remaining_time = yes
ignore_leading_the = no
mouse_support = yes
enable_window_title = yes
external_editor = vim
use_console_editor = yes
colors_enabled = yes

Ceci me permettra d'obtenir un écran partagé avec, par défaut, l'affichage de ma bibliothèque musicale et du visualiseur.
Si vous ne voulez pas d'écran partagé, commentez les paramètres relatifs au slave_screen.
Chez moi, ça donne ça :

Quelques raccourcis pour bien démarrer :
- F1 : afficher l'aide ;
- 1 : playlist ;
- 2 : navigateur par dossiers ;
- 3 : moteur de recherche ;
- 4 : audiothèque (vue en panneaux) ;
- 5 : éditeur de playlists ;
- 6 : éditeur de tags ;
- 8 : visualiseur ;
- p : mettre en pause ;
- a : ajouter la sélection à la playlist.

Exemple de création d'un raccourci clavier pour mpc sous Gnome :

Par défaut, la touche p met ncmpcpp en pause. Mais si l'on n'est pas devant, comment faire ?
C'est là que mpc (du paquet mpclient sous openSUSE et mpc sous Debian) est intéressant.
Nous allons créer des raccourcis clavier destiné à mettre mpd en pause. Pour cela, ouvrons les préfèrences système puis Clavier et Raccourcis personnalisés et en créer 3 nouveaux :

- MPD Pause : commande mpc toggle ;
- MPD Précédent : commande mpc prev ;
- MPD Suivant : commande mpc next

Vous pouvez affecter les touches que vous voulez, sur une machine j'ai mis Ctrl + Alt + Z, sur une autre j'ai réaffecter les touches multimédias.

Notifications dans Gnome Shell :

Pour être notifié des changements de chansons dans gnome-shell, il faut passer un nouveau paramètre de configuration dans ncmpcpp :

execute_on_song_change = 

Je vous propose 2 méthodes :

Méthode notify-send :
Nous allons utiliser la commande notify-send (du paquet libnotify-bin sous Debian, installé par défaut sous ma openSUSE) :

execute_on_song_change = "notify-send --hint=int:transient:1 -t 2 -i $HOME/path/to/icon "Music Player Daemon" "$(ncmpcpp -c ~/.ncmpcpp/config --current-song "%a - %t (%b)" 2>/dev/null)"" 

Note : --hint=int:transient:1 permet que les notifications ne se stockent pas dans le centre de notification et l'option -i prend un chemin vers une icône en paramètre.

Ainsi vous avez de jolies notifications, non persistentes. Le seul inconvénient c'est qu'elles se stockent sur l'écran de verrouillage et affichent "notify-send" au lieu de "Music Player Demon".

Méthode script python :
Pour pallier ça, je vous propose un petit script python, qui utilise deux bibliothèques très pratiques :

- python-notify2
- python-mpd2

# Sous openSUSE :
zypper in python-notify2
#Sous Debian :
apt-get install python-notify2
pip3 install python-mpd2

Et voici le script (je l'ai mis dans mon $HOME/bin) :

#!/usr/bin/python3
# -*- coding: utf-8 -*-

import gi
gi.require_version('Notify', '0.7')
from gi.repository import Notify
from gi.repository import GLib
from mpd import MPDClient

client = MPDClient()
client.timeout = 10
client.idletimeout = None
client.connect("localhost", 6600)

mpd_song = MPDClient.currentsong(client)

s_artist = mpd_song['artist']
s_title = mpd_song['title']
s_album = mpd_song['album']

s_notification = s_artist + " - " + s_title + " - (" + s_album +")"

Notify.init("Music Player Demon")
show_song = Notify.Notification.new("Music Player Demon", s_notification,
                                    icon="/home/sogal/.icons/Vivacious-Colors/apps/scalable/deadbeef.svg")

show_song.set_hint("transient", GLib.Variant.new_boolean(True))

show_song.show()

Puis ajoutez ceci à la config de ncmpcpp :

execute_on_song_change = "/usr/bin/python3 /home/$USER/bin/script_notif.py"

Et voilà, j'espère que cet article vous sera utile et que vous prendrez plaisir à gérer votre musique avec ces outils, notamment ncmpcpp qui est très puissant en terme de possibilité d'affichages différents, de recherche et d'édition (tags) de votre audiothèque.
Cet article n'est destiné qu'à vous permettre de découvrir et à vous aider à démarrer, je vous conseille de lire tout de même les pages de manuel de ces outils ou les commentaires inclus dans les fichiers de configuration, très simples à comprendre, pour ajuster tout ça aux petits oignons !

Enjoy !

Pense-bête : petit ajustement pour utilisation d'un casque audio Bluetooth

Rédigé par mistervolt Aucun commentaire

J'ai reçu en cadeau un casque audio sans fil (bluetooth), accessoire fort pratique pour continuer à écouter sa musique quand on s'éloigne 5 min de son bureau.
J'ai eu quelque soucis mineurs pour l'utiliser et il a fallu que je procède à quelques réglages que je remets ici pour mémoire et en me disant que ça pourrait profiter à d'autres.

Installer le support bluetooth pour pulseaudio si nécessaire :

apt install pulseaudio-module-bluetooth

Après ça mon casque était reconnu et je pouvais y envoyer le son mais j'avais des coupures de son voire des déconnexions avec des messages comme ça dans /var/log/syslog :

Oct 20 14:27:44 machine bluetoothd[1641]: No cache for 04:FE:A1:00:09:07
Oct 20 14:27:45 machine bluetoothd[1641]: Device is already marked as connected

Pour résoudre ça, éditer le fichier /etc/pulse/default.pa et commenter la ligne :

load-module module-bluetooth-discover

Puis éditer le fichier /usr/bin/start-pulseaudio-x11 et après les lignes :

   if [ x”$SESSION_MANAGER” != x ] ; then
        /usr/bin/pactl load-module module-x11-xsmp “display=$DISPLAY session_manager=$SESSION_MANAGER” > /dev/null
    fi

ajouter ceci :

    /usr/bin/pactl load-module module-bluetooth-discover

Enfin dans le fichier /etc/bluetooth/main.conf, changer:

ControllerMode = dual

en :

ControllerMode = bredr

Après redémarrage plus de soucis de déconnexion et un son nickel.
Lors des démarrages suivants le casque est automatiquement détecté et connecté (s'il est allumé bien sûr) et le son y est correctement redirigé aussi.

Feed Reader : un bon lecteur de flux local pour compte en ligne

Rédigé par mistervolt Aucun commentaire

FeedReader est un excellent client local de flux RSS. Contrairement à Liferea qui récupère directement le contenu des flux, FeedReader se connecte à un compte sur un service d'agrégateur de flux.
C'est intéressant dans le cadre de l'auto-hébergement si on utilise un des modules d'ownCloud/Nextcloud : News puisque vous pouvez alors vous connectez directement à votre propre serveur et conserver les mêmes flux synchronisés entre différentes machines, en ajouter, en supprimer.

Je ne reviendrai pas sur l'intérêt d'utiliser un client 100% local à la Liferea ou une solution auto-hébergée + FeedReader comparativement à des services en lignes comme NetVibes ou feedly, il est simple : ça évite d'avoir votre adresse mail, vos nom et localisation associés à la liste de votre principaux centres d'intérêts (ben oui, on suit les flux de ce qui nous intéresse en général !) vendus à des sociétés publicitaires.

De plus l'interface est claire et agréable, le CSS utilisé pour restituer les articles rendant ces derniers particulièrement lisibles.

Il dispose de fonctionnalités simples mais intéressantes et qui fonctionnent (!) comme la possibilité de taguer les articles, de les mettre en favoris ou encore de faire des recherches dans tous vos flux sur la base du titre ou du contenu d'un article, très pratique !

Bref, je n'ai jamais été aussi assidu dans la gestion et la lecture de mes flux que depuis que je l'ai adopté, aussi je vous le recommande.
Pour les collègues que ça intéresse vraiment, je suis prêt à fournir un compte sur mon serveur Nextcloud (avec News évidemment), il suffit de me contacter par courriel.

Classé dans : Non classé Mots clés : rss, libre

Tester Gimp 2.9.5 avec Flatpak

Rédigé par mistervolt Aucun commentaire

Flatpak (anciennement xdg-app), tout comme AppImage, est une solution visant à simplifier et uniformiser l'installation d'applications sur différentes distributions GNU/Linux.
Le but est de fournir un espace cloisonné (sandbox) dans lequel s'exécute l'application, c'est une forme de virtualisation mais d'application uniquement et non d'un système complet.
Cela permet donc aux utilisateurs curieux de tester les dernières versions de leurs logiciels favoris sans avoir à les compiler, ni à se soucier des dépendances.

Installation de Flatpak :

Voyons comment installer ça :

Sous Debian (disponible à partir de Stretch, je n'ai pas testé) :

apt install flatpak

Sous Fedora (OS sur lequel j'ai testé) :

dnf install flatpak

Configuration :

Nous ajoutons ensuite les dépôts depuis lesquels nous allons par la suite installer le runtime (un environnement d'exécution virtualisé) :

wget https://sdk.gnome.org/keys/gnome-sdk.gpg                      
flatpak remote-add --gpg-import=gnome-sdk.gpg gnome https://sdk.gnome.org/repo/
flatpak remote-add --gpg-import=gnome-sdk.gpg gnome-apps https://sdk.gnome.org/repo-apps/

Puis installation de la plateforme, ici celle de Gnome 3.20 puisque c'est une application GTK que je souhaite installer.
J'en profite pour traduire (et résumer) 2 passages de la F.A.Q. qui rassureront ceux qui n'utilisent ni Gnome comme environnement de travail, ni Fedora comme OS :

Flatpak est-il lié à Gnome ?

Non. Bien que Flatpak ait été développé par des gens impliqués depuis longtemps dans la communauté Gnome, il n'est lié à aucun environnement de bureau. En réalité, il a été conçu avec pour objectif clair de permettre la construction d'applications utilisant n'importe quel base de bibliothèques ou langage de programmation souhaités par l'auteur.
Flatpak est-il lié à Fedora ?

Non. Les développeurs ont une expérience de Fedora [...] mais Flatpak a été développé de manière à faire abstraction de la distribution et à se déployer sur n'importe quel système GNU/Linux disponible. Nous avons pris contact et discuté avec des représentants d'autres distributions très tôt dans le projet.

Installer une application :

Assez de blabla, on installe Gimp !

flatpak install gnome org.gnome.Platform 3.20

Passons maintenant à ce qui nous intéresse vraiment : l'installation des applications !
Dans cet exemple, nous allons installer Gimp dans sa version de développement "Nightly" et donc ajouter le dépôt "Nightly graphics" et sa clé :

wget http://209.132.179.2/keys/nightly.gpg                         
flatpak remote-add --gpg-import=nightly.gpg nightly-graphics http://209.132.179.2/repo/

Pour voir ce que contient ce dépôt :

flatpak remote-ls nightly-graphics --app
net.scribus.ScribusDevel
org.darktable.DarktableDevel
org.gimp.GimpDevel
org.gimp.GimpDevelGtk3
org.inkscape.InkscapeDevel
org.mypaint.MypaintDevel
org.telegram.TelegramDesktopDevel

Il contient quelques applications qui intéresseront les graphistes !

Installons donc Gimp :

flatpak install nightly-graphics org.gimp.GimpDevel master

Et enfin, nous pouvons en profiter :

flatpak run org.gimp.GimpDevel

Pour les utilisateurs de Gnome (et possiblement d'autres DE mais je n'ai pas testé), l'application est même ajoutée au menu des applis. Je peux donc avoir simultanément ma version stable de Gimp (à droite) et celle de développement (à gauche) sans avoir recours à une VM ni un chroot "classique" !

Fil RSS des articles de ce mot clé