JingTerm: «静»终端
JingTerm — это тихий и удобный Linux-терминал, которым можно управлять только с клавиатуры. Весь код умещается в 1000 строк!
Для личного использования был разработан терминал на Python+Gtk, частично основанный на логике версии deepin vala.
Скриншот:
Приглашаем исследовать и совершенствовать JingTerm!
Сейчас объём кода меньше 1000 строк, в основном он находится в term.py (ядро терминала), term_notebook.py (поддержка нескольких вкладок). Я постарался добавить комментарии к коду, буду рад, если вы поможете улучшить его!
tony@tonybook:/data/work/gitee/JingTerm$ wc -l *.py
69 context_menu.py
72 keymap.py
86 main.py
31 tab.py
231 term_notebook.py
381 term.py
870 总用量
Запуск
Тестирование прошло успешно на Deepin 20.1.
sudo apt install git gir1.2-vte-2.91
git clone https://gitee.com/outersky/JingTerm.git
— Запустите main.py
или измените jingterm.desktop
, чтобы указать путь, а затем дважды щёлкните мышью по 静终端
(в английской системе нажмите JingTerm
), чтобы запустить. Для удобства использования рекомендуется оставить его в панели задач.
Использование
Окно
{ JingTerm }
и перетащите его.Alt + F
.Ctrl + Alt + Up/Down
или Ctrl+мышь прокрутите колесо
.Shift + Page_Up/Page_Down
.Alt + Up/Down/Left/Right
.Если в выводе есть ссылки, вы можете использовать Ctrl+щелчок мыши
, чтобы открыть их.
Вкладки
Ctrl + T
.Ctrl + W
.Ctrl + Page_Down
.Ctrl + Page_Up
.Ctrl + Alt + Page_Up
.Ctrl + Alt + Page_Down
.F2
или правой кнопкой мыши->Rename.tony@tonybook:/data/work/gitee/JingTerm
будет сокращено до: ~ok:d~w~g~JingTerm
.Меню правой кнопки мыши в терминале
Ctrl + Alt + \
или щелкните правой кнопкой мыши.Ctrl + Alt + /
.Шаблонное меню настраивается
Файлы шаблонов можно определить в файле ~/.config/jingterm/templates.py
, например:
def menu():
global template_menu
template_menu = [
('python','enterln:python','title:Python'),
('work',[
('/www','enterln:cd /var/www','title:WWW'),
('/prj1','enterln:cd /data/work/python/prj1','title:Prj1'),
])
# 以!开头的名字表示批量模式,后面[]内所有的命令会分不同的tab打开执行
('!work-all',[
('/www','enterln:cd /var/www','title:WWW'),
('/prj1','enterln:cd /data/work/python/prj1','title:Prj1'),
]),
]
menu()
Каждый элемент представляет собой кортеж, первый элемент которого является именем пункта меню, а остальные элементы — командами. Для некоторых простых сценариев можно не писать expect
.
enterln:python
.title:Python
.sleep:2.5
.Второй элемент кортежа — это массив, который определяет подменю.
Если первый элемент кортежа начинается с восклицательного знака (!
), то каждая строка в массиве будет открыта в отдельной вкладке и выполнена. Например, последняя запись в приведенном выше примере конфигурации !work-all
создаст две новые вкладки одновременно. Если вы хотите изменить расположение файла конфигурации меню шаблона, посмотрите на функцию load_menu в файле context_menu.py:
```python
def load_menu(self):
# Если есть локальный файл конфигурации, то загрузите его в первую очередь
cfg_file = '{}/.config/jingterm/templates.py'.format(os.getenv('HOME'))
...
```
Шрифты, цвета и т. д. можно настроить в файле app.css, но шрифты для терминала теперь нужно определять в методе init файла term.py:
# Устанавливаем шрифт, похоже, что CSS для GTK не работает, можно установить только в коде
font_desc = Pango.FontDescription("Noto Sans Mono 12")
self.set_font(font_desc)
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )