Existe algum aplicativo ou comando que permite inserir caracteres especiais, tremas e letras estrangeiras

Existe algum aplicativo ou comando que permite inserir caracteres especiais, tremas e letras estrangeiras

Escrevo e trabalho em vários idiomas: alemão, espanhol, francês, grego, inglês. No Mac, quando você pressiona uma tecla por mais de 2 segundos, você pode escolher entre caracteres especiais derivados de um personagem principal. No Windows existe um software chamado Holdkey que faz o mesmo. Existe algo semelhante no Linux. Ainda não encontrei.

Responder1

Tenho dois conselhos:

  1. Use um layout de teclado adequado, ou seja, um layout com teclas mortas. Se você tiver um teclado em inglês, escolha, por exemploInglês (EUA, internacional, com teclas mortas). Mas existem diversas outras variantes.
  2. Defina umchave de composição. Dessa forma, você poderá digitar muitos caracteres que não estão incluídos no layout de teclado que você está usando. (A chave de composição é um recurso do XKB, portanto está disponível no Kubuntu, mas você precisa descobrir como defini-la lá.)

Responder2

Se você não tem medo de configurar (as instruções devem ser claras), abaixo você pode encontrar uma alternativa para inserir rapidamente o caractere especial usado com frequência (-alternatives).

Ferramenta de caracteres especiais editáveis

O script abaixo é uma ferramenta flexível (janela para inserir caracteres, com um clique) para ter caracteres usados ​​com frequência disponíveis em um segundo:

insira a descrição da imagem aqui

Como funciona

  • Chame a janela com um atalho
  • Para inserir um caractere, basta clicar nele e o caractere será colado na janela em que você estava trabalhando.
  • Para adicionar um conjunto de caracteres, pressione + Uma janela do editor de texto será aberta, adicione seu nome de “família” na primeira linha, caracteres especiais relacionados nas próximas linhas, um caractere por linha, por exemplo:

    a
    å
    ä
    ã
    â
    á
    à
    ª
    

    (da imagem). Feche o arquivo, os caracteres especiais estarão disponíveis a partir de agora na próxima vez que você chamar a janela.

  • para excluir um conjunto de caracteres disponíveis, pressionex

