Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 26/11/2017, à 20:50

punk7as7fck

Portabilité Raccourcis claviers Xfce

Salut à tous,

Je suis nouveau sur leforum.

J'ai fait 1 script qui génére un fichier texte des raccourcis claviers modifiés dans xfconf(format xml).

Si ça intéresse, je peux le poster dans ce message.

Une petite Démo smile  :
184Capture_d_cran_tn.jpg

Dernière modification par punk7as7fck (Le 27/11/2017, à 06:27)

Hors ligne

#2 Le 28/11/2017, à 01:07

punk7as7fck

Re : Portabilité Raccourcis claviers Xfce

Bon ya pas eu de retours mais je partage,ça peut servir smile
À rendre éxécutable ensuite avec:

chmod +x <nom donné au script>
#!/bin/bash
#Do not execute in root,unless you know what you doin'!!!
set -e #Stops script if error occurs

rep_actif=~/.cache/raccourcis_xfconf_personalisés
file_parsed="$rep_actif/xfconf_custom_commands_key_shortcuts.txt"
actual_file="$rep_actif/raccourcis personalisés.txt"
i=1 #initiate while loop & line number

if ! test -d $rep_actif
 then
     echo "Création de: $rep_actif"
     mkdir $rep_actif
fi

echo "Création fichier: $file_parsed"
xfconf-query -c xfce4-keyboard-shortcuts -l | grep /commands/custom/ >"$file_parsed"
total_lines=$(wc -l "$file_parsed" | cut -d/ -f1)

function put_shortcuts_and_spaces_in_line {
echo -n "$(cut -d/ -f4 <<< "$line_parsed")                              "
}

# Backup old shortcuts
if test -e "$actual_file"
 then
     echo "~Sauvegarde des précédents raccourcis de commandes.."
     cp --backup=numbered -v "$actual_file" "$actual_file.saved"
     rm -v "$actual_file"
 elif ! test -e "$actual_file"
  then
      echo "Création de: $actual_file"
fi

echo \
"Raccourci modifié                   | Action
_____________________________________________" >"$actual_file"

# Text parsing
while [ $i -le $total_lines ]; do #Loop 1 per 1 line
  line_parsed="$(sed -n ${i}p "$file_parsed")" #Copy line from file to var
  put_shortcuts_and_spaces_in_line >>"$actual_file" #Put shortcut + [space] in file
  xfconf-query -c xfce4-keyboard-shortcuts -p "$line_parsed" >>"$actual_file" #Put commands next to shortcuts in file
  i=$(($i+1))
done

