Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Представляю программу AltYo , выпадающая консоль для GTK3  (Прочитано 73673 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Denis Konstantinov

  • Автор темы
  • Активист
  • *
  • Сообщений: 864
    • Просмотр профиля
Всем привет!
тем кто пользуется программой tilda/guake и у кого ubuntu 12.04 или новее предлагаю протестировать мой аналог под названием AltYo.

AltYo - выпадающий терминал (drop down terminal) в духе консоли quake.


Вместо того чтобы портировать tilda на gtk3 я написал свою версию.
В ней я постарался исправить все косяки которые меня раздражали в tilda многие годы.
Своей программой пользуюсь/разрабатываю с конца 2011го, решил поделиться наработками.

Основной сайт программы https://github.com/linvinus/AltYo
список последних изменений https://github.com/linvinus/AltYo/blob/master/debian/changelog
багрепорты постим тут https://github.com/linvinus/AltYo/issues
обсуждаем в этой ветке.

Основные особенности
Версия 0.2
  •     Независимая программа - не привязана ни к какому рабочему столу
  •     Это бинарная программа (никаких питонов и жаваскриптов)
  •     Висит поверх всех окон
  •     Доступна по горячей клавише
  •     Поддерживаете заголовки терминала
  •     Кнопки с заголовками не ограничены шириной экрана, если не умещаются, то переходят на следующую строчку (мой Gtk виджет HVBox)
  •     Очерёдность терминалов можно менять перетаскивая в нужную позицию мышью
  •     Анимация не ломает отображение терминала (в tilda при включенной анимации строки съезжают вверх)
  •     Внешний вид настраивается через стиль Gtk CSS
  •     Все горячие клавиши перенастраиваются.
  •     Есть поиск в терминале
  •     Сохранение сессий (запоминает запущенные команды, не работает в случае если команды были набраны в screen (я не знаю как найти потомка от screen))
  •     Поддержка многомониторных конфигураций.
  •     возможность автоматической сортировки закладок по имени хоста, возможность отключена по умолчанию
  •     возможность быстрого переключения на первые 20 вкладок любую вкладку :) (двойное нажатие alt+1 переключится на 11 вкладку, тройное нажатие alt+1 переключится на 21 вкладку, и т.д.)
Начиная с версии 0.3~rc2 (список не полный, улучшений масса)
  • Графический диалог настроек
  • Все настройки проверяются на корректность значений, если что то не так, программа об этом сообщит
  • переписана функция рисования закладок, что позволило делать их прозрачными (для фанатов прозрачности) и вообще менять оформление насколько хватит фантазии
  • Режим развернуть на весь экран (есть отдельная горячая клавиша)
  • Переключаемое состояние поверх всех окон
  • Возможность запускать консольные программы в altyo, параметр --exec
  • Возможность запускать команды при старте программы
  • Удалена зависимость libgee. Отныне для работы нужна только libvte >= 2.9 и Gtk >= 3.4 (для X11), и ничего более
  • Тем кто пользуется zsh советую поставить слегка попатченную библиотеку libvte, иначе при изменении размера окна строки в терминале будут плыть, подробнее https://bbs.archlinux.org/viewtopic.php?pid=1246865
  • Программа предупредит если вы попытаетесь закрыть вкладку, в которой запущена важная программа, например wget или ssh,даже если она запущена в фоне, список важных программ настраивается.
  • Множество новых опций и улучшений прежних функций, все описывать нет смысла, откройте настройки и всё поймёте.
    Но если очень интересно, полный лог тут https://github.com/linvinus/AltYo/blob/debian/0.3_rc2-linvinus1/debian/changelog ,версия 0.3 разрабатывалась с 21го февраля 2013

