Précédent   Forum des professionnels en informatique > Systèmes > Linux > Système
Système Vos questions autour de l'administration système
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/03/2008, 16h21   #1
Membre du Club
 
Lycéen
Inscription : avril 2007
Messages : 57
Détails du profil
Informations personnelles :
Âge : 21

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : avril 2007
Messages : 57
Points : 50
Points : 50
Par défaut Interception de raccourcis clavier - daemon

Salut à tous ,

Je vous écris ici car je suis confronté à un problème et je pense que vous pouvez m'aider à avancer .

Or donc je viens d'installer une Debian ( très sympa ), et je l'utilise presque uniquement en tant que terminal ( Ctrl + Alt + F1 au démarrage et basta ).

Seulement voilà j'aime bien écouter de la musique quand je code. J'installe donc MPlayer, mais je me retrouve bien embêté car je ne peux le contrôler que si je vais sur le terminal sur lequel il est lancé ! Bon première solution GNU screen déjà, ça aide pas mal, puis ensuite slave mode de MPlayer donc, dans lequel on peut envoyer des commandes par un fichier FIFO.

J'ai scripté un petit truc sympa, tout ce que j'ai à faire c'est me mettre dans n'importe quel terminal et lui dire "play ma_liste_de_musiques" ou "play previous". C'est pas mal déjà, mais je voudrais un ptit peu mieux !

Est ce que quelqu'un pourrait me dire à quel niveau je devrais chercher pour réaliser un style de daemon qui réagirait à un code touche ( un peu comme xbindkeys mais sans X ^^ ) ? Ca m'amuserait pas mal de coder ça, mais je sais pas vraiment comment m'y prendre :p . A quel niveau je dois me placer pour que l'évènement "appuyé sur une touche" soit visible partout, dans le terminal et dans X ?

Merci de votre attention !
Grimmjow est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/04/2008, 14h33   #2
Membre du Club
 
Lycéen
Inscription : avril 2007
Messages : 57
Détails du profil
Informations personnelles :
Âge : 21

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : avril 2007
Messages : 57
Points : 50
Points : 50
Bien, je me permet un petit up discret . Si vous ne savez pas, vous pourriez peut-être m'indiquer un autre endroit où l'on pourrait savoir ( si c'est pas trop demander ).
Grimmjow est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/04/2008, 20h19   #3
Membre émérite
 
Avatar de Celelibi
 
Inscription : janvier 2004
Messages : 990
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 990
Points : 822
Points : 822
Problème très intéressant, je serai curieux d'en connaître la solution.

Je pense que ce que tu cherche se rapproche pas mal d'un keylogger. Essaye peut-être de lire ceci https://www.dg-sc.org/phrack-fr/phra...r/p59-0x0e.txt
Attention high-level, c'est du phrack.
Dans tous les cas, je pense pas qu'on puisse échapper au module noyau. (ou pas)


Edit : Regarde lkl, ça peut peut-être t'être utile.
__________________
Les vaches ne peuvent PAS voler, quoi qu'elles aient pu vous raconter.
Celelibi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2008, 12h13   #4
Membre du Club
 
Lycéen
Inscription : avril 2007
Messages : 57
Détails du profil
Informations personnelles :
Âge : 21

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : avril 2007
Messages : 57
Points : 50
Points : 50
Un grand merci à toi mon ami ! Je savais pas du tout par où m'y prendre ! Apparement l'article décris précisément ce que je cherche, c'est exactement ce qu'il me fallait . Je reviens mettre un [Résolu] et expliquer comment je m'y suis pris dès que j'aurais codé ce module noyau ( effectivement apparement j'y couperais pas, super, ça faisait un moment que je cherchais un truc à coder qui pourrait faire un module ! ). Encore merci et à la prochaine !

PS : en plus c'est du Phrack, bonheur total :p !
Grimmjow est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2008, 19h03   #5
Membre du Club
 
Lycéen
Inscription : avril 2007
Messages : 57
Détails du profil
Informations personnelles :
Âge : 21

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : avril 2007
Messages : 57
Points : 50
Points : 50
Bon j'ai réfléchi deux minutes et je me suis dit qu'un raccourci clavier bash ça pourrait le faire aussi à la limite. Mauvais plan. J'essaye de lier une action à un code touche en utilisant:

Code :
1
2
 
bind -x '"\\e[64~": "play next"'
Avec \e[64~ mon code touche ( je le sais, j'ai modifié manuellement le keymap ^^ ) et "play next" mon gentil script, mais tout ce que je reçois c'est

Code :
1
2
 
bash: bind: \e[64~: play next: first non-whitespace character is not `"'
Donc rien. J'ai aussi essayé de créer un fichier .inputrc, mais bind ignore complètement ce que je met dedans, sans même un message d'erreur ( je me fais snober par une fonction intégrée, j'ai la rage ). Si il y a des gens qui la connaissent un peu ici faites signe !

Sinon plus inquiétant, quand je tente de faire un "read" et que j'appuie sur mes touches multimédia, une fois encore il me snobe. Avec "showkeys" j'ai un joli code touche, censément de même mon fichier keymap est modifié :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
# /etc/console/boottime.kmap.gz
 
[...]
 
keycode 144 = F100
# play/pause
keycode 153 = F101
# mute
keycode 160 = F102
# volume_down
keycode 162 = F103
# volume_up
keycode 164 = F104
# stop
keycode 174 = F105
# previous
keycode 176 = F106
# next
 
[...]
 
string F102 = "\033[60~"
string F104 = "\033[61~"
string F105 = "\033[62~"
string F106 = "\033[63~"
string F100 = "\033[64~"
string F101 = "\033[65~"
string F103 = "\033[66~"
 
[...]
Je devrais donc choper "^[[60~" quand j'appuie sur le bouton volume_down, etc ... Mais je n'ai rien. Si quelqu'un a une explication plausible ou un conseil, qu'il n'hésite pas !

Je vais essayer encore un peu et sinon j'irais faire un tour du côté d'un module kernel ...

PS : je me suis aidé de ce lien : http://articles.techrepublic.com.com...1-5683375.html
Grimmjow est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2008, 20h43   #6
Membre du Club
 
Lycéen
Inscription : avril 2007
Messages : 57
Détails du profil
Informations personnelles :
Âge : 21

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : avril 2007
Messages : 57
Points : 50
Points : 50
Bon finalement après bidouille du kmap et usage de gentils "setkeycodes", j'arrive à avoir "Play-Pause" qui s'affiche en texte quand j'appuie sur la touche play-pause. A partir de là, me suis dit cool. C'est réglé, on ajoute un raccourcis bash à l'arrache et c'est bouclé. Mais il semblerait que s'aurait été un peu trop beau.

En effet avec bash on peut bien créer des macros ( style je tape "Volume+" ( eh oui ), et ça m'affiche bien "essai réussi" ), ou utiliser les fonctions intégrées ( style avancer d'un caractère, vous me direz il y a déjà les flèches pour ça ^^ ). Mais dès que je veux ajouter ma propre fonction, problème. Et ça me va moyen. Parce qu'à se moment là il faudrait bidouiller aussi avec la GNU libreadline pour créer d'autres fonctions intégrées ( en C donc ). Du boulot quoi. Je suis prêt à me lancer mais limite encore une fois sil il y avait une solution plus simple ça serait assez cool dans l'idée.

Donc nouvelle question : les raccourcis personnalisés sous bash, ça dit quelquechose à quelqu'un ? Une fois encore je tourne en rond .

Merci de votre attention
Grimmjow est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h20.


 
 
 
 
Partenaires

Hébergement Web