diff --git a/.config/zellij/config.kdl b/.config/zellij/config.kdl index 6398ea3..017e340 100644 --- a/.config/zellij/config.kdl +++ b/.config/zellij/config.kdl @@ -30,12 +30,14 @@ keybinds { bind "n" { NewPane; SwitchToMode "Normal"; } bind "d" { NewPane "Down"; SwitchToMode "Normal"; } bind "r" { NewPane "Right"; SwitchToMode "Normal"; } + bind "s" { NewPane "stacked"; SwitchToMode "Normal"; } bind "x" { CloseFocus; SwitchToMode "Normal"; } bind "f" { ToggleFocusFullscreen; SwitchToMode "Normal"; } bind "z" { TogglePaneFrames; SwitchToMode "Normal"; } bind "w" { ToggleFloatingPanes; SwitchToMode "Normal"; } bind "e" { TogglePaneEmbedOrFloating; SwitchToMode "Normal"; } bind "c" { SwitchToMode "RenamePane"; PaneNameInput 0;} + bind "i" { TogglePanePinned; SwitchToMode "Normal"; } } move { bind "Ctrl h" { SwitchToMode "Normal"; } @@ -54,6 +56,9 @@ keybinds { bind "n" { NewTab; SwitchToMode "Normal"; } bind "x" { CloseTab; SwitchToMode "Normal"; } bind "s" { ToggleActiveSyncTab; SwitchToMode "Normal"; } + bind "b" { BreakPane; SwitchToMode "Normal"; } + bind "]" { BreakPaneRight; SwitchToMode "Normal"; } + bind "[" { BreakPaneLeft; SwitchToMode "Normal"; } bind "1" { GoToTab 1; SwitchToMode "Normal"; } bind "2" { GoToTab 2; SwitchToMode "Normal"; } bind "3" { GoToTab 3; SwitchToMode "Normal"; } @@ -110,6 +115,41 @@ keybinds { bind "Ctrl o" { SwitchToMode "Normal"; } bind "Ctrl s" { SwitchToMode "Scroll"; } bind "d" { Detach; } + bind "w" { + LaunchOrFocusPlugin "session-manager" { + floating true + move_to_focused_tab true + }; + SwitchToMode "Normal" + } + bind "c" { + LaunchOrFocusPlugin "configuration" { + floating true + move_to_focused_tab true + }; + SwitchToMode "Normal" + } + bind "p" { + LaunchOrFocusPlugin "plugin-manager" { + floating true + move_to_focused_tab true + }; + SwitchToMode "Normal" + } + bind "a" { + LaunchOrFocusPlugin "zellij:about" { + floating true + move_to_focused_tab true + }; + SwitchToMode "Normal" + } + bind "s" { + LaunchOrFocusPlugin "zellij:share" { + floating true + move_to_focused_tab true + }; + SwitchToMode "Normal" + } } tmux { bind "[" { SwitchToMode "Scroll"; } @@ -137,7 +177,10 @@ keybinds { shared_except "locked" { bind "Ctrl g" { SwitchToMode "Locked"; } bind "Ctrl q" { Quit; } + bind "Alt f" { ToggleFloatingPanes; } bind "Alt n" { NewPane; } + bind "Alt i" { MoveTab "Left"; } + bind "Alt o" { MoveTab "Right"; } bind "Alt h" "Alt Left" { MoveFocusOrTab "Left"; } bind "Alt l" "Alt Right" { MoveFocusOrTab "Right"; } bind "Alt j" "Alt Down" { MoveFocus "Down"; } @@ -146,6 +189,8 @@ keybinds { bind "Alt -" { Resize "Decrease"; } bind "Alt [" { PreviousSwapLayout; } bind "Alt ]" { NextSwapLayout; } + bind "Alt p" { TogglePaneInGroup; } + bind "Alt Shift p" { ToggleGroupMarking; } } shared_except "normal" "locked" { bind "Enter" "Esc" { SwitchToMode "Normal"; } @@ -173,15 +218,34 @@ keybinds { } } +// 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"; } - strider { path "strider"; } - compact-bar { path "compact-bar"; } + tab-bar location="zellij:tab-bar" + status-bar location="zellij:status-bar" + strider location="zellij:strider" + compact-bar location="zellij:compact-bar" + session-manager location="zellij:session-manager" + welcome-screen location="zellij:session-manager" { + welcome_screen true + } + filepicker location="zellij:strider" { + cwd "/" + } + configuration location="zellij:configuration" + plugin-manager location="zellij:plugin-manager" + about location="zellij:about" +} + +// Plugins to load in the background when a new session starts +load_plugins { + // "file:/path/to/my-plugin.wasm" + // "https://example.com/my-plugin.wasm" } // 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 @@ -193,7 +257,7 @@ plugins { // - true // - false (Default) // -simplified_ui true +// simplified_ui true // Choose the path to the default shell that zellij will use for opening new panes // Default: $SHELL @@ -209,7 +273,7 @@ simplified_ui true // - true (default) // - false // -pane_frames false +// pane_frames true // Toggle between having Zellij lay out panes according to a predefined set of layouts whenever possible // Options: @@ -218,6 +282,29 @@ pane_frames false // // auto_layout 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 +// (Requires restart) +// Options: +// - true (default) +// - false +// +// session_serialization false + +// Whether pane viewports are serialized along with the session, default is false +// (Requires restart) +// Options: +// - true +// - false (default) +// +// serialize_pane_viewport true + +// 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. +// (Requires restart) +// +// scrollback_lines_to_serialize 10000 + // 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 @@ -245,6 +332,7 @@ pane_frames false // The name of the default layout to load on startup // Default: "default" +// (Requires restart) // // default_layout "compact" @@ -256,6 +344,7 @@ pane_frames false // Toggle enabling the mouse mode. // On certain configurations, or terminals this could // potentially interfere with copying text. +// (Requires restart) // Options: // - true (default) // - false @@ -265,6 +354,7 @@ pane_frames false // 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 // @@ -302,14 +392,129 @@ 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 // The folder in which Zellij will look for layouts +// (Requires restart) // // layout_dir "/path/to/my/layout_dir" // The folder in which Zellij will look for themes +// (Requires restart) // // theme_dir "/path/to/my/theme_dir" + +// 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 + +// 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 true + +// 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 true + +// 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 "on" + +// 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" + + +// 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/my/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/my/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 true + +// The port the web server should listen on when it starts +// Default: 8082 +// (Requires restart) +// +// web_server_port 8082 + +// Whether to stack panes when resizing beyond a certain size +// Default: true +// +// stacked_resize 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: true +// +// advanced_mouse_actions false + +// 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 " + + +web_client { + font "monospace" +} diff --git a/.paodarc b/.paodarc index a88481b..e14fd5c 100644 --- a/.paodarc +++ b/.paodarc @@ -3,7 +3,6 @@ # :bindkey -v # Aliases -alias yay="yay --aur" alias paru="paru --aur" alias ls="eza" alias ll="eza -albh" @@ -12,7 +11,6 @@ alias cat="bat" alias find="fd" alias grep="rg" alias open="xdg-open" -alias zigup="zigup --path-link /home/paoda/.local/bin/zig --install-dir /home/paoda/.local/share/zigup/zig" alias objdump="objdump -M intel --disassembler-color=extended-color --visualize-jumps=extended-color" # Functions diff --git a/.zshenv b/.zshenv index 2c071c7..de459f5 100644 --- a/.zshenv +++ b/.zshenv @@ -8,13 +8,9 @@ export EDITOR="$HOME/.cargo/bin/hx" # Add ~/.local/bin to PATH export PATH="$HOME/.local/bin:$PATH" -# Note: zizgup binary should be moved to ~/.local/bin - # Rust export PATH="$HOME/.cargo/bin:$PATH" -# Note: ZLS binary should be moved to ~/.local/bin - # Yarn Global export PATH="$HOME/.yarn/bin:$PATH" @@ -27,4 +23,7 @@ export PATH="/opt/flutter/bin:$PATH" # nvm source /usr/share/nvm/init-nvm.sh +# revng +export PATH="/opt/revng:$PATH" + # Note: devkitPro handled by environment.d