• [^] # reverse: Xorg ou Kwin : framebuffer. xcalib, KDE, Kmail, man ou régression de code (dimanche)

    Posté par . En réponse au message kmail*reverseVideo: on ou comment afficher kmail en vidéo inversée ?. Évalué à -4.

    Sommaire

    [ http://linuxfr.org/autosatisfaction-réCURSIVE ]

    exemple d'un code couleur visible à l'écran
    https://twitter.com/PoliceNationale/status/1434120402104692739

    en couleurs inversées (voir le message précédent pour savoir comment procéder de façon simple avec une console, quand on ne sait pas attribuer un raccourcis clavier en mode console, par exemple depuis un shell csh en TTY, ou parce qu'on a d'autres priorités)
    $ xcalib -invert -alter

    les couleurs sont effectivement inversées et il faut mentalement faire cette distinction
    ce qui n'est pas extraordinaire, mais demande toujours un effort de plus, là où l'objectif est la simplification pour transformer un calvaire en efficacité
    si je tweete en mentionnant les codes couleurs pour qui ne voit pas l'image, le risque d'erreur judiciaire est accru ! #legaltech

    $ xcalib -invert -alter
    est donc nécessaire à nouveau pour revenir à l'état naturel

    on retrouve la même problématique ici pour l'attribution d'un raccourcis clavier à une commande concernant l'affichage (qui peut s'avérer utile si on se retrouve en noir sur noir ou blanc sur blanc, à moins de réaliser mentalement les opérations à effectuer, ce que fait font parfois les handicapés confrontés à des bugs dits mineurs)
    https://qastack.fr/ubuntu/326282/how-to-link-a-custom-keyboard-shortcut-to-a-bash-script-in-ubuntu-13-04
    la page fournit une méthode pour l'exemple de la commande
    $ xbacklight -inc / -dec 10
    https://qastack.fr/ubuntu/137117/how-do-i-launch-a-bash-script-using-a-keyboard-shortcut
    la page https://qastack.fr E404 étant soit en rtavaux soit en mode regression... on peut imaginer ceci fourni par l'excellent unix.stackexchange.com :
    https://unix.stackexchange.com/questions/171430/how-to-get-a-list-of-tcsh-shortcuts
    % bindkey
    pour découvrir la possibilité de raccourcis en mode console
    ou même
    https://wiki.archlinux.org/title/Keyboard_shortcuts_(Fran%C3%A7ais)
    (ni en anglais, ni en ubuntu, mais avec une documentation exceptionnelle)
    qu'il est possible d'attribuer des raccourcis claviers au plus bas niveau, celui du noyau.
    "
    Si la sortie de cette commande est:

    CONFIG_MAGIC_SYSRQ=y
    l'option existe, sinon, vous êtes bon pour une recompilation du noyau en l'activant.
    "
    

    Excellent moyen de découvrir les joies de la compilation lorsqu'on a un travail critique et urgent à boucler. (mais pourquoi ce type a viré cette fonction du noyau standard !)

    par curiosité, j'obtiens ceci :

    dog /proc/sys/kernel/sysrq

    bash: dog : commande introuvable
    root@atilde:/home/a# cat /proc/sys/kernel/sysrq
    438

    https://qastack.fr/ubuntu/147128/change-default-tty-shortcut
    propose sa solution
    "
    Vous pouvez utiliser bindpour lier une clé à une fonction. Voici ce que j'ai fait:

    bind '"\ea": ". ~/newScript.sh\n" '
    "
    

    et renvoie vers
    https://www.techrepublic.com/article/find-and-bind-key-sequences-in-bash/
    "
    The next step is to bind that key sequence to a particular shell command. For example, you can bind [F12] to the "history-search-backward" shell command:

    $ bind '"\e[24~": history-search-backward'
    "
    

    qui renvoie vers..

    (là vraiment on se dirait dans le cercle infernal de l'administration insaisissable, pour ceux qui ont déjà tenté d'obtenir un service de la justice par exemple, biais que les #legaltech devraient limiter)

    un fichier de configuration /etc présent depuis le début sur notre système de base disponible en init 1 :
    \o/
    $ cat /etc/inputrc
    # /etc/inputrc - global inputrc for libreadline
    # See readline(3readline) and `info rluserman' for more information.

    # Be 8 bit clean.
    set input-meta on
    set output-meta on
    # To allow the use of 8bit-characters like the german umlauts, uncomment
    # the line below. However this makes the meta key not work as a meta key,
    # which is annoying to those which don't need to type in 8-bit characters.
    # set convert-meta off
    # try to enable the application keypad when it is called. Some systems
    # need this to enable the arrow keys.
    # set enable-keypad on
    # see /usr/share/doc/bash/inputrc.arrows for other codes of arrow keys
    # do not bell on tab-completion
    # set bell-style none
    # set bell-style visible
    # some defaults / modifications for the emacs mode
    $if mode=emacs
    # allow the use of the Home/End keys
    "\e[1~": beginning-of-line
    "\e[4~": end-of-line
    # allow the use of the Delete/Insert keys
    "\e[3~": delete-char
    "\e[2~": quoted-insert
    # mappings for "page up" and "page down" to step to the beginning/end
    # of the history
    # "\e[5~": beginning-of-history
    # "\e[6~": end-of-history
    # alternate mappings for "page up" and "page down" to search the history
    # "\e[5~": history-search-backward
    # "\e[6~": history-search-forward
    # mappings for Ctrl-left-arrow and Ctrl-right-arrow for word moving
    "\e[1;5C": forward-word
    "\e[1;5D": backward-word
    "\e[5C": forward-word
    "\e[5D": backward-word
    "\e\e[C": forward-word
    "\e\e[D": backward-word
    $if term=rxvt
    "\e[7~": beginning-of-line
    "\e[8~": end-of-line
    "\eOc": forward-word
    "\eOd": backward-word
    $endif
    # for non RH/Debian xterm, can't hurt for RH/Debian xterm
    # "\eOH": beginning-of-line
    # "\eOF": end-of-line
    # for freebsd console
    # "\e[H": beginning-of-line
    # "\e[F": end-of-line
    $endif
    

    il suffit donc de modifier ce fichier pour ajouter notre fonction à un raccourcis clavier ?

    DOCUMENTÉ PAR MAN !!!!!
    man /etc/inputrc
    "

    /etc/inputrc ‐ global inputrc for libreadline # See read‐

    line(3readline) and ‘info rluserman’ for more information.

    Be 8 bit clean. set input‐meta on set output‐meta on

    To allow the use of 8bit‐characters like the german umlauts,

    uncomment # the line below. However this makes the meta key not
    work as a meta key, # which is annoying to those which don’t need
    to type in 8‐bit characters.

    set convert‐meta off

    try to enable the application keypad when it is called. Some

    systems # need this to enable the arrow keys. # set enable‐key‐
    pad on

    see /usr/share/doc/bash/inputrc.arrows for other codes of arrow

    keys

    do not bell on tab‐completion # set bell‐style none # set bell‐

    style visible

    some defaults / modifications for the emacs mode $if mode=emacs

    allow the use of the Home/End keys "[1~": beginning‐of‐line

    "[4~": end‐of‐line

    allow the use of the Delete/Insert keys "[3~": delete‐char

    "[2~": quoted‐insert

    mappings for "page up" and "page down" to step to the begin‐

    ning/end # of the history # "[5~": beginning‐of‐history #
    "[6~": end‐of‐history

    alternate mappings for "page up" and "page down" to search the

    history # "[5~": history‐search‐backward # "[6~": history‐
    search‐forward

    mappings for Ctrl‐left‐arrow and Ctrl‐right‐arrow for word mov‐

    ing "[1;5C": forward‐word "[1;5D": backward‐word "[5C": for‐
    ward‐word "[5D": backward‐word "\[C": forward‐word "\[D":
    backward‐word

    $if term=rxvt "[7~": beginning‐of‐line "[8~": end‐of‐line
    "\Oc": forward‐word "\Od": backward‐word $endif

    for non RH/Debian xterm, can’t hurt for RH/Debian xterm

    "\OH": beginning‐of‐line # "\OF": end‐of‐line

    for freebsd console # "[H": beginning‐of‐line # "[F": end‐of‐

    line

    $endif
    "
    de façon sommaire mais suffisamment exhaustive.

    qui nous renvoie à sont our à nos locaux
    man read‐line(3readline)
    $ man read[tab]
    read readelf readlinkat readproc
    readahead readfile readmsg readproctab
    readdir readline readmsg.mailutils readprofile
    readdir_r readlink readom readv
    introuvable donc
    et
    info rluserman
    $ info rluserman
    bash: info : commande introuvable
    tout aussi introuvable
    [encore une régression ??]

    pour ceux qui voudraient aller plus loin sur les "key"
    $ man key[tab]
    keyboard key_encryptsession keyok_sp
    keybound key_gendes keypad
    keybound_sp keymaps key_secretkey_is_set
    keyctl key_name key_setsecret
    key_decryptsession keyname keytool
    key_defined keyname_sp

    key_defined_sp keyok

    // notez qu'il vaut mieux quelques connaissances en C pour savoir quoi en faire
    // mais que la doc est là

    Faisant une pause, je décide de tester la commande mentionnée plus haut
    $ bind '"\e[24~": history-search-backward'
    désormais, la touche F12 agit comme les touches [flèche haut] et autres raccoucis emacs ou vi s'ils sont configurés

    $ bind --help
    bind: bind [-lpvsPSVX] [-m keymap] [-f nomfichier] [-q nom] [-u nom] [-r seqtouche] [-x seqtouche:commande-shell] [seqtouche:fonction-readline ou commande-readline]
    Définit les associations de touches et les variables de « Readline ».

    Associe une séquence de touches à une fonction « Readline » ou une macro, ou définit une
    variable « Readline ». La syntaxe des arguments non-options est équivalente à celle
    du fichier ~/.inputrc, mais doivent être transmis comme arguments uniques :
    ex : bind '"\C-x\C-r" : re-read-init-file'.
    Options :
     -m keymap Utilise KEYMAP comme mappage clavier pendant la
     durée de cette commande. Des noms de mappage valables
     sont « emacs », « emacs-standard », « emacs-meta », 
     « emacs-ctlx », « vi », « vi-move », « vi-command » et
     « vi-insert ».
     -l Affiche les noms de fonctions.
     -P Affiche les noms et associations des fonctions.
     -p Affiche les fonctions et associations dans une forme qui
     peut être réutilisée comme entrée.
     -S Affiche les séquences de touches qui invoquent des macros,
     et leurs valeurs.
     -s Affiche les séquences de touches qui invoquent des macros,
     et leurs valeurs sous une forme qui peut être utilisée comme entrée.
     -V Affiche les noms et valeurs des variables
     -v Affiche les noms et valeurs des variables dans une forme qui peut
     être réutilisée comme entrée.
     -q nom-fonction Permet de savoir quelles touches appellent la fonction.
     -u nom-fonction Enlève toutes les associations de touches liée à la fonction.
     -r seqtouche Enlève l'association pour « seqtouche ».
     -f nomfichier Lit l'association de touches depuis NOMFICHIER.
     -x seqtouche:commande-shell Entraîne l'exécution de la commande-shell
     lorsque « seqtouche » est entrée.
     -X Liste les séquences de touches liées à -x et les commandes associées
     sous une forme qui peut être réutilisée comme entrée.
    Code de sortie :
    « bind » renvoie 0 à moins qu'une option non reconnue ne soit donnée ou qu'une erreur survienne.
    

    toujours par curiosité, j'essaie ceci :
    $ bind '"\e[24~": xcalib -invert -alter'
    qui est censé donc lier la touche [F12] à l'invocation de la commande xcalib qui inverse les couleurs de l'ensemble du système (euh, les TX aussi ? ils vont être contents s'il y en a)

    rien ne se produit à l'appui de [F12]
    ce n'est donc pas si simple.

    juste au-dessus je vois qu'il y a une option -x de l'aide en ligne de bind traduite dans ma langue maternelle par un extraordinaire traducteur ! je décide donc de l'utiliser pour vérifier si sa traduction du C vers le français est compréhensible (oui car man bind est écrit en C)

    $ bind -x '"\e[24~": xcalib -invert -alter'

    [12]
    jour

    [12]
    nuit

    [12]
    jour

    [12]
    nuit

    [12]
    jour

    [12]
    nuit

    [12]
    jour

    [12]
    nuit

    bon, mais ça ne résoud toujours pas le problème initial de l'application de cette fonctionnalité à une fenêtre en particulier,
    qu'elle soit :
    https://fr.wikipedia.org/wiki/Gestionnaire_de_fen%C3%AAtres
    https://fr.wikipedia.org/wiki/Gestionnaire_de_fen%C3%AAtres#Gestionnaire_de_fen%C3%AAtre_par_pavage
    ou simplement
    https://www.linuxquestions.org/questions/linux-newbie-8/how-to-set-display-to-run-firefox-from-tty-799468/

    su -c alias F12='bind -x \'\"\e[24~\": xcalib -invert -alter\'' games

    donc, comment appliquer le résultat de
    $ xcalib -invert -alter
    non pas au système [global] mais à une application graphique [local],
    à partir d'une commande en console ou mieux d'un fichier de configuration en mode texte ?
    par exemple /proc/sys/kernel/sysrq (voir plus haut) ?

    pour aller plus loin, disponible sur [12]nal :
    https://linuxfr.org/users/postroutine/journaux/bash-et-les-raccourcis-clavier