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
This commit is contained in:
Aram Drevekenin 2024-10-23 14:37:23 +02:00 committed by GitHub
parent e441e89807
commit 0277c5f6a7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 44 additions and 1 deletions

View file

@ -80,6 +80,14 @@ keybinds clear-defaults=true {{
bind "Ctrl b" "PageUp" "Left" "h" {{ PageScrollUp; }} bind "Ctrl b" "PageUp" "Left" "h" {{ PageScrollUp; }}
bind "d" {{ HalfPageScrollDown; }} bind "d" {{ HalfPageScrollDown; }}
bind "u" {{ HalfPageScrollUp; }} 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 {{ search {{
bind "Ctrl c" {{ ScrollToBottom; SwitchToMode "Locked"; }} bind "Ctrl c" {{ ScrollToBottom; SwitchToMode "Locked"; }}
@ -268,6 +276,14 @@ keybinds clear-defaults=true {{
bind "Ctrl b" "PageUp" "Left" "h" {{ PageScrollUp; }} bind "Ctrl b" "PageUp" "Left" "h" {{ PageScrollUp; }}
bind "d" {{ HalfPageScrollDown; }} bind "d" {{ HalfPageScrollDown; }}
bind "u" {{ HalfPageScrollUp; }} 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 {{ search {{
bind "{primary_modifier} s" {{ SwitchToMode "Normal"; }} bind "{primary_modifier} s" {{ SwitchToMode "Normal"; }}
@ -461,6 +477,14 @@ keybinds clear-defaults=true {{
bind "k" "Up" {{ ScrollUp; }} bind "k" "Up" {{ ScrollUp; }}
bind "d" {{ HalfPageScrollDown; }} bind "d" {{ HalfPageScrollDown; }}
bind "u" {{ HalfPageScrollUp; }} 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 {{ search {{
bind "Ctrl c" {{ ScrollToBottom; SwitchToMode "Normal"; }} bind "Ctrl c" {{ ScrollToBottom; SwitchToMode "Normal"; }}
@ -986,6 +1010,14 @@ keybinds clear-defaults=true {{
bind "Ctrl b" "PageUp" "Left" "h" {{ PageScrollUp; }} bind "Ctrl b" "PageUp" "Left" "h" {{ PageScrollUp; }}
bind "d" {{ HalfPageScrollDown; }} bind "d" {{ HalfPageScrollDown; }}
bind "u" {{ HalfPageScrollUp; }} 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 {{ search {{
bind "{primary_modifier} s" {{ SwitchToMode "Normal"; }} bind "{primary_modifier} s" {{ SwitchToMode "Normal"; }}

View file

@ -262,7 +262,9 @@ impl ZellijPlugin for State {
active_tab, active_tab,
cols, cols,
separator, separator,
self.base_mode_is_locked self.base_mode_is_locked,
self.text_copy_destination,
self.display_system_clipboard_failure,
) )
); );
return; return;

View file

@ -9,6 +9,7 @@ use zellij_tile::prelude::*;
use zellij_tile_utils::palette_match; use zellij_tile_utils::palette_match;
use crate::first_line::{to_char, KeyAction, KeyMode, KeyShortcut}; 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::{action_key, action_key_group, color_elements, MORE_MSG, TO_NORMAL};
use crate::{ColoredElements, LinePart}; use crate::{ColoredElements, LinePart};
use unicode_width::UnicodeWidthStr; use unicode_width::UnicodeWidthStr;
@ -19,7 +20,15 @@ pub fn one_line_ui(
mut max_len: usize, mut max_len: usize,
separator: &str, separator: &str,
base_mode_is_locked: bool, base_mode_is_locked: bool,
text_copied_to_clipboard_destination: Option<CopyDestination>,
clipboard_failure: bool,
) -> LinePart { ) -> 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 line_part_to_render = LinePart::default();
let mut append = |line_part: &LinePart, max_len: &mut usize| { let mut append = |line_part: &LinePart, max_len: &mut usize| {
line_part_to_render.append(line_part); line_part_to_render.append(line_part);