Начиная с версии 0.4~rc4 (основные изменения относительно 0.3~rc2)
  • Новый режим обычного терминала
     можно включить опцией --standalone
     или открыть новое окно комбинацией <Ctrl><Shift>N
  • Подсвечивает закладку когда завершается длительная операция (например компиляция ядра)
  • После закрытия последней вкладки теперь есть возможность свернуть терминал или закрыть программу
  • Новая возможность переключения между закладками - поиск в заголовках терминалов <Ctrl><Shift>D
  • Возможность изменять кодировку для отдельного терминала
  • Возможность указывать несколько опций --exec , каждая будет открыта в новой вкладке
  • Возможность настроить где открывать новую закладку, в конце списка или справа от активной
  • Размер и позиция на экране теперь индивидуальны для каждого монитора
  • Автоматическая настройка размера и позиции при переносе окна между мониторами
  • Возможность назначить "монитор по умолчанию", при подключении такого монитора программа автоматически переместится на него
  • Возможность защитить закладку от случайного закрытия - опция во всплывающем меню закладки
  • Возможность восстановить только что закрытую вкладку <Ctrl><Shift>R , или через всплывающее меню терминала (по умолчанию закрытие вкладки откладывается на 10 секунд)
  • Возможность установить произвольный заголовок для закладки
  • Возможность закрыть закладку средней кнопкой мыши, а двойной клик на пустом месте панели закладок откроет новую закладку

Скриншоты есть на главной странице https://github.com/linvinus/AltYo и в постах этой темы.

Видео презентации.

версия 0.3 http://youtu.be/IEabsuFresk

версия 0.2 http://youtu.be/9W8m6T7HyVs
версия 0.2 http://youtu.be/utxeh-SBTvI

Если машина слабая, то советую отключить анимацию, так функция показать/скрыть будет работать мгновенно.

Известные проблемы:
Программа падает когда окно скрыто и пользователь меняет настройки overlay-scrollbar.
Настройка расположена в dconf  com.canonical.desktop.interface.scrollbar-mode
Это не проблема приложения, создал баг репорт
https://bugs.launchpad.net/ubuntu/+source/overlay-scrollbar/+bug/1071167

Обходного решение: не меняйте эту настройку когда приложение скрыто.


Исходный код распространяется под лицензией GPL3, доступен тут https://github.com/linvinus/AltYo

скомпилированные deb пакеты доступны в моём ppa https://launchpad.net/~linvinus/+archive/altyo
О том как подключить написано тут https://help.ubuntu.ru/manual/ppa
или вкратцеsudo add-apt-repository ppa:linvinus/altyo
sudo apt-get update
sudo apt-get install altyo

Инструкция как собрать из исходного кода.
(Для сборки версии 0.3 (апрель 2013го) libgee-dev более не нужна, vala >= 0.16)

$ sudo apt-get install build-essential valac-0.16 valac-0.16-vapi libvte-2.90-dev libgee-dev libgtk-3-dev
$ mkdir -p ~/src/altyo
$ cd  ~/src/altyo
$ git clone https://github.com/linvinus/AltYo.git ./
$ make
$ ./altyo
Должно собраться :)

как собрать deb пакет:
$ sudo apt-get install build-essential valac-0.16 valac-0.16-vapi libvte-2.90-dev libgee-dev libgtk-3-dev git-buildpackage fakeroot
$ mkdir -p ~/src/altyo
$ cd  ~/src/altyo
$ git clone https://github.com/linvinus/AltYo.git ./
$ git-buildpackage --git-upstream-tree=branch --git-upstream-branch=master -rfakeroot -sa

команда make source-package соберёт пакет с исходниками который можно собрать при помощи pbuilder если он у вас настроен.

Буду признателен любым полезным замечаниям.
Программа сама создаёт конфиг со всеми необходимыми параметрами, если вдруг что то пошло не так (хотя вряд ли), нужно включить режим отладки, опция debug=true в настройках, запустить программу из другого терминала (например gnome-terminal) и вывод прислать сюда.
Чтобы откатить любую настройку просто удалите её в файле, программа после переконфигурации сама создаст дефолтную настройку.
В программе конфигурируется почти всё. так что, если вдруг что то не понятно, спрашивайте.
Да и последнее "графического" конфигуратора пока нет и возможно не будет, т.к. большого смысла в нём я не вижу, один раз настроил и забыл Вместо окошка откроется закладка с вашим любимым консольным редактором, а когда выйдете из редактора конфигурация программы обновится.

При включенной опции меню "Follow the mouse", AltYo  при появлении будет учитывать на каком мониторе курсор мыши.

Из скрытых особенностей, если один экземпляр уже запущен то при повторном запуске откроется окно первого экземпляра.
Это можно использовать если случайно какая то программа перебиндит main_hotkey
Также можно заставить перечитать конфигурацию вызовом altyo -r
И ещё одна особенность, перед открытием закладки с настройками, программа сохраняет настройки  в файл. Поэтому, если настройки были отредактированы во внешней программе например gedit'е то они потеряются, если не перечитать конфигурацию через altyo -r