#The Finish
echo "Ça c'est bien passé :)" | grep . --color=always
echo "Voulez-vous voir les raccourcis maintenant?
[Appuyer] pour continuer, [Ctrl-[c] pour annuler" | grep . --color=always
read

echo "###Début du fihier"
cat -n  "$actual_file"
echo "###Fin du fichier"











#Note: For text processing,i tried to use the buffer instead of a file but it couldn't past 5 shortcuts.
#while [ $i -le $END ]; do
#	get_xfce_keyboard_shortcuts | grep "/commands/custom/" | grep -n $i #>>"$file"
#    echo $i
#    i=$(($i+1))
#done

Hors ligne

#3 Le 28/11/2017, à 01:25

Watael

Re : Portabilité Raccourcis claviers Xfce

salut,

bah, on aurait préféré ne pas voir ça. hmm

si tu veux lire un fichier ligne par ligne :

while read line; do : what ever you want with "$line"; done

je n'utilise pas xfce4, donc je ne peux t'en dire plus.
est-ce que ce ne serait pas possible de pondre une ligne sed qui effectuerait la modification de la commande xfconf-query en la redirigeant vers le fichier de conf voulu ?

donc, pour aller plus loin, il faut fournir un échantillon de la sortie de la commande à traiter, et le résultat correspondant attendu.

EDIT: ah, j'ai trouvé un XFCE !

while read line
do
    echo "${line##*/} $(xfconf-query -c xfce4-keyboard-shortcuts -p "$line")"
done < <(xfconf-query -c xfce4-keyboard-shortcuts -l) >"$fichierConf"

et c'est tout !!!

Dernière modification par Watael (Le 28/11/2017, à 01:48)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#4 Le 28/11/2017, à 01:49

punk7as7fck

Re : Portabilité Raccourcis claviers Xfce

Salut, 

Watael a écrit :

bah, on aurait préféré ne pas voir ça. hmm

Où là làa. big_smile

Watael a écrit :

Est-ce que ce ne serait pas possible de pondre une ligne sed qui effectuerait la modification de la commande xfconf-query en la redirigeant vers le fichier de conf voulu ?

Je..ne sais pas..j'ai utilisé sed comme je pouvais.

Watael a écrit :

donc, pour aller plus loin, il faut fournir un échantillon de la sortie de la commande à traiter, et le résultat correspondant attendu.

Le résultat attendu tu peux le voir dans la capture d'écran.

Ton script est le bienvenu smile

Hors ligne

#5 Le 28/11/2017, à 02:28

Watael

Re : Portabilité Raccourcis claviers Xfce

j'ai édité mon message pour y ajouter un script pendant que tu écrivais le tien.


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#6 Le 28/11/2017, à 03:26

punk7as7fck

Re : Portabilité Raccourcis claviers Xfce

Oui, j'avais remarqué.
Maintenant tu peux aussi poster un nouveau script complet en rajoutant ta modification smile

Hors ligne

#7 Le 28/11/2017, à 04:23

MicP

Re : Portabilité Raccourcis claviers Xfce

Comme il s'agit d'un script, je me suis dit que
l'utilisation des options longues pourrait être plus sympa à lire.

J'ai aussi remplaçé la commande grep par l'utilisation de l'option property
et fait afficher l'action associée au raccourci en utilisant l'option verbose

Ci dessous, le retour de la commande modifiée
entrée sur ma machine qui utilise l'environnement de bureau XFCE 4.10
sur un système debian 8 (jessie)

(J'ai inséré un espace insécable (U+A0) entre les mots Raccourci et modifié)

michel@debg53sw:~$ (echo -e "Raccourci modifié Action\n───────────────── ──────\n";xfconf-query --verbose --list --channel xfce4-keyboard-shortcuts --property "/commands/custom") | sed -e 's/[ ][ ]*/;/;s|/commands/custom/||' | column -s";" -t
Raccourci modifié                    Action
─────────────────                    ──────
<Alt>F1                              xfce4-popup-applicationsmenu
<Alt>F2                              xfce4-appfinder --collapsed
<Alt>F3                              xfce4-appfinder
override                             true
<Primary><Alt>agrave/startup-notify  true
<Primary><Alt>Delete                 xflock4
<Primary><Alt>t                      exo-open --launch TerminalEmulator
<Primary>Escape                      xfdesktop --menu
<Super>p                             xfce4-display-settings --minimal
XF86Display                          xfce4-display-settings --minimal
XF86Mail                             exo-open --launch MailReader
XF86WWW                              exo-open --launch WebBrowser
michel@debg53sw:~$ 

=======
Je suis certain qu'on peut faire beaucoup mieux que mon bricolage.

Dernière modification par MicP (Le 28/11/2017, à 06:20)

Hors ligne

#8 Le 28/11/2017, à 07:55

punk7as7fck

Re : Portabilité Raccourcis claviers Xfce

Ça fait plaisir de voir d'autres contributeurs smile

MicP a écrit :

Comme il s'agit d'un script, je me suis dit que
l'utilisation des options longues pourrait être plus sympa à lire.

Oui, je pense aussi.

T'as un peu dévié le sujet mais t'apporte aussi de nouveaux éléments utiles:

"Portabilité Raccourcis claviers Xfce" : Car le programme exporte les raccourcis modifiés dans un fichier texte, réutilisable par exemple dans un autre DE pour les restaurer.


MicP a écrit :

(J'ai inséré un espace insécable (U+A0) entre les mots Raccourci et modifié)

Pourquoi? On copie-colle et:

social@mx1:~
$  (echo -e "Raccourci modifié Action\n───────────────── ──────\n";xfconf-query --verbose --list --channel xfce4-keyboard-shortcuts --property "/commands/custom") | sed -e 's/[ ][ ]*/;/;s|/commands/custom/||' | column -s";" -t
Raccourci             modifié Action
─────────────────     ──────
<Alt>F1               xdg-open /usr/local/share/doc/mxum.html
<Alt>F2               xfce4-appfinder --collapsed
<Alt>F3               xfce4-appfinder
F4                    xfce4-terminal --hide-menubar --hide-borders --drop-down
override              true
<Primary><Alt>Delete  xflock4
<Primary><Alt>Escape  xkill
<Primary>Escape       xfdesktop --menu
Print                 xfce4-screenshooter
Super_L               xfce4-popup-whiskermenu
<Super>p              xfce4-display-settings --minimal
XF86Display           xfce4-display-settings --minimal
XF86Mail              exo-open --launch MailReader
XF86WWW               exo-open --launch WebBrowser
social@mx1:~
$ 

Hors ligne

#9 Le 28/11/2017, à 10:13

MicP

Re : Portabilité Raccourcis claviers Xfce

MicP a écrit :

(J'ai inséré un espace insécable (U+A0) entre les mots Raccourci et modifié)

Pourquoi? On copie-colle et:

Le caractère espace insécable n'est pas affichable sur ce forum
et comme tu peux le constater dans le retour de la commande,
le mot modifié a été déplacé dans le deuxième champ
car il était séparé par un caractère espace dans la copie avant collage
de la ligne de commande que tu as lancée.

Et puis c'est surtout qu'étant très très nettement moins compétent que d'autres (comme Watael)
je n'ai pas sû trouver la bonne expression rationnelle à utiliser dans la commande sed.

=======
Pour remplacer le caractère espace qui est entre les mots Raccourci et modifié
par un caractère espace insécable
il est possible d'utiliser le raccourci clavier Ctrl+maj+u
   => un petit caractère u souligné s'affiche alors, indiquant qu'on peut maintenant
     entrer le point de code unicode du caractère que l'on veut voir s'afficher,
     et qui est, pour le caractère espace insécable :
     a0 (<=> lettre a suivie du chiffre zéro)

=======
Avec ma configuration clavier Français (variante),
je peux aussi entrer ce caractère espace insécable plus simplement :
en utilisant le raccourci clavier : AltGr+maj+Espace

Dernière modification par MicP (Le 28/11/2017, à 11:54)

Hors ligne

#10 Le 28/11/2017, à 15:46

punk7as7fck

Re : Portabilité Raccourcis claviers Xfce

MicP a écrit :

Et puis c'est surtout qu'étant très très nettement moins compétent que d'autres (comme Watael)

Tu te débrouille bien quand même.

MicP a écrit :

Pour remplacer le caractère espace qui est entre les mots Raccourci et modifié
par un caractère espace insécable [...]

Ok,toutefois cette manipulation de raccourcis clavier est moins pratique que lancer le script directement.

Hors ligne

#11 Le 28/11/2017, à 16:33

MicP

Re : Portabilité Raccourcis claviers Xfce

…Tu te débrouille bien quand même. …

C'est sympa, mais quand je me compare à certains, vraiment, je me dis que je suis encore très loin de ce qu'il faudrait : au moins les regex, mais bon, en ce moment, j'ai d'autres priorités qui me prennent bien la tête.

…cette manipulation de raccourcis clavier est moins pratique que lancer le script directement. …

Oui, j'indique les différentes façons d'entrer le caractère espace insécable lors de la rédaction du script, après, plus besoin du raccourci.
Là, j'ai directement utilisé la ligne de commandes pour montrer ce qu'on pouvait faire,
mais je serais pas étonné qu'avec quelques commandes dans awk,
on puisse faire bien plus simple qu'en utilisant les deux commandes sed et column

Dernière modification par MicP (Le 28/11/2017, à 16:34)

Hors ligne

#12 Le 29/11/2017, à 14:32

punk7as7fck

Re : Portabilité Raccourcis claviers Xfce

@MicP : On pourrait améliorer ta commande en simulant le caractère espace insécable avec xdotool, il me semble, comme ça l'utilisateur n'aurai pas besoin de le rajouter.
L'inconvenient c'est que ça ralentirait le script.

Hors ligne

#13 Le 29/11/2017, à 23:42

MicP

Re : Portabilité Raccourcis claviers Xfce

Ou alors, si tu as vraiment la flemme d'utiliser un raccourci clavier,
tu remplace :

Raccourci modifié

par :

Raccourci_modifié

Dernière modification par MicP (Le 29/11/2017, à 23:43)

Hors ligne