Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1ba7b5f5a3 | ||
|
|
f895b7f8cb | ||
|
|
16542e96bf | ||
|
|
3005b8b9d6 | ||
|
|
35653ef4b4 | ||
|
|
36b3582825 | ||
|
|
c17c801a31 |
@@ -3,6 +3,19 @@ Changelog
|
|||||||
|
|
||||||
|kitty| is a feature full, cross-platform, *fast*, GPU based terminal emulator.
|
|kitty| is a feature full, cross-platform, *fast*, GPU based terminal emulator.
|
||||||
|
|
||||||
|
0.13.1 [2018-12-06]
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
- Fix passing input via the pipe action to a program without a window not
|
||||||
|
working.
|
||||||
|
|
||||||
|
- Linux: Fix a regression in the previous release that caused automatic
|
||||||
|
selection of bold/italic fonts when using aliases such as "monospace" to not
|
||||||
|
work (:iss:`1209`)
|
||||||
|
|
||||||
|
- Fix resizing window smaller and then restoring causing some wrapped lines to not
|
||||||
|
be properly unwrapped (:iss:`1206`)
|
||||||
|
|
||||||
0.13.0 [2018-12-05]
|
0.13.0 [2018-12-05]
|
||||||
------------------------------
|
------------------------------
|
||||||
|
|
||||||
|
|||||||
@@ -818,7 +818,7 @@ class Boss:
|
|||||||
|
|
||||||
prev_tab = previous_tab
|
prev_tab = previous_tab
|
||||||
|
|
||||||
def special_window_for_cmd(self, cmd, window=None, stdin=None, cwd_from=None, as_overlay=False):
|
def process_stdin_source(self, window=None, stdin=None):
|
||||||
w = window or self.active_window
|
w = window or self.active_window
|
||||||
env = None
|
env = None
|
||||||
if stdin:
|
if stdin:
|
||||||
@@ -834,6 +834,11 @@ class Boss:
|
|||||||
'{scrolled_by}:{cursor_x},{cursor_y}:{lines},{columns}'.format(**pipe_data)
|
'{scrolled_by}:{cursor_x},{cursor_y}:{lines},{columns}'.format(**pipe_data)
|
||||||
}
|
}
|
||||||
stdin = stdin.encode('utf-8')
|
stdin = stdin.encode('utf-8')
|
||||||
|
return env, stdin
|
||||||
|
|
||||||
|
def special_window_for_cmd(self, cmd, window=None, stdin=None, cwd_from=None, as_overlay=False):
|
||||||
|
w = window or self.active_window
|
||||||
|
env, stdin = self.process_stdin_source(w, stdin)
|
||||||
cmdline = []
|
cmdline = []
|
||||||
for arg in cmd:
|
for arg in cmd:
|
||||||
if arg == '@selection':
|
if arg == '@selection':
|
||||||
@@ -865,7 +870,12 @@ class Boss:
|
|||||||
self._new_os_window(create_window(), cwd_from=cwd_from)
|
self._new_os_window(create_window(), cwd_from=cwd_from)
|
||||||
else:
|
else:
|
||||||
import subprocess
|
import subprocess
|
||||||
subprocess.Popen(cmd)
|
env, stdin = self.process_stdin_source(stdin=source, window=window)
|
||||||
|
if stdin:
|
||||||
|
p = subprocess.Popen(cmd, env=env, stdin=subprocess.PIPE)
|
||||||
|
p.communicate(stdin)
|
||||||
|
else:
|
||||||
|
subprocess.Popen(cmd)
|
||||||
|
|
||||||
def args_to_special_window(self, args, cwd_from=None):
|
def args_to_special_window(self, args, cwd_from=None):
|
||||||
args = list(args)
|
args = list(args)
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import sys
|
|||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
|
||||||
appname = 'kitty'
|
appname = 'kitty'
|
||||||
version = (0, 13, 0)
|
version = (0, 13, 1)
|
||||||
str_version = '.'.join(map(str, version))
|
str_version = '.'.join(map(str, version))
|
||||||
_plat = sys.platform.lower()
|
_plat = sys.platform.lower()
|
||||||
is_macos = 'darwin' in _plat
|
is_macos = 'darwin' in _plat
|
||||||
|
|||||||
@@ -72,8 +72,14 @@ def find_best_match(family, bold=False, italic=False, monospaced=True):
|
|||||||
if val:
|
if val:
|
||||||
candidates = font_map[map_key].get(family_name_to_key(val))
|
candidates = font_map[map_key].get(family_name_to_key(val))
|
||||||
if candidates:
|
if candidates:
|
||||||
candidates.sort(key=score)
|
if len(candidates) == 1:
|
||||||
return candidates[0]
|
# happens if the family name is an alias, so we search with
|
||||||
|
# the actual family name to see if we can find all the
|
||||||
|
# fonts in the family.
|
||||||
|
family_name_candidates = font_map['family_map'].get(family_name_to_key(candidates[0]['family']))
|
||||||
|
if family_name_candidates and len(family_name_candidates) > 1:
|
||||||
|
candidates = family_name_candidates
|
||||||
|
return sorted(candidates, key=score)[0]
|
||||||
|
|
||||||
# Use fc-match with a generic family
|
# Use fc-match with a generic family
|
||||||
family = 'monospace' if monospaced else 'sans-serif'
|
family = 'monospace' if monospaced else 'sans-serif'
|
||||||
|
|||||||
@@ -364,6 +364,7 @@ HANDLER(add_click) {
|
|||||||
static inline void
|
static inline void
|
||||||
open_url(Window *w) {
|
open_url(Window *w) {
|
||||||
Screen *screen = w->render_data.screen;
|
Screen *screen = w->render_data.screen;
|
||||||
|
detect_url(screen, w->mouse_pos.cell_x, w->mouse_pos.cell_y);
|
||||||
screen_open_url(screen);
|
screen_open_url(screen);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef init_dest_line
|
#ifndef init_dest_line
|
||||||
#define init_dest_line(dest_y) init_line(dest, dest->line, dest->line_map[dest_y]);
|
#define init_dest_line(dest_y) init_line(dest, dest->line, dest->line_map[dest_y]); dest->line->continued = dest->line_attrs[dest_y];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef first_dest_line
|
#ifndef first_dest_line
|
||||||
|
|||||||
Reference in New Issue
Block a user