Мне ещё интересно использовали ли вы до этого подобные программы (tilda,guake,yakuake) , если да, то что лучше/хуже, по вашему мнению, по сравнению с AltYo?
« Последнее редактирование: 19 Мая 2014, 16:23:11 от Denis Konstantinov »
AltYo консоль для Gtk3 в стиле консоли quake https://forum.ubuntu.ru/index.php?topic=198594.0

Оффлайн Сперанский

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 4055
  • Dictum ac factum
    • Просмотр профиля
Re: Представляю программу AltYo , аналог tilda. для GTK3
« Ответ #1 : 20 Августа 2012, 19:47:28 »
Не собирается, пишет
make: valac: Команда не найдена
make: *** [default] Ошибка 127
после доустановки пакета valac пишет
error: Package `gee-1.0' not found in specified Vala API directories or GObject-Introspection GIR directories
Loaded package `/usr/share/vala-0.14/vapi/gdk-x11-3.0.vapi'
Loaded package `/usr/share/vala-0.14/vapi/posix.vapi'
Loaded package `/usr/share/vala-0.14/vapi/gnome-keyring-1.vapi'
Compilation failed: 1 error(s), 0 warning(s)
make: *** [default] Ошибка 1

А настройки цвета из .Xdefaults берутся?

Оффлайн arrecck

  • Старожил
  • *
  • Сообщений: 1725
    • Просмотр профиля
Re: Представляю программу AltYo , аналог tilda. для GTK3
« Ответ #2 : 20 Августа 2012, 19:53:50 »
спасибо, на видео понравилось, без gnome-keyring можно собрать?

Оффлайн Señor_Gaga

  • Забанен
  • Активист
  • *
  • Сообщений: 878
  • Ubuntu 12.04LTS & Linux Mint 13LTS "Maya"
    • Просмотр профиля
Re: Представляю программу AltYo , аналог tilda. для GTK3
« Ответ #3 : 20 Августа 2012, 22:03:13 »
Я бы попробовал вместо tilda,
если бы установка была попроще.

Оффлайн Denis Konstantinov

  • Автор темы
  • Активист
  • *
  • Сообщений: 864
    • Просмотр профиля
Re: Представляю программу AltYo , аналог tilda. для GTK3
« Ответ #4 : 07 Сентября 2012, 12:16:37 »
у программы появились пользователи =)
сорри я тут теперь не часто бываю, поставил нотификацию но что то писем не видно было :(.
Если будут вопросы можно меня в личке дёргать.

gnome-keyring я прикрутил в качестве хранилища паролей.
по задумке по ctrl-shift-D доступны команды для быстрого подключения, например к свичам, роутерам, серверам.
Оно работает, но я упёрся в формат как хранить команды в ini файле
сейчас формат такой
[QConnections]
logic/Свичи/des3028-abc=10.0.0.9;denis;!;ssh,expect-password=password:;D-Link DES-3028 Switch;
параметр ! указывает на то что нужно искать пароль в gnome-keyring

к сожалению vala не поддерживает define поэтому классическими ifdef нельзя задать параметры сборки
но если функционал ненужен то его несложно выпилить, всё что с этим связано лежи в файле altyo_quick_connectios.vala
а чтобы отключить нужно закомментировать строчки

var qlist = new QList(this.conf);
        qlist.win_parent=this;
        this.tasks_notebook.insert_page(qlist,null,TASKS.QLIST);
        ...
qlist.setup_keyboard_accelerators();

прошу прощение за такое нагромождение, но мне бы хотелось доработать хранилище паролей, поэтому я его не убираю.
теперь это опционально и по умолчанию отключено.

что касается сборки.
сегодя дебианизирую и выложу файлы на своём ppa

Пользователь решил продолжить мысль 07 Сентября 2012, 15:47:53:
через 9 часов обещают собрать пакет :)
доступно тут https://launchpad.net/~linvinus/+archive/altyo
в github закинул дебианизацию.
инструкцию по сборке из первого поста поправил, теперь должно собираться

