mirror of
https://github.com/kovidgoyal/kitty
synced 2026-07-17 22:14:53 +02:00
Implement smooth animated scrolling for scroll_line_up and scroll_line_down
Fixes #9784
This commit is contained in:
committed by
Kovid Goyal
parent
50cc4f6630
commit
35ca3a178d
@@ -2901,32 +2901,32 @@ egr() # }}}
|
||||
agr('shortcuts.scrolling', 'Scrolling')
|
||||
|
||||
map('Scroll line up',
|
||||
'scroll_line_up kitty_mod+up scroll_line_up',
|
||||
'scroll_line_up kitty_mod+up scroll_line_up smooth',
|
||||
)
|
||||
map('Scroll line up',
|
||||
'scroll_line_up --allow-fallback=shifted,ascii kitty_mod+k scroll_line_up',
|
||||
'scroll_line_up --allow-fallback=shifted,ascii kitty_mod+k scroll_line_up smooth',
|
||||
)
|
||||
map('Scroll line up',
|
||||
'scroll_line_up opt+cmd+page_up scroll_line_up',
|
||||
'scroll_line_up opt+cmd+page_up scroll_line_up smooth',
|
||||
only='macos',
|
||||
)
|
||||
map('Scroll line up',
|
||||
'scroll_line_up cmd+up scroll_line_up',
|
||||
'scroll_line_up cmd+up scroll_line_up smooth',
|
||||
only='macos',
|
||||
)
|
||||
|
||||
map('Scroll line down',
|
||||
'scroll_line_down kitty_mod+down scroll_line_down',
|
||||
'scroll_line_down kitty_mod+down scroll_line_down smooth',
|
||||
)
|
||||
map('Scroll line down',
|
||||
'scroll_line_down --allow-fallback=shifted,ascii kitty_mod+j scroll_line_down',
|
||||
'scroll_line_down --allow-fallback=shifted,ascii kitty_mod+j scroll_line_down smooth',
|
||||
)
|
||||
map('Scroll line down',
|
||||
'scroll_line_down opt+cmd+page_down scroll_line_down',
|
||||
'scroll_line_down opt+cmd+page_down scroll_line_down smooth',
|
||||
only='macos',
|
||||
)
|
||||
map('Scroll line down',
|
||||
'scroll_line_down cmd+down scroll_line_down',
|
||||
'scroll_line_down cmd+down scroll_line_down smooth',
|
||||
only='macos',
|
||||
)
|
||||
|
||||
|
||||
16
kitty/options/types.py
generated
16
kitty/options/types.py
generated
@@ -870,13 +870,13 @@ defaults.map = [
|
||||
# pass_selection_to_program
|
||||
KeyDefinition(trigger=SingleKey(mods=256, key=111), options=KeyMapOptions(when_focus_on='', new_mode='', mode='', on_unknown='beep', on_action='keep', timeout=None, allow_fallback=(KeyFallbackType.shifted, KeyFallbackType.alternate)), definition='pass_selection_to_program'),
|
||||
# scroll_line_up
|
||||
KeyDefinition(trigger=SingleKey(mods=256, key=57352), definition='scroll_line_up'),
|
||||
KeyDefinition(trigger=SingleKey(mods=256, key=57352), definition='scroll_line_up smooth'),
|
||||
# scroll_line_up
|
||||
KeyDefinition(trigger=SingleKey(mods=256, key=107), options=KeyMapOptions(when_focus_on='', new_mode='', mode='', on_unknown='beep', on_action='keep', timeout=None, allow_fallback=(KeyFallbackType.shifted, KeyFallbackType.alternate)), definition='scroll_line_up'),
|
||||
KeyDefinition(trigger=SingleKey(mods=256, key=107), options=KeyMapOptions(when_focus_on='', new_mode='', mode='', on_unknown='beep', on_action='keep', timeout=None, allow_fallback=(KeyFallbackType.shifted, KeyFallbackType.alternate)), definition='scroll_line_up smooth'),
|
||||
# scroll_line_down
|
||||
KeyDefinition(trigger=SingleKey(mods=256, key=57353), definition='scroll_line_down'),
|
||||
KeyDefinition(trigger=SingleKey(mods=256, key=57353), definition='scroll_line_down smooth'),
|
||||
# scroll_line_down
|
||||
KeyDefinition(trigger=SingleKey(mods=256, key=106), options=KeyMapOptions(when_focus_on='', new_mode='', mode='', on_unknown='beep', on_action='keep', timeout=None, allow_fallback=(KeyFallbackType.shifted, KeyFallbackType.alternate)), definition='scroll_line_down'),
|
||||
KeyDefinition(trigger=SingleKey(mods=256, key=106), options=KeyMapOptions(when_focus_on='', new_mode='', mode='', on_unknown='beep', on_action='keep', timeout=None, allow_fallback=(KeyFallbackType.shifted, KeyFallbackType.alternate)), definition='scroll_line_down smooth'),
|
||||
# scroll_page_up
|
||||
KeyDefinition(trigger=SingleKey(mods=256, key=57354), definition='scroll_page_up'),
|
||||
# scroll_page_down
|
||||
@@ -1022,10 +1022,10 @@ defaults.map = [
|
||||
if is_macos:
|
||||
defaults.map.append(KeyDefinition(trigger=SingleKey(mods=8, key=99), options=KeyMapOptions(when_focus_on='', new_mode='', mode='', on_unknown='beep', on_action='keep', timeout=None, allow_fallback=(KeyFallbackType.shifted, KeyFallbackType.alternate)), definition='copy_or_noop'))
|
||||
defaults.map.append(KeyDefinition(trigger=SingleKey(mods=8, key=118), options=KeyMapOptions(when_focus_on='', new_mode='', mode='', on_unknown='beep', on_action='keep', timeout=None, allow_fallback=(KeyFallbackType.shifted, KeyFallbackType.alternate)), definition='paste_from_clipboard'))
|
||||
defaults.map.append(KeyDefinition(trigger=SingleKey(mods=10, key=57354), definition='scroll_line_up'))
|
||||
defaults.map.append(KeyDefinition(trigger=SingleKey(mods=8, key=57352), definition='scroll_line_up'))
|
||||
defaults.map.append(KeyDefinition(trigger=SingleKey(mods=10, key=57355), definition='scroll_line_down'))
|
||||
defaults.map.append(KeyDefinition(trigger=SingleKey(mods=8, key=57353), definition='scroll_line_down'))
|
||||
defaults.map.append(KeyDefinition(trigger=SingleKey(mods=10, key=57354), definition='scroll_line_up smooth'))
|
||||
defaults.map.append(KeyDefinition(trigger=SingleKey(mods=8, key=57352), definition='scroll_line_up smooth'))
|
||||
defaults.map.append(KeyDefinition(trigger=SingleKey(mods=10, key=57355), definition='scroll_line_down smooth'))
|
||||
defaults.map.append(KeyDefinition(trigger=SingleKey(mods=8, key=57353), definition='scroll_line_down smooth'))
|
||||
defaults.map.append(KeyDefinition(trigger=SingleKey(mods=8, key=57354), definition='scroll_page_up'))
|
||||
defaults.map.append(KeyDefinition(trigger=SingleKey(mods=8, key=57355), definition='scroll_page_down'))
|
||||
defaults.map.append(KeyDefinition(trigger=SingleKey(mods=8, key=57356), definition='scroll_home'))
|
||||
|
||||
@@ -88,6 +88,11 @@ def parse_send_text_bytes(text: str) -> bytes:
|
||||
return defines.expand_ansi_c_escapes(text).encode('utf-8')
|
||||
|
||||
|
||||
@func_with_args('scroll_line_up', 'scroll_line_down')
|
||||
def scroll_line_updown(func: str, rest: str) -> FuncArgsType:
|
||||
return func, [rest.strip().lower() == 'smooth']
|
||||
|
||||
|
||||
@func_with_args('scroll_prompt_to_top')
|
||||
def scroll_prompt_to_top(func: str, rest: str) -> FuncArgsType:
|
||||
return func, [to_bool(rest) if rest else False]
|
||||
|
||||
Reference in New Issue
Block a user