Como configurar

  1. Você precisa satisfazer algumas dependências:

    • python3-xlib

      sudo apt install python3-xlib
      
    • pyautogui:

      pip3 install pyautogui
      
    • clipe de pipe:

      sudo apt install python3-pyperclip xsel xclip
      
    • Talvez seja necessário instalar o Wnck:

      python3-gi gir1.2-wnck-3.0
      

    Saia e entre novamente.

  2. Copie o script abaixo em um arquivo vazio, salve-o como specialchars.pyetorná-lo executável

    #!/usr/bin/env python3
    import os
    import gi
    gi.require_version("Gtk", "3.0")
    gi.require_version('Wnck', '3.0')
    from gi.repository import Gtk, Wnck, Gdk
    import subprocess
    import pyperclip
    import pyautogui
    
    
    css_data = """
    .label {
      font-weight: bold;
      color: blue;
    }
    .delete {
      color: red;
    }
    """
    
    fpath = os.environ["HOME"] + "/.specialchars"
    
    def create_dirs():
        try:
            os.mkdir(fpath)
        except FileExistsError:
            pass
    
    
    def listfiles():
        files = os.listdir(fpath)
        chardata = []
        for f in files:
            f = os.path.join(fpath, f)
            chars = [s.strip() for s in open(f).readlines()]
            try:
                category = chars[0]
                members = chars[1:]
            except IndexError:
                os.remove(f)
            else:
                chardata.append([category, members, f])
        chardata.sort(key=lambda x: x[0])
        return chardata
    
    
    def create_newfamily(button):
        print("yay")
        n = 1
        while True:
            name = "charfamily_" + str(n)
            file = os.path.join(fpath, name)
            if os.path.exists(file):
                n = n + 1
            else:
                break
        open(file, "wt").write("")
        subprocess.Popen(["xdg-open", file])
    
    
    class Window(Gtk.Window):
        def __init__(self):
            Gtk.Window.__init__(self)
            self.set_decorated(False)
            # self.set_active(True)
            self.set_keep_above(True);
            self.set_position(Gtk.WindowPosition.CENTER_ALWAYS)
            self.connect("key-press-event", self.get_key)
            self.set_default_size(0, 0)
            self.provider = Gtk.CssProvider.new()
            self.provider.load_from_data(css_data.encode())
            self.maingrid = Gtk.Grid()
            self.add(self.maingrid)
            chardata = listfiles()
            # get the currently active window
            self.screendata = Wnck.Screen.get_default()
            self.screendata.force_update()
            self.curr_subject = self.screendata.get_active_window().get_xid()
            row = 0
            for d in chardata:
                bbox = Gtk.HBox()
                fambutton = Gtk.Button(d[0])
                fambutton_cont = fambutton.get_style_context()
                fambutton_cont.add_class("label")
                fambutton.connect("pressed", self.open_file, d[2])
                Gtk.StyleContext.add_provider(
                    fambutton_cont,
                    self.provider,
                    Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION,
                )
                fambutton.set_tooltip_text(
                    "Edit special characters of '" + d[0] + "'"
                )
                bbox.pack_start(fambutton, False, False, 0)
                for c in d[1]:
                    button = Gtk.Button(c)
                    button.connect("pressed", self.replace, c)
                    button.set_size_request(1, 1)
                    bbox.pack_start(button, False, False, 0)
                self.maingrid.attach(bbox, 0, row, 1, 1)
                deletebutton = Gtk.Button("X")
    
                deletebutton_cont = deletebutton.get_style_context()
                deletebutton_cont.add_class("delete")
                Gtk.StyleContext.add_provider(
                    deletebutton_cont,
                    self.provider,
                    Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION,
                )
    
                deletebutton.connect("pressed", self.delete_file, d[2], bbox)
                deletebutton.set_tooltip_text("Delete family")
    
                self.maingrid.attach(deletebutton, 100, row, 1, 1)
                row = row + 1
            addbutton = Gtk.Button("+")
            addbutton.connect("pressed", create_newfamily)
            addbutton.set_tooltip_text("Add family")
            self.maingrid.attach(addbutton, 100, 100, 1, 1)
            self.maingrid.attach(Gtk.Label("- Press Esc to exit -"), 0, 100, 1, 1)
            self.show_all()
            Gtk.main()
    
        def get_key(self, button, val):
            # keybinding to close the previews
            if Gdk.keyval_name(val.keyval) == "Escape":
                Gtk.main_quit()
    
        def replace(self, button, char, *args):
            pyperclip.copy(char)
            subprocess.call(["wmctrl", "-ia", str(self.curr_subject)])
            pyautogui.hotkey('ctrl', 'v')
            Gtk.main_quit()
    
    
        def open_file(self, button, path):
            subprocess.Popen(["xdg-open", path])
    
        def delete_file(self, button, path, widget):
            os.remove(path)
            widget.destroy()
            button.destroy()
            self.resize(10, 10)
    
    create_dirs()
    Window()
    
  3. Configure uma tecla de atalho para executar:

    python3 /path/to/specialchars.py
    

Na primeira execução, você verá apenas um +botão. Comece a adicionar as "famílias" do seu personagem e reinicie (-call) a janela para ter tudo disponível com um clique.

É isso...

Responder3

Você pode usar Unicode para digitar caracteres especiais no Linux.

Para digitar um caractere especial, primeiro pressione CTRL+ SHIFT+ Ue depois solte as teclas.

Em seguida, digite o código hexadecimal do caractere que deseja inserir e pressioneENTER

O código hexadecimal para "ü" é 00fc.

Clique aqui para ver a página da Wikipedia para caracteres Unicode.

Clique aqui para ver a página da Wikipedia para caracteres matemáticos Unicode.

informação relacionada