diff --git a/config/gdbinit b/config/gdbinit index 416168cae..a446d9eac 100644 --- a/config/gdbinit +++ b/config/gdbinit @@ -13,8 +13,9 @@ dashboard -style prompt_not_running "\\[\\e[1;34m\\]$\\[\\e[0m\\]" ## fg bold green dashboard -style prompt_running "\\[\\e[1;32m\\]$\\[\\e[0m\\]" -add-auto-load-safe-path /home/martins3/data/qemu/.gdbinit -add-auto-load-safe-path /home/martins3/data/kernel/linux-build/scripts/gdb/vmlinux-gdb.py +set auto-load safe-path / +# add-auto-load-safe-path /home/martins3/data/qemu/.gdbinit +# add-auto-load-safe-path /home/martins3/data/kernel/linux-build/scripts/gdb/vmlinux-gdb.py # 不想每次启动 gdb 的时候,都被问要不要自动加载 debuginfo # Enable debuginfod for this session? (y or [n]) diff --git a/config/zellij/config.kdl b/config/zellij/config.kdl index ad583c707..1443d155f 100644 --- a/config/zellij/config.kdl +++ b/config/zellij/config.kdl @@ -1,243 +1,284 @@ -// If you'd like to override the default keybindings completely, be sure to change "keybinds" to "keybinds clear-defaults=true" keybinds clear-defaults=true { - normal { - // uncomment this and adjust key if using copy_on_select=false - // bind "Alt c" { Copy; } - } locked { - bind "Ctrl g" { SwitchToMode "Normal"; } + bind "Ctrl g" { SwitchToMode "normal"; } } - pane { - bind "Ctrl b" { SwitchToMode "Normal"; } - bind "Tab" { SwitchFocus; } - bind "n" { NewPane; SwitchToMode "Normal"; } - bind "x" { CloseFocus; SwitchToMode "Normal"; } - bind "z" { TogglePaneFrames; SwitchToMode "Normal"; } - bind "c" { SwitchToMode "RenamePane"; PaneNameInput 0;} - - bind "h" "Left" { Resize "Left"; } - bind "j" "Down" { Resize "Down"; } - bind "k" "Up" { Resize "Up"; } - bind "l" "Right" { Resize "Right"; } - bind "=" "+" { Resize "Increase"; } + bind "left" { Resize "Increase left"; } + bind "down" { Resize "Increase down"; } + bind "up" { Resize "Increase up"; } + bind "right" { Resize "Increase right"; } + bind "+" { Resize "Increase"; } bind "-" { Resize "Decrease"; } - + bind "=" { Resize "Increase"; } + bind "C" { SwitchToMode "renametab"; TabNameInput 0; } + bind "H" { MovePane "left"; } + bind "J" { MovePane "down"; } + bind "K" { MovePane "up"; } + bind "L" { MovePane "right"; } bind "N" { MovePane; } - bind "H" { MovePane "Left"; } - bind "J" { MovePane "Down"; } - bind "K" { MovePane "Up"; } - bind "L" { MovePane "Right"; } - - bind "C" { SwitchToMode "RenameTab"; TabNameInput 0; } + bind "Ctrl b" { SwitchToMode "normal"; } + bind "c" { SwitchToMode "renamepane"; PaneNameInput 0; } + bind "h" { Resize "Increase left"; } + bind "j" { Resize "Increase down"; } + bind "k" { Resize "Increase up"; } + bind "l" { Resize "Increase right"; } + bind "n" { NewPane; SwitchToMode "normal"; } + bind "s" { NewPane "stacked"; SwitchToMode "normal"; } bind "t" { ToggleTab; } + bind "i" { TogglePanePinned; SwitchToMode "normal"; } + bind "x" { CloseFocus; SwitchToMode "normal"; } + bind "z" { TogglePaneFrames; SwitchToMode "normal"; } + bind "tab" { SwitchFocus; } } - - // scroll { - // // bind "Alt c" { Copy; } - // // uncomment this and adjust key if using copy_on_select=false - // bind "Ctrl b" "PageUp" "Left" "h" { PageScrollUp; } - // bind "Ctrl c" { ScrollToBottom; SwitchToMode "Normal"; } - // bind "Ctrl f" "PageDown" "Right" "l" { PageScrollDown; } - // bind "Ctrl s" { SwitchToMode "Normal"; } - // bind "d" { HalfPageScrollDown; } - // bind "e" { EditScrollback; SwitchToMode "Normal"; } - // bind "j" "Down" { ScrollDown; } - // bind "k" "Up" { ScrollUp; } - // bind "s" { SwitchToMode "EnterSearch"; SearchInput 0; } - // bind "u" { HalfPageScrollUp; } - // } - // search { - // bind "Ctrl b" "PageUp" "Left" "h" { PageScrollUp; } - // bind "Ctrl c" { ScrollToBottom; SwitchToMode "Normal"; } - // bind "Ctrl f" "PageDown" "Right" "l" { PageScrollDown; } - // bind "Ctrl s" { SwitchToMode "Normal"; } - // bind "c" { SearchToggleOption "CaseSensitivity"; } - // bind "d" { HalfPageScrollDown; } - // bind "j" "Down" { ScrollDown; } - // bind "k" "Up" { ScrollUp; } - // bind "n" { Search "down"; } - // bind "o" { SearchToggleOption "WholeWord"; } - // bind "p" { Search "up"; } - // bind "u" { HalfPageScrollUp; } - // bind "w" { SearchToggleOption "Wrap"; } - // } - // entersearch { - // bind "Ctrl c" "Esc" { SwitchToMode "Scroll"; } - // bind "Enter" { SwitchToMode "Search"; } - // } - renametab { - bind "Ctrl c" { SwitchToMode "Normal"; } - bind "Esc" { UndoRenameTab; SwitchToMode "Tab"; } - } - renamepane { - bind "Ctrl c" { SwitchToMode "Normal"; } - bind "Esc" { UndoRenamePane; SwitchToMode "Pane"; } + tab { + bind "h" { GoToPreviousTab; SwitchToMode "normal"; } + bind "j" { GoToNextTab; SwitchToMode "normal"; } + bind "k" { GoToPreviousTab; SwitchToMode "normal"; } + bind "l" { GoToNextTab; SwitchToMode "normal"; } + bind "n" { NewTab; SwitchToMode "normal"; } + bind "r" { SwitchToMode "renametab"; TabNameInput 0; } + bind "s" { ToggleActiveSyncTab; SwitchToMode "normal"; } + bind "b" { BreakPane; SwitchToMode "normal"; } + bind "[" { BreakPaneLeft; SwitchToMode "normal"; } + bind "]" { BreakPaneRight; SwitchToMode "normal"; } + bind "x" { CloseTab; SwitchToMode "normal"; } } - // session { - // bind "Ctrl o" { SwitchToMode "Normal"; } - // bind "Ctrl s" { SwitchToMode "Scroll"; } - // } - tmux { - bind "%" { NewPane "Right"; SwitchToMode "Normal"; } - bind "&" { CloseTab; SwitchToMode "Normal"; } - bind "," { SwitchToMode "RenameTab"; } - bind "Ctrl h" { Write 2; SwitchToMode "Normal"; } - bind "Down" { MoveFocus "Down"; SwitchToMode "Normal"; } - bind "Left" { MoveFocus "Left"; SwitchToMode "Normal"; } - bind "Right" { MoveFocus "Right"; SwitchToMode "Normal"; } - bind "Up" { MoveFocus "Up"; SwitchToMode "Normal"; } - bind "[" { SwitchToMode "Scroll"; } - bind "\"" { NewPane "Down"; SwitchToMode "Normal"; } - // bind "c" { SwitchToMode "RenamePane"; PaneNameInput 0;} - bind "c" { NewTab; SwitchToMode "Normal"; } - bind "d" { Detach; } - bind "e" { TogglePaneEmbedOrFloating; SwitchToMode "Normal"; } - bind "h" { MoveFocus "Left"; SwitchToMode "Normal"; } - bind "j" { MoveFocus "Down"; SwitchToMode "Normal"; } - bind "k" { MoveFocus "Up"; SwitchToMode "Normal"; } - bind "l" { MoveFocus "Right"; SwitchToMode "Normal"; } - bind "n" { GoToNextTab; SwitchToMode "Normal"; } - bind "o" { FocusNextPane; } - bind "p" { GoToPreviousTab; SwitchToMode "Normal"; } - bind "r" { SwitchToMode "RenameTab"; TabNameInput 0; } - bind "x" { CloseFocus; } - bind "z" { ToggleFocusFullscreen; SwitchToMode "Normal"; } + shared_except "locked" "tmux" { + bind "Ctrl h" { SwitchToMode "tmux"; } } shared_except "locked" { - bind "Ctrl s" { EditScrollback; SwitchToMode "Normal"; } - bind "Ctrl g" { ToggleFloatingPanes; SwitchToMode "Normal"; } - bind "Alt h" "Alt Left" { MoveFocusOrTab "Left"; } - bind "Alt l" "Alt Right" { MoveFocusOrTab "Right"; } - bind "Alt j" "Alt Down" { MoveFocus "Down"; } - bind "Alt k" "Alt Up" { MoveFocus "Up"; } - bind "Alt =" "Alt +" { Resize "Increase"; } + bind "Alt left" { MoveFocusOrTab "left"; } + bind "Alt down" { MoveFocus "down"; } + bind "Alt up" { MoveFocus "up"; } + bind "Alt right" { MoveFocusOrTab "right"; } + bind "Alt +" { Resize "Increase"; } bind "Alt -" { Resize "Decrease"; } - bind "Alt 1" { GoToTab 1; SwitchToMode "Normal"; } - bind "Alt 2" { GoToTab 2; SwitchToMode "Normal"; } - bind "Alt 3" { GoToTab 3; SwitchToMode "Normal"; } - bind "Alt 4" { GoToTab 4; SwitchToMode "Normal"; } - bind "Alt 5" { GoToTab 5; SwitchToMode "Normal"; } - bind "Alt 6" { GoToTab 6; SwitchToMode "Normal"; } - bind "Alt 7" { GoToTab 7; SwitchToMode "Normal"; } - bind "Alt 8" { GoToTab 8; SwitchToMode "Normal"; } - bind "Alt 9" { GoToTab 9; SwitchToMode "Normal"; } + bind "Alt 1" { GoToTab 1; SwitchToMode "normal"; } + bind "Alt 2" { GoToTab 2; SwitchToMode "normal"; } + bind "Alt 3" { GoToTab 3; SwitchToMode "normal"; } + bind "Alt 4" { GoToTab 4; SwitchToMode "normal"; } + bind "Alt 5" { GoToTab 5; SwitchToMode "normal"; } + bind "Alt 6" { GoToTab 6; SwitchToMode "normal"; } + bind "Alt 7" { GoToTab 7; SwitchToMode "normal"; } + bind "Alt 8" { GoToTab 8; SwitchToMode "normal"; } + bind "Alt 9" { GoToTab 9; SwitchToMode "normal"; } + bind "Alt =" { Resize "Increase"; } bind "Alt [" { PreviousSwapLayout; } bind "Alt ]" { NextSwapLayout; } + bind "Alt p" { TogglePaneInGroup; } + bind "Alt Shift p" { ToggleGroupMarking; } + bind "Ctrl g" { ToggleFloatingPanes; SwitchToMode "normal"; } + bind "Alt h" { MoveFocusOrTab "left"; } + bind "Alt j" { MoveFocus "down"; } + bind "Alt k" { MoveFocus "up"; } + bind "Alt l" { MoveFocusOrTab "right"; } + bind "Ctrl s" { EditScrollback; SwitchToMode "normal"; } } shared_except "normal" "locked" { - bind "Enter" "Esc" { SwitchToMode "Normal"; } + bind "enter" { SwitchToMode "normal"; } + } + shared_except "normal" "locked" "renametab" "renamepane" { + bind "esc" { SwitchToMode "normal"; } } - // shared_except "pane" "locked" { - // bind "Ctrl b" { SwitchToMode "Pane"; } - // } - // shared_except "resize" "locked" { - // bind "Ctrl n" { SwitchToMode "Resize"; } - // } - // shared_except "scroll" "locked" { - // bind "Ctrl s" { SwitchToMode "Scroll"; } - // } - // shared_except "session" "locked" { - // bind "Ctrl o" { SwitchToMode "Session"; } - // } - // shared_except "tab" "locked" { - // bind "Ctrl l" { SwitchToMode "Tab"; } - // } - // shared_except "move" "locked" { - // bind "Ctrl b" { SwitchToMode "Move"; } - // } - shared_except "tmux" "locked" { - bind "Ctrl h" { SwitchToMode "Tmux"; } + renametab { + bind "esc" { UndoRenameTab; SwitchToMode "tab"; } + } + shared_among "renametab" "renamepane" { + bind "Ctrl c" { SwitchToMode "normal"; } + } + renamepane { + bind "esc" { UndoRenamePane; SwitchToMode "pane"; } + } + session { + bind "a" { + LaunchOrFocusPlugin "zellij:about" { + floating true + move_to_focused_tab true + }; + SwitchToMode "normal"; + } + bind "c" { + LaunchOrFocusPlugin "configuration" { + floating true + move_to_focused_tab true + }; + SwitchToMode "normal"; + } + bind "d" { Detach; SwitchToMode "normal"; } + bind "l" { + LaunchOrFocusPlugin "zellij:layout-manager" { + floating true + move_to_focused_tab true + }; + SwitchToMode "normal"; + } + bind "p" { + LaunchOrFocusPlugin "plugin-manager" { + floating true + move_to_focused_tab true + }; + SwitchToMode "normal"; + } + bind "s" { + LaunchOrFocusPlugin "zellij:share" { + floating true + move_to_focused_tab true + }; + SwitchToMode "normal"; + } + bind "w" { + LaunchOrFocusPlugin "session-manager" { + floating true + move_to_focused_tab true + }; + SwitchToMode "normal"; + } + } + tmux { + bind "left" { MoveFocus "left"; SwitchToMode "normal"; } + bind "down" { MoveFocus "down"; SwitchToMode "normal"; } + bind "up" { MoveFocus "up"; SwitchToMode "normal"; } + bind "right" { MoveFocus "right"; SwitchToMode "normal"; } + bind "\"" { NewPane "down"; SwitchToMode "normal"; } + bind "%" { NewPane "right"; SwitchToMode "normal"; } + bind "&" { CloseTab; SwitchToMode "normal"; } + bind "," { SwitchToMode "renametab"; } + bind "[" { SwitchToMode "scroll"; } + bind "b" { BreakPane; SwitchToMode "normal"; } + bind "c" { NewTab; SwitchToMode "normal"; } + bind "d" { Detach; } + bind "e" { TogglePaneEmbedOrFloating; SwitchToMode "normal"; } + bind "h" { MoveFocus "left"; SwitchToMode "normal"; } + bind "i" { TogglePanePinned; SwitchToMode "normal"; } + bind "Ctrl h" { Write 2; SwitchToMode "normal"; } + bind "j" { MoveFocus "down"; SwitchToMode "normal"; } + bind "k" { MoveFocus "up"; SwitchToMode "normal"; } + bind "l" { MoveFocus "right"; SwitchToMode "normal"; } + bind "n" { GoToNextTab; SwitchToMode "normal"; } + // bind "o" { FocusNextPane; } + // bind "p" { GoToPreviousTab; SwitchToMode "normal"; } + bind "o" { SwitchToMode "session"; } + bind "p" { SwitchToMode "pane"; } + bind "r" { SwitchToMode "renametab"; TabNameInput 0; } + bind "t" { SwitchToMode "tab"; } + bind "s" { NewPane "stacked"; SwitchToMode "normal"; } + bind "S" { ToggleActiveSyncTab; SwitchToMode "normal"; } + bind "x" { CloseFocus; } + bind "z" { ToggleFocusFullscreen; SwitchToMode "normal"; } } } +// Plugin aliases - can be used to change the implementation of Zellij +// changing these requires a restart to take effect plugins { - tab-bar { path "tab-bar"; } - status-bar { path "status-bar"; } - compact-bar { path "compact-bar"; } + about location="zellij:about" + compact-bar location="zellij:compact-bar" + configuration location="zellij:configuration" + filepicker location="zellij:strider" { + cwd "/" + } + plugin-manager location="zellij:plugin-manager" + session-manager location="zellij:session-manager" + status-bar location="zellij:status-bar" + strider location="zellij:strider" + tab-bar location="zellij:tab-bar" + welcome-screen location="zellij:session-manager" { + welcome_screen true + } } -// Choose what to do when zellij receives SIGTERM, SIGINT, SIGQUIT or SIGHUP -// eg. when terminal window with an active zellij session is closed +// Plugins to load in the background when a new session starts +// eg. "file:/path/to/my-plugin.wasm" +// eg. "https://example.com/my-plugin.wasm" +load_plugins { +} +web_client { + font "monospace" +} + +// Use a simplified UI without special fonts (arrow glyphs) // Options: -// - detach (Default) -// - quit -// -// on_force_close "quit" - -// Send a request for a simplified ui (without arrow fonts) to plugins -// Options: -// - true -// - false (Default) -// +// - true +// - false (Default) +// // simplified_ui true - -// Choose the path to the default shell that zellij will use for opening new panes -// Default: $SHELL -// -// default_shell "fish" -// @todo 因为 arm 的原因,这个不行 -// default_shell "nu" - -// Toggle between having pane frames around the panes -// Options: -// - true (default) -// - false -// -pane_frames false - -// Define color themes for Zellij -// For more examples, see: https://github.com/zellij-org/zellij/tree/main/example/themes -// Once these themes are defined, one of them should to be selected in the "theme" section of this file -// -// themes { -// dracula { -// fg 248 248 242 -// bg 40 42 54 -// red 255 85 85 -// green 80 250 123 -// yellow 241 250 140 -// blue 98 114 164 -// magenta 255 121 198 -// orange 255 184 108 -// cyan 139 233 253 -// black 0 0 0 -// white 255 255 255 -// } -// } - + // Choose the theme that is specified in the themes section. // Default: default -// +// theme "solarized-dark" - -// The name of the default layout to load on startup -// Default: "default" -// -/* default_layout "compact" */ - -// Choose the mode that zellij uses when starting up. + +// Choose the base input mode of zellij. // Default: normal -// +// // default_mode "locked" - + +// Choose the path to the default shell that zellij will use for opening new panes +// Default: $SHELL +// +// default_shell "fish" + +// Choose the path to override cwd that zellij will use for opening new panes +// +// default_cwd "/tmp" + +// The name of the default layout to load on startup +// Default: "default" +// +// default_layout "compact" + +// The folder in which Zellij will look for layouts +// (Requires restart) +// +layout_dir "/home/martins3/.dotfiles/config/zellij/layout" + +// The folder in which Zellij will look for themes +// (Requires restart) +// +// theme_dir "/tmp" + // Toggle enabling the mouse mode. // On certain configurations, or terminals this could // potentially interfere with copying text. // Options: // - true (default) // - false -// +// // mouse_mode false - + +// Toggle having pane frames around the panes +// Options: +// - true (default, enabled) +// - false +// +pane_frames false + +// When attaching to an existing session with other users, +// should the session be mirrored (true) +// or should each user have their own cursor (false) +// (Requires restart) +// Default: false +// +// mirror_session true + +// Choose what to do when zellij receives SIGTERM, SIGINT, SIGQUIT or SIGHUP +// eg. when terminal window with an active zellij session is closed +// (Requires restart) +// Options: +// - detach (Default) +// - quit +// +// on_force_close "quit" + // Configure the scroll back buffer size // This is the number of lines zellij stores for each pane in the scroll back // buffer. Excess number of lines are discarded in a FIFO fashion. +// (Requires restart) // Valid values: positive integers // Default value: 10000 -// +// // scroll_buffer_size 10000 - + // Provide a command to execute when copying text. The text will be piped to // the stdin of the program to perform the copy. This can be used with // terminal emulators which do not support the OSC 52 ANSI control sequence @@ -247,33 +288,171 @@ theme "solarized-dark" // copy_command "xclip -selection clipboard" // x11 // copy_command "wl-copy" // wayland // copy_command "pbcopy" // osx - +// +// copy_command "pbcopy" + // Choose the destination for copied text // Allows using the primary selection buffer (on x11/wayland) instead of the system clipboard. // Does not apply when using copy_command. // Options: // - system (default) // - primary -// +// // copy_clipboard "primary" - -// Enable or disable automatic copy (and clear) of selection when releasing mouse + +// Enable automatic copying (and clearing) of selection when releasing mouse // Default: true -// -// copy_on_select false - +// +// copy_on_select true + // Path to the default editor to use to edit pane scrollbuffer // Default: $EDITOR or $VISUAL -// scrollback_editor "nvim" - -// When attaching to an existing session with other users, -// should the session be mirrored (true) -// or should each user have their own cursor (false) + +// A fixed name to always give the Zellij session. +// Consider also setting `attach_to_session true,` +// otherwise this will error if such a session exists. +// Default: +// +session_name "martins3 yyds" + +// When `session_name` is provided, attaches to that session +// if it is already running or creates it otherwise. // Default: false -// -// mirror_session true +// +attach_to_session true + +// Toggle between having Zellij lay out panes according to a predefined set of layouts whenever possible +// Options: +// - true (default) +// - false +// +// auto_layout false -// The folder in which Zellij will look for layouts -// -layout_dir "/home/martins3/.dotfiles/config/zellij/" +stacked_resize true + +// Whether sessions should be serialized to the cache folder (including their tabs/panes, cwds and running commands) so that they can later be resurrected +// Options: +// - true (default) +// - false +// +// session_serialization false + +// Whether pane viewports are serialized along with the session, default is false +// Options: +// - true +// - false (default) +// +// serialize_pane_viewport false + +// Scrollback lines to serialize along with the pane viewport when serializing sessions, 0 +// defaults to the scrollback size. If this number is higher than the scrollback size, it will +// also default to the scrollback size. This does nothing if `serialize_pane_viewport` is not true. +// +// scrollback_lines_to_serialize 10000 + +// Enable or disable the rendering of styled and colored underlines (undercurl). +// May need to be disabled for certain unsupported terminals +// (Requires restart) +// Default: true +// +// styled_underlines false + +// How often in seconds sessions are serialized +// +// serialization_interval 10000 + +// Enable or disable writing of session metadata to disk (if disabled, other sessions might not know +// metadata info on this session) +// (Requires restart) +// Default: false +// +// disable_session_metadata false + +// Enable or disable support for the enhanced Kitty Keyboard Protocol (the host terminal must also support it) +// (Requires restart) +// Default: true (if the host terminal supports it) +// +// support_kitty_keyboard_protocol false +// Whether to make sure a local web server is running when a new Zellij session starts. +// This web server will allow creating new sessions and attaching to existing ones that have +// opted in to being shared in the browser. +// When enabled, navigate to http://127.0.0.1:8082 +// (Requires restart) +// +// Note: a local web server can still be manually started from within a Zellij session or from the CLI. +// If this is not desired, one can use a version of Zellij compiled without +// `web_server_capability` +// +// Possible values: +// - true +// - false +// Default: false +// +// web_server false +// Whether to allow sessions started in the terminal to be shared through a local web server, assuming one is +// running (see the `web_server` option for more details). +// (Requires restart) +// +// Note: This is an administrative separation and not intended as a security measure. +// +// Possible values: +// - "on" (allow web sharing through the local web server if it +// is online) +// - "off" (do not allow web sharing unless sessions explicitly opt-in to it) +// - "disabled" (do not allow web sharing and do not permit sessions started in the terminal to opt-in to it) +// Default: "off" +// +// web_sharing "off" +// A path to a certificate file to be used when setting up the web client to serve the +// connection over HTTPs +// +// web_server_cert "/path/to/cert.pem" +// A path to a key file to be used when setting up the web client to serve the +// connection over HTTPs +// +// web_server_key "/path/to/key.pem" +/// Whether to enforce https connections to the web server when it is bound to localhost +/// (127.0.0.0/8) +/// +/// Note: https is ALWAYS enforced when bound to non-local interfaces +/// +/// Default: false +// +// enforce_https_for_localhost false + +// Whether to stack panes when resizing beyond a certain size +// Default: true +// +// stacked_resize false + +// Whether to show tips on startup +// Default: true +// +show_startup_tips false + +// Whether to show release notes on first version run +// Default: true +// +// show_release_notes false + +// Whether to enable mouse hover effects and pane grouping functionality +// default is true +advanced_mouse_actions true + +// The ip address the web server should listen on when it starts +// Default: "127.0.0.1" +// (Requires restart) +// web_server_ip "127.0.0.1" + +// The port the web server should listen on when it starts +// Default: 8082 +// (Requires restart) +// web_server_port 8082 + +// A command to run (will be wrapped with sh -c and provided the RESURRECT_COMMAND env variable) +// after Zellij attempts to discover a command inside a pane when resurrecting sessions, the STDOUT +// of this command will be used instead of the discovered RESURRECT_COMMAND +// can be useful for removing wrappers around commands +// Note: be sure to escape backslashes and similar characters properly +// post_command_discovery_hook "echo $RESURRECT_COMMAND | sed " diff --git a/config/zellij/code.kdl b/config/zellij/layout/code.kdl similarity index 100% rename from config/zellij/code.kdl rename to config/zellij/layout/code.kdl diff --git a/config/zellij/default.kdl b/config/zellij/layout/default.kdl similarity index 100% rename from config/zellij/default.kdl rename to config/zellij/layout/default.kdl diff --git a/config/zellij/default.swap.kdl.bak b/config/zellij/layout/default.swap.kdl.bak similarity index 100% rename from config/zellij/default.swap.kdl.bak rename to config/zellij/layout/default.swap.kdl.bak diff --git a/config/zellij/docs.kdl b/config/zellij/layout/docs.kdl similarity index 100% rename from config/zellij/docs.kdl rename to config/zellij/layout/docs.kdl diff --git a/config/zellij/the-default.kdl b/config/zellij/layout/the-default.kdl similarity index 100% rename from config/zellij/the-default.kdl rename to config/zellij/layout/the-default.kdl diff --git a/config/zsh b/config/zsh index d14fa4c76..d3ed882a4 100644 --- a/config/zsh +++ b/config/zsh @@ -69,5 +69,9 @@ if [ -e $HOME/data/vn/code/zsh ]; then . $HOME/data/vn/code/zsh fi +if [ -e $HOME/vn/code/zsh ]; then + . $HOME/vn/code/zsh +fi + export NIXPKGS_ALLOW_INSECURE=1 export EDITOR=nvim diff --git a/docs/anki.md b/docs/anki.md deleted file mode 100644 index e69de29bb..000000000 diff --git a/docs/nix.md b/docs/nix.md index 4730109ca..a2d1587d6 100644 --- a/docs/nix.md +++ b/docs/nix.md @@ -1307,18 +1307,6 @@ https://news.ycombinator.com/item?id=42666851 ## kernel 配置在这里的 kernel-modules/lib/modules/6.12.7/modules.devname -## 原来 rust-analyzer 是一个软连接啊 -```txt -🧀 l /nix/store/dyn2kdxcnhcjz13nqpdrpcgd3qj7996b-rustup-1.27.1/bin/rust-analyzer -Permissions Size User Date Modified Name -lrwxrwxrwx - root 1 Jan 1970  /nix/store/dyn2kdxcnhcjz13nqpdrpcgd3qj7996b-rustup-1.27.1/bin/rust-analyzer -> rustup -``` - -这样可以解决: -```txt -rustup component add rust-analyzer -``` - ## 这个功能对于我来说,很重要 安装的时候可以不用联网。 https://github.com/tfc/nixos-auto-installer diff --git a/docs/nvim-advantace.md b/docs/nvim-advantace.md index 2378a854e..70f5499aa 100644 --- a/docs/nvim-advantace.md +++ b/docs/nvim-advantace.md @@ -325,3 +325,36 @@ rachartier/tiny-inline-diagnostic.nvim ## tree-sitter 类似的? https://ast-grep.github.io/ + +## 这个拷贝始终没搞懂 +- 有时候,nvim 报告 Clipboard 是 tmux,但是实际上下面的才是正确的 +```txt +## Clipboard (optional) + - OK: Clipboard tool found: xclip +``` +- 登录远程终端,在远程终端中使用 clear 或者 vim 的时候遇到 +```txt +'tmux-256color': unknown terminal type. +``` +https://unix.stackexchange.com/questions/574669/clearing-tmux-terminal-throws-error-tmux-256color-unknown-terminal-type + +配置了: +```lua + vim.g.clipboard = { + name = 'SSH OSC52', + copy = { + ['+'] = require('vim.ui.clipboard.osc52').copy('+'), + ['*'] = require('vim.ui.clipboard.osc52').copy('*'), + }, + paste = { + ['+'] = function() return vim.fn.getreg('+') end, + ['*'] = function() return vim.fn.getreg('*') end, + }, + } +``` +其 provider 修改为: +```txt +Clipboard (optional) ~ +- ✅ OK Clipboard tool found: SSH OSC52 +``` +这个结果之后,在任何环境中都可以复制了。 diff --git a/docs/terminals.md b/docs/terminals.md index a0c268b77..b1169203e 100644 --- a/docs/terminals.md +++ b/docs/terminals.md @@ -89,7 +89,7 @@ Alacritty 的优点: 那么就立刻换另外一个。 ## 总结 -目前,我推荐的 terminal 是: +如果是在 Linux 下,目前,我推荐的 terminal 是: - kitty - wezterm - alacritty @@ -97,6 +97,10 @@ Alacritty 的优点: 虽然 kitty 很大一部分代码是 Python,但是我估计只是用于控制面的,其性能用 [terminal-benchmark](https://github.com/Dica-Developer/terminal-benchmark) 测试,无明显差距。 +如果在 windows 下,Windows terminal 基本上是唯一的选择了。 + +此外,由于精力有限,ghostty 之类的新秀(2026-03-23) ,广受好评,但是我并没有体验。 +