Я следую следующим принципам при написании программы:
1) В первую очередь это терминал который всегда под рукой
2) Минимальные зависимости, минимальный объём потребляемой памяти
3) Максимально удобно для пользователя , с одной стороны текстовый файл не самый юзерфрендли но с другой он позволяет например выполнять поиск среди настроек, если делать аналогичный функционал в гуи то скорее всего будет противоречие с первой целью
4) максимальная стабильность,защита от дурака, т.е. везде предусмотреть нестандартное поведение пользователя. лично у меня эта программа может быть запущена больше месяца, с 20-30 открытыми терминалами, и изменение настроек не должно приводить к падению.

сказать что эти цели достигнуты на 100% я не могу, я больше работаю чем тестирую поэтому и прошу вас помочь протестировать.

Пользователь решил продолжить мысль 08 Сентября 2012, 08:53:13:
пакеты для i386 и amd64 доступны в моём ppa
после установки ищем в меню Приложения-Стандартные-AltYo
« Последнее редактирование: 11 Сентября 2012, 12:15:21 от Denis Konstantinov »
AltYo консоль для Gtk3 в стиле консоли quake https://forum.ubuntu.ru/index.php?topic=198594.0

Оффлайн Denis Konstantinov

  • Автор темы
  • Активист
  • *
  • Сообщений: 864
    • Просмотр профиля
Re: Представляю программу AltYo , аналог tilda. для GTK3
« Ответ #5 : 09 Сентября 2012, 18:53:13 »
Продолжаю свой монолог.
Добавил видео с демонстрацией возможных настроек внешнего вида
http://youtu.be/utxeh-SBTvI
AltYo консоль для Gtk3 в стиле консоли quake https://forum.ubuntu.ru/index.php?topic=198594.0

Оффлайн VitalD

  • Активист
  • *
  • Сообщений: 509
    • Просмотр профиля
Re: Представляю программу AltYo , аналог tilda. для GTK3
« Ответ #6 : 09 Сентября 2012, 19:18:59 »
Поставил из репозитория.  :)
Запустилась без проблем  :)

Сразу возникли вопросы:
1.Русификация планируется?
2.Настройки в виде окошка были бы удобнее, не так ли?


Вот что выдает при запуске:

$ altyo

** (altyo:18972): WARNING **: altyo_config.vala:99: Файл ключей не содержит ключ «debug»

(altyo:18972): Gdk-WARNING **: /build/buildd/gtk+3.0-3.4.2/./gdk/x11/gdkwindow-x11.c:4944 drawable is not a native X11 window

(altyo:18972): Gdk-WARNING **: /build/buildd/gtk+3.0-3.4.2/./gdk/x11/gdkwindow-x11.c:4944 drawable is not a native X11 window

(altyo:18972): Gdk-WARNING **: /build/buildd/gtk+3.0-3.4.2/./gdk/x11/gdkwindow-x11.c:4944 drawable is not a native X11 window
Надеюсь тут все в порядке, ибо она запустилась  :D
« Последнее редактирование: 09 Сентября 2012, 19:20:33 от VitalD »

Оффлайн Denis Konstantinov

  • Автор темы
  • Активист
  • *
  • Сообщений: 864
    • Просмотр профиля
Re: Представляю программу AltYo , аналог tilda. для GTK3
« Ответ #7 : 09 Сентября 2012, 19:35:06 »
1. с руссификацией есть проблемы, вала не поддерживает gettext но можн обрабатывать в Makefile, в общем когда нибудь доберусь

реализовано

2. я выше писал, есть плюсы и минусы.

3.
** (altyo:18972): WARNING **: altyo_config.vala:99: Файл ключей не содержит ключ «debug» - это нормально, при первом запуске, он конфиг формирует пока загружается.

drawable is not a native X11 window - вот это непонятно откуда.
Можете запустить программу из другого терминала и включить параметр debug=true в настройках altyo ?
по логам можно будет понять в какой момент выскакивает это предупреждение.
У вас какая версия ubuntu?

сейчас собирается новая версия с сегодняшними изменениями.
через 20-30 минут должна быть доступна в ppa.
« Последнее редактирование: 12 Сентября 2012, 11:17:19 от Denis Konstantinov »
AltYo консоль для Gtk3 в стиле консоли quake https://forum.ubuntu.ru/index.php?topic=198594.0

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: Представляю программу AltYo , аналог tilda. для GTK3
« Ответ #8 : 09 Сентября 2012, 20:02:46 »

