├── .gitignore ├── .stow-global-ignore ├── README.md ├── alacritty └── .config │ └── alacritty │ └── alacritty.toml ├── archlinux ├── applications │ └── .local │ │ └── share │ │ └── applications │ │ ├── restart_keyboard.desktop │ │ ├── restart_picom.desktop │ │ ├── restart_polybar.desktop │ │ ├── xrandr_4k_1k.desktop │ │ └── xrandr_4k_2k.desktop ├── copyq │ └── .config │ │ └── copyq │ │ └── copyq.conf ├── docker │ └── .docker │ │ └── config.json ├── dunst │ └── .config │ │ └── dunst │ │ └── dunstrc ├── flameshot │ └── .config │ │ └── flameshot │ │ └── flameshot.ini ├── i3 │ └── .config │ │ └── i3 │ │ ├── KillWindow.py │ │ ├── OpenApplication.py │ │ ├── command.sh │ │ ├── config │ │ ├── scratchpad.py │ │ └── welcome.py ├── kde │ └── .profile ├── mpv │ └── .config │ │ └── mpv │ │ └── input.conf ├── picom │ └── .config │ │ └── picom │ │ └── picom.conf ├── polybar │ └── .config │ │ └── polybar │ │ ├── LICENSE │ │ ├── launch.sh │ │ ├── modules-bottom.ini │ │ ├── modules-top.ini │ │ └── nord │ │ ├── colors.ini │ │ ├── colors.ini-nord │ │ ├── config-bottom.ini │ │ ├── config-top.ini │ │ ├── fonts.ini │ │ ├── include-modules.ini │ │ ├── launch.sh │ │ ├── modules │ │ ├── audio-pre.sh │ │ ├── battery.ini │ │ ├── bspwm_i3wm.ini │ │ ├── cava-discord.ini │ │ ├── cava-discord.py │ │ ├── cava-internal.ini │ │ ├── cava-internal.py │ │ ├── cava-media.ini │ │ ├── cava-media.py │ │ ├── cava-other.ini │ │ ├── cava-other.py │ │ ├── cava-system.ini │ │ ├── cava-system.py │ │ ├── cava-text.ini │ │ ├── cava-web.ini │ │ ├── cava-web.py │ │ ├── cava.ini │ │ ├── cava_sink.py │ │ ├── cava_source.py │ │ ├── common.py │ │ ├── cpu.ini │ │ ├── date.ini │ │ ├── dnd.ini │ │ ├── ewmh.ini │ │ ├── fire-left.ini │ │ ├── fire-right.ini │ │ ├── i3.ini │ │ ├── kernel-checkupdate.ini │ │ ├── kernel-checkupdate.sh │ │ ├── kernel.ini │ │ ├── margin.ini │ │ ├── memory.ini │ │ ├── menu.ini │ │ ├── mpd.ini │ │ ├── music.ini │ │ ├── music.py │ │ ├── music_lyric.py │ │ ├── network.ini │ │ ├── network.py │ │ ├── pa-discord.ini │ │ ├── pa-media.ini │ │ ├── pa-other.ini │ │ ├── pa-sys.ini │ │ ├── pa-web.ini │ │ ├── package.ini │ │ ├── package.sh │ │ ├── powermenu.ini │ │ ├── pulseaudio.ini │ │ ├── round-left.ini │ │ ├── round-right.ini │ │ ├── session.ini │ │ ├── session.sh │ │ ├── space.ini │ │ ├── temperature.ini │ │ ├── title.ini │ │ ├── title.py │ │ ├── trap-left.ini │ │ ├── trap-right.ini │ │ ├── triangle-lower-left.ini │ │ ├── triangle-lower-right.ini │ │ ├── triangle-upper-left.ini │ │ ├── triangle-upper-right.ini │ │ ├── wallz.ini │ │ ├── weather.ini │ │ ├── wired-up.ini │ │ ├── wired.ini │ │ ├── wlan.ini │ │ ├── xbacklight.ini │ │ ├── xkeyboard.ini │ │ └── xmonad.ini │ │ └── nord-colors.txt └── rofi │ └── .config │ └── rofi │ └── config.rasi ├── astronvim_v5 └── .config │ └── astronvim_v5 │ ├── .neoconf.json │ ├── .stylua.toml │ ├── README.md │ ├── init.lua │ ├── lua │ ├── community.lua │ ├── lazy_setup.lua │ ├── plugins │ │ ├── astrocore.lua │ │ ├── astrolsp.lua │ │ ├── astroui.lua │ │ ├── mason.lua │ │ ├── none-ls.lua │ │ ├── treesitter.lua │ │ └── user.lua │ └── polish.lua │ ├── neovim.yml │ └── selene.toml ├── deprecated └── nvim_deprecated │ └── .config │ └── nvim │ ├── coc-settings.json │ ├── init.lua │ └── lua │ └── user │ ├── core │ ├── colorscheme.lua │ ├── keymaps.lua │ └── options.lua │ ├── lsp │ ├── configs.lua │ ├── handlers.lua │ ├── init.lua │ ├── null-ls.lua │ └── settings │ │ ├── clangd.lua │ │ ├── jsonls.lua │ │ └── sumneko_lua.lua │ ├── plugins-setup.lua │ └── plugins │ ├── bufferline.lua │ ├── cmp.lua │ ├── comment.lua │ ├── hopvim.lua │ ├── lsp.lua │ ├── nvim-tree.lua │ ├── telescope.lua │ ├── tokyonight.lua │ └── treesitter.lua ├── fzf └── .config │ └── fzf │ └── fzf_preview.py ├── gitui └── .config │ └── gitui │ ├── key_bindings.ron │ └── theme.ron ├── ideavim └── .ideavimrc ├── kitty └── .config │ └── kitty │ ├── current-theme.conf │ ├── kitty.conf │ └── kitty.conf.bak ├── lvim └── .config │ └── lvim │ ├── .gitignore │ ├── README.md │ ├── config.lua │ ├── dap │ ├── c_cpp_rust.lua │ ├── dap-lldb.lua │ └── python.lua │ ├── lazy-lock.json │ ├── my_config_example.lua │ ├── my_funcs.lua │ ├── my_plugins.lua │ ├── my_theme.lua │ └── snippets │ ├── cpp.json │ ├── package.json │ └── python.json ├── macos ├── aerospace │ └── .config │ │ └── aerospace │ │ ├── .gitignore │ │ ├── aerospace.toml │ │ └── scratchpad.sh ├── borders │ └── .config │ │ └── borders │ │ └── bordersrc ├── skhd │ └── .config │ │ └── skhd │ │ └── skhdrc └── yabai │ └── .config │ └── yabai │ ├── .gitignore │ ├── scripts │ ├── focus_float.sh │ ├── focus_multiple_monitor.py │ ├── focus_smart.py │ ├── move_and_focus.sh │ ├── move_and_focus_displays.sh │ ├── move_float.sh │ ├── open_application.sh │ ├── print_input.py │ ├── safe_focus_space.sh │ ├── scratchpad.sh │ └── toggle-window-floating-tiling.sh │ └── yabairc ├── neofetch └── .config │ └── neofetch │ ├── arch_log.png │ ├── config.conf │ └── config_default.conf ├── nvim └── .config │ └── nvim │ ├── .gitignore │ ├── .neoconf.json │ ├── .stylua.toml │ ├── README.md │ ├── config_template.lua │ ├── init.lua │ ├── lazy-lock.json │ ├── lua │ ├── community.lua │ ├── lazy_setup.lua │ ├── plugins │ │ ├── astrocore.lua │ │ ├── astrolsp.lua │ │ ├── astroui.lua │ │ ├── mason.lua │ │ ├── none-ls.lua │ │ ├── treesitter.lua │ │ ├── user.lua │ │ └── user │ │ │ ├── autocmds.lua │ │ │ ├── color_scheme.lua │ │ │ ├── mappings.lua │ │ │ ├── my_funcs.lua │ │ │ ├── my_subdirs.lua │ │ │ ├── my_sys.lua │ │ │ ├── plugins │ │ │ ├── auto_save_read_.lua │ │ │ ├── bookmarks_.lua │ │ │ ├── chatgpt_.lua │ │ │ ├── dap │ │ │ │ ├── c_cpp_rust.lua │ │ │ │ ├── dap-lldb.lua │ │ │ │ └── python.lua │ │ │ ├── dap_.lua │ │ │ ├── flash_.lua │ │ │ ├── git_.lua │ │ │ ├── highlight_chunk_.lua │ │ │ ├── highlight_log_.lua │ │ │ ├── hl_search_.lua │ │ │ ├── image_.lua │ │ │ ├── leetcode_.lua │ │ │ ├── markdown_.lua │ │ │ ├── neo-tree_.lua │ │ │ ├── neogen_.lua │ │ │ ├── neoscroll_.lua │ │ │ ├── neovide_.lua │ │ │ ├── nvim-lightbulb_.lua │ │ │ ├── nvim-spectre_.lua │ │ │ ├── nvim_cmp_.lua │ │ │ ├── nvim_notify.lua │ │ │ ├── nvim_surround_.lua │ │ │ ├── outline_.lua │ │ │ ├── quick_fix.lua │ │ │ ├── smart-translate_.lua │ │ │ ├── smart_splits_.lua │ │ │ ├── sniprun_.lua │ │ │ ├── statuscol_.lua │ │ │ ├── telescope_.lua │ │ │ ├── toggle_terminal_.lua │ │ │ ├── twilight_.lua │ │ │ ├── vim-maximizer_.lua │ │ │ ├── vim_visual_multi_.lua │ │ │ └── wildfire_.lua │ │ │ └── snippets.lua │ └── polish.lua │ ├── neovim.yml │ ├── selene.toml │ └── snippets │ ├── cpp.json │ ├── markdown.json │ ├── package.json │ └── python.json ├── ranger └── .config │ └── ranger │ ├── commands.py │ ├── commands_full.py │ ├── rc.conf │ ├── rifle.conf │ └── scope.sh ├── scripts └── .scripts │ ├── cmake │ └── compile.sh │ ├── code │ ├── convert_encoding.py │ ├── count_lines.py │ └── dump.sh │ ├── dunst │ ├── sound-critical.sh │ └── sound-normal.sh │ ├── english_helper │ ├── empty_1000ms.mp3 │ ├── empty_1500ms.mp3 │ ├── empty_2000ms.mp3 │ ├── empty_250ms.mp3 │ ├── empty_3000ms.mp3 │ ├── empty_500ms.mp3 │ ├── generate_mp3_from_words.py │ └── generate_none_mp3.py │ ├── flameshot │ └── start_flameshot.sh │ ├── i3lock │ └── lock.sh │ ├── macos │ └── misson_control.sh │ ├── rofi │ ├── choose.py │ ├── power.py │ └── restart_app.py │ └── ssh │ ├── .gitignore │ └── myssh.sh ├── smplayer └── .config │ └── smplayer │ ├── .gitignore │ └── hdpi.ini ├── tmux └── .config │ └── tmux │ ├── plugins │ ├── extrakto │ │ ├── .editorconfig │ │ ├── .github │ │ │ └── workflows │ │ │ │ └── check.yml │ │ ├── HELP.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── extrakto.conf │ │ ├── extrakto.py │ │ ├── extrakto.tmux │ │ ├── scripts │ │ │ ├── extrakto.sh │ │ │ ├── helpers.sh │ │ │ └── open.sh │ │ └── tests │ │ │ ├── __init__.py │ │ │ ├── assets │ │ │ ├── path.txt │ │ │ ├── path_result-pu.txt │ │ │ ├── path_result-w.txt │ │ │ ├── quotes.txt │ │ │ ├── quotes_result-a=quote.txt │ │ │ ├── quotes_result-w.txt │ │ │ ├── text1.txt │ │ │ ├── text1_result-a=quote.txt │ │ │ ├── text1_result-pu.txt │ │ │ ├── text1_result-w.txt │ │ │ ├── text2.txt │ │ │ ├── text2_result-w.txt │ │ │ ├── unicode.txt │ │ │ └── unicode_result-w.txt │ │ │ ├── test_assets.py │ │ │ ├── test_get_lines.py │ │ │ ├── test_get_paths.py │ │ │ ├── test_get_urls.py │ │ │ └── test_get_words.py │ ├── tmux-battery │ │ ├── .gitattributes │ │ ├── .gitignore │ │ ├── CHANGELOG.md │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── battery.tmux │ │ ├── screenshots │ │ │ ├── battery_charging_tier1.png │ │ │ ├── battery_charging_tier2.png │ │ │ ├── battery_charging_tier3.png │ │ │ ├── battery_charging_tier4.png │ │ │ ├── battery_charging_tier5.png │ │ │ ├── battery_charging_tier6.png │ │ │ ├── battery_charging_tier7.png │ │ │ ├── battery_charging_tier8.png │ │ │ ├── battery_discharging_tier1.png │ │ │ ├── battery_discharging_tier2.png │ │ │ ├── battery_discharging_tier3.png │ │ │ ├── battery_discharging_tier4.png │ │ │ ├── battery_discharging_tier5.png │ │ │ ├── battery_discharging_tier6.png │ │ │ ├── battery_discharging_tier7.png │ │ │ ├── battery_discharging_tier8.png │ │ │ ├── battery_status_attached.png │ │ │ └── battery_status_unknown.png │ │ └── scripts │ │ │ ├── battery_color.sh │ │ │ ├── battery_color_charge.sh │ │ │ ├── battery_color_status.sh │ │ │ ├── battery_graph.sh │ │ │ ├── battery_icon.sh │ │ │ ├── battery_icon_charge.sh │ │ │ ├── battery_icon_status.sh │ │ │ ├── battery_percentage.sh │ │ │ ├── battery_remain.sh │ │ │ ├── battery_status_bg.sh │ │ │ ├── battery_status_fg.sh │ │ │ └── helpers.sh │ ├── tmux-continuum │ │ ├── .gitattributes │ │ ├── CHANGELOG.md │ │ ├── CONTRIBUTING.md │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── continuum.tmux │ │ ├── docs │ │ │ ├── automatic_start.md │ │ │ ├── continuum_status.md │ │ │ ├── faq.md │ │ │ ├── multiple_tmux_servers.md │ │ │ └── systemd_details.md │ │ └── scripts │ │ │ ├── check_tmux_version.sh │ │ │ ├── continuum_restore.sh │ │ │ ├── continuum_save.sh │ │ │ ├── continuum_status.sh │ │ │ ├── handle_tmux_automatic_start.sh │ │ │ ├── handle_tmux_automatic_start │ │ │ ├── README.md │ │ │ ├── osx_alacritty_start_tmux.sh │ │ │ ├── osx_disable.sh │ │ │ ├── osx_enable.sh │ │ │ ├── osx_iterm_start_tmux.sh │ │ │ ├── osx_kitty_start_tmux.sh │ │ │ ├── osx_terminal_start_tmux.sh │ │ │ ├── systemd_disable.sh │ │ │ └── systemd_enable.sh │ │ │ ├── helpers.sh │ │ │ ├── shared.sh │ │ │ └── variables.sh │ ├── tmux-cpu │ │ ├── .editorconfig │ │ ├── .github │ │ │ └── workflows │ │ │ │ └── check.yml │ │ ├── .mailmap │ │ ├── LICENSE │ │ ├── README.md │ │ ├── cpu.tmux │ │ ├── screenshots │ │ │ ├── high_bg.png │ │ │ ├── high_fg.png │ │ │ ├── high_icon.png │ │ │ ├── low_bg.png │ │ │ ├── low_fg.png │ │ │ ├── low_icon.png │ │ │ ├── medium_bg.png │ │ │ ├── medium_fg.png │ │ │ └── medium_icon.png │ │ └── scripts │ │ │ ├── cpu_bg_color.sh │ │ │ ├── cpu_fg_color.sh │ │ │ ├── cpu_icon.sh │ │ │ ├── cpu_percentage.sh │ │ │ ├── cpu_temp.sh │ │ │ ├── cpu_temp_bg_color.sh │ │ │ ├── cpu_temp_fg_color.sh │ │ │ ├── cpu_temp_icon.sh │ │ │ ├── gpu_bg_color.sh │ │ │ ├── gpu_fg_color.sh │ │ │ ├── gpu_icon.sh │ │ │ ├── gpu_percentage.sh │ │ │ ├── gpu_temp.sh │ │ │ ├── gpu_temp_bg_color.sh │ │ │ ├── gpu_temp_fg_color.sh │ │ │ ├── gpu_temp_icon.sh │ │ │ ├── gram_bg_color.sh │ │ │ ├── gram_fg_color.sh │ │ │ ├── gram_icon.sh │ │ │ ├── gram_percentage.sh │ │ │ ├── helpers.sh │ │ │ ├── ram_bg_color.sh │ │ │ ├── ram_fg_color.sh │ │ │ ├── ram_icon.sh │ │ │ └── ram_percentage.sh │ ├── tmux-fingers │ │ ├── .dockerignore │ │ ├── .editorconfig │ │ ├── .github │ │ │ └── workflows │ │ │ │ └── deployment.yml │ │ ├── .gitignore │ │ ├── CHANGELOG.md │ │ ├── Dockerfile │ │ ├── LICENSE │ │ ├── Makefile │ │ ├── README.md │ │ ├── benchmark.sh │ │ ├── dev │ │ │ └── release.cr │ │ ├── docs │ │ │ ├── health-check.md │ │ │ └── migrating-from-1.md │ │ ├── install-wizard.sh │ │ ├── kill-windows.sh │ │ ├── logo.svg │ │ ├── shard.lock │ │ ├── shard.yml │ │ ├── spec │ │ │ ├── .tmuxomatic_unlock_command_prompt │ │ │ ├── conf │ │ │ │ ├── alt-action.conf │ │ │ │ ├── basic.conf │ │ │ │ ├── benchmark.conf │ │ │ │ ├── ctrl-action.conf │ │ │ │ ├── custom-bindings.conf │ │ │ │ ├── custom-patterns.conf │ │ │ │ ├── invalid.conf │ │ │ │ └── quotes.conf │ │ │ ├── fill_screen.cr │ │ │ ├── fixtures │ │ │ │ ├── benchmark │ │ │ │ ├── custom-patterns │ │ │ │ ├── grep-output │ │ │ │ ├── ip-output │ │ │ │ ├── line_jump_fixture │ │ │ │ └── quotes │ │ │ ├── install-tmux-versions.sh │ │ │ ├── lib │ │ │ │ ├── fingers │ │ │ │ │ ├── hinter_spec.cr │ │ │ │ │ ├── input_socket_spec.cr │ │ │ │ │ └── match_formatter_spec.cr │ │ │ │ ├── huffman_spec.cr │ │ │ │ ├── patterns_spec.cr │ │ │ │ ├── priority_queue_spec.cr │ │ │ │ ├── tmux_format_printer_spec.rb │ │ │ │ └── tmux_style_printer_spec.cr │ │ │ ├── provisioning │ │ │ │ ├── ci.sh │ │ │ │ ├── osx.sh │ │ │ │ └── ubuntu.sh │ │ │ ├── spec_helper.cr │ │ │ ├── stubs │ │ │ │ └── action-stub.sh │ │ │ ├── tmux_spec.cr │ │ │ └── use-tmux.sh │ │ ├── src │ │ │ ├── fingers.cr │ │ │ ├── fingers │ │ │ │ ├── action_runner.cr │ │ │ │ ├── cli.cr │ │ │ │ ├── commands │ │ │ │ │ ├── base.cr │ │ │ │ │ ├── load_config.cr │ │ │ │ │ ├── send_input.cr │ │ │ │ │ ├── start.cr │ │ │ │ │ └── version.cr │ │ │ │ ├── config.cr │ │ │ │ ├── dirs.cr │ │ │ │ ├── hinter.cr │ │ │ │ ├── input_socket.cr │ │ │ │ ├── logger.cr │ │ │ │ ├── match_formatter.cr │ │ │ │ ├── state.cr │ │ │ │ ├── types.cr │ │ │ │ └── view.cr │ │ │ ├── huffman.cr │ │ │ ├── priority_queue.cr │ │ │ ├── tmux.cr │ │ │ └── tmux_style_printer.cr │ │ └── tmux-fingers.tmux │ ├── tmux-menus │ │ ├── .gitignore │ │ ├── .olint.conf │ │ ├── .shellcheckrc │ │ ├── LICENSE │ │ ├── README.md │ │ ├── TODO.md │ │ ├── items │ │ │ ├── advanced.sh │ │ │ ├── config.sh │ │ │ ├── currencies.sh │ │ │ ├── extras.sh │ │ │ ├── extras │ │ │ │ ├── _dropbox_toggle.sh │ │ │ │ ├── _mullvad_country.sh │ │ │ │ ├── dropbox.sh │ │ │ │ ├── mullvad.sh │ │ │ │ └── spotify.sh │ │ │ ├── help.sh │ │ │ ├── help_currencies.sh │ │ │ ├── help_extras.sh │ │ │ ├── help_missing_keys.sh │ │ │ ├── help_panes.sh │ │ │ ├── help_paste_buffers.sh │ │ │ ├── help_split.sh │ │ │ ├── help_window_move.sh │ │ │ ├── layouts.sh │ │ │ ├── main.sh │ │ │ ├── missing_keys.sh │ │ │ ├── nav_search.sh │ │ │ ├── pane_move.sh │ │ │ ├── pane_resize.sh │ │ │ ├── panes.sh │ │ │ ├── paste_buffers.sh │ │ │ ├── sessions.sh │ │ │ ├── split_view.sh │ │ │ ├── window_move.sh │ │ │ └── windows.sh │ │ ├── menus.tmux │ │ └── scripts │ │ │ ├── break_pane.sh │ │ │ ├── change_prefix.sh │ │ │ ├── dialog_handling.sh │ │ │ ├── do_whiptail.sh │ │ │ ├── dropbox_tools.sh │ │ │ ├── helpers.sh │ │ │ ├── kill_other_windows.sh │ │ │ ├── move_menu.sh │ │ │ ├── plugins.sh │ │ │ ├── public_ip.sh │ │ │ ├── reload_conf.sh │ │ │ ├── relocate_pane.sh │ │ │ ├── relocate_param_check.sh │ │ │ ├── relocate_window.sh │ │ │ ├── show_config.sh │ │ │ ├── spotify-now-playing │ │ │ └── utils │ │ │ ├── cache.sh │ │ │ └── tmux.sh │ ├── tmux-open-nvim │ │ ├── LICENSE │ │ ├── README.md │ │ ├── scripts │ │ │ ├── helpers.sh │ │ │ ├── ton │ │ │ ├── ton_lvim │ │ │ └── variables.sh │ │ ├── tmux_open_nvim.tmux │ │ └── ton.logs │ ├── tmux-open │ │ ├── .gitattributes │ │ ├── CHANGELOG.md │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── open.tmux │ │ ├── scripts │ │ │ ├── helpers.sh │ │ │ └── tmux_open_error_message.sh │ │ └── video │ │ │ ├── screencast_img.png │ │ │ └── script.md │ ├── tmux-resurrect │ │ ├── .gitattributes │ │ ├── .gitignore │ │ ├── .travis.yml │ │ ├── CHANGELOG.md │ │ ├── CONTRIBUTING.md │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── docs │ │ │ ├── custom_key_bindings.md │ │ │ ├── hooks.md │ │ │ ├── migrating_from_tmuxinator.md │ │ │ ├── restoring_bash_history.md │ │ │ ├── restoring_pane_contents.md │ │ │ ├── restoring_previously_saved_environment.md │ │ │ ├── restoring_programs.md │ │ │ ├── restoring_vim_and_neovim_sessions.md │ │ │ └── save_dir.md │ │ ├── resurrect.tmux │ │ ├── save_command_strategies │ │ │ ├── gdb.sh │ │ │ ├── linux_procfs.sh │ │ │ ├── pgrep.sh │ │ │ └── ps.sh │ │ ├── scripts │ │ │ ├── check_tmux_version.sh │ │ │ ├── helpers.sh │ │ │ ├── process_restore_helpers.sh │ │ │ ├── restore.exp │ │ │ ├── restore.sh │ │ │ ├── save.sh │ │ │ ├── spinner_helpers.sh │ │ │ ├── tmux_spinner.sh │ │ │ └── variables.sh │ │ ├── strategies │ │ │ ├── irb_default_strategy.sh │ │ │ ├── mosh-client_default_strategy.sh │ │ │ ├── nvim_session.sh │ │ │ └── vim_session.sh │ │ ├── tests │ │ │ ├── fixtures │ │ │ │ ├── restore_file.txt │ │ │ │ └── save_file.txt │ │ │ ├── helpers │ │ │ │ ├── create_and_save_tmux_test_environment.exp │ │ │ │ ├── expect_helpers.exp │ │ │ │ ├── restore_and_save_tmux_test_environment.exp │ │ │ │ └── resurrect_helpers.sh │ │ │ ├── test_resurrect_restore.sh │ │ │ └── test_resurrect_save.sh │ │ └── video │ │ │ ├── issue_vid.png │ │ │ ├── screencast_img.png │ │ │ └── script.md │ ├── tmux-sensible │ │ ├── .gitattributes │ │ ├── CHANGELOG.md │ │ ├── LICENSE.md │ │ ├── README.md │ │ └── sensible.tmux │ ├── tmux-sidebar │ │ ├── .gitattributes │ │ ├── CHANGELOG.md │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── docs │ │ │ └── options.md │ │ ├── screenshot.gif │ │ ├── scripts │ │ │ ├── check_tmux_version.sh │ │ │ ├── custom_tree.sh │ │ │ ├── helpers.sh │ │ │ ├── save_sidebar_width.sh │ │ │ ├── toggle.sh │ │ │ ├── tree_helpers.sh │ │ │ └── variables.sh │ │ └── sidebar.tmux │ └── tpm │ │ ├── .gitignore │ │ ├── CHANGELOG.md │ │ ├── HOW_TO_PLUGIN.md │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── bin │ │ ├── clean_plugins │ │ ├── install_plugins │ │ └── update_plugins │ │ ├── bindings │ │ ├── clean_plugins │ │ ├── install_plugins │ │ └── update_plugins │ │ ├── docs │ │ ├── automatic_tpm_installation.md │ │ ├── changing_plugins_install_dir.md │ │ ├── how_to_create_plugin.md │ │ ├── managing_plugins_via_cmd_line.md │ │ └── tpm_not_working.md │ │ ├── lib │ │ └── tmux-test │ │ │ ├── .gitignore │ │ │ ├── .travis.yml │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE.md │ │ │ ├── README.md │ │ │ ├── Vagrantfile │ │ │ ├── run_framework_tests │ │ │ ├── setup │ │ │ ├── tests │ │ │ ├── helpers │ │ │ │ └── helpers.sh │ │ │ ├── run_tests_in_isolation │ │ │ ├── test_basic_script_execution.sh │ │ │ ├── test_default_session_name.sh │ │ │ └── test_tmux_scripting.sh │ │ │ ├── vagrant_centos_provisioning.sh │ │ │ └── vagrant_ubuntu_provisioning.sh │ │ ├── scripts │ │ ├── check_tmux_version.sh │ │ ├── clean_plugins.sh │ │ ├── helpers │ │ │ ├── plugin_functions.sh │ │ │ ├── shell_echo_functions.sh │ │ │ ├── tmux_echo_functions.sh │ │ │ ├── tmux_utils.sh │ │ │ └── utility.sh │ │ ├── install_plugins.sh │ │ ├── source_plugins.sh │ │ ├── update_plugin.sh │ │ ├── update_plugin_prompt_handler.sh │ │ └── variables.sh │ │ ├── tests │ │ ├── expect_failed_plugin_download │ │ ├── expect_successful_clean_plugins │ │ ├── expect_successful_multiple_plugins_download │ │ ├── expect_successful_plugin_download │ │ ├── expect_successful_update_of_a_single_plugin │ │ ├── expect_successful_update_of_all_plugins │ │ ├── helpers │ │ │ └── tpm.sh │ │ ├── test_plugin_clean.sh │ │ ├── test_plugin_installation.sh │ │ ├── test_plugin_installation_legacy.sh │ │ ├── test_plugin_sourcing.sh │ │ └── test_plugin_update.sh │ │ └── tpm │ ├── scripts │ └── smart-join-pane.sh │ └── tmux.conf ├── vim └── .vimrc └── zsh ├── .arch.zsh ├── .oh-my-zsh └── custom │ ├── plugins │ ├── zsh-autosuggestions │ │ ├── .circleci │ │ │ └── config.yml │ │ ├── .editorconfig │ │ ├── .github │ │ │ └── ISSUE_TEMPLATE │ │ │ │ ├── bug-report.md │ │ │ │ └── feature_request.md │ │ ├── .gitignore │ │ ├── .rspec │ │ ├── .rubocop.yml │ │ ├── .ruby-version │ │ ├── CHANGELOG.md │ │ ├── DESCRIPTION │ │ ├── Dockerfile │ │ ├── Gemfile │ │ ├── Gemfile.lock │ │ ├── INSTALL.md │ │ ├── LICENSE │ │ ├── Makefile │ │ ├── README.md │ │ ├── URL │ │ ├── VERSION │ │ ├── ZSH_VERSIONS │ │ ├── install_test_zsh.sh │ │ ├── spec │ │ │ ├── async_spec.rb │ │ │ ├── integrations │ │ │ │ ├── auto_cd_spec.rb │ │ │ │ ├── bracketed_paste_magic_spec.rb │ │ │ │ ├── client_zpty_spec.rb │ │ │ │ ├── glob_subst_spec.rb │ │ │ │ ├── rebound_bracket_spec.rb │ │ │ │ ├── vi_mode_spec.rb │ │ │ │ ├── wrapped_widget_spec.rb │ │ │ │ └── zle_input_stack_spec.rb │ │ │ ├── kill_ring_spec.rb │ │ │ ├── line_init_spec.rb │ │ │ ├── multi_line_spec.rb │ │ │ ├── options │ │ │ │ ├── buffer_max_size_spec.rb │ │ │ │ ├── highlight_style_spec.rb │ │ │ │ ├── original_widget_prefix_spec.rb │ │ │ │ ├── strategy_spec.rb │ │ │ │ └── widget_lists_spec.rb │ │ │ ├── spec_helper.rb │ │ │ ├── strategies │ │ │ │ ├── completion_spec.rb │ │ │ │ ├── history_spec.rb │ │ │ │ ├── match_prev_cmd_spec.rb │ │ │ │ └── special_characters_helper.rb │ │ │ ├── terminal_session.rb │ │ │ └── widgets │ │ │ │ ├── disable_spec.rb │ │ │ │ ├── enable_spec.rb │ │ │ │ ├── fetch_spec.rb │ │ │ │ └── toggle_spec.rb │ │ ├── src │ │ │ ├── async.zsh │ │ │ ├── bind.zsh │ │ │ ├── config.zsh │ │ │ ├── fetch.zsh │ │ │ ├── highlight.zsh │ │ │ ├── start.zsh │ │ │ ├── strategies │ │ │ │ ├── completion.zsh │ │ │ │ ├── history.zsh │ │ │ │ └── match_prev_cmd.zsh │ │ │ ├── util.zsh │ │ │ └── widgets.zsh │ │ ├── zsh-autosuggestions.plugin.zsh │ │ └── zsh-autosuggestions.zsh │ ├── zsh-syntax-highlighting │ │ ├── .editorconfig │ │ ├── .gitattributes │ │ ├── .github │ │ │ └── workflows │ │ │ │ └── test.yml │ │ ├── .gitignore │ │ ├── .revision-hash │ │ ├── .version │ │ ├── COPYING.md │ │ ├── HACKING.md │ │ ├── INSTALL.md │ │ ├── Makefile │ │ ├── README.md │ │ ├── changelog.md │ │ ├── docs │ │ │ ├── highlighters.md │ │ │ └── highlighters │ │ │ │ ├── brackets.md │ │ │ │ ├── cursor.md │ │ │ │ ├── line.md │ │ │ │ ├── main.md │ │ │ │ ├── pattern.md │ │ │ │ ├── regexp.md │ │ │ │ └── root.md │ │ ├── highlighters │ │ │ ├── README.md │ │ │ ├── brackets │ │ │ │ ├── README.md │ │ │ │ ├── brackets-highlighter.zsh │ │ │ │ └── test-data │ │ │ │ │ ├── cursor-matchingbracket-line-finish.zsh │ │ │ │ │ ├── cursor-matchingbracket.zsh │ │ │ │ │ ├── empty-styles.zsh │ │ │ │ │ ├── loop-styles.zsh │ │ │ │ │ ├── mismatch-patentheses.zsh │ │ │ │ │ ├── near-quotes.zsh │ │ │ │ │ ├── nested-parentheses.zsh │ │ │ │ │ ├── only-error.zsh │ │ │ │ │ ├── quoted-patentheses.zsh │ │ │ │ │ ├── simple-parentheses.zsh │ │ │ │ │ ├── unclosed-patentheses.zsh │ │ │ │ │ └── unclosed-patentheses2.zsh │ │ │ ├── cursor │ │ │ │ ├── README.md │ │ │ │ └── cursor-highlighter.zsh │ │ │ ├── line │ │ │ │ ├── README.md │ │ │ │ └── line-highlighter.zsh │ │ │ ├── main │ │ │ │ ├── README.md │ │ │ │ ├── main-highlighter.zsh │ │ │ │ └── test-data │ │ │ │ │ ├── abspath-in-command-position1.zsh │ │ │ │ │ ├── abspath-in-command-position1b.zsh │ │ │ │ │ ├── abspath-in-command-position2.zsh │ │ │ │ │ ├── abspath-in-command-position3.zsh │ │ │ │ │ ├── abspath-in-command-position3b.zsh │ │ │ │ │ ├── abspath-in-command-position4.zsh │ │ │ │ │ ├── abspath-in-command-position5.zsh │ │ │ │ │ ├── alias-assignment1.zsh │ │ │ │ │ ├── alias-basic.zsh │ │ │ │ │ ├── alias-brackets.zsh │ │ │ │ │ ├── alias-command-substitution.zsh │ │ │ │ │ ├── alias-comment1.zsh │ │ │ │ │ ├── alias-comment2.zsh │ │ │ │ │ ├── alias-complex.zsh │ │ │ │ │ ├── alias-empty.zsh │ │ │ │ │ ├── alias-eponymous1.zsh │ │ │ │ │ ├── alias-eponymous2.zsh │ │ │ │ │ ├── alias-in-cmdsubst.zsh │ │ │ │ │ ├── alias-loop.zsh │ │ │ │ │ ├── alias-loop2.zsh │ │ │ │ │ ├── alias-nested-precommand.zsh │ │ │ │ │ ├── alias-nested.zsh │ │ │ │ │ ├── alias-parameter.zsh │ │ │ │ │ ├── alias-precommand-option-argument1.zsh │ │ │ │ │ ├── alias-precommand-option-argument2.zsh │ │ │ │ │ ├── alias-precommand-option-argument3.zsh │ │ │ │ │ ├── alias-precommand-option-argument4.zsh │ │ │ │ │ ├── alias-quoted.zsh │ │ │ │ │ ├── alias-redirect.zsh │ │ │ │ │ ├── alias-reuse1.zsh │ │ │ │ │ ├── alias-reuse2.zsh │ │ │ │ │ ├── alias-reuse3.zsh │ │ │ │ │ ├── alias-reuse4.zsh │ │ │ │ │ ├── alias-reuse5.zsh │ │ │ │ │ ├── alias-self.zsh │ │ │ │ │ ├── alias-self2.zsh │ │ │ │ │ ├── alias-to-dir.zsh │ │ │ │ │ ├── alias-to-dir1b.zsh │ │ │ │ │ ├── alias-unknown-token1.zsh │ │ │ │ │ ├── alias-unknown-token2.zsh │ │ │ │ │ ├── alias.zsh │ │ │ │ │ ├── always1.zsh │ │ │ │ │ ├── always2.zsh │ │ │ │ │ ├── always3.zsh │ │ │ │ │ ├── anonymous-function.zsh │ │ │ │ │ ├── arg0-colon.zsh │ │ │ │ │ ├── arith-cmdsubst-mess.zsh │ │ │ │ │ ├── arith1.zsh │ │ │ │ │ ├── arith2.zsh │ │ │ │ │ ├── arithmetic-command-substitution.zsh │ │ │ │ │ ├── arithmetic-doubled-parens.zsh │ │ │ │ │ ├── arithmetic-empty.zsh │ │ │ │ │ ├── arithmetic-evaluation.zsh │ │ │ │ │ ├── arithmetic-hist-expn.zsh │ │ │ │ │ ├── arithmetic-invalid-chars.zsh │ │ │ │ │ ├── arithmetic-multiplication.zsh │ │ │ │ │ ├── arithmetic-nested.zsh │ │ │ │ │ ├── arithmetic-quoted.zsh │ │ │ │ │ ├── arithmetic-unclosed.zsh │ │ │ │ │ ├── arithmetic-unfinished.zsh │ │ │ │ │ ├── array-cmdsep1.zsh │ │ │ │ │ ├── array-cmdsep2.zsh │ │ │ │ │ ├── array-cmdsep3.zsh │ │ │ │ │ ├── assign-append.zsh │ │ │ │ │ ├── assign-argv.zsh │ │ │ │ │ ├── assign-array.zsh │ │ │ │ │ ├── assign-array2.zsh │ │ │ │ │ ├── assign-array3.zsh │ │ │ │ │ ├── assign-invalid-command.zsh │ │ │ │ │ ├── assign-not-array.zsh │ │ │ │ │ ├── assign-not-array2.zsh │ │ │ │ │ ├── assign-quoted-cmdsubst.zsh │ │ │ │ │ ├── assign-semicolon.zsh │ │ │ │ │ ├── assign-subshell.zsh │ │ │ │ │ ├── assign-value-quote1.zsh │ │ │ │ │ ├── assign-value-quote2.zsh │ │ │ │ │ ├── assign.zsh │ │ │ │ │ ├── assignment-before-resword1.zsh │ │ │ │ │ ├── assignment-before-resword2.zsh │ │ │ │ │ ├── assignment-before-resword3.zsh │ │ │ │ │ ├── assignment-before-resword4.zsh │ │ │ │ │ ├── assignment-before-resword5.zsh │ │ │ │ │ ├── assignment-quoted.zsh │ │ │ │ │ ├── back-quoted-argument.zsh │ │ │ │ │ ├── back-quoted-open.zsh │ │ │ │ │ ├── backslash-continuation.zsh │ │ │ │ │ ├── backslash-continuation2.zsh │ │ │ │ │ ├── backslash-space.zsh │ │ │ │ │ ├── backslash.zsh │ │ │ │ │ ├── bang-assign-array.zsh │ │ │ │ │ ├── bang-assign-scalar.zsh │ │ │ │ │ ├── bang-pipeline.zsh │ │ │ │ │ ├── block-assignment-no-command.zsh │ │ │ │ │ ├── braces1.zsh │ │ │ │ │ ├── braces2.zsh │ │ │ │ │ ├── brackets-matching1.zsh │ │ │ │ │ ├── brackets-matching2.zsh │ │ │ │ │ ├── brackets-mismatch1.zsh │ │ │ │ │ ├── brackets-mismatch10-if-negative.zsh │ │ │ │ │ ├── brackets-mismatch2.zsh │ │ │ │ │ ├── brackets-mismatch3.zsh │ │ │ │ │ ├── brackets-mismatch4.zsh │ │ │ │ │ ├── brackets-mismatch5.zsh │ │ │ │ │ ├── brackets-mismatch6.zsh │ │ │ │ │ ├── brackets-mismatch7.zsh │ │ │ │ │ ├── brackets-mismatch8-if-positive.zsh │ │ │ │ │ ├── brackets-mismatch8.zsh │ │ │ │ │ ├── brackets-mismatch9-if-positive.zsh │ │ │ │ │ ├── brackets-premature-termination.zsh │ │ │ │ │ ├── cdpath-abspath.zsh │ │ │ │ │ ├── cmdpos-elision-partial.zsh │ │ │ │ │ ├── command-substitution-adjacent.zsh │ │ │ │ │ ├── command-substitution-in-assignment.zsh │ │ │ │ │ ├── command-substitution-unclosed.zsh │ │ │ │ │ ├── commandseparator.zsh │ │ │ │ │ ├── comment-followed.zsh │ │ │ │ │ ├── comment-leading.zsh │ │ │ │ │ ├── comment-off.zsh │ │ │ │ │ ├── comments.zsh │ │ │ │ │ ├── commmand-parameter.zsh │ │ │ │ │ ├── control-flow.zsh │ │ │ │ │ ├── control-flow2.zsh │ │ │ │ │ ├── control-flow3.zsh │ │ │ │ │ ├── cthulhu.zsh │ │ │ │ │ ├── dinbrack1.zsh │ │ │ │ │ ├── dirs_blacklist.zsh │ │ │ │ │ ├── dollar-dollar.zsh │ │ │ │ │ ├── dollar-noise.zsh │ │ │ │ │ ├── dollar-paren.zsh │ │ │ │ │ ├── dollar-quoted.zsh │ │ │ │ │ ├── dollar-quoted2.zsh │ │ │ │ │ ├── dollar-quoted3.zsh │ │ │ │ │ ├── double-hyphen-option.zsh │ │ │ │ │ ├── double-quoted.zsh │ │ │ │ │ ├── double-quoted2.zsh │ │ │ │ │ ├── double-quoted3.zsh │ │ │ │ │ ├── double-quoted4.zsh │ │ │ │ │ ├── empty-command-newline.zsh │ │ │ │ │ ├── empty-command.zsh │ │ │ │ │ ├── empty-command2.zsh │ │ │ │ │ ├── empty-line.zsh │ │ │ │ │ ├── equals1.zsh │ │ │ │ │ ├── equals2.zsh │ │ │ │ │ ├── equals3.zsh │ │ │ │ │ ├── equals4.zsh │ │ │ │ │ ├── escaped-single-quote.zsh │ │ │ │ │ ├── exec-redirection1.zsh │ │ │ │ │ ├── fd-target-not-filename.zsh │ │ │ │ │ ├── function-altsyntax.zsh │ │ │ │ │ ├── function-named1.zsh │ │ │ │ │ ├── function-named2.zsh │ │ │ │ │ ├── function.zsh │ │ │ │ │ ├── glob.zsh │ │ │ │ │ ├── global-alias1.zsh │ │ │ │ │ ├── globs-with-quoting.zsh │ │ │ │ │ ├── hashed-command.zsh │ │ │ │ │ ├── history-double-quoted-escaped.zsh │ │ │ │ │ ├── history-double-quoted-followed.zsh │ │ │ │ │ ├── history-double-quoted-no.zsh │ │ │ │ │ ├── history-double-quoted-unescaped.zsh │ │ │ │ │ ├── history-double-quoted-yes.zsh │ │ │ │ │ ├── history-expansion.zsh │ │ │ │ │ ├── history-expansion2.zsh │ │ │ │ │ ├── inheritance.zsh │ │ │ │ │ ├── jobsubst-isnt-glob.zsh │ │ │ │ │ ├── jobsubst-isnt-glob2.zsh │ │ │ │ │ ├── loop-newline.zsh │ │ │ │ │ ├── meta-no-eval1.zsh │ │ │ │ │ ├── meta-no-eval2.zsh │ │ │ │ │ ├── multiline-array-assignment1.zsh │ │ │ │ │ ├── multiline-string.zsh │ │ │ │ │ ├── multiline-string2.zsh │ │ │ │ │ ├── multios-negates-globbing.zsh │ │ │ │ │ ├── multios-negates-globbing2.zsh │ │ │ │ │ ├── multiple-quotes.zsh │ │ │ │ │ ├── multiple-redirections.zsh │ │ │ │ │ ├── noglob-alias.zsh │ │ │ │ │ ├── noglob-always.zsh │ │ │ │ │ ├── noglob1.zsh │ │ │ │ │ ├── noglob2.zsh │ │ │ │ │ ├── noglob3.zsh │ │ │ │ │ ├── noglob4.zsh │ │ │ │ │ ├── null-exec.zsh │ │ │ │ │ ├── null-exec2-printenv.zsh │ │ │ │ │ ├── number_range-glob.zsh │ │ │ │ │ ├── off-by-one.zsh │ │ │ │ │ ├── opt-shwordsplit1.zsh │ │ │ │ │ ├── optimized-cmdsubst-input.zsh │ │ │ │ │ ├── option-dollar-quote-isnt-filename.zsh │ │ │ │ │ ├── option-path_dirs.zsh │ │ │ │ │ ├── option-with-quotes.zsh │ │ │ │ │ ├── order-path-after-dollar.zsh │ │ │ │ │ ├── order-path-before-globbing.zsh │ │ │ │ │ ├── param-positional-in-array-append.zsh │ │ │ │ │ ├── param-precommand-option-argument1.zsh │ │ │ │ │ ├── param-precommand-option-argument3.zsh │ │ │ │ │ ├── parameter-elision-command-word.zsh │ │ │ │ │ ├── parameter-expansion-shwordsplit.zsh │ │ │ │ │ ├── parameter-expansion-untokenized1.zsh │ │ │ │ │ ├── parameter-expansion-untokenized2.zsh │ │ │ │ │ ├── parameter-star.zsh │ │ │ │ │ ├── parameter-to-global-alias.zsh │ │ │ │ │ ├── parameter-value-contains-command-position1.zsh │ │ │ │ │ ├── parameter-value-contains-command-position2.zsh │ │ │ │ │ ├── pasted-quotes.zsh │ │ │ │ │ ├── path-broken-symlink.zsh │ │ │ │ │ ├── path-dollared-word.zsh │ │ │ │ │ ├── path-dollared-word2.zsh │ │ │ │ │ ├── path-dollared-word3.zsh │ │ │ │ │ ├── path-dollared-word3b.zsh │ │ │ │ │ ├── path-dollared-word4.zsh │ │ │ │ │ ├── path-mixed-quoting.zsh │ │ │ │ │ ├── path-separators.zsh │ │ │ │ │ ├── path-separators2.zsh │ │ │ │ │ ├── path-space.zsh │ │ │ │ │ ├── path-tilde-home.zsh │ │ │ │ │ ├── path-tilde-home2.zsh │ │ │ │ │ ├── path-tilde-home3.zsh │ │ │ │ │ ├── path-tilde-named.zsh │ │ │ │ │ ├── path.zsh │ │ │ │ │ ├── path_prefix.zsh │ │ │ │ │ ├── path_prefix2.zsh │ │ │ │ │ ├── path_prefix3.zsh │ │ │ │ │ ├── plain-file-in-command-position.zsh │ │ │ │ │ ├── precommand-killing1.zsh │ │ │ │ │ ├── precommand-killing2.zsh │ │ │ │ │ ├── precommand-then-assignment.zsh │ │ │ │ │ ├── precommand-type1.zsh │ │ │ │ │ ├── precommand-type2.zsh │ │ │ │ │ ├── precommand-type3.zsh │ │ │ │ │ ├── precommand-uninstalled.zsh │ │ │ │ │ ├── precommand-unknown-option.zsh │ │ │ │ │ ├── precommand.zsh │ │ │ │ │ ├── precommand2.zsh │ │ │ │ │ ├── precommand3.zsh │ │ │ │ │ ├── precommand4.zsh │ │ │ │ │ ├── prefix-redirection.zsh │ │ │ │ │ ├── process-substitution-after-redirection.zsh │ │ │ │ │ ├── process-substitution-redirection-isnt-globbing.zsh │ │ │ │ │ ├── process-substitution.zsh │ │ │ │ │ ├── process-substitution2.zsh │ │ │ │ │ ├── quoted-command-substitution-empty.zsh │ │ │ │ │ ├── quoted-redirection-in-command-word.zsh │ │ │ │ │ ├── rc-quotes.zsh │ │ │ │ │ ├── redirection-all.zsh │ │ │ │ │ ├── redirection-comment.zsh │ │ │ │ │ ├── redirection-from-param.zsh │ │ │ │ │ ├── redirection-in-cmdsubst.zsh │ │ │ │ │ ├── redirection-inhibits-elision.zsh │ │ │ │ │ ├── redirection-is-not-option.zsh │ │ │ │ │ ├── redirection-special-cases.zsh │ │ │ │ │ ├── redirection.zsh │ │ │ │ │ ├── redirection2.zsh │ │ │ │ │ ├── redirection3.zsh │ │ │ │ │ ├── reserved-word.zsh │ │ │ │ │ ├── simple-command.zsh │ │ │ │ │ ├── simple-redirection.zsh │ │ │ │ │ ├── subshell.zsh │ │ │ │ │ ├── sudo-command.zsh │ │ │ │ │ ├── sudo-comment.zsh │ │ │ │ │ ├── sudo-longopt.zsh │ │ │ │ │ ├── sudo-redirection.zsh │ │ │ │ │ ├── sudo-redirection2.zsh │ │ │ │ │ ├── sudo-redirection3.zsh │ │ │ │ │ ├── tilde-command-word.zsh │ │ │ │ │ ├── time-and-nocorrect1.zsh │ │ │ │ │ ├── time-and-nocorrect2.zsh │ │ │ │ │ ├── unbackslash.zsh │ │ │ │ │ ├── unknown-command.zsh │ │ │ │ │ ├── vanilla-newline.zsh │ │ │ │ │ └── vi-linewise-mode.zsh │ │ │ ├── pattern │ │ │ │ ├── README.md │ │ │ │ ├── pattern-highlighter.zsh │ │ │ │ └── test-data │ │ │ │ │ └── rm-rf.zsh │ │ │ ├── regexp │ │ │ │ ├── README.md │ │ │ │ ├── regexp-highlighter.zsh │ │ │ │ └── test-data │ │ │ │ │ ├── complex.zsh │ │ │ │ │ ├── subexpression.zsh │ │ │ │ │ └── word-boundary.zsh │ │ │ └── root │ │ │ │ ├── README.md │ │ │ │ └── root-highlighter.zsh │ │ ├── images │ │ │ ├── after1-smaller.png │ │ │ ├── after1.png │ │ │ ├── after2-smaller.png │ │ │ ├── after2.png │ │ │ ├── after3-smaller.png │ │ │ ├── after3.png │ │ │ ├── after4-smaller.png │ │ │ ├── before1-smaller.png │ │ │ ├── before1.png │ │ │ ├── before2-smaller.png │ │ │ ├── before2.png │ │ │ ├── before3-smaller.png │ │ │ ├── before3.png │ │ │ ├── before4-smaller.png │ │ │ ├── preview-smaller.png │ │ │ └── preview.png │ │ ├── release.md │ │ ├── tests │ │ │ ├── README.md │ │ │ ├── edit-failed-tests │ │ │ ├── generate.zsh │ │ │ ├── tap-colorizer.zsh │ │ │ ├── tap-filter │ │ │ ├── test-highlighting.zsh │ │ │ ├── test-perfs.zsh │ │ │ └── test-zprof.zsh │ │ ├── zsh-syntax-highlighting.plugin.zsh │ │ └── zsh-syntax-highlighting.zsh │ └── zsh-vi-mode │ │ ├── .github │ │ ├── FUNDING.yml │ │ └── ISSUE_TEMPLATE.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── zsh-vi-mode.plugin.zsh │ │ └── zsh-vi-mode.zsh │ └── themes │ └── powerlevel10k │ ├── .gitattributes │ ├── .gitignore │ ├── LICENSE │ ├── Makefile │ ├── README.md │ ├── config │ ├── p10k-classic.zsh │ ├── p10k-lean-8colors.zsh │ ├── p10k-lean.zsh │ ├── p10k-pure.zsh │ ├── p10k-rainbow.zsh │ └── p10k-robbyrussell.zsh │ ├── font.md │ ├── gitstatus │ ├── .clang-format │ ├── .gitattributes │ ├── .gitignore │ ├── LICENSE │ ├── Makefile │ ├── README.md │ ├── build │ ├── build.info │ ├── deps │ │ └── .gitkeep │ ├── docs │ │ └── listdir.md │ ├── gitstatus.plugin.sh │ ├── gitstatus.plugin.zsh │ ├── gitstatus.prompt.sh │ ├── gitstatus.prompt.zsh │ ├── install │ ├── install.info │ ├── mbuild │ ├── src │ │ ├── algorithm.h │ │ ├── arena.cc │ │ ├── arena.h │ │ ├── bits.h │ │ ├── check.h │ │ ├── check_dir_mtime.cc │ │ ├── check_dir_mtime.h │ │ ├── dir.cc │ │ ├── dir.h │ │ ├── git.cc │ │ ├── git.h │ │ ├── gitstatus.cc │ │ ├── index.cc │ │ ├── index.h │ │ ├── logging.cc │ │ ├── logging.h │ │ ├── options.cc │ │ ├── options.h │ │ ├── print.h │ │ ├── repo.cc │ │ ├── repo.h │ │ ├── repo_cache.cc │ │ ├── repo_cache.h │ │ ├── request.cc │ │ ├── request.h │ │ ├── response.cc │ │ ├── response.h │ │ ├── scope_guard.h │ │ ├── serialization.h │ │ ├── stat.h │ │ ├── string_cmp.h │ │ ├── string_view.h │ │ ├── strings.cc │ │ ├── strings.h │ │ ├── tag_db.cc │ │ ├── tag_db.h │ │ ├── thread_pool.cc │ │ ├── thread_pool.h │ │ ├── time.h │ │ ├── timer.cc │ │ ├── timer.h │ │ └── tribool.h │ └── usrbin │ │ └── .gitkeep │ ├── internal │ ├── configure.zsh │ ├── icons.zsh │ ├── notes.md │ ├── p10k.zsh │ ├── parser.zsh │ ├── wizard.zsh │ └── worker.zsh │ ├── powerlevel10k.png │ ├── powerlevel10k.zsh-theme │ ├── powerlevel9k.zsh-theme │ ├── prompt_powerlevel10k_setup │ └── prompt_powerlevel9k_setup ├── .p10k.zsh └── .zshrc /.gitignore: -------------------------------------------------------------------------------- 1 | # python module 2 | *__pycache__* 3 | 4 | 5 | # vscode projcet 6 | .vscode/ 7 | 8 | # Sublime Text editor project files 9 | *.sublime-project 10 | *.sublime-workspace 11 | 12 | 13 | *.cache/ 14 | 15 | luarc.json 16 | -------------------------------------------------------------------------------- /.stow-global-ignore: -------------------------------------------------------------------------------- 1 | \.git 2 | \.gitignore 3 | 4 | .+~ # emacs backup files 5 | \#.*\# # emacs autosave files 6 | 7 | ^/README.* 8 | ^/LICENSE.* 9 | ^/COPYING 10 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # my personal dotfiles 2 | 3 | Use `stow` to manage my dotfiles. 4 | 使用stow管理我自己的配置 5 | 6 | ## 目录结构 7 | 8 | 一般通用配置文件都在根目录,比如vim/nvim/tmux/fzf等 9 | 10 | 关于i3/polybar等archlinux专属配置,可以进入到archlinux文件夹查看 11 | 12 | 13 | ## 怎么使用 14 | 15 | ``` 16 | cd ~ 17 | git clone git@github.com:gxt-kt/dotfiles.git 18 | cd dotfiles 19 | stow -t ~ */ 20 | ``` 21 | 22 | 具体可以查看stow命令的使用,也可以自己手动软链接 23 | 24 | If you have config file exists, there may some erros. Backup your original files and remove them. Then try `stow -t ~ */` again. 25 | 26 | Or you can also stow single directory like `stow zsh`, this will only link the contain package data. 27 | 28 | **Notice** 29 | 30 | If you stow a folder while the folder is exist. Then stow will only link the files under the folder instead of the whole folder. 31 | 32 | It's really different and it's better to link the whole folder. 33 | 34 | **So it's recommend to remove the whole folder before stow it.** 35 | 36 | -------------------------------------------------------------------------------- /archlinux/applications/.local/share/applications/restart_keyboard.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Exec=bash -c "xmodmap ~/.xmodmap" 3 | Name=Restart KeyBoard (gxt_kt) 4 | Icon=apper 5 | Type=Application 6 | -------------------------------------------------------------------------------- /archlinux/applications/.local/share/applications/restart_picom.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Exec=bash -c "killall picom;sleep 0.1; nohup picom&>/dev/null" 3 | Name=Restart picom (gxt_kt) 4 | Icon=apper 5 | Type=Application 6 | -------------------------------------------------------------------------------- /archlinux/applications/.local/share/applications/restart_polybar.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Exec=bash -c "sh ~/.config/polybar/launch.sh" 3 | Name=Restart polybar (gxt_kt) 4 | Icon=apper 5 | Type=Application 6 | 7 | -------------------------------------------------------------------------------- /archlinux/applications/.local/share/applications/xrandr_4k_1k.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Exec=bash -c "xrandr --output DP-0 --off --output DP-1 --off --output DP-2 --off --output DP-3 --off --output HDMI-0 --primary --mode 1920x1080 --rate 60 --scale 2.0x2.0 --pos 3840x0 --rotate normal --output eDP-1-0 --mode 3840x2160 --rate 60 --dpi 192 --scale 1.0x1.0 --pos 0x0 --rotate normal" 3 | Name=xrandr_4k_1k (gxt_kt) 4 | Icon=apper 5 | Type=Application 6 | 7 | -------------------------------------------------------------------------------- /archlinux/applications/.local/share/applications/xrandr_4k_2k.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Exec=bash -c "xrandr --output DP-0 --off --output DP-1 --off --output DP-2 --off --output DP-3 --off --output HDMI-0 --primary --mode 2560x1440 --rate 60 --scale 1.75x1.75 --pos 3840x0 --rotate normal --output eDP-1-0 --mode 3840x2160 --rate 60 --dpi 192 --scale 1.0x1.0 --pos 0x0 --rotate normal" 3 | Name=xrandr_4k_2k (gxt_kt) 4 | Icon=apper 5 | Type=Application 6 | 7 | -------------------------------------------------------------------------------- /archlinux/docker/.docker/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "detachKeys": "ctrl-e,e" 3 | } 4 | -------------------------------------------------------------------------------- /archlinux/flameshot/.config/flameshot/flameshot.ini: -------------------------------------------------------------------------------- 1 | [General] 2 | buttons=@Variant(\0\0\0\x7f\0\0\0\vQList\0\0\0\0\x18\0\0\0\0\0\0\0\x1\0\0\0\x2\0\0\0\x3\0\0\0\x4\0\0\0\x5\0\0\0\x6\0\0\0\x12\0\0\0\xf\0\0\0\x16\0\0\0\x13\0\0\0\a\0\0\0\b\0\0\0\t\0\0\0\x10\0\0\0\n\0\0\0\v\0\0\0\r\0\0\0\x17\0\0\0\xe\0\0\0\f\0\0\0\x11\0\0\0\x14\0\0\0\x15) 3 | contrastOpacity=188 4 | drawColor=#ff002a 5 | drawFontSize=28 6 | 7 | [Shortcuts] 8 | TYPE_PIN=Space 9 | TYPE_TOGGLE_PANEL=Tab 10 | -------------------------------------------------------------------------------- /archlinux/kde/.profile: -------------------------------------------------------------------------------- 1 | # fcitx5 set env 2 | export GTK_IM_MODULE=fcitx 3 | export QT_IM_MODULE=fcitx 4 | export XMODIFIERS=@im=fcitx 5 | export SDL_IM_MODULE=fcitx 6 | export GLFW_IM_MODULE=ibus 7 | 8 | # open clion 9 | export _JAVA_AWT_WM_NONREPARENTING=1 10 | -------------------------------------------------------------------------------- /archlinux/polybar/.config/polybar/launch.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # Terminate already running bar instances 4 | killall polybar 5 | # pkill -f polybar 6 | 7 | # Wait until the processes have been shut down 8 | while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done 9 | 10 | # Launch polybar 11 | # polybar top -c $HOME/.config/polybar/nord/config-top.ini & 12 | # polybar bottom -c $HOME/.config/polybar/nord/config-bottom.ini & 13 | # 14 | if type "xrandr"; then 15 | for m in $(polybar --list-monitors | cut -d":" -f1); do 16 | # MONITOR=$m polybar --reload example & 17 | MONITOR=$m polybar top -c $HOME/.config/polybar/nord/config-top.ini & 18 | done 19 | # for m in $(xrandr --query | grep " connected" | cut -d" " -f1); do 20 | # # MONITOR=$m polybar --reload example & 21 | # MONITOR=$m polybar top -c $HOME/.config/polybar/nord/config-top.ini & 22 | # done 23 | else 24 | polybar top -c $HOME/.config/polybar/nord/config-top.ini & 25 | fi 26 | -------------------------------------------------------------------------------- /archlinux/polybar/.config/polybar/modules-bottom.ini: -------------------------------------------------------------------------------- 1 | modules-left = margin round-left cpu temperature round-right margin round-left memory round-right margin round-left wired-up wired round-right 2 | modules-center = round-left menu-apps round-right 3 | modules-right = round-left mpd cava-internal round-right margin round-left pulseaudio pa-web pa-media pa-other round-right margin 4 | -------------------------------------------------------------------------------- /archlinux/polybar/.config/polybar/nord/colors.ini: -------------------------------------------------------------------------------- 1 | [colors] 2 | bg = #2E3440 3 | bg-alt = #3B4252 4 | fg = #ECEFF4 5 | fg-alt = #E5E9F0 6 | 7 | blue = #81A1C1 8 | cyan = #88C0D0 9 | green = #A3BE8C 10 | orange = #D08770 11 | purple = #B48EAD 12 | red = #BF616A 13 | yellow = #EBCB8B 14 | 15 | snowstorm_gray = #D8DEE9 16 | polar_jet = #2E3440 17 | polar_charcoal = #3B4252 18 | polar_gray = #4C566A 19 | polar_gray_light = #98ACD4 20 | 21 | black = #000 22 | white = #FFF 23 | 24 | trans = #00000000 25 | semi-trans-black = #aa000000 26 | -------------------------------------------------------------------------------- /archlinux/polybar/.config/polybar/nord/colors.ini-nord: -------------------------------------------------------------------------------- 1 | [colors] 2 | bg = #2E3440 3 | bg-alt = #3B4252 4 | fg = #ECEFF4 5 | fg-alt = #E5E9F0 6 | 7 | blue = #81A1C1 8 | cyan = #88C0D0 9 | green = #A3BE8C 10 | orange = #D08770 11 | purple = #B48EAD 12 | red = #BF616A 13 | yellow = #EBCB8B 14 | 15 | snowstorm_gray = #D8DEE9 16 | polar_jet = #2E3440 17 | polar_charcoal = #3B4252 18 | polar_gray = #4C566A 19 | polar_gray_light = #98ACD4 20 | 21 | black = #000 22 | white = #FFF 23 | 24 | trans = #00000000 25 | semi-trans-black = #aa000000 26 | -------------------------------------------------------------------------------- /archlinux/polybar/.config/polybar/nord/launch.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # Terminate already running bar instances 4 | killall polybar 5 | 6 | # Wait until the processes have been shut down 7 | while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done 8 | 9 | # Launch polybar 10 | polybar main -c $HOME/.config/polybar/nord/config.ini & 11 | -------------------------------------------------------------------------------- /archlinux/polybar/.config/polybar/nord/modules/audio-pre.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | bspc desktop -f '^6' 4 | qjackctl -a $HOME/Music/jack-pathbays/ardour.xml & 5 | sleep 0.5 6 | bspc desktop -f '^7' 7 | pavucontrol & 8 | sleep 0.5 9 | bspc desktop -f '^8' 10 | ardour6 & 11 | sleep 0.5 12 | -------------------------------------------------------------------------------- /archlinux/polybar/.config/polybar/nord/modules/cava-discord.ini: -------------------------------------------------------------------------------- 1 | [module/cava-discord] 2 | type = custom/script 3 | exec = $HOME/.config/polybar/nord/modules/cava-discord.py -f 24 -b 24 -e B48EAD,B48EAD,B48EAD,B48EAD -c average 4 | tail = true 5 | scroll-up = pactl set-source-volume jack_in +2% 6 | scroll-down = pactl set-source-volume jack_in -2% 7 | ;click-middle = pactl set-source-mute jack_in toggle 8 | click-left = bspc desktop -f '^6' && qjackctl & 9 | click-right = bspc desktop -f '^7' && pavucontrol & 10 | 11 | format-background = ${colors.bg-alt} 12 | format-foreground = ${colors.purple} 13 | -------------------------------------------------------------------------------- /archlinux/polybar/.config/polybar/nord/modules/cava-internal.ini: -------------------------------------------------------------------------------- 1 | [module/cava-internal] 2 | type = custom/script 3 | exec = $HOME/.config/polybar/nord/modules/cava-internal.py -f 24 -b 24 -e B48EAD,81A1C1,A3BE8C,EBCB8B -c average 4 | ;exec = $HOME/.config/polybar/nord/modules/cava-internal.py -f 24 -b 24 -e FFFFFF,FFFFFF,FFFFFF,FFFFFF -c average 5 | tail = true 6 | ;click-right = bspc desktop -f '^6' && qjackctl > /dev/null && sleep 1 && bspc desktop -f '^7' && pavucontrol > /dev/null && sleep 1 && bspc desktop -f '^8' && ardour6 7 | click-right = $HOME/.config/polybar/nord/modules/audio-pre.sh 8 | click-middle = kitty ncmpcpp 9 | 10 | format-background = ${colors.bg-alt} 11 | format-foreground = ${colors.green} 12 | -------------------------------------------------------------------------------- /archlinux/polybar/.config/polybar/nord/modules/cava-media.ini: -------------------------------------------------------------------------------- 1 | [module/cava-media] 2 | type = custom/script 3 | exec = $HOME/.config/polybar/nord/modules/cava-media.py -f 24 -b 24 -e B48EAD,B48EAD,B48EAD,B48EAD -c average 4 | tail = true 5 | scroll-up = pactl set-sink-volume jack_out.3 +2% 6 | scroll-down = pactl set-sink-volume jack_out.3 -2% 7 | click-middle = pactl set-sink-mute jack_out.3 toggle 8 | click-left = bspc desktop -f '^6' && qjackctl & 9 | click-right = bspc desktop -f '^7' && pavucontrol & 10 | 11 | format-background = ${colors.bg-alt} 12 | format-foreground = ${colors.purple} 13 | -------------------------------------------------------------------------------- /archlinux/polybar/.config/polybar/nord/modules/cava-other.ini: -------------------------------------------------------------------------------- 1 | [module/cava-other] 2 | type = custom/script 3 | exec = $HOME/.config/polybar/nord/modules/cava-other.py -f 24 -b 24 -e B48EAD,B48EAD,B48EAD,B48EAD -c average 4 | tail = true 5 | scroll-up = pactl set-sink-volume jack_out.4 +2% 6 | scroll-down = pactl set-sink-volume jack_out.4 -2% 7 | click-middle = pactl set-sink-mute jack_out.4 toggle 8 | click-left = bspc desktop -f '^6' && qjackctl & 9 | click-right = bspc desktop -f '^7' && pavucontrol & 10 | 11 | format-background = ${colors.bg-alt} 12 | format-foreground = ${colors.purple} 13 | -------------------------------------------------------------------------------- /archlinux/polybar/.config/polybar/nord/modules/cava-system.ini: -------------------------------------------------------------------------------- 1 | [module/cava-system] 2 | type = custom/script 3 | exec = $HOME/.config/polybar/nord/modules/cava-system.py -f 24 -b 24 -e B48EAD,B48EAD,B48EAD,B48EAD -c average 4 | tail = true 5 | scroll-up = pactl set-sink-volume jack_out +2% 6 | scroll-down = pactl set-sink-volume jack_out -2% 7 | click-middle = pactl set-sink-mute jack_out toggle 8 | click-left = bspc desktop -f '^6' && qjackctl & 9 | click-right = bspc desktop -f '^7' && pavucontrol & 10 | 11 | format-background = ${colors.bg-alt} 12 | format-foreground = ${colors.purple} 13 | -------------------------------------------------------------------------------- /archlinux/polybar/.config/polybar/nord/modules/cava-text.ini: -------------------------------------------------------------------------------- 1 | [module/cava-text] 2 | type = custom/text 3 | 4 | content = %{T2}Cava:%{T-} 5 | content-foreground = ${colors.cyan} 6 | content-background = ${colors.bg-alt} 7 | -------------------------------------------------------------------------------- /archlinux/polybar/.config/polybar/nord/modules/cava-web.ini: -------------------------------------------------------------------------------- 1 | [module/cava-web] 2 | type = custom/script 3 | exec = $HOME/.config/polybar/nord/modules/cava-web.py -f 24 -b 24 -e B48EAD,B48EAD,B48EAD,B48EAD -c average 4 | tail = true 5 | scroll-up = pactl set-sink-volume jack_out.2 +2% 6 | scroll-down = pactl set-sink-volume jack_out.2 -2% 7 | click-middle = pactl set-sink-mute jack_out.2 toggle 8 | click-left = bspc desktop -f '^6' && qjackctl & 9 | click-right = bspc desktop -f '^7' && pavucontrol & 10 | 11 | format-background = ${colors.bg-alt} 12 | format-foreground = ${colors.purple} 13 | -------------------------------------------------------------------------------- /archlinux/polybar/.config/polybar/nord/modules/dnd.ini: -------------------------------------------------------------------------------- 1 | [module/dnd] 2 | type = custom/ipc 3 | initial = 1 4 | 5 | hook-0 = echo "%{A1:notify-send 'DUNST_COMMAND_PAUSE' && polybar-msg hook dnd 2:}%{T5}%{T-}%{A}" & 6 | hook-1 = echo "%{A1:notify-send 'DUNST_COMMAND_RESUME' && polybar-msg hook dnd 1:}%{T5}%{T-}%{A}" & 7 | 8 | format-background = ${colors.orange} 9 | format-foreground = ${colors.bg} 10 | format-padding = 1 11 | -------------------------------------------------------------------------------- /archlinux/polybar/.config/polybar/nord/modules/ewmh.ini: -------------------------------------------------------------------------------- 1 | [module/ewmh] 2 | type = internal/xworkspaces 3 | 4 | format = 5 | format-background = ${colors.bg-alt} 6 | 7 | label-active = %{T5}%{T-} 8 | label-active-foreground = ${colors.green} 9 | label-active-padding = 1 10 | 11 | label-occupied = %{T5}%{T-} 12 | label-occupied-foreground = ${colors.orange} 13 | label-occupied-padding = 1 14 | 15 | label-urgent = %{T5}%{T-} 16 | label-urgent-foreground = ${colors.red} 17 | label-urgent-padding = 1 18 | 19 | label-empty = %{T5}%{T-} 20 | label-empty-foreground = ${colors.blue} 21 | label-empty-padding = 1 -------------------------------------------------------------------------------- /archlinux/polybar/.config/polybar/nord/modules/fire-left.ini: -------------------------------------------------------------------------------- 1 | [module/fire-left] 2 | type = custom/text 3 | 4 | content = %{T3}%{T-} 5 | content-foreground = ${colors.bg-alt} 6 | -------------------------------------------------------------------------------- /archlinux/polybar/.config/polybar/nord/modules/fire-right.ini: -------------------------------------------------------------------------------- 1 | [module/fire-right] 2 | type = custom/text 3 | 4 | content = %{T3}%{T-} 5 | content-foreground = ${colors.bg-alt} 6 | -------------------------------------------------------------------------------- /archlinux/polybar/.config/polybar/nord/modules/i3.ini: -------------------------------------------------------------------------------- 1 | [module/i3] 2 | type = internal/i3 3 | index-sort = true 4 | 5 | format = 6 | format-background = ${colors.bg-alt} 7 | 8 | label-mode = %{T2}%mode%%{T-} 9 | label-mode-foreground = ${colors.purple} 10 | label-mode-padding = 1 11 | 12 | label-focused = %{T5}%{T-} 13 | label-focused-foreground = ${colors.green} 14 | label-focused-padding = 1 15 | 16 | label-unfocused = %{T5}%{T-} 17 | label-unfocused-foreground = ${colors.orange} 18 | label-unfocused-padding = 1 19 | 20 | label-urgent = %{T5}%{T-} 21 | label-urgent-foreground = ${colors.red} 22 | label-urgent-padding = 1 23 | 24 | label-visible = %{T5}%{T-} 25 | label-visible-foreground = ${colors.blue} 26 | label-visible-padding = 1 27 | -------------------------------------------------------------------------------- /archlinux/polybar/.config/polybar/nord/modules/kernel-checkupdate.ini: -------------------------------------------------------------------------------- 1 | [module/kernel-checkupdate] 2 | type = custom/script 3 | 4 | exec-if = $HOME/.config/polybar/nord/modules/kernel-checkupdate.sh 5 | exec = cat /tmp/kernelcheck.log 6 | interval = 60 7 | 8 | format = %{T6}(latest: