remove trash files
This commit is contained in:
parent
3684ee2853
commit
86add217e2
|
@ -1,66 +0,0 @@
|
||||||
# vim:fileencoding=utf-8:foldmethod=marker
|
|
||||||
#: Tab bar {{{
|
|
||||||
tab_activity_symbol none
|
|
||||||
bell_on_tab no
|
|
||||||
tab_separator ""
|
|
||||||
tab_bar_edge bottom
|
|
||||||
tab_bar_margin_width 0.0
|
|
||||||
tab_bar_margin_height 0.0 0.0
|
|
||||||
tab_bar_style custom
|
|
||||||
tab_bar_align left
|
|
||||||
tab_bar_min_tabs 1
|
|
||||||
tab_switch_strategy previous
|
|
||||||
tab_title_template "{f'{title[:30]}…' if title.rindex(title[-1]) + 1 > 30 else (title.center(6) if (title.rindex(title[-1]) + 1) % 2 == 0 else title.center(5))}"
|
|
||||||
active_tab_font_style bold
|
|
||||||
inactive_tab_font_style bold
|
|
||||||
#: }}}
|
|
||||||
|
|
||||||
#: Color scheme {{{
|
|
||||||
background_opacity 1
|
|
||||||
# Tabs
|
|
||||||
active_tab_background #7aa2f7
|
|
||||||
active_tab_foreground #1f2335
|
|
||||||
inactive_tab_background #292e42
|
|
||||||
inactive_tab_foreground #545c7e
|
|
||||||
#tab_bar_background #15161E
|
|
||||||
#: }}}
|
|
||||||
|
|
||||||
#: Advanced {{{
|
|
||||||
confirm_os_window_close -2
|
|
||||||
#: }}}
|
|
||||||
|
|
||||||
#: Keyboard shortcuts {{{
|
|
||||||
# Tab management
|
|
||||||
map kitty_mod+( goto_tab 1
|
|
||||||
map kitty_mod+) goto_tab 2
|
|
||||||
map kitty_mod+} goto_tab 3
|
|
||||||
map kitty_mod++ goto_tab 4
|
|
||||||
map kitty_mod+{ goto_tab 5
|
|
||||||
map kitty_mod+] goto_tab 6
|
|
||||||
map kitty_mod+[ goto_tab 7
|
|
||||||
map kitty_mod+! goto_tab 8
|
|
||||||
map kitty_mod+= goto_tab 9
|
|
||||||
map kitty_mod+1 goto_tab 1
|
|
||||||
map kitty_mod+2 goto_tab 2
|
|
||||||
map kitty_mod+3 goto_tab 3
|
|
||||||
map kitty_mod+4 goto_tab 4
|
|
||||||
map kitty_mod+5 goto_tab 5
|
|
||||||
map kitty_mod+6 goto_tab 6
|
|
||||||
map kitty_mod+7 goto_tab 7
|
|
||||||
map kitty_mod+8 goto_tab 8
|
|
||||||
map kitty_mod+9 goto_tab 9
|
|
||||||
map kitty_mod+t new_tab
|
|
||||||
map kitty_mod+alt+t set_tab_title
|
|
||||||
|
|
||||||
# Window Management
|
|
||||||
enabled_layouts Tall
|
|
||||||
map kitty_mod+enter new_window_with_cwd
|
|
||||||
map kitty_mod+q close_window
|
|
||||||
map kitty_mod+j next_window
|
|
||||||
map kitty_mod+k previous_window
|
|
||||||
map kitty_mod+h resize_window wider
|
|
||||||
map kitty_mod+l resize_window narrower
|
|
||||||
map kitty_mod+alt+j move_window_forward
|
|
||||||
map kitty_mod+alt+k move_window_backward
|
|
||||||
map kitty_mod+space move_window_to_top
|
|
||||||
#: }}}
|
|
|
@ -1,213 +0,0 @@
|
||||||
# pyright: reportMissingImports=false
|
|
||||||
from pprint import pprint
|
|
||||||
from datetime import datetime
|
|
||||||
from kitty.window import CwdRequest
|
|
||||||
from kitty.boss import get_boss
|
|
||||||
from kitty.fast_data_types import Screen, add_timer, get_options
|
|
||||||
from kitty.utils import color_as_int
|
|
||||||
from kitty.tab_bar import (
|
|
||||||
DrawData,
|
|
||||||
ExtraData,
|
|
||||||
Formatter,
|
|
||||||
TabBarData,
|
|
||||||
as_rgb,
|
|
||||||
draw_attributed_string,
|
|
||||||
draw_title,
|
|
||||||
)
|
|
||||||
|
|
||||||
opts = get_options()
|
|
||||||
icon_fg = as_rgb(color_as_int(opts.color16))
|
|
||||||
icon_bg = as_rgb(color_as_int(opts.color8))
|
|
||||||
bat_text_color = as_rgb(color_as_int(opts.color15))
|
|
||||||
clock_color = as_rgb(color_as_int(opts.color15))
|
|
||||||
date_color = as_rgb(color_as_int(opts.color8))
|
|
||||||
SEPARATOR_SYMBOL, SOFT_SEPARATOR_SYMBOL = ("", "")
|
|
||||||
RIGHT_MARGIN = 0
|
|
||||||
REFRESH_TIME = 1
|
|
||||||
ICON = " "
|
|
||||||
UNPLUGGED_ICONS = {
|
|
||||||
10: "",
|
|
||||||
20: "",
|
|
||||||
30: "",
|
|
||||||
40: "",
|
|
||||||
50: "",
|
|
||||||
60: "",
|
|
||||||
70: "",
|
|
||||||
80: "",
|
|
||||||
90: "",
|
|
||||||
100: "",
|
|
||||||
}
|
|
||||||
PLUGGED_ICONS = {
|
|
||||||
1: "",
|
|
||||||
}
|
|
||||||
UNPLUGGED_COLORS = {
|
|
||||||
15: as_rgb(color_as_int(opts.color1)),
|
|
||||||
16: as_rgb(color_as_int(opts.color15)),
|
|
||||||
}
|
|
||||||
PLUGGED_COLORS = {
|
|
||||||
15: as_rgb(color_as_int(opts.color1)),
|
|
||||||
16: as_rgb(color_as_int(opts.color6)),
|
|
||||||
99: as_rgb(color_as_int(opts.color6)),
|
|
||||||
100: as_rgb(color_as_int(opts.color2)),
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
def _draw_icon(screen: Screen, index: int) -> int:
|
|
||||||
if index != 1:
|
|
||||||
return 0
|
|
||||||
fg, bg = screen.cursor.fg, screen.cursor.bg
|
|
||||||
screen.cursor.fg = icon_fg
|
|
||||||
screen.cursor.bg = icon_bg
|
|
||||||
screen.draw(ICON)
|
|
||||||
screen.cursor.fg, screen.cursor.bg = fg, bg
|
|
||||||
screen.cursor.x = len(ICON)
|
|
||||||
return screen.cursor.x
|
|
||||||
|
|
||||||
|
|
||||||
def _draw_left_status(
|
|
||||||
draw_data: DrawData,
|
|
||||||
screen: Screen,
|
|
||||||
tab: TabBarData,
|
|
||||||
before: int,
|
|
||||||
max_title_length: int,
|
|
||||||
index: int,
|
|
||||||
is_last: bool,
|
|
||||||
extra_data: ExtraData,
|
|
||||||
) -> int:
|
|
||||||
if screen.cursor.x >= screen.columns - right_status_length:
|
|
||||||
return screen.cursor.x
|
|
||||||
tab_bg = screen.cursor.bg
|
|
||||||
tab_fg = screen.cursor.fg
|
|
||||||
default_bg = as_rgb(int(draw_data.default_bg))
|
|
||||||
if extra_data.next_tab:
|
|
||||||
next_tab_bg = as_rgb(draw_data.tab_bg(extra_data.next_tab))
|
|
||||||
needs_soft_separator = next_tab_bg == tab_bg
|
|
||||||
else:
|
|
||||||
next_tab_bg = default_bg
|
|
||||||
needs_soft_separator = False
|
|
||||||
if screen.cursor.x <= len(ICON):
|
|
||||||
screen.cursor.x = len(ICON)
|
|
||||||
screen.draw(" ")
|
|
||||||
screen.cursor.bg = tab_bg
|
|
||||||
# if tab.title.rindex(tab.title[-1]) + 1 > 15:
|
|
||||||
# title = f'{os.path.splitext(tab.title)[0][:14-len(os.path.splitext(tab.title))]}…{os.path.splitext(tab.title)[1]}'
|
|
||||||
# tab = TabBarData(title, tab.is_active, tab.needs_attention, tab.num_windows, tab.num_window_groups, tab.layout_name, tab.has_activity_since_last_focus, tab.active_fg, tab.active_bg, tab.inactive_fg, tab.inactive_bg)
|
|
||||||
draw_title(draw_data, screen, tab, index)
|
|
||||||
if not needs_soft_separator:
|
|
||||||
screen.draw(" ")
|
|
||||||
screen.cursor.fg = tab_bg
|
|
||||||
screen.cursor.bg = next_tab_bg
|
|
||||||
screen.draw(SEPARATOR_SYMBOL)
|
|
||||||
else:
|
|
||||||
prev_fg = screen.cursor.fg
|
|
||||||
if tab_bg == tab_fg:
|
|
||||||
screen.cursor.fg = default_bg
|
|
||||||
elif tab_bg != default_bg:
|
|
||||||
c1 = draw_data.inactive_bg.contrast(draw_data.default_bg)
|
|
||||||
c2 = draw_data.inactive_bg.contrast(draw_data.inactive_fg)
|
|
||||||
if c1 < c2:
|
|
||||||
screen.cursor.fg = default_bg
|
|
||||||
screen.draw(" " + SOFT_SEPARATOR_SYMBOL)
|
|
||||||
screen.cursor.fg = prev_fg
|
|
||||||
return screen.cursor.x
|
|
||||||
|
|
||||||
|
|
||||||
def _draw_right_status(screen: Screen, is_last: bool, cells: list) -> int:
|
|
||||||
if not is_last:
|
|
||||||
return 0
|
|
||||||
draw_attributed_string(Formatter.reset, screen)
|
|
||||||
screen.cursor.x = screen.columns - right_status_length
|
|
||||||
screen.cursor.fg = 0
|
|
||||||
for color, status in cells:
|
|
||||||
screen.cursor.fg = color
|
|
||||||
screen.draw(status)
|
|
||||||
screen.cursor.bg = 0
|
|
||||||
return screen.cursor.x
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def get_battery_cells() -> list:
|
|
||||||
try:
|
|
||||||
with open("/sys/class/power_supply/BAT0/status", "r") as f:
|
|
||||||
status = f.read()
|
|
||||||
with open("/sys/class/power_supply/BAT0/capacity", "r") as f:
|
|
||||||
percent = int(f.read())
|
|
||||||
if status == "Discharging\n":
|
|
||||||
# TODO: declare the lambda once and don't repeat the code
|
|
||||||
icon_color = UNPLUGGED_COLORS[
|
|
||||||
min(UNPLUGGED_COLORS.keys(), key=lambda x: abs(x - percent))
|
|
||||||
]
|
|
||||||
icon = UNPLUGGED_ICONS[
|
|
||||||
min(UNPLUGGED_ICONS.keys(), key=lambda x: abs(x - percent))
|
|
||||||
]
|
|
||||||
elif status == "Not charging\n":
|
|
||||||
icon_color = UNPLUGGED_COLORS[
|
|
||||||
min(UNPLUGGED_COLORS.keys(), key=lambda x: abs(x - percent))
|
|
||||||
]
|
|
||||||
icon = PLUGGED_ICONS[
|
|
||||||
min(PLUGGED_ICONS.keys(), key=lambda x: abs(x - percent))
|
|
||||||
]
|
|
||||||
else:
|
|
||||||
icon_color = PLUGGED_COLORS[
|
|
||||||
min(PLUGGED_COLORS.keys(), key=lambda x: abs(x - percent))
|
|
||||||
]
|
|
||||||
icon = PLUGGED_ICONS[
|
|
||||||
min(PLUGGED_ICONS.keys(), key=lambda x: abs(x - percent))
|
|
||||||
]
|
|
||||||
percent_cell = (bat_text_color, str(percent) + "% ")
|
|
||||||
icon_cell = (icon_color, icon)
|
|
||||||
return [percent_cell, icon_cell]
|
|
||||||
except FileNotFoundError:
|
|
||||||
return []
|
|
||||||
|
|
||||||
def _redraw_tab_bar(_):
|
|
||||||
tm = get_boss().active_tab_manager
|
|
||||||
if tm is not None:
|
|
||||||
tm.mark_tab_bar_dirty()
|
|
||||||
|
|
||||||
timer_id = None
|
|
||||||
right_status_length = -1
|
|
||||||
|
|
||||||
def draw_tab(
|
|
||||||
draw_data: DrawData,
|
|
||||||
screen: Screen,
|
|
||||||
tab: TabBarData,
|
|
||||||
before: int,
|
|
||||||
max_title_length: int,
|
|
||||||
index: int,
|
|
||||||
is_last: bool,
|
|
||||||
extra_data: ExtraData,
|
|
||||||
) -> int:
|
|
||||||
global timer_id
|
|
||||||
global right_status_length
|
|
||||||
if timer_id is None:
|
|
||||||
timer_id = add_timer(_redraw_tab_bar, REFRESH_TIME, True)
|
|
||||||
clock = datetime.now().strftime(" %H:%M")
|
|
||||||
date = datetime.now().strftime(" %d.%m.%Y")
|
|
||||||
# pprint(CwdRequest(get_boss().active_window_for_cwd))
|
|
||||||
pprint(get_boss().active_window_for_cwd)
|
|
||||||
cells = get_battery_cells()
|
|
||||||
cells.append((clock_color, clock))
|
|
||||||
cells.append((date_color, date))
|
|
||||||
right_status_length = RIGHT_MARGIN
|
|
||||||
for cell in cells:
|
|
||||||
right_status_length += len(str(cell[1]))
|
|
||||||
|
|
||||||
_draw_icon(screen, index)
|
|
||||||
_draw_left_status(
|
|
||||||
draw_data,
|
|
||||||
screen,
|
|
||||||
tab,
|
|
||||||
before,
|
|
||||||
max_title_length,
|
|
||||||
index,
|
|
||||||
is_last,
|
|
||||||
extra_data,
|
|
||||||
)
|
|
||||||
_draw_right_status(
|
|
||||||
screen,
|
|
||||||
is_last,
|
|
||||||
cells,
|
|
||||||
)
|
|
||||||
return screen.cursor.x
|
|
Loading…
Reference in New Issue