Valores condicionais em .screenrc?

2

Eu rearranjei minha máquina de trabalho um pouco e agora mantive meu terminal aberto em um monitor orientado verticalmente, o que me fez ter necessidades um pouco diferentes da tela GNU. Até esta mudança, tenho compartilhado o mesmo arquivo .screenrc entre a máquina em questão (um mac) e duas caixas arch-linux.

Combinando algumas das condicionais que eu coloquei no meu .bashrc para configurar coisas para os diferentes sistemas, existe alguma maneira de fornecer um comportamento condicional para, por exemplo, dividir a exibição em painéis horizontais em um sistema e painéis verticais em outro?

Não tendo visto nada no Manual do usuário da tela , a coisa mais próxima em que consigo pensar try está configurando meu .bashrc para enviar comandos de tela ala screen -S <name> -X <command> e deixar o arquivo .bashrc descobrir o que fazer, mas isso parece um pouco como criar uma máquina rube goldberg a partir de scripts e arquivos de configuração.

    
por Amazingant 30.12.2014 / 21:19

1 resposta

3

A muito tempo (13 anos ou mais) GNUscreen user Tenho certeza de que não existe esse recurso em GNUscreen . Se você não se importar eu sugiro mudar para tmux , pois tem suporte muito superior aos fluxos de trabalho multi-painel. É possível configurar o tmux para que ele tenha atalhos de teclado virtualmente idênticos como GNUscreen (embora o padrão seja bem diferente). Além disso tmux tem if-shell declaração que essencialmente faz o que você pediu aqui para GNUscreen para suportar. Embora não responda à sua pergunta de maneira positiva, espero que essa informação seja útil.

Por solicitação, adicionando meu .tmux.conf (para a versão 1.9):

# starts here:

set-option -sg prefix C-a
set-option -sga update-environment " MRXVT_TABTITLE TERMINATOR_UUID TERMINATOR_DBUS_NAME TERM_NO TERMINATOR_DBUS_PATH REMOTEHOST REMOTE_HOST"
set-option -sga terminal-overrides ",xterm*:smul=\e[35;1m:smcup@:rmcup@:acsc=\'\'aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~+>-\^.v0#,*rxvt*:smul=\e[35;1m:smcup@:rmcup@:acsc=\'\'aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~+>-\^.v0#,vte*:sitm=\e[34;1;7m:smul=\e[35;1m:smcup@:rmcup@:acsc=\'\'aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~+>-\^.v0#"
set-environment -gr TERM_NO
unbind-key C-b
bind-key a send-prefix
set-option -sg visual-bell on
set-option -sg default-terminal screen-256color-bce
set-option -sg status off
set-option -sg default-command ${SHELL}
set-option -sg message-bg green
set-option -sg message-fg black
set-option -sg message-attr default
set-option -sg message-command-bg green
set-option -sg pane-active-border-fg red
set-option -sg pane-active-border-bg black
set-option -sg pane-border-fg red
set-option -sg pane-border-bg black
set-option -sg status-bg green
set-option -sg mode-bg green
set-option -sg display-time 500
set-option -sg mode-mouse on
set-option -sg mouse-select-pane on
set-option -sg mouse-select-window on
set-option -sg lock-command vlock
set-option -sg xterm-keys on
set-option -sg repeat-time 0
set-option -sg escape-time 10
set-window-option -g monitor-activity on

bind-key C-c new-window -c ${PWD}
bind-key C-n next-window
bind-key Space next-window
bind-key C-Space next-window
bind-key BSpace previous-window
bind-key C-BSpace previous-window
bind-key C-p previous-window
bind-key C-d detach-client
bind-key C-[ copy-mode
bind-key C-] paste-buffer
unbind-key l
unbind-key x
bind-key C-a last-window
unbind &
bind-key x lock-session
bind-key C-x lock-session
bind-key K confirm-before -p "Really kill window #W? (y/n)" kill-window
bind-key '"' choose-window
bind-key _ split-window
bind-key | split-window -h
bind-key M-1 select-pane -t 0
bind-key M-2 select-pane -t 1
bind-key M-3 select-pane -t 2
bind-key M-4 select-pane -t 3
    
por 31.12.2014 / 01:05