Вопрос или проблема
Есть ли эквивалент iTerm2 (терминальное приложение для Mac OS) для Ubuntu?
Среди множества функций, которые он добавляет, меня интересует “окно с горячими клавишами”, в котором можно наложить/скрыть полупрозрачное окно терминала одним нажатием кнопки на клавиатуре.
Обновление на 3/2021
Хотя я в целом предпочитаю GTK-приложения в терминальных эмуляторах, reigning champion Qt постепенно уступает свои позиции не им, а проектам, полностью игнорирующим традиционные графические библиотеки!
Мои текущие фавориты для замены iTerm2 на Linux, в произвольном порядке:
Wezterm
Поддерживает аппаратное ускорение, встроенный мультиплексор (вкладки и разделения), поддержку лигатур, встроенный imgcat, фоновое изображение, прозрачность, интеграцию с оболочкой, почти все, что можно пожелать. Единственное, чего мне не хватает — это профили, но всегда можно иметь несколько конфигурационных файлов (автор сделал интересный выбор, используя Lua вместо ini/toml/yaml/json для конфигурационного файла). Единственное другое, что я хочу, так это выпадающий терминал с горячей клавишей, но это не конец света. Если вы хотите все настраивать, это терминальный эмулятор для вас. Это более новый проект, но он может стать убийцей iTerm2. Загляните в проект и поддержите его.
Tilix Похоже, теперь не поддерживается
Фантастический и отлаженный терминальный эмулятор, был моим ежедневным водителем на протяжении некоторого времени. Не дотягивает до iTerm2 по набору функций, но является очень надежным выбором для повседневного использования. Просто работает. Мне не очень нравится выбор конфигурировать через dconf вместо того, чтобы просто иметь текстовый файл в $HOME/.config, но это не конец света.
Konsole
Стандартный терминал KDE – это надежный выбор, и кроме богатого набора функций, это единственный терминал, который я знаю, который изначально поддерживает эффект размытия, похожий на MacOS (так называемое гауссово размытие).
Qterminal
Не так отлажен, как некоторые другие, но имеет очень полный набор функций, смотрите мой старый обзор ниже для получения дополнительных деталей.
Обновление на 8/2020
Некоторые другие достойные конкуренты, о которых не упоминалось в оригинальном ответе, это Tilix и Terminator (проверьте их!), а мой первый выбор все еще в основном
Qterminal. Терминалы для Linux в целом, похоже, становятся ближе к iTerm2.
Актуально на 9/2018
Вот краткий список функций iterm2 (v3):
- Поддержка истинного цвета (16 миллионов цветов)
- Разделенные панели
- Прозрачность
- Отображение изображений (т.е. imgcat)
- Отображение встроенных изображений, например, кружка пива для homebrew
- Полная поддержка/интеграция различных оболочек (например, zsh, fish)
- Поддержка горячих клавиш (например, выпадающий терминал)
Я даже близко не перечислил все функции, хотя это те, которыми я пользуюсь/которые мне важны больше всего.
Я не могу найти ни одного терминала для Linux, который полностью соответствует этому набору функций (тем более все те, о которых я не упоминал), но есть терминалы для Linux, которые подходят довольно близко и могут делать вещи, которые iTerm2 не может делать (например, устанавливать фоновые изображения для каждого окна/панели). Так что вот несколько терминалов, которые, вероятно, ближе всего к iTerm2 по паритету функций:
Qterminal
Это сокращение от qt terminal. Он имеет полную поддержку истинного цвета, выпадающее окно с горячими клавишами, прозрачность, фоновое изображение, панели, вкладки, интеграцию с оболочкой. Установите через apt. Недостатки: нет встроенного способа предварительного просмотра изображений, работа с фоновыми изображениями может быть капризной.
Konsole
Стандартный терминал KDE (например, для kubuntu) имеет истинный цвет, вкладки, фоновое изображение, прозрачность. Недостатки: нет выпадающего окна с горячими клавишами, нет независимых панелей, работа с фоновыми изображениями может быть капризной.
Kitty
Терминал, который, насколько я понимаю, был написан одним человеком с удивительно богатым набором функций: поддерживает истинные цвета, горизонтальные разделения, прозрачность, отображает изображения, интеграция с оболочкой. Недостатки: нет фоновых изображений (возникает открытая проблема), нет вертикальных разделений без конфигурации, нет выпадающего окна, и хотя есть пакеты для нескольких дистрибутивов, ubuntu не входит в их число (необходимо вручную установить зависимости и скомпилировать из источника).
Terminology
Стандартный терминал рабочего стола Enlightenment. У него, безусловно, лучшее управление изображениями среди всех терминальных эмуляторов, которые я когда-либо использовал, и он был моим ежедневным водителем на протяжении нескольких лет. Имеет масштабируемые независимые панели (вертикальные и горизонтальные), вкладки, прозрачность, интеграцию с оболочкой, но у него нет поддержки истинного цвета (поддержка сообщила, что не будет добавлять ее), что становится все более раздражающим для активного пользователя neovim/ncurses. Недостатки: только 256 цветов, нет выпадающего окна, пакет в репозиториях очень устарел, установка/компиляция последней версии зависимостей EFL из источника занимает целых полчаса.
Существует много других достойных терминальных эмуляторов: rxvt-unicode, suckless, termite и т. д., но у них у всех есть очевидные недостатки, иногда даже хуже, чем у вышеперечисленных. Suckless (st), например, хранит свою конфигурацию в заголовочном файле, что означает, что каждое изменение конфигурации требует перекомпиляции. Многие из них (включая некоторые из тех, которые я выделил выше, такие как konsole) кажутся настраиваемыми только с помощью мыши, что крайне раздражает для терминального эмулятора.
Многие могут считать, что существование tmux делает разделения/панели несущественными для самого терминала. Я не против, но у каждого свое мнение.
Есть очевидное упущение: я не упомянул ни один из проектов на базе electron, таких как hyper. Это потому, что я лично держу открытыми около 12 различных терминальных сессий одновременно, а electron слишком требователен для такого использования. Жаль, что некоторые из этих предложений имеют впечатляющие наборы функций. Если вы склонны открывать меньше сессий, вы могли бы попробовать одно из них, я поиграл с extraterm и он кажется более соответствующим тому, что предлагает iTerm2.
Желаю всем удачи, но моя охота за одним истинным терминальным эмулятором продолжается.
Как указано на веб-сайте iterm2 (в разделе “Окно с горячими клавишами”). Есть guake, tilda и yakuake. Их можно установить из репозиториев.
Лично я использую guake. Если вы используете unity, я написал индикатор для guake, хотя вы также можете легко включить системный трей в unity.
Вы можете попробовать terminator, найдите его в Центре программного обеспечения.
Я не уверен, предоставляет ли он нужную вам функцию, но предлагает некоторые другие хорошие функции iterm2, такие как горизонтальное и вертикальное разделение окон.
С апреля 2020 года исходный код размещен на github.
tilix
— самый полный аналог, который я нашел на данный момент.
Я бы предложил guake
У него есть наложение и “окно с горячими клавишами” и тому подобное.
DomTerm поддерживает многие функции iterm2 и больше: интеграция с оболочкой, разделенные панели, встроенный html (изображения и обогащенный текст), отсоединяемые сессии, очень надежная эмуляция xterm.
iTerm2 делает удивительные вещи, но до сих пор только для Mac OS X. (github)
extraterm — это терминальный эмулятор для Linux, Mac и Windows, который делает другие удивительные вещи.
Просто добавлю Hyper в список. Это терминал на основе electron, который достаточно аккуратен, стабилен и легок в использовании с множеством параметров конфигурации.
kitty — это кроссплатформенный терминальный эмулятор с рендерингом на GPU, который можно программировать на Python и который обладает множеством функций.
Deepin Terminal является хорошим вариантом. Это очень быстрый/легкий терминал. Вы можете установить его, выполнив:
sudo apt install deepin-terminal
Вы можете использовать tmux
– простой и мощный терминальный мультиплексор.
Функции:
- Меню для интерактивного выбора запущенных сессий, окон или
клиентов - Окно может быть связано с произвольным количеством сессий
- Командный режим, похожий на vi или Emacs (с автозаполнением) для управления
tmux
- Отсутствие встроенных серийных и telnet-клиентов (что некоторые считают избыточностью
для терминального мультиплексора) - Упрощенная настройка
- Разные командные клавиши — это не замена для screen,
но может быть настроен для использования совместимых сочетаний клавиш - Поддержка вертикального и горизонтального разделения окон
Чтобы установить, нажмите Ctrl+Alt+T и выполните:
sudo apt install tmux
Функция “Терминал в горячую клавишу”, о которой вы говорите, доступна в стандартном терминале gnome (или просто терминале), который предустановлен во многих версиях Ubuntu.
Просто щелкните правой кнопкой мыши по значку & выберите параметры для настройки. Вы не увидите много опций, пока не нажмете “профиль”, это дает вам “загрузить файл”, если можно так выразиться.
Как только вы установили профиль, вы можете настроить все его параметры, включая прозрачность и привязки клавиш.
Много других ответов ссылаются на Tmux, который можно автоматически устанавливать при запуске терминала. В разделе “Команды” настроек снимите флажок над строкой текстового ввода. Введите tmux в это текстовое поле. Это всё. Tmux будет автоматически загружаться во всех будущих окнах.
И не забывайте о Профилях. У меня лично их 3: tmux, vim и nano. Все настроены через один и тот же процесс.
ПРАВКА
Извините, что поднял этот вопрос из глубин, но у меня есть информация, которая, как я верю, может сэкономить много времени для многих людей. Это изменило мой рабочий процесс, поэтому, когда я увидел это снова на главной странице, я решил поделиться.
С тех пор как я написал этот ответ, я начал использовать Terminator, так как он позволяет открыть столько терминалов, сколько вам нужно (в разумных пределах) и сохранить все их атрибуты. Итак, если вы хотите максимизировать терминал, затем разделить его на 6 или 7 терминалов, и наконец изменить каждый на отдельный профиль (каждый со своей прозрачностью, цветом, командой запуска и т.д.), вы можете сохранить все это в едином макете.
Я полагаю, это просто.
sudo apt install terminator
Чтобы показать, насколько могущественной может быть эта программа, я покажу текущее содержимое своих дисплеев. У меня сейчас три отдельных дисплея.
В данный момент они загружены:
Для загрузки всего этого я нажимаю Ctrl + Alt + Super + s.
Обычно одной из проблем перезагрузки для меня является повторная настройка всех окон, которые мне нужны. Однако они обычно должны быть в одном из 5(ish) макетов. Итак, я просто настраиваю их каждое и прикрепляю к клавишам быстрого доступа с помощью terminator. Мне все равно нужно открывать все остальное, что мне нужно, но один из предустановленных вариантов обычно помогает мне продвинуться.
ПРИМЕЧАНИЕ: не терминальные приложения обычно не запускаются с помощью макета. Их нужно настраивать на запуск команды терминала. Однако с шестью отдельными терминалами, запускающимися, это 6 возможностей выполнить команды. Чтобы запустить внешнее приложение, необходимо использовать оператор ;
или &&
. ‘Команда’ – это на самом деле все, что можно уместить в строке, но вам нужно запустить оболочку где-то там.
Я хочу начать с того, что вам нужно учитывать тип людей, которые используют MacOS, и почему им бы понравился iTerm2. Во-первых, большинство пользователей MacOS просто это пользователи. Они не программисты и не используют терминальную программу для написания кода. Их основное использование терминальной программы, вероятно, связано с административными задачами на различных серверах, возможно, в своей домашней сети. Кроме того, они очень ориентированы на графический интерфейс — они не хотели запоминать необычные факты на уроках истории в старшей школе, и сейчас они не хотят запоминать сочетания клавиш. Вот почему, когда они начинают использовать Linux, они часто совершенно ненавидят некоторые терминальные эмуляторы Linux. Функции, которые многие давние пользователи Linux считают важными в терминальных эмуляторах, полностью отталкивают людей, которые хотят указывать и щелкать, которые не заботятся о кодировании и просто хотят зайти на свои серверы, сделать то, что им нужно, и быстро выйти. Конечно, это обобщения; некоторые пользователи MacOS действительно пишут код или любят использовать сочетания клавиш, но я бы сказал, что это меньшинство.
iTerm2, похоже, ориентирован на большинство, делая все возможным простым без того, чтобы превращать это в чрезмерно простое (я объясню это через секунду), делая большинство вещей интуитивно понятными и соблюдая общие стандарты дизайна Apple. Все просто работает, и работает легко. Если вы все же хотите стать «суперпользователем», доступны сочетания клавиш, и вы можете делать действительно «гиковские» вещи в iTerm2 (честно говоря, я никогда не понимал, для чего предназначены 80% настроек, но предполагаю, что у кого-то была причина для них).
Еще один момент о iTerm2 – это установка профилей подключения (которые вы настроите, чтобы просто указывать и щелкать для входа на сервер из вашего списка профилей), они не помещают вас в “ад чекбоксов и выпадающих меню”. Вот что я имею в виду под терминальными программами, которые стараются сделать все проще, что на самом деле делает их сложными. Чтобы привести пример, давайте предположим, что вы хотите настроить ssh-соединение с некоторыми необычными параметрами, возможно, с некоторым видом туннелирования. iTerm2 позволит вам ввести эту команду ssh в профиле, точно так же, как вы бы ввели ее в командной строке. Некоторые другие терминальные программы, слишком многие, на самом деле, заставляют вас угадывать, какая комбинация флажков и выборов из выпадающего меню позволит вам установить то соединение, которое вы пытаетесь создать. На самом деле меня не напрягает необходимость вводить целую команду ssh в текстовом поле профиля, но меня очень раздражает, когда я могу ввести только адрес сервера в текстовом поле, а затем вынужден догадываться, какие из нескольких параметров дадут мне необходимое соединение. Это похоже на какое-то заболевание, которое, похоже, поразило разработчиков Linux-терминальных программ; либо они не предлагают никаких средств управления профилями или соединениями, либо заставляют использовать флажки и выпадающие меню. У iTerm2 есть разумный менеджер профилей, который я не видел НИКОДА в любом терминальном приложении на Linux.
Один вариант, который до сих пор никто не упомянул, это кроссплатформенная программа под названием WindTerm. К сожалению, она делает некоторые из тех грехов, о которых я говорила ранее, пытаясь сделать вещи настолько простыми, чтобы это стало сложно, но у нее много преимуществ iTerm2. Статья о ней есть здесь, и вы можете увидеть, что она довольно многофункциональна, но я уверен, что некоторые люди просто взглянут на скриншот и ненавидят его, не осознавая, что все эти панели можно скрыть или закрыть, так что вы увидите только те, которые хотите видеть. Другой проблемой с WindTerm является то, что ее авторы описывают в этой статье:
WindTerm описывается как “Быстрый и лучший
SSH/Telnet/Serial/Shell/Sftp клиент для DevOps”. Но вы не должны быть разработчиком, чтобы оценить это. Итак, почему, вероятно, вы никогда о нем не слышали? Ну, у нас есть теория об этом, и это связано с тем, что они прячут ссылку для загрузки и инструкции по установке.
Статья объясняет, как скачать и установить его, но он прав, кто бы ни проектировал их сайт, похоже, никогда не знал, что надежный способ снизить использование — это скрывать ссылку на загрузку!
Я все еще ищу действительно отличный аналог iTerm2. Tabby достаточно близок, но у него есть некоторые странности, которые я лично нахожу раздражающими. WindTerm, на мой взгляд, подходит гораздо ближе, но это все равно подобно тому, как сказать, что Марс ближе к Земле, чем Плутон — ни один из них не близок к тому, чтобы сделать пользователя MacOS счастливым, боюсь.
Ответ или решение
Для пользователей Mac OS, ищущих эквивалент iTerm2 на Ubuntu, существует несколько вариантов, каждый из которых предлагает уникальные функции, которые могут удовлетворить различные потребности. Рассмотрим наиболее популярные альтернативы:
1. Guake
Guake — это терминал в стиле «выпадающего меню», который позволяет быстро открывать и закрывать терминал с помощью горячих клавиш. Он прост в установке и настройке, а также поддерживает прозрачность. Guake идеально подходит для тех, кто хочет получить функциональность, напоминающую о iTerm2.
Установка:
sudo apt install guake
2. Tilda
Tilda — это еще один выпадающий терминал, который также можно легко настроить. Он позволяет пользователю открывать терминал одним нажатием клавиши и имеет возможность настройки внешнего вида и поведения.
Установка:
sudo apt install tilda
3. Tilix
Tilix — это мощный терминал, который поддерживает разделение окон как вертикально, так и горизонтально. Он предлагает множество настроек и опций для персонализации, что делает его отличным выбором для пользователей, привыкших к iTerm2.
Установка:
sudo apt install tilix
4. Konsole
Konsole — стандартный терминал для KDE, обладающий богатым набором функций, включая поддержку вкладок, прозрачность и множество других инструментов. Консоль простая в использовании и достаточно мощная, чтобы удовлетворить большинство потребностей.
Установка:
sudo apt install konsole
5. Kitty
Kitty — это терминал с поддержкой GPU, который предлагает множество функций, включая вертикальное и горизонтальное разделение, прозрачность и поддержку изображений. Однако его может быть немного сложнее установить, так как требует выполнения дополнительных шагов.
Установка:
Для установки Kitty может понадобиться сборка из исходников.
6. Terminator
Terminator позволяет удобно управлять несколькими терминалами в одном окне, разделяя их на панели. Это хороший выбор для пользователей, которым необходимо одновременно работать с несколькими сессиями терминала.
Установка:
sudo apt install terminator
7. WindTerm
Это мультиплатформенное приложение, поддерживающее SSH, Telnet и другие протоколы. Хотя WindTerm может быть не так известен, как другие варианты, он обладает множеством функций, что делает его достойным соперником.
Установка и дополнительные сведения:
Инструкции по установке можно найти на официальном сайте WindTerm.
Итог
Каждый из перечисленных эмуляторов терминала предлагает уникальные функции и возможности, которые могут значительно улучшить работу в терминале, аналогично iTerm2. В зависимости от ваших предпочтений и потребностей, вы можете выбрать оптимальную для себя альтернативу.