feat(macos): add kitty
This commit is contained in:
parent
34b6439521
commit
866a25a66d
54
config/macos/kitty/choose_tab.py
Normal file
54
config/macos/kitty/choose_tab.py
Normal file
@ -0,0 +1,54 @@
|
||||
# ~/.config/kitty/choose_tab.py
|
||||
from kitty.boss import get_boss
|
||||
from kittens.tui.handler import Handler
|
||||
from kittens.tui.loop import Loop
|
||||
|
||||
|
||||
class TabPicker(Handler):
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
boss = get_boss()
|
||||
win = boss.active_window
|
||||
self.osw = win.os_window if win else None
|
||||
self.tabs = list(self.osw.tabs) if self.osw else []
|
||||
self.index = 0
|
||||
|
||||
def draw(self, screen):
|
||||
screen.clear()
|
||||
if not self.tabs:
|
||||
screen.write_line("No tabs. Esc to exit.")
|
||||
else:
|
||||
screen.write_line("Choose a tab (↑/↓ Enter Esc)")
|
||||
for i, t in enumerate(self.tabs):
|
||||
mark = "●" if t is self.osw.active_tab else " "
|
||||
sel = ">" if i == self.index else " "
|
||||
title = t.title or f"Tab {i+1}"
|
||||
screen.write_line(f"{sel} {mark} {title}")
|
||||
screen.refresh()
|
||||
|
||||
def on_key(self, event):
|
||||
if not self.tabs:
|
||||
if event.key in ("escape", "enter"):
|
||||
self.quit_loop()
|
||||
return
|
||||
k = event.key
|
||||
if k in ("up", "k"):
|
||||
self.index = (self.index - 1) % len(self.tabs)
|
||||
elif k in ("down", "j"):
|
||||
self.index = (self.index + 1) % len(self.tabs)
|
||||
elif k == "enter":
|
||||
self.osw.set_active_tab(self.tabs[self.index])
|
||||
self.quit_loop()
|
||||
elif k == "escape":
|
||||
self.quit_loop()
|
||||
self.refresh()
|
||||
|
||||
|
||||
def main(args):
|
||||
# Correct signature for older Kitty: pass the class name and a title string
|
||||
Loop(TabPicker, "choose_tab").run()
|
||||
|
||||
|
||||
def handle_result(args, answer, target_window_id, boss):
|
||||
pass
|
||||
|
||||
35
config/macos/kitty/invero.conf
Normal file
35
config/macos/kitty/invero.conf
Normal file
@ -0,0 +1,35 @@
|
||||
# vim:ft=kitty
|
||||
|
||||
background #eeeeee
|
||||
foreground #444444
|
||||
cursor #005fff
|
||||
cursor_text_color #eeeeee
|
||||
selection_background #dadada
|
||||
selection_foreground #444444
|
||||
url_color #005fff
|
||||
|
||||
# Tabs
|
||||
active_tab_background #005fff
|
||||
active_tab_foreground #eeeeee
|
||||
inactive_tab_background #dadada
|
||||
inactive_tab_foreground #9e9e9e
|
||||
|
||||
# normal
|
||||
color0 #444444
|
||||
color1 #ff0000
|
||||
color2 #00af5f
|
||||
color3 #d75f00
|
||||
color4 #005fff
|
||||
color5 #5f5f87
|
||||
color6 #afd7ff
|
||||
color7 #eeeeee
|
||||
|
||||
# bright
|
||||
color8 #444444
|
||||
color9 #ff0000
|
||||
color10 #00af5f
|
||||
color11 #d75f00
|
||||
color12 #005fff
|
||||
color13 #5f5f87
|
||||
color14 #afd7ff
|
||||
color15 #eeeeee
|
||||
BIN
config/macos/kitty/kitty.app.icns
Normal file
BIN
config/macos/kitty/kitty.app.icns
Normal file
Binary file not shown.
73
config/macos/kitty/kitty.conf
Normal file
73
config/macos/kitty/kitty.conf
Normal file
@ -0,0 +1,73 @@
|
||||
include invero.conf
|
||||
|
||||
# term xterm-256color
|
||||
enable_audio_bell no
|
||||
cursor_shape block
|
||||
wheel_scroll_multiplier 1.0
|
||||
touch_scroll_multiplier 1.0
|
||||
wheel_scroll_min_lines 1
|
||||
shell_integration no-cursor
|
||||
cursor_blink_interval 0
|
||||
|
||||
remember_window_position yes
|
||||
remember_window_size yes
|
||||
|
||||
# Font
|
||||
font_family Maple Mono
|
||||
font_size 13.0
|
||||
# disable_ligatures always
|
||||
|
||||
# undercurl_style thick-sparse
|
||||
|
||||
modify_font cell_width 94%
|
||||
modify_font cell_height -2px
|
||||
# modify_font baseline 2px
|
||||
|
||||
# modify_font underline_thickness 180%
|
||||
# modify_font underline_position 2px
|
||||
# modify_font strikethrough_positon 2px
|
||||
text_composition_strategy legacy
|
||||
# underline_exclusion 0
|
||||
|
||||
placement_strategy top
|
||||
window_margin_width 0 0
|
||||
window_padding_width 0 4
|
||||
|
||||
# modify_font cell_height -1
|
||||
# modify_font cell_width 90%
|
||||
|
||||
# Navigation / editing
|
||||
# Make Option act as Alt on macOS
|
||||
macos_option_as_alt yes
|
||||
|
||||
# Use explicit bytes (no ambiguity), not \x1bb etc.
|
||||
map opt+left send_text all \x1b\x62
|
||||
map opt+right send_text all \x1b\x66
|
||||
map cmd+left send_text all \x01
|
||||
map cmd+right send_text all \x05
|
||||
map opt+backspace send_text all \x1b\x7f
|
||||
map cmd+backspace send_text all \x15
|
||||
map opt+delete send_text all \x1b\x64
|
||||
map cmd+delete send_text all \x0b
|
||||
|
||||
# New window / tab
|
||||
map cmd+n new_os_window
|
||||
map cmd+t new_tab
|
||||
|
||||
map cmd+1 goto_tab 1
|
||||
map cmd+2 goto_tab 2
|
||||
map cmd+3 goto_tab 3
|
||||
map cmd+4 goto_tab 4
|
||||
map cmd+5 goto_tab 5
|
||||
map cmd+6 goto_tab 6
|
||||
map cmd+7 goto_tab 7
|
||||
map cmd+8 goto_tab 8
|
||||
map cmd+9 goto_tab 9
|
||||
|
||||
|
||||
# BEGIN_KITTY_FONTS
|
||||
# font_family family="JetBrains Mono"
|
||||
bold_font auto
|
||||
italic_font auto
|
||||
bold_italic_font auto
|
||||
# END_KITTY_FONTS
|
||||
@ -105,6 +105,13 @@
|
||||
"from": "macos/ghostty",
|
||||
"to": "~/.config/ghostty"
|
||||
}
|
||||
},
|
||||
{
|
||||
"package": "kitty",
|
||||
"link": {
|
||||
"from": "macos/kitty",
|
||||
"to": "~/.config/kitty"
|
||||
}
|
||||
}
|
||||
],
|
||||
"linux-vm": [
|
||||
|
||||
Loading…
Reference in New Issue
Block a user