1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/outersky-JingTerm

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

JingTerm: «静»终端

JingTerm — это тихий и удобный Linux-терминал, которым можно управлять только с клавиатуры. Весь код умещается в 1000 строк!

Для личного использования был разработан терминал на Python+Gtk, частично основанный на логике версии deepin vala.

Скриншот:

screenshot1

Приглашаем исследовать и совершенствовать 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.

  1. Сначала установите зависимости:
sudo apt install git gir1.2-vte-2.91
  1. Клонируйте код:
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: ввести текст и нажать Enter, например: enterln:python.
  • title: изменить название вкладки, например: title:Python.
  • sleep: приостановить выполнение на n секунд, обычно используется для медленных SSH-соединений, например: 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'))
        ...
```
  1. Шрифты, цвета и т. д. можно настроить в файле app.css, но шрифты для терминала теперь нужно определять в методе init файла term.py:

        # Устанавливаем шрифт, похоже, что CSS для GTK не работает, можно установить только в коде
        font_desc = Pango.FontDescription("Noto Sans Mono 12")
        self.set_font(font_desc)

TODO

  • Как можно реализовать создание новой вкладки при двойном щелчке по пустой области панели тегов, а также перемещение окна при перетаскивании пустого пространства?
  • В настоящее время у команды шаблона есть только простая функция sleep, необходимо добавить проверку содержимого, аналогичную команде expect.
  • Добавить поддержку различных тем, включая темы окон и цветовые темы в терминале.

История выпусков

V1.0 (2021-01-03)

  • Основные функции уже реализованы, удовлетворяют основные потребности повседневной работы.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
MIT
Отмена

Обновления (3)

все
1.1

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/outersky-JingTerm.git
git@api.gitlife.ru:oschina-mirror/outersky-JingTerm.git
oschina-mirror
outersky-JingTerm
outersky-JingTerm
master