diff --git a/pyproject.toml b/pyproject.toml index 7a3d9c9..1d231ec 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -18,7 +18,7 @@ dependencies = [] description = "Read Write eXecute" dynamic = ["version"] keywords = [] -license-files = ["license.md"] +license-files = { paths = ["license.md"] } name = "rwx" readme = "readme.md" requires-python = ">= 3.11" @@ -30,3 +30,16 @@ requires-python = ">= 3.11" [tool.hatch.version] path = "rwx/__init__.py" + +[tool.pydoclint] +allow-init-docstring = true +quiet = true +skip-checking-short-docstrings = false +style = "sphinx" + +[tool.ruff] +line-length = 80 + +[tool.ruff.lint] +ignore = ["COM812", "D203", "D213", "ISC001"] +select = ["ALL"] diff --git a/rwx/fs/__init__.py b/rwx/fs/__init__.py index 8a45288..0772a8d 100644 --- a/rwx/fs/__init__.py +++ b/rwx/fs/__init__.py @@ -2,9 +2,8 @@ import os import shutil -from pathlib import Path - import tomllib +from pathlib import Path from rwx import ps @@ -62,7 +61,7 @@ def get_path_mount(path: Path) -> Path: "stat", ("--format", "%m"), str(path), - ), + ) ) diff --git a/rwx/grub/__init__.py b/rwx/grub/__init__.py index aa208c3..572b13e 100644 --- a/rwx/grub/__init__.py +++ b/rwx/grub/__init__.py @@ -1,7 +1,5 @@ """Wrap GRUB commands.""" -from __future__ import annotations - from rwx import cmd, ps cmd.need("grub-mkimage") diff --git a/rwx/ps/__init__.py b/rwx/ps/__init__.py index 3bef50d..82c9640 100644 --- a/rwx/ps/__init__.py +++ b/rwx/ps/__init__.py @@ -1,7 +1,5 @@ """Handle processes.""" -from __future__ import annotations - import subprocess from rwx import Object, txt @@ -45,9 +43,7 @@ def run(*items: str | tuple[str, ...]) -> subprocess.CompletedProcess: :rtype: subprocess.CompletedProcess """ return subprocess.run( - get_tuples_args(*items), - capture_output=False, - check=True, + get_tuples_args(*items), capture_output=False, check=True ) @@ -65,8 +61,7 @@ def run_line(*items: str | tuple[str, ...], charset: str = txt.CHARSET) -> str: def run_lines( - *items: str | tuple[str, ...], - charset: str = txt.CHARSET, + *items: str | tuple[str, ...], charset: str = txt.CHARSET ) -> list[str]: """Run and return output lines. @@ -77,9 +72,7 @@ def run_lines( :rtype: list[str] """ process = subprocess.run( - get_tuples_args(*items), - capture_output=True, - check=True, + get_tuples_args(*items), capture_output=True, check=True ) string = process.stdout.decode(charset) return string.rstrip().splitlines() diff --git a/sh/ffmpeg.sh b/sh/ffmpeg.sh deleted file mode 100644 index bcb3a62..0000000 --- a/sh/ffmpeg.sh +++ /dev/null @@ -1,194 +0,0 @@ -# ╭────────┬─────────┬───────╮ -# │ ffmpeg │ devices │ reset │ -# ╰────────┴─────────┴───────╯ - -_rwx_cmd_rwx_ffmpeg_devices_reset() { rwx_ffmpeg_devices_reset "${@}"; } -rwx_ffmpeg_devices_reset() { - local module="uvcvideo" - modprobe --remove "${module}" && - modprobe "${module}" -} - -# ╭────────┬────────┬─────────╮ -# │ ffmpeg │ device │ formats │ -# ╰────────┴────────┴─────────╯ - -rwx_ffmpeg_device_formats() { - local device="${1}" - [ -n "${device}" ] || device="/dev/video0" - ffmpeg \ - -f "v4l2" \ - -list_formats "all" \ - -i "${device}" -} - -# ╭────────┬───────╮ -# │ ffmpeg │ input │ -# ╰────────┴───────╯ - -rwx_ffmpeg_input_blue_yeti() { - local device="alsa_input.\ -usb-Generic_Blue_Microphones_2051BAB04XY8-00.analog-stereo" - set -- \ - -f "pulse" \ - -i "${device}" \ - -ac "2" \ - -ar "48000" - local argument - for argument in "${@}"; do echo "${argument}"; done -} - -rwx_ffmpeg_input_dell_precision() { - local device="alsa_input.\ -pci-0000_00_1f.3.analog-stereo" - set -- \ - -f "pulse" \ - -i "${device}" \ - -ac "2" \ - -ar "48000" - local argument - for argument in "${@}"; do echo "${argument}"; done -} - -rwx_ffmpeg_input_file() { - local file="${1}" - local from="${2}" - local to="${3}" - [ -n "${file}" ] || return - set -- \ - -i "${file}" - if [ -n "${to}" ]; then - set -- "${@}" \ - -ss "${from}" \ - -to "${to}" - fi - local argument - for argument in "${@}"; do echo "${argument}"; done -} - -rwx_ffmpeg_input_hdmi() { - local device="${1}" - [ -n "${device}" ] || device="/dev/video0" - set -- \ - -f "v4l2" \ - -video_size "1920x1080" \ - -framerate "60" \ - -input_format "yuyv422" \ - -i "${device}" - local argument - for argument in "${@}"; do echo "${argument}"; done -} - -# ╭────────┬────────╮ -# │ ffmpeg │ output │ -# ╰────────┴────────╯ - -rwx_ffmpeg_output_audio_fast() { - set -- \ - -codec:a "flac" \ - -compression_level "0" - local argument - for argument in "${@}"; do echo "${argument}"; done -} - -rwx_ffmpeg_output_audio_slow() { - set -- \ - -codec:a "libopus" \ - -b:a "128k" - local argument - for argument in "${@}"; do echo "${argument}"; done -} - -rwx_ffmpeg_output_file() { - local file="${1}" - [ -n "${file}" ] || return - set -- \ - -y "${file}" - local argument - for argument in "${@}"; do echo "${argument}"; done -} - -rwx_ffmpeg_output_video_fast() { - set -- \ - -codec:v "libx264" \ - -preset "ultrafast" \ - -crf "0" - local argument - for argument in "${@}"; do echo "${argument}"; done -} - -rwx_ffmpeg_output_video_slow() { - local crf="${1}" - local codec="${2}" - [ -n "${codec}" ] || codec="libx264" - if [ -z "${crm}" ]; then - case "${codec}" in - "libx264") crf="23" ;; - "libx265") crf="28" ;; - *) ;; - esac - fi - set -- \ - -codec:v "${codec}" \ - -preset "veryslow" \ - -crf "${crf}" \ - -movflags "+faststart" \ - -pix_fmt "yuv420p" - local argument - for argument in "${@}"; do echo "${argument}"; done -} - -# ╭────────┬────────╮ -# │ ffmpeg │ record │ -# ╰────────┴────────╯ - -rwx_ffmpeg_record_hdmi_precision() { - local file="${1}" - [ -n "${file}" ] || return - # LATER alternative - # shellcheck disable=SC2046,SC2312 - set -- \ - $(rwx_ffmpeg_input_hdmi) \ - $(rwx_ffmpeg_input_dell_precision) \ - $(rwx_ffmpeg_output_video_fast) \ - $(rwx_ffmpeg_output_audio_fast) \ - $(rwx_ffmpeg_output_file "${file}") - echo "${@}" - ffmpeg "${@}" -} - -rwx_ffmpeg_record_hdmi_yeti() { - local file="${1}" - [ -n "${file}" ] || return - # LATER alternative - # shellcheck disable=SC2046,SC2312 - set -- \ - $(rwx_ffmpeg_input_hdmi) \ - $(rwx_ffmpeg_input_blue_yeti) \ - $(rwx_ffmpeg_output_video_fast) \ - $(rwx_ffmpeg_output_audio_fast) \ - $(rwx_ffmpeg_output_file "${file}") - echo "${@}" - ffmpeg "${@}" -} - -# ╭────────┬────────╮ -# │ ffmpeg │ reduce │ -# ╰────────┴────────╯ - -rwx_ffmpeg_reduce() { - local input="${1}" - local output="${2}" - local from="${3}" - local to="${4}" - [ -n "${output}" ] || return - # LATER alternative - # shellcheck disable=SC2046,SC2312 - set -- \ - $(rwx_ffmpeg_input_file "${input}" "${from}" "${to}") \ - $(rwx_ffmpeg_output_video_slow) \ - $(rwx_ffmpeg_output_audio_slow) \ - $(rwx_ffmpeg_output_file "${output}") - echo "${@}" - ffmpeg "${@}" -} diff --git a/sh/gnome.sh b/sh/gnome.sh index b17a058..11831fb 100644 --- a/sh/gnome.sh +++ b/sh/gnome.sh @@ -1,27 +1,3 @@ -# ╭───────┬────────────╮ -# │ gnome │ background │ -# ╰───────┴────────────╯ - -rwx_gnome_background_black() { - rwx_gnome_set_background "color-shading-type" "solid" - rwx_gnome_set_background "primary-color" "#000000" -} - -rwx_gnome_background_white() { - rwx_gnome_set_background "color-shading-type" "solid" - rwx_gnome_set_background "primary-color" "#ffffff" -} - -rwx_gnome_background_win3() { - rwx_gnome_set_background "color-shading-type" "vertical" - rwx_gnome_set_background "primary-color" "#000000" - rwx_gnome_set_background "secondary-color" "#0000ff" -} - -# ╭───────┬───────╮ -# │ gnome │ proxy │ -# ╰───────┴───────╯ - rwx_gnome_proxy() { local value case "${1}" in @@ -31,29 +7,6 @@ rwx_gnome_proxy() { gsettings set "org.gnome.system.proxy" "mode" "${value}" } -# ╭───────┬─────╮ -# │ gnome │ set │ -# ╰───────┴─────╯ - -rwx_gnome_set() { - local group="${1}" - local key="${2}" - local value="${3}" - [ -n "${value}" ] || return - gsettings set "${group}" "${key}" "${value}" -} - -rwx_gnome_set_background() { - local key="${1}" - local value="${2}" - [ -n "${value}" ] || return - rwx_gnome_set "org.gnome.desktop.background" "${key}" "${value}" -} - -# ╭───────┬────────────╮ -# │ gnome │ workspaces │ -# ╰───────┴────────────╯ - rwx_gnome_workspaces_primary() { local bool local group="org.gnome.mutter" diff --git a/sh/lint/gitlint.sh b/sh/lint/gitlint.sh deleted file mode 100644 index 643333c..0000000 --- a/sh/lint/gitlint.sh +++ /dev/null @@ -1,6 +0,0 @@ -rwx_gitlint() { - local path="${1}" - gitlint \ - --target "${path}" \ - "lint" -} diff --git a/sh/lint/lint.sh b/sh/lint/lint.sh deleted file mode 100644 index 365773f..0000000 --- a/sh/lint/lint.sh +++ /dev/null @@ -1,78 +0,0 @@ -# lint code -rwx_lint() { - local path="${1}" - [ -n "${path}" ] || return 1 - rwx_lint_clean "${path}" - rwx_lint_tasks "${path}" - set \ - "python" \ - "shell" - local code - for code in "${@}"; do - rwx_log "" "${code}" - "rwx_lint_${code}" "${path}" - done - rwx_lint_clean "${path}" -} - -# clean -rwx_lint_clean() { - local path="${1}" - [ -n "${path}" ] || return 1 - rwx_log "" "clean" "" - py3clean "${path}" - set \ - "mypy" \ - "ruff" - local tool - for tool in "${@}"; do - rwx_remove "${path}/.${tool}_cache" - done -} - -# lint python code -rwx_lint_python() { - local path="${1}" - local action - set \ - "pylint" \ - "pydoclint" \ - "mypy" \ - "ruff" - for action in "${@}"; do - rwx_log "" "${action}" - "rwx_${action}" "${path}" - done -} - -# lint shell code -rwx_lint_shell() { - local path="${1}" - local action - set \ - "shellcheck" \ - "shfmt" - for action in "${@}"; do - rwx_log "" "${action}" - "rwx_${action}" "${path}" - done -} - -# lint code tasks -rwx_lint_tasks() { - local path="${1}" - local type - set \ - "LATER" \ - "TODO" \ - "FIXME" - for type in "${@}"; do - rwx_log "" "${type}" - grep \ - --after "1" \ - --directories "recurse" \ - --line-number \ - " ${type}" \ - "${path}" - done -} diff --git a/sh/lint/mypy.sh b/sh/lint/mypy.sh deleted file mode 100644 index 586d409..0000000 --- a/sh/lint/mypy.sh +++ /dev/null @@ -1,4 +0,0 @@ -rwx_mypy() { - local path="${1}" - mypy "${path}" -} diff --git a/sh/lint/pydoclint.sh b/sh/lint/pydoclint.sh deleted file mode 100644 index d2eb72f..0000000 --- a/sh/lint/pydoclint.sh +++ /dev/null @@ -1,9 +0,0 @@ -rwx_pydoclint() { - local path="${1}" - pydoclint \ - --allow-init-docstring True \ - --quiet \ - --skip-checking-short-docstrings False \ - --style "sphinx" \ - "${path}" -} diff --git a/sh/lint/pylint.sh b/sh/lint/pylint.sh deleted file mode 100644 index 52e1bd1..0000000 --- a/sh/lint/pylint.sh +++ /dev/null @@ -1,6 +0,0 @@ -rwx_pylint() { - local path="${1}" - pylint \ - --enable-all-extensions \ - "${path}/**/*.py" -} diff --git a/sh/lint/ruff.sh b/sh/lint/ruff.sh deleted file mode 100644 index e15b701..0000000 --- a/sh/lint/ruff.sh +++ /dev/null @@ -1,28 +0,0 @@ -rwx_ruff() { - local path="${1}" - local action - set \ - "check" \ - "format" - for action in "${@}"; do - "rwx_ruff_${action}" "${path}" - done -} - -rwx_ruff_check() { - local path="${1}" - ruff check \ - --ignore "D203,D213" \ - --isolated \ - --select "ALL" \ - "${path}" -} - -rwx_ruff_format() { - local path="${1}" - ruff format \ - --diff \ - --isolated \ - --line-length "80" \ - "${path}" -} diff --git a/sh/python.sh b/sh/python.sh deleted file mode 100644 index 44ea181..0000000 --- a/sh/python.sh +++ /dev/null @@ -1,14 +0,0 @@ -# ╭────────╮ -# │ python │ -# ╰────────╯ - -# ╭────────┬──────╮ -# │ python │ venv │ -# ╰────────┴──────╯ - -rwx_python_venv() { - local path="${1}" - [ -d "${path}" ] || return 1 - export VIRTUAL_ENV="${path}" && \ - export PATH="${VIRTUAL_ENV}/bin:${PATH}" -} diff --git a/sh/rescue/hetzner.sh b/sh/rescue/hetzner.sh index 24d6bd0..9d22847 100644 --- a/sh/rescue/hetzner.sh +++ b/sh/rescue/hetzner.sh @@ -63,8 +63,6 @@ rwx_rescue_wipe_0_init_hetzner_8_8() { for device in "${@}"; do members="${members} ${device}2" done - # LATER alternative - # shellcheck disable=SC2086 rwx_fs_raid_create \ "boot" "00000000:00000000:00000000:00000002" ${members} # @@ -89,8 +87,6 @@ rwx_rescue_wipe_0_init_hetzner_8_8() { for device in "${@}"; do members="${members} ${device}1" done - # LATER alternative - # shellcheck disable=SC2086 rwx_fs_raid_create \ "crypt" "00000000:00000000:00000000:00000001" ${members} # encrypt diff --git a/sh/self.sh b/sh/self.sh index 732e9c2..c6fad3b 100644 --- a/sh/self.sh +++ b/sh/self.sh @@ -1,38 +1,3 @@ -# meta doc -rwx_doc() { - local name="${1}" - [ -n "${name}" ] || return - local doc line module - rwx_ifs_set - for module in $(rwx_find_shell "${RWX_ROOT_SYSTEM}"); do - while read -r line; do - case "${line}" in - "#"*) doc="${doc}${line}" ;; - "${name}() {") - echo "${doc}" - return - ;; - *) doc="" ;; - esac - done <"${RWX_ROOT_SYSTEM}/${module}" - done - rwx_ifs_unset -} - -# ╭──────┬───────╮ -# │ self │ check │ -# ╰──────┴───────╯ - -# check source code -rwx_self_check() { - # check format - rwx_log - rwx_shfmt "${RWX_ROOT_SYSTEM}" - # check syntax - rwx_log - rwx_shellcheck "${RWX_ROOT_SYSTEM}" -} - # ╭──────┬──────────╮ # │ self │ commands │ # ╰──────┴──────────╯ @@ -79,6 +44,12 @@ rwx_self_help() { rwx_self_init() { # run interactive extras if rwx_shell_interactive; then + # check format + rwx_log + rwx_shfmt "${RWX_ROOT_SYSTEM}" + # check syntax + rwx_log + rwx_shellcheck "${RWX_ROOT_SYSTEM}" # help rwx_log rwx_self_help @@ -92,15 +63,9 @@ rwx_self_init() { _rwx_cmd_rwx_install() { rwx_self_install "${@}"; } rwx_self_install() { local target="${1}" - local command file root - # code - if [ -n "${target}" ]; then - root="${target}${RWX_ROOT_SYSTEM}" - rwx_remove "${root}" - cp --recursive "${RWX_ROOT_SYSTEM}" "${root}" - fi + local command file # commands - root="${target}/usr/local/bin" + local root="${target}/usr/local/bin" for command in $(rwx_self_commands); do file="${root}/${command}" rwx_remove "${file}" @@ -109,11 +74,9 @@ rwx_self_install() { # sh file="${target}/etc/profile.d/${RWX_SELF_NAME}.sh" rwx_remove "${file}" - rwx_file_write "${file}" "\ -export ENV=\"${RWX_MAIN_PATH}\" -" + rwx_file_write "${file}" "export ENV=\"${RWX_MAIN_PATH}\"" # bash - file="${target}/etc/bash.bashrc" + file="/etc/bash.bashrc" rwx_remove "${file}" rwx_link "${file}" "${RWX_MAIN_PATH}" } diff --git a/sh/shell.sh b/sh/shell.sh index 7e56658..4f0db9b 100644 --- a/sh/shell.sh +++ b/sh/shell.sh @@ -71,7 +71,7 @@ rwx_shell_prompt() { id="$(id --user)" local path="${PWD}" local user="${USER}" - local view="╰ " + local view="└ " # code if [ "${code}" -ne 0 ]; then view="${view}${RWX_COLOR_GREEN}" @@ -96,7 +96,7 @@ rwx_shell_prompt() { # new view="${view}\\n" # frame - view="${view}${RWX_COLOR_DEFAULT}╭ " + view="${view}${RWX_COLOR_DEFAULT}┌ " # user if [ "${id}" -eq 0 ]; then view="${view}${RWX_COLOR_GREEN}" diff --git a/sh/tmux.sh b/sh/tmux.sh deleted file mode 100644 index d9813e1..0000000 --- a/sh/tmux.sh +++ /dev/null @@ -1,264 +0,0 @@ -# ╭──────┬───────╮ -# │ tmux │ setup │ -# ╰──────┴───────╯ - -rwx_tmux_setup() { - local file - file="${HOME}/.tmux.conf" - rwx_file_write "${file}" "\ -# ╭────────╮ -# │ option │ -# ╰────────╯ - -# empty name for windows -set-option -g automatic-rename-format '#{pane_current_command}' -set-option -g automatic-rename on - -# first index number -set-option -g base-index 1 - -# display duration -set-option -g display-time 1536 - -# extend history limit -set-option -g history-limit 1048576 - -# style for messages -set-option -g message-style bg=red,fg=white - -# activity monitoring -set-window-option -g monitor-activity on - -# silence monitoring -set-window-option -g monitor-silence 0 - -# enable mouse actions -set-option -g mouse on - -# prefix with ^B or F12 -set-option -g prefix C-b -set-option -g prefix2 F12 - -# renumber windows after closing one -set-option -g renumber-windows on - -# enable title -set-option -g set-titles on - -# set title to working directory -set-option -g set-titles-string '\ -#{session_name}\ - - \ -#{window_index}∕#{session_windows} #{window_name}\ - - \ -#{pane_index}∕#{window_panes} #{pane_current_command}\ -' - -# ╭────────┬──────╮ -# │ option │ pane │ -# ╰────────┴──────╯ - -# first index number -set-option -g pane-base-index 1 - -# ╭────────┬──────┬────────╮ -# │ option │ pane │ border │ -# ╰────────┴──────┴────────╯ - -# active style -set-option -g pane-active-border-style fg=green - -# regular style -set-option -g pane-border-style fg=blue - -# ╭────────┬────────╮ -# │ option │ status │ -# ╰────────┴────────╯ - -# status lines -set-option -g status 3 - -# background color -set-option -g status-bg '#0D0D0D' - -# foreground color -set-option -g status-fg white - -# line 1 -set-option -g status-format[0] '\ -#{W:\ -#[bg=##202020] #[bg=##303030]\ -#{?window_zoomed_flag,#[fg=magenta][, }\ -#[fg=yellow]#{window_index}\ -#{?window_zoomed_flag,#[fg=magenta]], }\ - \ -#{?window_active,#[fg=green],\ -#{?window_activity_flag,#[fg=red],#[fg=blue]}}\ -#{window_name}\ -#[bg=##303030] #[bg=##202020] \ -#[bg=default] \ -}\ -#[align=right]\ -#[bg=##202020] #[bg=##303030] \ -#[fg=yellow]%H:%M:%S\ -#[bg=##303030] #[bg=##202020]\ -#{?client_prefix,#[fg=green]p, }\ -' - -# line 2 -set-option -g status-format[1] '\ -#{S:\ -#[bg=##202020] #[bg=##303030] \ -#{?session_many_attached,#[fg=red],\ -#{?session_attached,#[fg=magenta],#[fg=blue]}}\ -#{session_name}\ -#[bg=##303030] #[bg=##202020] \ -#[bg=default] \ -}\ -#[fg=yellow]→ #[fg=green]#{session_name} \ -#[align=right]\ -#[bg=##202020] #[bg=##303030] \ -#[fg=yellow]%Y-%m-%d\ -#[bg=##303030] #[bg=##202020] \ -' - -# line 3 -set-option -g status-format[2] '\ -#[fg=cyan]#{pane_current_path}\ -#[align=right]\ -#[bg=##202020] #[bg=##303030] \ -#[fg=yellow]#{host}\ -#[bg=##303030] #[bg=##202020] \ -' - -# line 4 -set-option -g status-format[3] '\ -#{P:\ -#[bg=##202020] #[bg=##303030] \ -#[fg=yellow]#{pane_index}\ - \ -#{?pane_active,#[fg=green],#[fg=blue]}\ -#{pane_current_command}\ -#[bg=##303030] #[bg=##202020] \ -#[bg=default] \ -}\ -#[align=right]\ -#[bg=##202020] #[bg=##303030] \ -#{?uid,#[fg=green],#[fg=red]}\ -#{user}\ -#[bg=##303030] #[bg=##202020] \ -' - -# line 5 -set-option -g status-format[4] '\ -#{P:\ -#[bg=##202020] #[bg=##303030] \ -#[fg=yellow]#{pane_index}\ - \ -#{?pane_active,#[fg=green],#[fg=blue]}\ -#{pane_width}×#{pane_height}\ -#[bg=##303030] #[bg=##202020] \ -#[bg=default] \ -}\ -#[align=right]\ -#[bg=##202020] #[bg=##303030] \ -#[fg=green]#{window_width}×#{window_height}\ -#[bg=##303030] #[bg=##202020] \ -' - -# refresh period -set-option -g status-interval 1 - -# bar location -set-option -g status-position bottom - -# ╭─────╮ -# │ key │ -# ╰─────╯ - -# detach client -bind-key -n F6 detach-client - -# new window -bind-key -n F2 new-window - -# select pane -bind-key -n C-S-Down select-pane -D -bind-key -n C-S-Left select-pane -L -bind-key -n C-S-Right select-pane -R -bind-key -n C-S-Up select-pane -U - -# status lines -bind-key -n C-F10 set-option -g status off -bind-key -n C-F1 set-option -g status on -bind-key -n C-F2 set-option -g status 2 -bind-key -n C-F3 set-option -g status 3 -bind-key -n C-F4 set-option -g status 4 -bind-key -n C-F5 set-option -g status 5 - -# switch session -bind-key -n M-Down switch-client -n -bind-key -n M-Up switch-client -p - -# switch window -bind-key -n M-Left previous-window -bind-key -n M-Right next-window - -# ╭─────┬────────╮ -# │ key │ prefix │ -# ╰─────┴────────╯ - -# rename -bind-key C-s command-prompt { rename-session '%%' } -bind-key C-w command-prompt { rename-window '%%' } - -# split window -bind-key h split-window -h -bind-key v split-window -v - -# toggle mouse -bind-key t set-option -g mouse \\; display-message 'mouse = #{mouse}' - -# reload configuration -bind-key r source-file ${file} \\; display-message 'source-file ${file}' - -# swap window -bind-key M-Left swap-window -t -1 -bind-key M-Right swap-window -t +1 - -# ╭─────────────╮ -# │ default │ -# ╭───────────┬─────────┼─────┬───────┤ -# │ -n │ F12 │ -n │ C-b │ -# ╭───────────────────┼───────────┼─────────┼─────┼───────┤ -# │ command-prompt │ │ │ │ : │ -# │ copy-mode │ │ │ │ PPage │ -# │ detach-client │ │ │ │ d │ -# │ new-session │ │ │ │ │ -# │ new-window │ F2 │ │ │ c │ -# │ next-window │ M-Right │ │ │ n │ -# │ previous-window │ M-Left │ │ │ p │ -# │ rename-session │ │ C-s │ │ │ -# │ rename-window │ │ C-w │ │ │ -# │ resize-pane -Z │ │ │ │ z │ -# │ select-pane -D │ C-S-Down │ │ │ │ -# │ select-pane -L │ C-S-Left │ │ │ │ -# │ select-pane -R │ C-S-Right │ │ │ │ -# │ select-pane -U │ C-S-Up │ │ │ │ -# │ set -g mouse │ │ t │ │ │ -# │ set -g status off │ C-F10 │ │ │ │ -# │ set -g status on │ C-F1 │ │ │ │ -# │ set -g status 2 │ C-F2 │ │ │ │ -# │ set -g status 3 │ C-F3 │ │ │ │ -# │ set -g status 4 │ C-F4 │ │ │ │ -# │ set -g status 5 │ C-F5 │ │ │ │ -# │ source-file │ │ r │ │ │ -# │ split-window -h │ │ h │ │ % │ -# │ split-window -v │ │ v │ │ \" │ -# │ swap-window -t -1 │ │ M-Left │ │ │ -# │ swap-window -t +1 │ │ M-Right │ │ │ -# │ switch-client -n │ M-Down │ │ │ │ -# │ switch-client -p │ M-Up │ │ │ │ -# ╰───────────────────┴───────────┴─────────┴─────┴───────╯ -" -}