Este é o comando FvwmScript que pode ser executado no provedor de hospedagem gratuita OnWorks usando uma de nossas várias estações de trabalho online gratuitas, como Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS
PROGRAMA:
NOME
FvwmScript - módulo para construir interface gráfica de usuário
SINOPSE
FvwmScript deve ser gerado por Fvwm. Não funcionará na linha de comando.
DESCRIÇÃO
FvwmScript é um módulo que permite construir muitos aplicativos gráficos, como
acessórios de desktop, painel de botões com menus pop-up, caixas de diálogo modais ... Na inicialização,
FvwmScript lê o arquivo que é especificado na linha de comando. Este arquivo contém o
roteiro. Este script não está incluído no arquivo de configuração do Fvwm.
Um script FvwmScript é totalmente controlável usando o teclado. (Shift) -Tab circula
em torno dos widgets, Return simula um clique do mouse, as setas movem o cursor ou mudam
os valores do widget e Escape "cancelam" para Menu e PopupMenu.
INVOCAÇÃO
FvwmScript pode ser invocado inserindo a linha `Module FvwmScript name_of_script 'no
arquivo .fvwm2rc. O arquivo "name_of_script" pode começar com uma barra, caso em que é um
caminho totalmente qualificado e o arquivo é lido. Se "name_of_script" não começar com um
barra, FvwmScript aparecerá em alguns lugares diferentes. Se o .fvwm2rc contiver o
linha de comando `* FvwmScript: Path path_of_the_script_directory ', FvwmScript irá tentar isso
diretório. Se isso não funcionar, o FvwmScript tenta o diretório de configuração do sistema e
o diretório de configuração do usuário conforme descrito no comando "Ler" no fvwm man
Disputas de Comerciais.
O comando para iniciar o FvwmScript pode ser colocado em uma linha por si só, se o FvwmScript for
gerado durante a inicialização do fvwm, ou pode ser vinculado a um menu ou botão do mouse ou
pressionamento de tecla para invocá-lo mais tarde.
CONFIGURAÇÃO OPÇÕES
Os seguintes comandos podem ser usados no arquivo de configuração (veja fvwm(1), seção MÓDULO
COMANDOS para detalhes). Eles são usados apenas se os comandos de script correspondentes não forem
usado no script.
* FvwmScript: DefaultFont fonte
Especifica a fonte padrão a ser usada. Se não for especificado com este comando ou no
script com o comando Font, fonte fixa é assumida.
* FvwmScript: DefaultFore cor
Especifica a cor de primeiro plano padrão a ser usada. Se não for especificado com este
ou no script com o comando ForeColor, preto é usado.
* FvwmScript: DefaultBack cor
Especifica a cor de fundo padrão a ser usada. Se não for especificado com este
ou no script com o comando BackColor, grey85 é usado.
* FvwmScript: DefaultHilight cor
Especifica a cor do brilho padrão a ser usada. Se não for especificado com este comando
ou no script com o comando HilightColor, grey100 é usado.
* FvwmScript: DefaultShadow cor
Especifica a cor de sombra padrão a ser usada. Se não for especificado com este comando
ou no script com o comando ShadowColor, grey55 é usado.
* FvwmScript: DefaultColorset conjunto de cores
Diz ao módulo para usar o conjunto de cores conjunto de cores como o conjunto de cores padrão. Consulte o
Página man FvwmTheme para detalhes sobre os conjuntos de cores.
ANATOMIA OF A SCRIPT
FvwmScript usa uma linguagem de programação específica. Um script é composto por cinco partes.
O título contém características gerais da janela e propriedades padrão para todos
widgets. A segunda parte contém instruções que são executadas na inicialização do
roteiro. A terceira parte contém tarefas periódicas que são executadas a cada segundo. o
a quarta parte contém instruções que são executadas na saída. E a última parte contém
a descrição dos widgets. Um widget consiste em onze tipos de itens: rótulos de texto,
entradas de texto de linha única, botões de opção, caixa de seleção, botões de pressão, horizontal e vertical
barras de rolagem, retângulos, menus pop-up, engolirexecs e mini barras de rolagem.
RUBRICA OF A SCRIPT
A sintaxe é a seguinte:
Título da janela corda
Esta opção define o título da janela.
Tamanho da janela largura altura
Esta opção define o tamanho da janela. largura e altura são valores numéricos.
Posição da janela x y
Esta opção define a posição da janela. x e y são valores numéricos.
ForeColor {cor}
Esta opção define a cor de primeiro plano padrão para todos os widgets.
Cor de fundo {cor}
Esta opção define a cor de fundo padrão para todos os widgets.
Cor de destaque {cor}
Esta opção define a cor do brilho padrão para todos os widgets.
SombraCor {cor}
Esta opção define a cor de sombra padrão para todos os widgets.
Conjunto de cores {n}
Esta opção define o conjunto de cores padrão para todos os widgets.
Fonte {fonte}
Esta opção define a fonte padrão para todos os widgets.
Use Gettext [locale_path]
Habilite o uso do mecanismo gettext que é usado pelo WindowLocaleTitle,
Instruções LocaleTitle, ChangeLocaleTitle e a função Gettext. Se não
é fornecido, o catálogo de localidade FvwmScript padrão é usado. Este catálogo é
sob o diretório de instalação local fvwm e o domínio de texto é FvwmScript
(install_prefix / share / locale / * / LC_MESSAGES / FvwmScript.mo). Você pode redefinir isso
catalogar ou adicionar alguns catálogos exatamente da mesma maneira que com o LocalePath fvwm
(consulte a página de manual do fvwm). Esta instrução deve ser colocada antes do
Instrução WindowLocaleTitle.
WindowLocaleTitle corda
Esta opção define o título da janela, mas use o (s) catálogo (s) local (is) definido (s) com
Use Gettext.
INICIALIZAÇÃO
Esta parte contém instruções que serão executadas na inicialização. Por exemplo:
Nisso
Começar
Faça "Exec cat tada.voc> / dev / dsp"
WarpPointer 1
Definir $ ToDo = Reiniciar
Terminar
Estas instruções são usadas para reproduzir um som, mova o ponteiro para o widget 1 e para
inicialize $ ToDo para "Reiniciar" a cada inicialização.
PERIÓDICO TAREFAS
Esta parte do script contém instruções que são executadas a cada segundo. Para
exemplo:
Tarefas periódicas
Começar
If (RemainderOfDiv (GetTime) 10) == 0 Then
Faça {Exec xcalc}
Terminar
Este exemplo mostra como iniciar o xcalc a cada 10 segundos.
A SAIR FUNÇÃO
Esta parte do script contém instruções que são executadas quando o script sai
(após a instrução Sair ou se você fechar a janela com Fechar, Excluir ou Destruir
comando fvwm). Por exemplo
QuitFunc
Começar
Faça {Echo tchau, tchau}
Terminar
Esteja ciente de que se você usou o comando KillModule fvwm para fechar o script, alguns
instruções ou funções que dependem da existência de um link de comunicação entre o
script e fvwm não serão executados (por exemplo, o comando Do). Para matar suavemente um
script com um comando fvwm consulte o COMANDOS seção.
A PRINCIPAL OF A SCRIPT
A segunda parte do script contém a descrição de cada widget do script.
Cada descrição de widget tem duas partes. A primeira parte descreve as propriedades iniciais, o
a segunda parte contém instruções que são executadas quando o widget recebe mensagens.
Todos os widgets podem enviar e receber mensagens. Todas as mensagens são identificadas por um número. o
a mensagem "UserAction" é enviada a um widget quando o usuário opera o widget. A sintaxe
para a primeira parte é:
ID do widget # Um número entre 1 e 999 inclusive
Imóvel
String de tipo
Tamanho largura altura
Posição xy
Título {string}
Valor int
MaxValue int
MinValue int
String de fonte
ForeColor {color}
BackColor {color}
HilightColor {color}
ShadowColor {color}
Conjunto de cores int
Sinalizadores flagsOpt
A opção flagsOpt para Flags é uma lista separada por espaços contendo um ou mais dos
palavras-chave oculto, NoReliefString, Sem foco, Esquerdo / Centralização de / Certo. oculto é usado para
especifique se o widget está oculto na inicialização. NoReliefString especifica se strings são desenhadas
com alívio ou não. Sem foco especifica se o widget pode obter o foco do teclado ou não.
Por padrão, todos os widgets ficam em foco, exceto Rectangle, HDipstick e VDipstick que não podem.
Além disso, os widgets NoFocus são ignorados quando você circula entre os widgets com o
(Shift-) Atalho de tabulação. Esquerdo / Centralização de / Certo especifica a posição do texto. Estes se aplicam
apenas para ItemDraw, List, Menu, PopupMenu e PushButton. O padrão é Centralização de para ItemDraw
e PushButton e Esquerdo para os outros widgets.
LocaleTitle pode ser usado no lugar de Título, para usar o (s) catálogo (s) de localidade definido (s) com
Use Gettext.
A posição de cada widget deve ser especificada.
A sintaxe da segunda parte é:
a Principal
Mensagem de caso de
Clique único:
Começar
# lista de instruções que serão
# executado quando o widget recebe
# mensagem "SingleClic". Esta mensagem é
# gerado pelo usuário.
Terminar
1:
Começar
# lista de instruções que serão
# executado quando o widget recebe
# mensagem 1
Terminar
Terminar
LISTA OF WIDGETS
Existem quinze tipos de widgets.
CheckBox: Exibir caixa de seleção com uma string.
Título: título da caixa de seleção.
Valor: se o valor for igual a 1, a caixa é marcada, caso contrário, não é.
A Tamanho propriedade é ignorada.
HDipstick: Exibe uma vareta de nível horizontal.
Este widget pode ser usado para exibir o uso do disco.
Valor: especifique o valor atual da vareta medidora.
Valor mínimo: especifique o valor mínimo da vareta.
Valor máximo: especifica o valor máximo da vareta medidora.
É imposto um tamanho mínimo de 30x11.
HScrollBar: Exibe uma barra de rolagem horizontal.
Valor: posição do polegar.
Valor máximo: limite superior do valor.
Valor mínimo: limite inferior do valor.
A propriedade height é ignorada e uma largura mínima é imposta. A largura deve ser
pelo menos a faixa mais 37 se todos os valores forem selecionáveis, por exemplo, um mínimo de 0 e
máximo de 10 tem um intervalo de 11 e, portanto, deve ter uma largura mínima de 48.
Item Draw: Exibe um ícone e / ou uma string.
Título: string a ser exibida.
ícone: ícone para exibir.
Valor máximo: coordenada x do cursor.
Valor mínimo: coordenada y do cursor.
O tamanho é grande o suficiente para conter o título e / ou o ícone.
Lista: Exibe uma lista.
A lista permite que o usuário escolha entre várias opções.
Valor: especifique qual opção é selecionada.
Valor mínimo: Primeira opção visível.
Título: o título contém as opções exibidas na lista. A sintaxe é a seguinte:
{Opção 1 | Opção 2 | ... | Opção N}. Todos os menus são exibidos na parte superior da janela.
Uma altura mínima de três itens é imposta e a largura é feita para ser de pelo menos
108.
Menu: Exibe um menu que permite ao usuário escolher uma opção.
Os itens do tipo Menu são dispostos da esquerda para a direita na parte superior da janela.
As propriedades de tamanho e posição são ignoradas.
Valor: especifique qual opção é selecionada.
Título: o título contém as opções exibidas no menu. A sintaxe é a seguinte:
{Opção 1 | Opção 2 | ... | Opção N}.
MiniScroll: Exibe uma barra de rolagem vertical muito pequena.
Valor: posição do polegar.
Valor máximo: limite superior do valor.
Valor mínimo: limite inferior do valor.
O tamanho está definido para 19x34.
Popupmenu: Exibe um menu pop-up.
Valor: especifique qual opção é selecionada.
Título: o título tem a seguinte sintaxe: {Opção 1 | Opção 2 | ... | Opção N}. "Opção
1 | Opção 2 | ... | Opção N "é o menu pop-up que é exibido ao pressionar o mouse
botão.
A propriedade size é ignorada.
Botão de apertar: Exibir o botão de pressão com um ícone e / ou uma string.
Título: esta string tem a seguinte sintaxe {Título do botão | Opção 1 | Opção
2 | Opção3 | ... | Opção N}. "Opção 1 | Opção 2 | ... | Opção N" é o menu pop-up que
é exibido ao pressionar o botão direito.
ícone: ícone para exibir.
O botão é grande o suficiente para caber no ícone e / ou no rótulo.
Radiobutton: Exibe o botão de opção com uma string.
Título: título do botão de opção.
Valor: se o valor for igual a 1, a caixa é marcada, caso contrário, não é.
A propriedade de tamanho é ignorada
retângulo: Exibe um retângulo.
Este tipo de widget pode ser usado para decorar a janela.
SwallowExec
Este tipo de widget faz com que o FvwmScript gere um processo e capture o primeiro
janela cujo nome ou recurso é igual a Título, e exibi-lo no script
janela.
Título: especifique o nome da janela que será capturada e exibida no script
janela.
SwallowExec: especifique a linha de comando a ser executada para iniciar o processo. Módulos podem
também ser engolido.
Valor: especifica a aparência da borda. Valor possível: -1, 0, 1.
O tamanho é feito para ser de pelo menos 30 x 30
Campo de texto: Exibe um campo de entrada de texto.
O campo de entrada de texto pode ser usado para editar uma string de linha única.
Título: conteúdo do campo de texto.
Valor: posição do ponto de inserção.
Valor mínimo: posição do final da seleção.
Valor máximo: primeiro caractere visível do título
A propriedade de altura é ignorada, a largura é feita para ser pelo menos 40 pixels mais larga
do que o conteúdo inicial.
Vareta medidora: Exibe uma vareta de nível vertical.
Valor: especifique o valor atual da vareta medidora.
Valor mínimo: especifique o valor mínimo da vareta.
Valor máximo: especifica o valor máximo da vareta medidora.
O tamanho é feito para ser de pelo menos 11x30.
VScrollBarName: Exibe uma barra de rolagem vertical.
Valor: posição do polegar.
Valor máximo: limite superior do valor.
Valor mínimo: limite inferior do valor.
A propriedade de largura é ignorada e uma altura mínima é imposta. A altura deve
ser pelo menos o intervalo mais 37 se todos os valores forem selecionáveis, por exemplo, um mínimo de 0
e máximo de 10 tem um intervalo de 11 e, portanto, deve ter uma altura mínima de 48.
INSTRUÇÕES
Aqui está a descrição de todas as instruções.
EsconderWidget id : esconde o widget numerado id.
Mostrar Widget id: mostra o widget numerado id.
Alterar valor id1 id2
Defina o valor do widget numerado id1 para id2.
AlterarMaxValue id1 id2
Defina o valor máximo do widget numerado id1 para id2.
AlterarMinValor id1 id2
Defina o valor mínimo do widget numerado id1 para id2.
Alterar título id1 id2
Defina o título do widget numerado id1 para id2.
Alterar título da janela corda
Defina o título da janela para corda.
AlterarWindowTitleFromArg numarg
Defina o título da janela para o valor de numarg-ésimo argumento do script.
AlterarTítuloLocale id1 id2
Como ChangeTitle, mas use o (s) catálogo (s) de localidade definido (s) com UseGettext.
AlterarÍcone id1 id2
Defina o ícone do widget numerado id1 para id2.
AlterarForeColor id1 {cor}
Defina a cor de primeiro plano do widget numerado id1 para {cor}.
AlterarVoltarCor id1 {cor}
Defina a cor de fundo do widget numerado id1 para {cor}.
Alterar conjunto de cores id1 id2
Defina o conjunto de cores do widget numerado id1 para id2. Especificar o widget 0 define o
conjunto de cores da janela principal.
Mudança de posição id1 x y
Mova o widget numerado id1 posicionar (x,y).
AlterarTamanho id1 largura altura
Defina o tamanho do widget numerado id1 para (largura,altura).
Alterar fonte id1 nova fonte
Defina a fonte do widget numerado id1 para nova fonte.
WarpPointerName id
Deforma o ponteiro do mouse no widget numerado id.
WriteToFile nome do arquivo {str1} {str2} etc.
Grave no arquivo nome do arquivo a string que é a concatenação de todos os argumentos
str1, str2, etc.
Fazer {comando args}
Execute o comando fvwm dentro do bloco Do. Qualquer comando fvwm conforme descrito no
A página do manual fvwm2 pode ser usada. Os comandos são enviados a partir deste módulo para o fvwm principal
programa para processamento. O comprimento do comando e argumentos não pode exceder 988
caracteres.
Definir $var={str1} {str2} etc.
Concatene todos os argumentos para uma string e defina a variável $var a esta string.
Sair: sai do programa.
EnviarSinal id1 id2
Envie uma mensagem numerada id2 para widget id1.
Enviar para script id_script {str11} {str2} etc.
Envie uma mensagem para o script identificado por id_script. A mensagem é a
concatenação de str1, str2 ...
Chave Nome-chave Modificar id sig str1 str2 etc.
Vincula uma tecla do teclado à instrução
EnviarSinal id sig
e define a "última string" para a concatenação de str1, str2 ... (veja o
Função LastString). o Nome-chave e Modificadores campos são definidos como no fvwm
Comando de chave.
ARGUMENTOS
A maioria dos comandos usa argumentos. Existem dois tipos de argumentos: números e strings. UMA
argumento numérico é um valor que está entre -32000 e +32000. Uma corda é sempre
cercado com colchetes. As variáveis sempre começam com o caractere "$" e podem conter ambos
números e strings.
FUNÇÕES
Todas as funções usam argumentos. As funções podem retornar uma string e um número. A sintaxe
é:
(função argumento1 argumento2 etc)
Aqui está a lista completa de argumentos:
(Obter título id)
Retorna o título do widget numerado id.
(Obter valor id)
Retorna o valor atual do widget numerado id.
(GetMinValue id)
Retorna o valor mínimo atual do widget numerado id.
(GetMaxValue id)
Retorna o valor máximo atual do widget numerado id.
(GetFore id)
Retorna o valor de primeiro plano RGB atual do widget numerado id no formato hexadecimal
RRGBBB.
(Voltam id)
Retorna o valor de fundo RGB atual do widget numerado id no formato hexadecimal
RRGBBB.
(GetHilight id)
Retorna o valor real de RGB atual do widget numerado id no formato hexadecimal
RRGBBB.
(Obter Sombra id)
Retorna o valor de sombra RGB atual do widget numerado id no formato hexadecimal
RRGBBB.
(obtersaída {str} int1 int2)
Executa o comando str, obtém a saída padrão e retorna a palavra que está em
a linha int1 e na posição int2. Se int2 é igual a -1, GetOutput retorna
a linha completa.
(NumToHex int)
Retorna o valor hexadecimal de int.
(HexToNum {str})
Retorna o valor decimal de str, str deve ser um valor hexadecimal.
(Adicionar int1 int2)
Retorna o resultado de (int1+int2).
(Multi int1 int2)
Retorna o resultado de (int1*int2).
(Div. int1 int2)
Retorna o resultado de (int1/int2).
(StrCopy {str} int1 int2)
Retorne a string que está entre as posições int1 e int2. Por exemplo, (StrCopy
{Hello} 1 2) retorna {He}
(LaunchScript{str})
Esta função inicia o script denominado str e retorna um número de identificação.
Este número é necessário para usar as funções SendToScript e ReceiveFromScript.
A string str contém o nome do script e alguns argumentos.
(GetScriptArgument{int})
Esta função retorna o script de argumento usado na função LaunchScript. Se
int é igual a zero, GetScriptArgument retorna o nome do script.
(GetScriptPai)
Esta função retorna o número de identificação do pai do script.
(ReceberFromScript {int})
Esta função retorna a mensagem enviada pelo script numerado int.
(RemainderOfDiv{int1 int2}): t
Esta função retorna o resto da divisão (int1/int2).
(Consiga tempo)
Esta função retorna o tempo em segundos.
(ObterPid)
Esta função retorna o id do processo do script.
(Obter texto {str})
Esta função retorna a tradução de str usando o (s) catálogo (s) de localidade definido (s)
com UseGettext.
(EnviarMsgAndGet {comId} {cmd} bool)
Envia o comando cmd com identificador comId para um programa externo pronto para
comunicar-se com o script usando um protocolo específico para FvwmScript. Se bool é 0
FvwmScript não espera por uma resposta do programa externo. Neste caso, o
o valor retornado é 1 se a mensagem pode ser enviada para o programa externo e 0 se
Este não é o caso. Se bool é 1, então FvwmScript espera por uma resposta do
programa externo e o valor de retorno é esta resposta (uma linha de no máximo 32000
personagens). Se a comunicação falhar, o valor retornado é 0. Consulte a seção
A COMUNICAÇÃO PROTOCOLO para obter uma descrição do protocolo de comunicação usado.
(Analisar {str} int)
onde str deve ser uma string no formato:
X1S1X2S2X3S3...SnXn
onde os Xn são números contendo quatro dígitos decimais e onde Sn são sequências de
comprimento exatamente Xn. O valor retornado é a string Sint. Se int está fora de alcance
(por exemplo,> n) o valor retornado é a string vazia. Se str não é do especificado
formulário, o valor de retorno é imprevisível (mas vazio na média). Esta função
é útil para lidar com strings retornadas pela função SendMsgAndGet.
(Última Sequência)
Esta função retorna a "string de trabalho atual" para a instrução Key e o
Comando SendString (veja o COMANDOS seção). Na inicialização, esta string está vazia, mas
quando uma ligação de chave é detectada (respectivamente, um comando SendString é recebido),
então esta string é definida como a string associada à instrução (respectivamente,
ao comando).
CONDICIONAL ROTAÇÕES
Existem três tipos de loops condicionais. A instrução "If-Then-Else" tem o
seguinte sintaxe:
If $ ToDo == {Open xcalc} Then
Faça {Exec xcalc &} # Lista de instruções
Outro
Começar
Faça {Exec killall xcalc &} # Lista de instruções
Faça {Exec echo xcalc morto> / dev / console}
Terminar
A segunda parte "Else-Begin-End" é opcional. Se o loop contém apenas uma instrução,
Begin e End podem ser omitidos. A instrução "While-Do" tem a seguinte sintaxe:
Enquanto $ i <5 Faça
Começar
Definir $ i = (Adicionar i 1) # Lista de instruções
Terminar
Duas strings podem ser comparadas com "==" e dois números podem ser comparados com "<", "<=",
"==", "> =", ">". O loop "For-Do-Begin-End" tem a seguinte sintaxe:
Para $ i = 1 a 20 Faça
Começar
Faça {Exec xcalc &} # Lista de instruções
Terminar
COMANDOS
O seguinte comando fvwm pode ser executado a qualquer momento
Enviar para módulo Nome do script SendString id sig str
ele envia para qualquer módulo com alias ou nome que corresponda Nome do script a corda
SendString id sig str
Quando um FvwmScript recebe tal mensagem, ele envia para o Widget id o sinal numerado
sig e a corda str pode ser obtido com a função LastString. Vamos dar um
exemplo. Digamos que você tenha um script MyScript com o widget:
widget 50
Imóvel
Digite PushButton
Título {Sair}
...
a Principal
Mensagem de caso de
Clique único:
Começar
desistir
Terminar
1:
Começar
Defina $ str = (LastString)
Se $ str == {Sair} Então
desistir
Outro
ChangeTitle 33 $ str
Terminar
Terminar
Então o comando
SendToModule MyScript SendString 50 1 str
força o MyScript a sair se str for igual a "Quit" e se não mudar o título de
Widget 33 para str.
Este comando pode ser usado para mudar o título da janela
Enviar para módulo Nome do script Alterar título da janela novoTítulo [antigo título]
faz com que qualquer módulo com alias ou nome que corresponda Nome do script muda seu
título de janela associado a novoTítulo. O argumento opcional Título antigo faz sentido quando lá
são várias instâncias do mesmo script. Permite evitar a mudança do nome de
todas essas instâncias, especificando o nome da janela associada ao script de destino
(veja o exemplo abaixo).
+ I Módulo FvwmScript FvwmStorageSend "/ dev / hda6"
+ Espero FvwmStorageSend
+ I SendToModule FvwmStorageSend ChangeWindowTitle HDA6
+ I Módulo FvwmScript FvwmStorageSend "/ dev / hda1"
+ Espero FvwmStorageSend
+ I SendToModule FvwmStorageSend ChangeWindowTitle HDA1 FvwmStorageSend
Sem o argumento FvwmStorageSend no último caso, o comando SendToModule teria
mudou para HDA1 o nome de ambas as instâncias de FvwmStorageSend.
EXEMPLOS
Você encontrará exemplos de scripts no diretório de configuração fvwm.
FvwmScript-BellSetup, FvwmScript-KeyboardSetup, FvwmScript-PointerSetup e FvwmScript-
ScreenSetup é um conjunto de scripts que modifica as configurações do X. Esses scripts salvam preferências
em um arquivo chamado ~ / .xinit-fvwmrc (Se você quiser usar outro nome de arquivo, dê-o como o
primeiro argumento do script). Se você quiser carregar essas preferências a cada inicialização,
você deve incluir a linha ".xinit-fvwmrc" em seu arquivo .xinitrc (ou .xsession) antes
começando fvwm.
FvwmScript-BaseConfig modifica o foco fvwm e a política do mouse de paginação, o posicionamento da janela,
opacidade e outros recursos dos comandos mover e redimensionar, atração instantânea e sombreamento
animação. Este script salva as preferências em um arquivo denominado .FvwmBaseConfig no arquivo do usuário
diretório de dados (ou seja, $ HOME / .fvwm ou $ FVWM_USERDIR se definido). Se você quiser carregar estes
preferências em cada inicialização você deve adicionar a linha "Read .FvwmBaseConfig" em seu fvwm
arquivo de configuração. Se você quiser usar outro nome de arquivo, dê-o como o primeiro argumento
do script. Quando você clica em Ok ou Aplicar uma função fvwm que você pode definir nomeada
BaseConfigOkFunc ou BaseConfigApplyFunc é chamado. Isso permite recarregar
estilos de aplicativos que o script destruiu (por exemplo, AddToFunc BaseConfigOkFunc I Read
MeuAppStyle).
FvwmScript-Buttons é um painel de botões que pode substituir FvwmButtons (este script suporta
menus popup e requer xload, xclock, FvwmPager, TkDesk). FvwmScript-Colorset permite
você a editar seu conjunto de cores (consulte FvwmTheme). FvwmScript-Date permite que você defina a data e
Tempo. FvwmScript-FileBrowser é um navegador de arquivos usado por outros scripts. FvwmScript-
Find é um front-end elementar para encontrar. FvwmScript-Quit permite sair do fvwm, reiniciar
fvwm ou algum outro gerenciador de janelas, ou desligue e reinicie o computador. FvwmScript-
ScreenDump é um dumper de tela. FvwmScript-WidgetDemo é um script de exemplo puro. Veja o
próxima seção para FvwmScript-ComExample.
A COMUNICAÇÃO PROTOCOLO
FvwmScript é uma linguagem de programação fraca (mas simples). Se você precisa lidar com muitos
dados e / ou você precisa usar algoritmos complexos você deve usar um programa externo (em perl
por exemplo) e "enviar" a informação desejada para o seu script FvwmScript. O primeiro
abordagem é usar a função GetOutput. Isso é simples, mas você deve executar novamente o seu
programa externo cada vez que você precisar de informações dele (e isso pode causar desempenhos
problemas). A segunda abordagem é usar a função SendMsgAndGet que estende
FvwmScript usando qualquer linguagem de programação que pode lidar com pipes nomeados (fifos). Nós
descreva esta solução nesta seção. (Uma terceira abordagem é usar fvwm-themes-com de
o pacote fvwm-themes, mas na verdade o método SendMsgAndGet é uma implementação de
fvwm-themes-com dentro do FvwmScript e isso oferece melhor desempenho).
Basicamente, você inicia um programa "externo" (o programa abreviado) a partir do seu FvwmScript
script (abreviadamente o script). Este programa é executado em segundo plano e você usa o
Função SendMsgAndGet em seu script para fazer perguntas ou dar instruções para o
programa. O programa deve respeitar estritamente um determinado protocolo de comunicação. O primeiro de
tudo o que existe é um identificador comId para a comunicação, deve conter o id do processo
do script para uma boa implementação do protocolo (use a função GetPid e passe
da comId através de uma opção para o programa). O protocolo usa dois fifos, no usuário fvwm
diretório, denominado: .tmp-com-incomId e .tmp-com-out-comId. O programa deve criar e
ouça no .tmp-com-incomId fifo. Então, quando FvwmScript executa uma função do
Formato:
Defina $ answer = (SendMsgAndGet {comId} {cmd} bool)
FvwmScript grava o cmd neste fifo. Desta forma, o programa pode ler o cmd e pode
execute a ação apropriada (deve remover o in fifo para suportar
comunicações). Se bool é 0, FvwmScript não espera por uma resposta do programa e
retorne 1 se as ações anteriores forem bem-sucedidas e 0 se elas falharem (então o programa deve "ir
voltar "ao in fifo). Se bool é 1, então FvwmScript espera (20 segundos) por uma resposta de
o programa e, por sua vez, retorna a resposta ao script (observe que bool não é passado para
o programa, pois deve saber quais comandos precisam de uma resposta). Para responder, o programa cria
o .tmp-com-out-comId fifo e escreve a resposta nele. O programa deve esperar até
FvwmScript lê a resposta e, em seguida, deve remover o fifo de saída e voltar para o de entrada
fifo. A resposta deve consistir em uma linha de no máximo 32000 caracteres (dê uma olhada
na função Parse para lidar com várias linhas como uma única linha).
Uma maneira simples de entender este protocolo e escrever scripts e programas que o utilizam é
para dar uma olhada no exemplo (não útil) FvwmScript-ComExample e fvwm-script-
ComExample.pl (que pode ser encontrado no diretório de dados fvwm). Além disso, esta implementação
do protocolo resolve questões como: O que fazer se o script for encerrado por um motivo incorreto?
O que fazer se o programa for encerrado por um motivo incorreto? ... etc.
Use FvwmScript online usando serviços onworks.net