From 0277c5f6a77880fddfba9e93d5d168e6968fa39a Mon Sep 17 00:00:00 2001 From: Aram Drevekenin Date: Wed, 23 Oct 2024 14:37:23 +0200 Subject: [PATCH] fix(ux): new interface/configuration touch-ups (#3691) * fix(ui): copy to clipboard in new ui * fix(ux): allow navigating out of scrolled pane * style(fmt): rustfmt --- default-plugins/configuration/src/presets.rs | 32 +++++++++++++++++++ default-plugins/status-bar/src/main.rs | 4 ++- default-plugins/status-bar/src/one_line_ui.rs | 9 ++++++ 3 files changed, 44 insertions(+), 1 deletion(-) diff --git a/default-plugins/configuration/src/presets.rs b/default-plugins/configuration/src/presets.rs index fc8f84e1..b703ef99 100644 --- a/default-plugins/configuration/src/presets.rs +++ b/default-plugins/configuration/src/presets.rs @@ -80,6 +80,14 @@ keybinds clear-defaults=true {{ bind "Ctrl b" "PageUp" "Left" "h" {{ PageScrollUp; }} bind "d" {{ HalfPageScrollDown; }} bind "u" {{ HalfPageScrollUp; }} + bind "Alt left" {{ MoveFocusOrTab "left"; SwitchToMode "locked"; }} + bind "Alt down" {{ MoveFocus "down"; SwitchToMode "locked"; }} + bind "Alt up" {{ MoveFocus "up"; SwitchToMode "locked"; }} + bind "Alt right" {{ MoveFocusOrTab "right"; SwitchToMode "locked"; }} + bind "Alt h" {{ MoveFocusOrTab "left"; SwitchToMode "locked"; }} + bind "Alt j" {{ MoveFocus "down"; SwitchToMode "locked"; }} + bind "Alt k" {{ MoveFocus "up"; SwitchToMode "locked"; }} + bind "Alt l" {{ MoveFocusOrTab "right"; SwitchToMode "locked"; }} }} search {{ bind "Ctrl c" {{ ScrollToBottom; SwitchToMode "Locked"; }} @@ -268,6 +276,14 @@ keybinds clear-defaults=true {{ bind "Ctrl b" "PageUp" "Left" "h" {{ PageScrollUp; }} bind "d" {{ HalfPageScrollDown; }} bind "u" {{ HalfPageScrollUp; }} + bind "{secondary_modifier} left" {{ MoveFocusOrTab "left"; SwitchToMode "normal"; }} + bind "{secondary_modifier} down" {{ MoveFocus "down"; SwitchToMode "normal"; }} + bind "{secondary_modifier} up" {{ MoveFocus "up"; SwitchToMode "normal"; }} + bind "{secondary_modifier} right" {{ MoveFocusOrTab "right"; SwitchToMode "normal"; }} + bind "{secondary_modifier} h" {{ MoveFocusOrTab "left"; SwitchToMode "normal"; }} + bind "{secondary_modifier} j" {{ MoveFocus "down"; SwitchToMode "normal"; }} + bind "{secondary_modifier} k" {{ MoveFocus "up"; SwitchToMode "normal"; }} + bind "{secondary_modifier} l" {{ MoveFocusOrTab "right"; SwitchToMode "normal"; }} }} search {{ bind "{primary_modifier} s" {{ SwitchToMode "Normal"; }} @@ -461,6 +477,14 @@ keybinds clear-defaults=true {{ bind "k" "Up" {{ ScrollUp; }} bind "d" {{ HalfPageScrollDown; }} bind "u" {{ HalfPageScrollUp; }} + bind "{secondary_modifier} left" {{ MoveFocusOrTab "left"; SwitchToMode "normal"; }} + bind "{secondary_modifier} down" {{ MoveFocus "down"; SwitchToMode "normal"; }} + bind "{secondary_modifier} up" {{ MoveFocus "up"; SwitchToMode "normal"; }} + bind "{secondary_modifier} right" {{ MoveFocusOrTab "right"; SwitchToMode "normal"; }} + bind "{secondary_modifier} h" {{ MoveFocusOrTab "left"; SwitchToMode "normal"; }} + bind "{secondary_modifier} j" {{ MoveFocus "down"; SwitchToMode "normal"; }} + bind "{secondary_modifier} k" {{ MoveFocus "up"; SwitchToMode "normal"; }} + bind "{secondary_modifier} l" {{ MoveFocusOrTab "right"; SwitchToMode "normal"; }} }} search {{ bind "Ctrl c" {{ ScrollToBottom; SwitchToMode "Normal"; }} @@ -986,6 +1010,14 @@ keybinds clear-defaults=true {{ bind "Ctrl b" "PageUp" "Left" "h" {{ PageScrollUp; }} bind "d" {{ HalfPageScrollDown; }} bind "u" {{ HalfPageScrollUp; }} + bind "{secondary_modifier} left" {{ MoveFocusOrTab "left"; SwitchToMode "normal"; }} + bind "{secondary_modifier} down" {{ MoveFocus "down"; SwitchToMode "normal"; }} + bind "{secondary_modifier} up" {{ MoveFocus "up"; SwitchToMode "normal"; }} + bind "{secondary_modifier} right" {{ MoveFocusOrTab "right"; SwitchToMode "normal"; }} + bind "{secondary_modifier} h" {{ MoveFocusOrTab "left"; SwitchToMode "normal"; }} + bind "{secondary_modifier} j" {{ MoveFocus "down"; SwitchToMode "normal"; }} + bind "{secondary_modifier} k" {{ MoveFocus "up"; SwitchToMode "normal"; }} + bind "{secondary_modifier} l" {{ MoveFocusOrTab "right"; SwitchToMode "normal"; }} }} search {{ bind "{primary_modifier} s" {{ SwitchToMode "Normal"; }} diff --git a/default-plugins/status-bar/src/main.rs b/default-plugins/status-bar/src/main.rs index 7db9b09d..4fbc0089 100644 --- a/default-plugins/status-bar/src/main.rs +++ b/default-plugins/status-bar/src/main.rs @@ -262,7 +262,9 @@ impl ZellijPlugin for State { active_tab, cols, separator, - self.base_mode_is_locked + self.base_mode_is_locked, + self.text_copy_destination, + self.display_system_clipboard_failure, ) ); return; diff --git a/default-plugins/status-bar/src/one_line_ui.rs b/default-plugins/status-bar/src/one_line_ui.rs index 2db13d78..74184f57 100644 --- a/default-plugins/status-bar/src/one_line_ui.rs +++ b/default-plugins/status-bar/src/one_line_ui.rs @@ -9,6 +9,7 @@ use zellij_tile::prelude::*; use zellij_tile_utils::palette_match; use crate::first_line::{to_char, KeyAction, KeyMode, KeyShortcut}; +use crate::second_line::{system_clipboard_error, text_copied_hint}; use crate::{action_key, action_key_group, color_elements, MORE_MSG, TO_NORMAL}; use crate::{ColoredElements, LinePart}; use unicode_width::UnicodeWidthStr; @@ -19,7 +20,15 @@ pub fn one_line_ui( mut max_len: usize, separator: &str, base_mode_is_locked: bool, + text_copied_to_clipboard_destination: Option, + clipboard_failure: bool, ) -> LinePart { + if let Some(text_copied_to_clipboard_destination) = text_copied_to_clipboard_destination { + return text_copied_hint(&help.style.colors, text_copied_to_clipboard_destination); + } + if clipboard_failure { + return system_clipboard_error(&help.style.colors); + } let mut line_part_to_render = LinePart::default(); let mut append = |line_part: &LinePart, max_len: &mut usize| { line_part_to_render.append(line_part);