Цитировать
drawable is not a native X11 window
какая менеджер окон?
пример
metacity, xfwm4, compiz, e16 и др..
Wars ~.o

Оффлайн VitalD

  • Активист
  • *
  • Сообщений: 509
    • Просмотр профиля
Re: Представляю программу AltYo , аналог tilda. для GTK3
« Ответ #9 : 09 Сентября 2012, 20:24:48 »
Ubuntu 12.04 Unity, Compiz.

Вот выхлоп с включенным дебагом:
(Нажмите, чтобы показать/скрыть)

Оффлайн Denis Konstantinov

  • Автор темы
  • Активист
  • *
  • Сообщений: 864
    • Просмотр профиля
Re: Представляю программу AltYo , аналог tilda. для GTK3
« Ответ #10 : 09 Сентября 2012, 20:44:28 »
Понял, спасибо, никаких аномалий нет? всё работает как надо?
И ещё, какая разрядность операционной системы?
Новая версия доступна в ppa.
AltYo консоль для Gtk3 в стиле консоли quake https://forum.ubuntu.ru/index.php?topic=198594.0

Оффлайн VitalD

  • Активист
  • *
  • Сообщений: 509
    • Просмотр профиля
Re: Представляю программу AltYo , аналог tilda. для GTK3
« Ответ #11 : 09 Сентября 2012, 20:49:04 »
x64  :P

Пользователь решил продолжить мысль 09 Сентября 2012, 20:49:27:
Все работает нормально, аномалий нет  :)

Пользователь решил продолжить мысль 09 Сентября 2012, 20:51:09:
Кстати, кто такой белый кролик:D
« Последнее редактирование: 09 Сентября 2012, 20:51:09 от VitalD »

Оффлайн Denis Konstantinov

  • Автор темы
  • Активист
  • *
  • Сообщений: 864
    • Просмотр профиля
Re: Представляю программу AltYo , аналог tilda. для GTK3
« Ответ #12 : 09 Сентября 2012, 21:35:24 »
у меня тоже x64, пакет тоже из ppa но таких предупреждений нет :( загадочно.

кролик из матрицы.
Эта настройка актуальна только для многомониторных конфигураций.
« Последнее редактирование: 09 Сентября 2012, 21:37:20 от Denis Konstantinov »
AltYo консоль для Gtk3 в стиле консоли quake https://forum.ubuntu.ru/index.php?topic=198594.0

Оффлайн VitalD

  • Активист
  • *
  • Сообщений: 509
    • Просмотр профиля
Re: Представляю программу AltYo , аналог tilda. для GTK3
« Ответ #13 : 09 Сентября 2012, 21:50:39 »
Из первой части то? Он там всего один раз упоминается, или я чего-то не помню?  :-\

Оффлайн Denis Konstantinov

  • Автор темы
  • Активист
  • *
  • Сообщений: 864
    • Просмотр профиля
Re: Представляю программу AltYo , аналог tilda. для GTK3
« Ответ #14 : 09 Сентября 2012, 23:05:11 »
ну можно сказать один раз, смысл в том что АЁ будет при появлении учитывать на каком мониторе курсор мыши.
Эта же настройка, только временно, включается через меню "Follow the mouse"
кстати какой редектор по-умолчанию у вас?

Из скрытых особенностей, если один экземпляр уже запущен то при повторном запуске откроется окно первого экземпляра.
Это можно использовать если случайно какая то программа перебиндит main_hotkey
Также можно заставить перечитать конфигурацию вызовом altyo -r
И ещё одна особенность, перед открытием закладки с настройками, программа сохраняет настройки  в файл. Поэтому, если настройки были отредактированы во внешней программе например gedit'е то они потеряются, если не перечитать конфигурацию через altyo -r

Мне ещё интересно использовали ли вы до этого подобные программы (tilda,guake,yakuake) , если да, то что лучше/хуже, по вашему мнению, по сравнению с AltYo?
AltYo консоль для Gtk3 в стиле консоли quake https://forum.ubuntu.ru/index.php?topic=198594.0

 

Страница сгенерирована за 0.051 секунд. Запросов: 23.