2

Я немного переставил свою рабочую машину и теперь держу свой терминал открытым на вертикально ориентированном мониторе, из-за чего у меня возникли несколько иные потребности, чем у экрана GNU. До этого изменения я разделял один и тот же файл .screenrc между рассматриваемой машиной (mac) и двумя пакетами arch-linux.

Соответствуя некоторым условным условиям, которые я поместил в свой .bashrc для настройки различных систем, есть ли способ обеспечить условное поведение, например, разделить дисплей на горизонтальные панели в одной системе и вертикальные панели в другой?

Ничего не видя в Руководстве пользователя по экрану, я думаю, что самое близкое, что я могу попробовать - это настроить мой .bashrc для отправки экранных команд ala screen -S <name> -X <command> и позволить файлу .bashrc выяснить, что да, но это немного похоже на создание машины rube goldberg из скриптов и конфигурационных файлов.

1 ответ1

3

Как давний (13 лет или около того) пользователь GNUscreen я почти уверен, что в GNUscreen такой функции нет . Если вы не возражаете, я бы предложил перейти на tmux , так как он значительно лучше поддерживает многопанельные рабочие процессы. Можно настроить tmux так, чтобы он имел практически такие же сочетания клавиш, как GNUscreen (хотя по умолчанию они совсем другие). Более того, в tmux есть оператор if-shell который, по сути, выполняет то, что вы просили здесь для поддержки GNUscreen . Хотя это не дает положительного ответа на ваш вопрос, я надеюсь, что эта информация будет полезна.

По запросу добавляю мой .tmux.conf (для версии 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .