지금까지의 삽질(?)은 콘솔 환경에서 개발을 편하게 할 수 있게 세팅하기 위함이다.
Language Server Protocol (LSP) 가 최종 목적이 될 듯 하다.

mac os 와 byobu 를 사용하니, 몇몇 단축키가 충돌되거나 한다.
CTRL + 화살표(Left / Right) 등

1. 일단 터미널에서 단어간의 이동이 안된다. 다른 조합으로 바꾼다. (터미널 쪽에서 설정이 필요 - alacritty)

위치 .config/alacritty/alacritty.toml

bindings = [
  { key = "Right", mods = "Alt", chars = "\u001BF" },
  { key = "Left",  mods = "Alt", chars = "\u001BB" },
  { key = "F",  mods = "Control|Shift", action = "ToggleFullscreen" }, # full screen
 ]

CTRL 을 Alt (mac Opt 키) 조합으로 바꾼다.
Ctrl + Shift + F 로 전체화면 변경도 추가했다.

 

2. byobu 에서 Alt + Left/Right 는 윈도우 간의 전환인데, 위 터미널 설정이 우선하는 것 같다.

대신 동일 기능으로 CMD + Left / Right 로 전환 가능하다.

byobu ( tmux ) 의 단축키를 F1~F12 등을 사용하기도 하는데.

난 CTRL+a 의 조합을 사용하기 좋아한다.(Mac 에서는 Fxx 키를 입력하기 불편하다. fn 키를 같이 입력해야함)
tmux 는 ctrl+b 를 사용하나보다. byobu 쪽은 ctrl+a 를 사용한다.

CTRL+a 는 prefix 또는 Leader 키라고 한다.

CTRL+a 입력 후 조합단어. 대소문자 구분 ( 동일 키 )

+ c : 새윈도우 열기 ( F2 동일 )
+ n : 다음 윈도우 ( CMD + Right )
+ p : 이전 윈도우 ( CMD + Left )
+ ctrl-a : 바로 이전 윈도우

+ , : 윈도우 이름 변경 ( F8 )

+ d : detach  ( F6 )

+ % : 창 수직 분리 pane 
+ | : 창 수평 분리

pane 간 이동 ( Shift + Up/Down/Left/Right )

pane 간 사이즈조절 ( Shift + Opt + Up/Down/Left/Right )

 

3. byobu 에서 pane 을 나눈 후 마우스 스크롤을 pane 단위로 하도록 설정

# cat .config/byobu/.tmux.conf
set -g mouse on

위 항목 추가.

위 설정을 하니, pane 단위 스크롤이 되기는 한데, 복사하기 위해 마우스 드래그가 이상해 진다.
그냥 Alt + F12 로 위 옵션을 on / off 할 수 있으니, 이 방법이 나을 듯 하다.

CTRL+a + : (: 콜론, not ; 세미콜론)
으로 명령 모드로 들어간 후
set -g mouse on
set -g mouse off

직접 명령을 실행해도 된다.

 

4. 방향키 ( Arrow Key ) 를 다른 조합으로 바꾼다.

키보드의 방향키를 쓰기 불편해서 다른 키조합으로 바꾸고 싶다.(키캡을 교체하면 좀 나을려나?)
- 기존 텐키리스 쓰다가, 텐키 로 바꿨는데, 방향키가 적응이 안되네(유독 방향키가 구분이 안되는 키보드이긴 하지만)

alacritty + zsh + byobu(tmux) 조합에서 방향키를 다른 키로 바꾼다. ( alt + h j k l 으로 변경 )
alacritty 는 시도해봤는데, 안되거나 어렵다. 키코드값 chars 를 알아내기가 어렵다. 포기...

그래서 zshrc 에서 세팅하기로 한다. ( alt 가 ^] 라고 하는데, 맥이라 그런지 안되고 아래처럼 해야 된다.)

# cat .zshrc

bindkey "˙" backward-char
bindkey  "∆" down-line-or-history
bindkey  "˚" up-line-or-history
bindkey  "¬" forward-char

이렇게 바꾸니 좀 나아졌다. (키보드를 바꾸는게 상책이려나?)

- 그냥 다시 텐키리스 키보드로 바꿈.

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,

mac os 의 기본 shell 은 bash 로 되어 있는 것 같다.
chsh -s /bin/zsh 로 바꾸라는 안내도 나오지만, 그냥 쓰기로 했다.

다만, neovim 을 쓰기 위해 alacritty 를 쓰면서 zsh 를 써보기로 했다. (https://blog.1day1.org/693)
alacritty 가 따로 탭기능은 없어서, byobu 를 쓰기로 했다.

brew install byobu 로 설치

실행하니 기본쉘인 bash 로 실행이 된다. byobu 쓸때도 zsh 를 쓰고자 한다.

# cat .config/byobu/.tmux.conf
set -g default-shell /bin/zsh
set -g default-command /bin/zsh

위 파일명이 비어 있는데, 위 두줄을 넣어준다.

정상으로 zsh 가 기본으로 실행된다.

간만에 byobu 를 쓰려니 단축키가 잘 생각이 안난다.
자주 쓰던 키를 정리해둬야 겠다.

Shift-F1 을 누르면 단축키가 나온다. ( 아래와 같은데, 난 좀 다르게 사용한다. 그 부분을 따로 정리.)

  F1                             * Used by X11 *
    Shift-F1                     Display this help
  F2                             Create a new window
    Shift-F2                     Create a horizontal split
    Ctrl-F2                      Create a vertical split
    Ctrl-Shift-F2                Create a new session
  F3/F4                          Move focus among windows
    Alt-Left/Right               Move focus among windows
    Alt-Up/Down                  Move focus among sessions
    Shift-Left/Right/Up/Down     Move focus among splits
    Shift-F3/F4                  Move focus among splits
    Ctrl-F3/F4                   Move a split
    Ctrl-Shift-F3/F4             Move a window
    Shift-Alt-Left/Right/Up/Down Resize a split
  F5                             Reload profile, refresh status
    Alt-F5                       Toggle UTF-8 support, refresh status
    Shift-F5                     Toggle through status lines
    Ctrl-F5                      Reconnect ssh/gpg/dbus sockets
    Ctrl-Shift-F5                Change status bar's color randomly
  F6                             Detach session and then logout
    Shift-F6                     Detach session and do not logout
    Alt-F6                       Detach all clients but yourself
    Ctrl-F6                      Kill split in focus
  F7                             Enter scrollback history
    Alt-PageUp/PageDown          Enter and move through scrollback
    Shift-F7                     Save history to $BYOBU_RUN_DIR/printscreen
  F8                             Rename the current window
    Ctrl-F8                      Rename the current session
    Shift-F8                     Toggle through split arrangements
    Alt-Shift-F8                 Restore a split-pane layout
    Ctrl-Shift-F8                Save the current split-pane layout
  F9                             Launch byobu-config window
    Ctrl-F9                      Enter command and run in all windows
    Shift-F9                     Enter command and run in all splits
    Alt-F9                       Toggle sending keyboard input to all splits
  F10                            * Used by X11 *
  F11                            * Used by X11 *
    Alt-F11                      Expand split to a full window
    Shift-F11                    Zoom into a split, zoom out of a split
    Ctrl-F11                     Join window into a vertical split
  F12                            Escape sequence
    Shift-F12                    Toggle on/off Byobu's keybindings
    Alt-F12                      Toggle on/off Byobu's mouse support
    Ctrl-Shift-F12               Mondrian squares
반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,

ubuntu 14.04 의 byobu (screen) 가 ctrl-a 이 안 먹는다.

byobu 를 실행시키고 ctrl-a 를 눌렀을때

다음처럼 화면이 나올때 1/2 아무거나 입력해도 안되고 같은 화면만 나오는 문제가 있다.

직접 콘솔상에서 byobu-ctrl-a 를 해보면.

$ byobu-ctrl-a
failed to connect to server

Configure Byobu's ctrl-a behavior...

When you press ctrl-a in Byobu, do you want it to operate in:
    (1) Screen mode (GNU Screen's default escape sequence)
    (2) Emacs mode  (go to beginning of line)

Note that:
  - F12 also operates as an escape in Byobu
  - You can press F9 and choose your escape character
  - You can run 'byobu-ctrl-a' at any time to change your selection

Select [1 or 2]: 1

/usr/bin/byobu-ctrl-a: 151: /usr/bin/byobu-ctrl-a: Syntax error: Unterminated quoted string


위처럼 에러가 발생한다.

직접 byobu-ctrl-a 를 수정한다.

115                 case "$BYOBU_BACKEND" in
116                         screen)
117                                 $BYOBU_SED -i -e "/^register x /d" -e "/^bindkey \"^\"/d" -e "/^escape /d" "$keybindings"
118                                 echo "escape \"^${KEY}${key}\"" >> "$keybindings"
119                                 echo "register x \"^${KEY}\"" >> "$keybindings"
120                                 echo "bindkey \"^${KEY}\" >> "$keybindings"
121                                 $BYOBU_BACKEND -X at 0 source "$BYOBU_CONFIG_DIR/profile"
122                         ;;

120 라인부분을 보면  " => 가 빠져있다.

120                                 echo "bindkey \"^${KEY}\" >> "$keybindings"

120                                 echo "bindkey \"^${KEY}\"" >> "$keybindings"


수정 후 저장하고 다시 해보면 정상동작한다.

저 스크립트는 최종적으로. .byobu/keybindings.tmux 파일에 설정이 저장된다.

$ cat .byobu/keybindings.tmux
unbind-key -n C-a
set -g prefix ^A
set -g prefix2 ^A
bind a send-prefix

에러가 나서 계속 같은 화면이 나왔던 것이다.





반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,