IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenOffice & LibreOffice Discussion :

Ajout de commandes pour raccourcis clavier sur Libre Office [LibreOffice][Texte]


Sujet :

OpenOffice & LibreOffice

  1. #1
    Candidat au Club
    Femme Profil pro
    Enseignant
    Inscrit en
    Décembre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Ajout de commandes pour raccourcis clavier sur Libre Office
    Bonjour,

    J'ai besoin de créer des raccourcis clavier pour les caractères suivants : āáǎàēéěèīíǐìōóǒòūúǔùǖǘǚǜ. (ce sont les 24 caractères que j'emploie très fréquemment pour taper en pinyin, transcription du chinois).
    J'aimerais personnaliser mes raccourcis, par exemple CTRL+1+A pour ā, CTRL+2+A pour á, etc.

    Dans le menu Personnaliser de Libre Office, on ne peut que choisir parmi les raccourcis proposés. Est-il possible d'ajouter d'autres commandes ?

    Merci d'avance

  2. #2
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 612
    Points
    58 612
    Billets dans le blog
    11
    Par défaut
    Salut,

    Il ne me semble pas que l'on puisse rajouter des raccourcis. Par contre pourquoi pas utiliser la fonction d'autocorrection.

    @+.
    N'oubliez pas le Tag afin de faciliter la recherche, et en votant cela permet de mieux la cibler.

    Je ne réponds pas aux messages privés s'ils sont liés à une question technique

  3. #3
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 947
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 947
    Points : 9 275
    Points
    9 275
    Par défaut
    hello,
    peut-être en utilisant l'extension ComposeSpecialCharacters : voir ici et ici

    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  4. #4
    Candidat au Club
    Femme Profil pro
    Enseignant
    Inscrit en
    Décembre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    "pourquoi pas utiliser la fonction d'autocorrection."

    parce qu'il faut ajouter des espaces pour les enlever ensuite : si je veux écrire la phrase "Wǒ shì Fǎguórén.", je devrais ajouter 6 espaces puis les effacer avant d'obtenir la phrase que je veux. Je cherche une solution plus rapide.

  5. #5
    Candidat au Club
    Femme Profil pro
    Enseignant
    Inscrit en
    Décembre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par jurassic pork Voir le message
    hello,
    peut-être en utilisant l'extension ComposeSpecialCharacters : voir ici et ici

    Ami calmant, J.P
    pour l'instant je ne parviens pas à l'utiliser mais je ne désespère pas. Merci en tout cas, je te redis si je m'en sors ou si j'ai encore besoin d'aide.

    M N

  6. #6
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 947
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 947
    Points : 9 275
    Points
    9 275
    Par défaut
    hello,
    il est vrai que l'extension ComposeSpecialCharacters manque cruellement d'un tutoriel et j'ai eu du mal à comprendre comment elle marchait. Finalement voici comme l'utiliser :

    1 - Charger l'extension dans LibreOffice et l'activer
    2 - Aller dans le menu Outils/personnaliser onglet clavier
    3 - Dans la partie Fonctions Aller sur la partie Macros LibreOffice de la liste Catégorie
    4 - Dérouler l'arborescence users/ComposeSpecialChars/modCode et choisir la fonction ComposeSpecialChar
    5 - Dans la liste Raccourcis clavier choisir le raccourci à utiliser pour la fonction ComposeSpecialChar exemple ALT+espace et cliquer sur le bouton Modifier
    6 - Dans la liste Touches le nouveau raccourci apparaît. Donc quand on tapera au clavier ALT+espace on appelera la fonction ComposeSpecialChar

    Utilisation :

    taper dans un document writer :
    Wo( puis ALT+espace

    shi\ puis ALT+espace

    Fa( puis ALT+espace

    guo' puis ALT+espace

    et enfin rén.

    Normalement tu dois te retrouver avec la phrase que tu nous a indiquée. Je ne sais pas si cela te convient et si il y a plus simple mais en tout cas cela a l'air de fonctionner.

    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  7. #7
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 947
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 947
    Points : 9 275
    Points
    9 275
    Par défaut
    hello,
    voici une autre solution en utilisant des macros en langage python pour changer un peu cette fois-ci :

    Le principe : on affecte à des raccourcis non utilisés par exemple <ALT> + 1 , <ALT> + 2 etc ... jusqu'à 9, une macro différente qui lance une fonction d'insertion de caractère accentué avec comme paramètre le numéro du raccourci :
    exemple on affecte à la combinaison de raccourci <ALT> + 1 la macro :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    def compSpecChar1():
       tempshortcut("1")
    à la touche de raccourci <ALT> + 2 la macro :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    def compSpecChar2():
       tempshortcut("2")
    le caractère tapé après les touches de raccourcis (attention il faut relâcher pour mettre fin au raccourci) sert à savoir quel caractère on veut accentuer.
    exemple <ALT>+1 (on relâche) + a on utilise la première correspondance du dictionnaire pour le caractère a. Le dictionnaire se présente sous cette forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    # dictionnaire de correspondance des caractères
    symboles = {"1a" : "ā","2a" : "á","3a" : "ǎ","4a" : "à",
                "1e" : "ē","2e" : "é","3e" : "ě","4e" : "è",
                "1i" : "ī","2i" : "í","3i" : "ǐ","4i" : "ì",
                "1o" : "ō","2o" : "ó","3o" : "ǒ","4o" : "ò",
                "1u" : "ū","2u" : "ú","3u" : "ǔ","4u" : "ù",
                "5u" : "ǖ","6u" : "ǘ","7u" : "ǚ","8u" : "ǜ" }
    une correspondance entre <numéro raccourci> + <lettre> => caractère correspondant.

    voici le code complet (en pièce jointe également car attention au copier coller il y a du formatage dans la balise code ) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    # -*- coding: utf-8 -*-
     
    # J.P Décembre 2014 
    # Assignement de caractères accentués à touches de raccourcis
     
    import unohelper
    from com.sun.star.awt import XKeyHandler
    from com.sun.star.awt.Key import ESCAPE as K_ESCAPE
     
    # dictionnaire de correspondance des caractères
    symboles = {"1a" : "ā","2a" : "á","3a" : "ǎ","4a" : "à",
                "1e" : "ē","2e" : "é","3e" : "ě","4e" : "è",
                "1i" : "ī","2i" : "í","3i" : "ǐ","4i" : "ì",
                "1o" : "ō","2o" : "ó","3o" : "ǒ","4o" : "ò",
                "1u" : "ū","2u" : "ú","3u" : "ǔ","4u" : "ù",
                "5u" : "ǖ","6u" : "ǘ","7u" : "ǚ","8u" : "ǜ" }
     
     
    handler = None
     
    # classe de gestion des caractères
    class SpecialSymbolKeyHandler(unohelper.Base, XKeyHandler):
     
       def __init__(self, doc,numcode):
          self.doc = doc
          self.numcode = numcode
          self.registered = False
          self.register()
     
       def register(self):
          if not self.registered:
             self.doc.getCurrentController().addKeyHandler(self)
             self.registered = True
     
       def unregister(self):
          if self.registered:
             self.doc.getCurrentController().removeKeyHandler(self)
     
       def exit(self):
          self.unregister()
          self.disposing(None)
     
       def disposing(self, ev):
          global handler
          handler = None
          self.doc = None
     
       def keyReleased(self, ev): return True
       def keyPressed(self, ev):
          if ev.KeyCode == K_ESCAPE:
             self.exit()
          # 
          lecode =  self.numcode +  ev.KeyChar.value
          try:
              # on regarde si le code existe dans le dictionnaire
             if lecode in symboles:
     
                 c = symboles[lecode]
             else:
                 # on insère le caractère tapé si code pas sans dictionnaire
                 c = ev.KeyChar.value
             self.insertString(c)
             # on arrête la macro
             self.exit()
             return True
          except:
             pass
          return False
     
       def insertString(self, c):
          view_cursor = self.doc.getCurrentController().getViewCursor()
          text = self.doc.getText()
          cursor = text.createTextCursorByRange(view_cursor)
          self.unregister()
          cursor.setString(c)
          self.register()
     
     
    def tempshortcut(numcode):
       global handler
       doc = XSCRIPTCONTEXT.getDocument()
       if not doc.supportsService("com.sun.star.text.TextDocument"):
          return  
       handler = SpecialSymbolKeyHandler(doc,numcode)
     
     
    def compSpecChar1():
       tempshortcut("1")
     
    def compSpecChar2():
       tempshortcut("2")
     
    def compSpecChar3():
       tempshortcut("3")
     
    def compSpecChar4():
       tempshortcut("4")
     
    def compSpecChar5():
       tempshortcut("5")
     
    def compSpecChar6():
       tempshortcut("6")
     
    def compSpecChar7():
       tempshortcut("7")
     
    def compSpecChar8():
        tempshortcut("8")
     
    def compSpecChar9():
        tempshortcut("9")
    Je n'ai pas utilisé les touches de raccourcis <CTRL> + num car certaines sont utilisées par LibreOffice.

    Le code n'est pas garanti sans bug. Il a l'air de fonctionner avec LibreOffice 4.X sous windows 7
    Le fichier python est à mettre dans C:\Users\<nomUser>\AppData\Roaming\LibreOffice\4\user\Scripts\python
    Les macros apparaîssent normalement alors dans les "mes macros" en python.

    Ami calmant, J.P
    Fichiers attachés Fichiers attachés
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  8. #8
    Candidat au Club
    Femme Profil pro
    Enseignant
    Inscrit en
    Décembre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Résolu
    Merci jurassic pork, la solution ComposeSpecialCharacters me semble la meilleure, même si on ne peut pas choisir ses raccourcis, je devrais me faire à ceux préexistants. Merci aussi pour le tutoriel !

    martinimy

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ajouter raccourci clavier sur command
    Par chris81 dans le forum Windows Presentation Foundation
    Réponses: 1
    Dernier message: 03/12/2008, 10h45
  2. [JTable] Raccourci clavier sur une Table
    Par sylvain_2020 dans le forum Composants
    Réponses: 5
    Dernier message: 05/07/2007, 09h01
  3. raccourcis clavier sur le menu popup d'un TMemo
    Par rezuss dans le forum Delphi
    Réponses: 6
    Dernier message: 11/10/2006, 16h42
  4. Comment spécifier des raccourcis claviers sur une Form ?
    Par Sydaze dans le forum Composants VCL
    Réponses: 5
    Dernier message: 17/06/2005, 09h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo