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 / 771939
Accepted
Peter bill
Peter bill
Asked: 2024-03-09 20:29:11 +0800 CST2024-03-09 20:29:11 +0800 CST 2024-03-09 20:29:11 +0800 CST

Posicionando múltiplas janelas com devilspie2

  • 772

Muitas vezes tenho duas janelas do Firefox abertas juntas e gosto delas em cantos opostos da tela. Há a parte relevante do meu arquivo de configuração do devilspie2

--if string.match(get_window_name(), "Mozilla Firefox")
if get_application_name() == "Firefox"
then
    -- Apply default immediately
    set_window_geometry(1040,32,878, 950);

    -- Second window
    --os.execute("sleep " .. 10);
    if string.match(get_window_name(), "MySite")
    then
        set_window_geometry(0, 374, 824, 666);
    end
end

Mas a segunda janela sempre tem a posição padrão.

Minhas observações sugerem que devilspie2 termina de processar a janela ANTES do Firefox carregar o site e ajustar o título da janela. O sono foi adicionado em resposta a isso, mas não faz diferença, tentei sem dormir e com tempos de sono de um e dez segundos, sem sucesso. Não sou um programador lua e recebi a dica os.execute() de uma pesquisa na web. Da mesma forma, não faz diferença se eu usar get_window_name() ou get_application_name() no início.

Esta pergunta pode estar relacionada, mas não recebeu respostas. Devilspie2 detecta apenas janelas do Firefox ao reiniciar; Como posso consertar isso? .

Alguém sabe como fazer o devilspie2 reagir à mudança do título de uma janela?

linux
  • 2 2 respostas
  • 26 Views

2 respostas

  • Voted
  1. meuh
    2024-03-12T01:31:22+08:002024-03-12T01:31:22+08:00

    Pelo que entendi, devilspie2só executa código lua em eventos (de libwnck) devido à criação de janela, destruição de janela ou mudança de janela ativa em foco.

    Usar sleep em lua não ajudará porque alterações em uma propriedade da janela, como o nome da janela, de fato farão com que eventos sejam adicionados à fila, mas a fila não será processada até que lua retorne o controle ao loop principal de devilspie2. Nesse ponto, libwnck atualizará as informações, mas lua não será chamada novamente por devilspie2 até que um novo evento de criação, destruição ou foco.

    Uma possibilidade é obter o nome da janela usando o utilitário padrão do X11, xprop . Em vez de os.execute("sleep " .. 10);usar algo como

    local id = get_window_xid
    local cmd = "xprop -id " .. id .. " WM_NAME"
    local file = io.popen("sleep 10; " .. cmd)
    local windowname = file:read("*a")
    file:close()
    

    Não sou especialista em lua e não testei o que foi dito acima. O xpropcomando recebe o ID da janela decimal da janela atual e solicita a propriedade WM_NAME, que ele gera no formato

    WM_NAME(STRING) = "MySite"
    

    Você deverá então ser capaz de usar

    string.match(windowname, "MySite")
    

    Seria útil substituir o único sleep/xprop por um loop limitado de sleeps/xprop mais curtos para que a correspondência possa ser encontrada o mais rápido possível.

    • 1
  2. Best Answer
    Peter bill
    2024-03-13T03:51:35+08:002024-03-13T03:51:35+08:00

    Inspirado na resposta de @meuh. Olhei para o xdotool e criei este script, que parece funcionar:

    #!/bin/bash
    firefox_cmd="firefox ..."
    $firefox_cmd &
    pid=$!
    xdotool search --sync --onlyvisible --pid $pid \
      windowactivate \
      windowmove 0 270 windowsize 870 900
    
    • 1

relate perguntas

  • Existe uma maneira de fazer ls mostrar arquivos ocultos apenas para determinados diretórios?

  • Inicie/pare o serviço systemd usando o atalho de teclado [fechado]

  • Necessidade de algumas chamadas de sistema

  • astyle não altera a formatação do arquivo de origem

  • Passe o sistema de arquivos raiz por rótulo para o kernel do Linux

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