AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 567563
Accepted
Freedo
Freedo
Asked: 2020-02-15 01:52:24 +0800 CST2020-02-15 01:52:24 +0800 CST 2020-02-15 01:52:24 +0800 CST

Forçar o putty a usar o botão direito do mouse para colar, no linux

  • 772

Existe uma maneira de forçar puttya colar com o botão direito do mouse, no Zorin OS (baseado no Ubuntu).

Eu gosto do comportamento do Windows, onde as coisas selecionadas são coladas, quando o botão direito é pressionado.

keyboard-shortcuts putty
  • 6 6 respostas
  • 5328 Views

6 respostas

  • Voted
  1. Best Answer
    Arkadiusz Drabczyk
    2020-02-27T09:06:10+08:002020-02-27T09:06:10+08:00

    Como o usuário @ateijelo disse em sua resposta , não é possível usar "Compromisso (extensão média, pastas direitas)" no Unix porque não está implementado. Eu não sei por que não é, você deve perguntar aos desenvolvedores do Putty sobre isso, provavelmente ninguém nem solicitou. Mas, graças à natureza de código aberto, você sempre pode modificar o código-fonte do programa para atender às suas necessidades e usá-lo. O patch a seguir modificará o comportamento padrão do clique com o botão direito e fará com que cole o texto:

    diff --git a/unix/gtkwin.c b/unix/gtkwin.c
    index 5660ee9..4f2ec2b 100644
    --- a/unix/gtkwin.c
    +++ b/unix/gtkwin.c
    @@ -447,7 +447,7 @@ static Mouse_Button translate_button(Mouse_Button button)
         if (button == MBT_MIDDLE)
             return MBT_PASTE;
         if (button == MBT_RIGHT)
    -        return MBT_EXTEND;
    +        return MBT_PASTE;
         return 0;                          /* shouldn't happen */
     }
    
    diff --git a/unix/uxsftpserver.c b/unix/uxsftpserver.c
    index a90344e..6fab0ba 100644
    --- a/unix/uxsftpserver.c
    +++ b/unix/uxsftpserver.c
    @@ -412,16 +412,6 @@ static void uss_fstat(SftpServer *srv, SftpReplyBuilder *reply,
         }
     }
    
    -#if !HAVE_FUTIMES
    -static inline int futimes(int fd, const struct timeval tv[2])
    -{
    -    /* If the OS doesn't support futimes(3) then we have to pretend it
    -     * always returns failure */
    -    errno = EINVAL;
    -    return -1;
    -}
    -#endif
    -
     /*
      * The guts of setstat and fsetstat, macroised so that they can call
      * fchown(fd,...) or chown(path,...) depending on parameters.
    

    Você precisa obter o código-fonte do Putty, aplicar o patch e reconstruir o Putty. É um processo simples embora.

    Clonar o repositório Putty:

    git clone git://git.tartarus.org/simon/putty.git && cd putty
    

    Salve o patch que colei acima em MBT_PASTE.patch e aplique-o (se falhar, baixe o patch diretamente de http://drabczyk.org/MTB_PASTE.patch ):

    git apply MTB_PASTE.patch
    

    Massa de construção:

    $ cd unix
    $ ../mkfiles.pl  && ../mkauto.sh
    $ make -j$(nproc) -f Makefile.gtk LDFLAGS="-Wl,--no-as-needed,-ldl"
    

    Construir leva apenas 6 segundos na minha máquina. Inicie o binário Putty recém-construído:

    ./putty
    

    Você deve ver todas as suas sessões e configurações salvas como se você tivesse instalado o Putty em todo o sistema usando o gerenciador de pacotes da sua distribuição. Agora você deve poder colar o texto selecionado com o botão direito do mouse. Se você não deseja recompilar o Putty por conta própria e confia em mim, pode obter um binário pré-compilado aqui http://drabczyk.org/putty .

    Este método tem suas desvantagens, é claro. A mudança que introduzi não foi formalmente aceita pelos desenvolvedores do Putty, o que significa que agora você está usando um fork . Se você substituir o binário Putty instalado pelo gerenciador de pacotes da sua distribuição, ele será substituído toda vez que você atualizar o Putty usando o gerenciador de pacotes da sua distribuição (e às vezes você pode nem perceber que o Putty está sendo atualizado, por exemplo, ao executar uma atualização massiva do sistema) . Alternativamente, você pode colocar seu fork do Putty em outro lugar, por exemplo, ~/bine prefixar ~/binao seu $PATHpara que o fork seja escolhido antes do binário Putty em todo o sistema. Também não sei quais efeitos colaterais indesejados essa pequena mudança pode causar, se houver.

    Eu também estava pensando em usar xdotool, mas não tenho certeza se você executa o X ou Wayland e acho que modificar uma única linha no código-fonte é tudo mais fácil.

    • 2
  2. Michael D.
    2020-02-25T11:15:07+08:002020-02-25T11:15:07+08:00

    Segure CTRL + clique com o botão direito do mouse na janela do putty para selecionar "Colar da CLIPBOARD" ou "Copiar para a CLIPBOARD" em um menu. Perto o suficiente?

    • 1
  3. ateijelo
    2020-02-28T10:43:12+08:002020-02-28T10:43:12+08:00

    Ok, com base na resposta de @arkadiusz-drabczyk, vou detalhar como fazer sua própria versão do PuTTY no Debian:

    Habilite URIs de origem em seus arquivos de origem apt. Isso pode ser feito com UIs em muitas distribuições:

    insira a descrição da imagem aqui

    ou certificando-se de que você tenha linhas em /etc/apt/sources.list que se pareçam com isso:

    deb-src http://deb.debian.org/debian/ stable main contrib non-free
    

    Depois de tê-los, siga estas etapas:

    mkdir putty
    cd putty
    sudo apt-get update
    sudo apt-get install wget
    sudo apt-get build-dep putty
    apt-get source putty
    cd putty-0.70
    sed -i 's/return MBT_EXTEND/return MBT_PASTE/' unix/gtkwin.c
    dpkg-buildpackage -b --no-sign
    cd ..
    sudo dpkg -i putty_0.70-6_amd64.deb putty-tools_0.70-6_amd64.deb
    

    Verifique onde diz 0.70e mude para a versão certa para você. Isso deve instalar seu PuTTy modificado.

    • 1
  4. ctrl-alt-delor
    2020-02-22T01:39:37+08:002020-02-22T01:39:37+08:00

    O terminal MS-Windows/dos/cmd tem o recurso de colar a última seleção vinculada ao clique com o botão direito (se ativado). Putty pode estar fazendo o mesmo.

    Muitos programas X11 têm isso vinculado ao clique do meio. No entanto, não há necessidade de selecionar a seleção com o clique adicional. Isso funcionará com o openssh.

    Embora eu não tenha ideia de por que alguém usaria o PuTTY fora do Windows da Microsoft (é um ssh para o MS-Windows para ajudar as pessoas a escapar, e não tão bom quanto o open-ssh-client no konsole). Confirmei que o clique do meio é colado no terminal PuTTY no Debian 10:

    Putty Release 0.70
    Build platform: 64-bit Unix (GTK + X11)
    Compiler: gcc 8.3.0
    Compiled against GTK version 3.24.5
    Source commit: 3cd10509a51edf5a21cdc80aabf7e6a934522d47
    
    • 0
  5. ateijelo
    2020-02-25T15:59:10+08:002020-02-25T15:59:10+08:00

    Eu não trago boas notícias. Os documentos dizem isso :

    O Windows geralmente tem apenas dois botões do mouse, portanto, quando executado no Windows, o PuTTY é configurável. Na configuração padrão do PuTTY ('Compromisso'), o botão direito cola e o botão do meio (se você tiver um) estende uma seleção.

    Se você tem um mouse de três botões e já está acostumado com o arranjo xterm, você pode selecioná-lo usando o controle 'Ação dos botões do mouse'.

    e, de fato, a configuração tem uma seção adicional:

    insira a descrição da imagem aqui

    E mesmo que você defina a MouseIsXterm=1opção no arquivo de configuração de uma sessão salva, o PuTTY só presta atenção a ela quando executado no Windows. Procure mouse_is_xtermno arquivo de origem windows.c .

    Se você estiver usando o Linux com frequência, recomendo treinar sua memória muscular para colar o botão do meio e, quando usar o PuTTY no Windows, faça o mesmo. É o padrão em todos os terminais Linux, e você estará travando uma batalha difícil se tentar mudá-lo. Alguns terminais podem permitir isso, mas a maioria não.

    • 0
  6. TheBeardedQuack
    2020-02-25T08:06:55+08:002020-02-25T08:06:55+08:00

    Embora eu não saiba como forçar o putty a usar o botão direito do mouse no Linux, sugiro (como outras respostas) usar um programa melhor, se possível.

    Todos aqui assumiram que você está usando o putty para SSH, se for esse o caso, eu recomendaria usar seu terminal padrão e o programa SSH.

    Se, no entanto, você estiver usando uma interface serial, eu recomendaria usar o emulador de terminal de tela. Por exemplo, eu o inicio assim sudo --group dialout screen /dev/ttyUSB0 115200para interagir com nossos dispositivos seriais. Com essa abordagem, você só obtém a janela imediata, se precisar acessar o scrollback, terá que usar a tecla de atalho Ctrl + a, [ então você pode usar as teclas de seta para navegar no histórico. Basta pressionar Esc para sair do modo de cópia e retornar à linha atual.

    Usar seu terminal padrão permite que você copie e cole como faria com qualquer outro programa de terminal por meio do clique com o botão direito ou teclas de atalho, se suportado pelo seu terminal. Com a tela, você também obtém vários recursos que podem ou não ser úteis, dependendo do que você precisa fazer.

    Para Telnet e outras comunicações que o putty suporta, tenho certeza de que o Linux tem muitas alternativas semelhantes disponíveis.

    Se isso não cobrir seu caso de uso, sugiro modificar sua pergunta para nos informar o que você está fazendo com o putty para que possamos aconselhar melhor.

    • -1

relate perguntas

  • Como parar de gravar com o Kazam

  • Vincule CAPS+hjkl às teclas de seta; CAPS para ESC

  • Comando de atalho do sono lubuntu?

  • Excluir até o final da linha de comando no Vim

  • Como transferir arquivos locais usando o PuTTY via ssh para o servidor remoto? [duplicado]

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve