5 Tweaks to Customize the Look of Your Linux Terminal
The terminal emulator or simply the terminal is an integral part of any Linux distribution.
When you change the theme of your distribution, the terminal often gets a makeover automatically. But that doesn’t mean you cannot customize the terminal further.
Many It’s FOSS readers have asked us how come the terminal in our screenshots or videos look so cool, what fonts do we use, etc.
To answer this frequent question, I’ll show you some simple and some complex tweaks to change the appearance of the terminal. You can compare the visual difference in the image below:
Customizing Linux Terminal
For most elements like color, transparency, and fonts, you can utilize the GUI to tweak it without requiring you to enter any special commands.
Open your terminal. In the top right corner, look for the hamburger menu. Here, click on “Preferences” as shown in the screenshot below:
This is where you’ll find all the settings to change the appearance of the terminal.
Tip 0: Use separate terminal profiles for your customization
I would advise you to create a new profile for your customization. Why? Because this way, your changes won’t impact the main terminal profile. Suppose you make some weird changes and cannot recall the default value. Profiles help separate the customization.
As you can see, Abhishek has separate profiles for taking screenshots and making videos.
Terminal Profiles
You can easily change the terminal profiles and open a new terminal window with the new profile.
Change Terminal Profile
That was the suggestion I wanted to put forward. Now, let’s see those tweaks.
Tip 1: Use a dark/light terminal theme
You may change the system theme and the terminal theme gets changed. Apart from that, you may switch between the dark or light theme, if you do not want to change the system theme.
Once you head into the preferences, you will notice the General options to change the theme and other settings.
Tip 2: Change the font and size
Select the profile that you want to customize. Now you’ll get the option to customize the text appearance, font size, font style, spacing, cursor shape, and toggle the terminal bell sound as well.
For changing the terminal font, you can only change to what’s available on your system. If you want something different, download and install the font on your Linux system first.
Under the Text tab, select Custom font and then change the font and size (if required).
Tip 3: Change the color pallet and transparency
Apart from the text and spacing, you can access the “Colors” tab and change the color of the text and background of your terminal. You can also adjust the transparency to make it look even cooler.
As you can notice, you can change the color palette from a set of pre-configured options or tweak it yourself.
If you want to enable transparency just like I did, you click on “Use transparent background” option.
You can also choose to use colors from your system theme if you want a similar color setting to your theme.
Tip 4: Tweaking the bash prompt variables
Usually, you will see your username and hostname (your distribution) as the bash prompt when launching the terminal without any changes.
For instance, it would be “ankushdas@pop-os:
$” in my case. However, I permanently changed the hostname to “itsfoss“, so now it looks like this:
To change the hostname, you can type in the following:
However, this will be applicable only to the current sessions. So, when you restart, it will revert to the default. To permanently change the hostname, you need to type in the following:
Similarly, you can also change your username, but it requires some additional configuration that includes killing all the current processes associated with the active username, so we’ll avoid it to change the look/feel of the terminal.
Tip 5: Changing the font and color of the bash prompt (for advanced users)
You can tweak the font and color of the bash prompt ([email protected]:
You will need to utilize the PS1 environment variable which controls what is being displayed as the prompt. You can learn more about it on the man page.
For instance, when you type in:
The output in my case is:
We need to focus on the first part of the output:
Here, you need to know the following:
- \e is a special character that denotes the start of a color sequence
- \u indicates the username followed by the @ symbol
- \h denotes the hostname of the system
- \w denotes the base directory
- \a indicates the active directory
- $ indicates non-root user
The output in your case can be different, but the variables will be the same, so you need to play with the commands mentioned below depending on your output.
Before you do that, keep these in mind:
- Codes for text format: 0 for normal text, 1 for bold, 3 for italic and 4 for underline text
- Color range for background colors: 40-47
- Color range for text color: 30-37
You just need to type in the following to change the color and font:
This is how your bash prompt will look like after typing the command:
If you notice the command properly, as mentioned above, \e helps us assign a color sequence.
In the command above, I’ve assigned a background color first, then the text style, and then the font color followed by “m“.
Here, “m” indicates the end of the color sequence.
So, all you have to do is, play around with this part:
The rest of the command should remain the same, you just need to assign different numbers to change the background color, text style, and text color.
Do note that this is in no particular order; you can assign the text style first, background color next, and the text color at the end as “3;41;32“, where the command becomes:
As you can notice, the color customization is the same no matter the order. So, keep the codes for customization in mind and play around with it until you’re sure you want this as a permanent change.
The above command that I mentioned temporarily customizes the bash prompt for the current session. If you close the session, you will lose the customization.
So, to make this a permanent change, you need to add it to .bashrc file (this is a configuration file that loads up every time you load up a session).
You can access the file by simply typing:
Unless you’re sure what you’re doing, do not change anything. And, just for the sake of restoring the settings back, you should keep a backup of the PS1 environment variable (copy-paste what’s in it by default) to a text file.
So, even if you need the default font and color, you can again edit the .bashrc file and paste the PS1 environment variable.
Bonus Tip: Change the terminal color pallet based on your wallpaper
If you want to change the terminal’s background and text color but are unsure which colors to pick, you can use a Python-based tool, Pywal. It automatically changes the color of the terminal based on your wallpaper or the image you provide to it.
If you are interested in using this tool, I have written about it in detail.
Wrapping Up
Of course, it is easy to customize using the GUI while getting better control of what you can change. But, knowing the commands is also necessary in case you start using WSL or access a remote server using SSH; you can customize your experience no matter what.
If you are not much into customizing, you can try using other Linux terminals like Tilix or Terminator.
It's FOSS Ankush Das
How do you customize the Linux terminal? Share your secret ricing recipe with us in the comments.
How to Make Linux Terminal look Awesome
In this article, we will install and configure some themes and plugins to tweak our Linux terminal for better productivity and a fancier look. These features include autocompletion, autosuggestion, command-line search, syntax highlighting, and better support for git and environment managers.
The Z-shell or Zsh is a UNIX shell with support for various plugins and themes.
Oh My Zsh
It is an open-source and community-driven framework for managing Zsh configuration. It comes bundled with thousands of helpful functions, plugins, themes, and much more.
sh -c “$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)” [Using curl]
sh -c “$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)” [Using wget]
Nerd Fonts
Nerd Fonts is a project to create patched fonts. Nerd Fonts takes popular programming fonts and patches them with a large number of glyphs (icons).
- Download hack font and install it by double-clicking on the .tff file. You can also use any other font but make sure it supports all the icons and glyphs required by powerlevel10k.
- Select Hack Font as the default font.
Powerlevel10k
Powerlevel10k is a theme for Zsh. It changes normal shell commands to colorful commands and emphasizes speed, flexibility, and out-of-the-box experience.
- An installation prompt will begin by default, but if it doesn’t run.
zsh-autosuggestions
Real-time type-ahead completion for Zsh. Asynchronous find-as-you-type autocompletion.
- Add zsh-autocomplete to the list of plugins inside
zsh-syntaxhighlighting
zsh-syntax-highlighting provides syntax highlighting for the shell zsh. It enables highlighting commands whilst they are typed at a zsh prompt into an interactive terminal. This helps review commands before running them, particularly in catching syntax errors.
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $
- Add zsh-syntax-highlighting to the list of plugins inside
diff-so-fancy
It is a tool that converts the output of diff utility into a more human-readable form. It improves the development speed by providing a simpler way to compare recent changes. With diff-so-fancy, one can focus on the code quality instead of figuring out what all the + and – mean?
To integrate diff-so-fancy with git.
$ git config –global core.pager “diff-so-fancy | less –tabs=4 -RFX”
$ git config –global interactive.diffFilter “diff-so-fancy –patch”
$ git config –global color.ui true
Now, we can simply use the git diff command to view recent changes.
bat is a supercharged version of the native cat command. It includes features like syntax highlighting, git integration, automatic paging, and much more.
Viewing the content of a file with first cat and then with bat.
It’s an interactive Unix filter for command-line that can be used with any list; files, command history, processes, hostnames, bookmarks, git commits, etc.
делаем linux терминал красивым и удобным
Большинство дистрибутивов поставляется со встроенным Bash. Используя дополнения можно сделать из него все что захотите, но гораздо проще этого добиться с Zsh. Почему?
Настройка Zsh
Для начала, установим Zsh (если он уже установлен, например, как в Manjaro, можете пропустить этот пункт):
Oh-My-Zsh — популярный и активно развивающийся фреймворк Zsh, который позволяет гибко настроить оболочку терминала. Установим его:
Подсветка синтаксиса. Гораздо проще ориентироваться по содержимому терминала, когда разные части команд подсвечены разными цветами. Например, директории будут подчеркиваться, а команды — выделяться цветом, отличным от обычного текста. Установим плагин zsh-syntax-highlighting :
Чтоб плагин заработал, его надо подключить.
/.zshrc меняем строку с plugins= :
Если такой строки нет — добавьте её.
Готово! Получаем удобный и функциональный терминал. Теперь сделаем его визуально приятным.
Настраиваем внешний вид
Скачиваем и добавляем в систему шрифт JetBrains Mono Nerd (c иконками):
Выберитеодин из списка, в папке шрифт/complete выберите шрифт без «Windows Compatible», с окончанием «Mono».
Подключаем шрифт и тему.
Если в файле эти строки уже есть — замените их.
Цвета. Важная часть оформления терминала — цветовая схема. Я перебрал много разных схем, редактировал их, остановился на Monokai Dark. Не режет глаза, но при этом приятная и яркая. Список цветов:
В разных терминалах по-разному меняется цветовая схема (обычно, это делается через настройки терминала), но порядок цветов везде одинаковый. Вы можете импортировать этот шаблон в формате Termite и экспортировать его для вашего терминала через terminal.sexy
Финальный штрих — меняем конфиг темы и заменяем встроенные цвета.
Если в файле эти строки уже есть — замените их. Коды цветов можно получить командой
Делаем Linux терминал красивым и удобным
Все дистрибутивы Linux поставляются с функциональным и кастомизируемым эмулятором терминала. В интернете, а порой даже в самом терминале, есть масса готовых тем, чтоб он красиво выглядел. Однако, чтоб сделать из стандартного терминала (в любом DE, любого дистрибутива) нечто красивое и одновременно удобное и простое в использовании я потратил много времени. Итак, как же сделать дефолтный терминал удобным и приятным в использовании?
Добавляем функциональность
Командная оболочка
Большинство дистрибутивов поставляется со встроенным Bash. Используя дополнения можно сделать из него все что захотите, но гораздо проще этого добиться с Zsh. Почему?
Настройка Zsh
Для начала, установим Zsh (если он уже установлен, например, как в Manjaro, можете пропустить этот пункт):
Oh-My-Zsh — популярный и активно развивающийся фреймворк Zsh, который позволяет гибко настроить оболочку терминала. Установим его:
Подсветка синтаксиса. Гораздо проще ориентироваться по содержимому терминала, когда разные части команд подсвечены разными цветами. Например, директории будут подчеркиваться, а команды — выделяться цветом, отличным от обычного текста. Установим плагин zsh-syntax-highlighting :
Чтоб плагин заработал, его надо подключить.
/.zshrc меняем строку с plugins= :
Если такой строки нет — добавьте её.
Готово! Получаем удобный и функциональный терминал. Теперь сделаем его визуально приятным.
Настраиваем внешний вид
Устанавливаем тему PowerLevel10K:
Скачиваем и добавляем в систему шрифт JetBrains Mono Nerd (c иконками):
Выберитеодин из списка, в папке шрифт/complete выберите шрифт без «Windows Compatible», с окончанием «Mono».
Подключаем шрифт и тему.
Если в файле эти строки уже есть — замените их.
Цвета. Важная часть оформления терминала — цветовая схема. Я перебрал много разных схем, редактировал их, остановился на Monokai Dark. Не режет глаза, но при этом приятная и яркая. Список цветов:
В разных терминалах по-разному меняется цветовая схема (обычно, это делается через настройки терминала), но порядок цветов везде одинаковый. Вы можете импортировать этот шаблон в формате Termite и экспортировать его для вашего терминала через terminal.sexy
Финальный штрих — меняем конфиг темы и заменяем встроенные цвета.
Если в файле эти строки уже есть — замените их. Коды цветов можно получить командой
Делаем Linux терминал удобнее и красивее
Идея статьи возникла только лишь в связи с ленью осваивать Tmux Terminal Multiplexer и ставить дополнительную надстройку к терминалу кали, дабы “сплитить” 1 сессию терминала на “мультиокна”. Не навязываю никому свою идею, но считаю ее более удобной в реализации процесса автоматизации работы с терминалом в довесок с плюшками и красивостями zsh. Кто знает устанавливая tnux нужно еще подключать курсор, делать замыкание активного акна при копировании строки в буфер обмена и много других совершенно не нужных манипуляций.
Итак, устанавливаем Deepin Ternimal который с недавних пор идет в составе репозиториев Кали Линукса
Затем открываем его и смотрим настройки:
Как мы видим управление слитами экрана уже с коробки, так же вкладки, которые можно переименовывать и мн. др, в том числе темы.
Дальше делаем его немного удобнее и красивее с помощью zsh
Делаем его основным окружением шела:
Устанавливаем надстройку Oh My zsh
Ставим шрифты для красивостей
Затем меняем тему оформления и ставим плагины:
в разделе ZSH_THEME= меняем на “agnoster”
Плагин подсветки текста:
Плагин автоподстановки текста:
Дополняем строку конфигуратора в разделе plugins=(git extract web-search yum git-extras docker vagrant zsh-syntax-highlighting zsh-autosuggestions)
Ну и опять же кому что, а я пользуюсь быстрыми ll для листинга директорий и прописываю альяс:
Если хотите убрать хостнейм то в конфигурации прописываете так prompt_context() <>
Для применения внесенных изменений в активной консоли пишем
Ну и в довесок, у кого не прописан путь исплавляем это
Настройка красивого терминала Unix с оболочкой Zsh
Перевод статьи «Configure a beautiful terminal on Unix with Zsh», автор – Deepu K Sasidharan. Перевод опубликован на сайте hexx.in.ua.
На протяжении довольного долгого времени я был пользователем Windows, причем совершенно довольным. Но я – разработчик, и в Windows мне не хватало многих вещей. Основная из них – приятная работа с терминалом. Я не фанат закрытой экосистемы Apple, поэтому для меня логичным выбором стал Linux, на который я и перешел почти 3 года назад. Начал я с Ubuntu, а потом выбрал Fedora, и теперь это моя основная операционная система. О моих настройках машины и системы можно почитать здесь.
Я разработчик-senior и лидер open source сообщества, я провожу много времени, работая с терминалом. А если работа с терминалом приятная, это сразу делает вас счастливее и продуктивнее. Дефолтный bash-терминал годится для новичков, но если вы хотите по-настоящему мощный терминал, вам нужно что-то большее, чем bash.
Давайте посмотрим, как можно настроить терминал для продуктивной работы. Я расскажу о настройках, который у меня стоят на моей машине с Fedora. Но то же самое можно воспроизвести в любом дистрибутиве Linux, BSD или на Mac. Надо только найти соответствующие инструкции по установке инструментов.
Итак, список инструментов.
Zsh – одна из наиболее полнофункциональных командных оболочек для Unix. Она работает в Linux, Mac, WSL и BSD. Есть альтернативные варианты с похожим функционалом, например Fish, но лично мне нравится Zsh.
1. Проверьте, не установлена ли у вас Zsh. Для этого запустите в терминале команду zsh –version. Если ничего не найдено, установите оболочку, используя свой менеджер пакетов.
3. Выйдите из системы и войдите заново (log out / log in), чтобы в дальнейшем использовать вашу новую дефолтную оболочку.
Oh-My-Zsh
Oh-My-Zsh дает оболочке Zsh суперсилу. Это фреймворк для управления настройками Zsh. В нем есть плагины и темы для Zsh (много).
С Github-страницы Oh-My-Zsh:
«После установки ваша оболочка терминала станет главным поводом для разговоров в вашем окружении, или мы вернем деньги! При каждом нажатии на клавишу вы будете получать все преимущества сотен плагинов и прекрасных тем. Незнакомцы станут подходить к вам в кафе и спрашивать, не гений ли вы».
Просто установите этот фреймворк. Поверьте, он вам нужен 🙂
Эмулятор терминала
При желании вы можете использовать эмулятор терминала с управлением окнами и панелями.
Для Linux я бы посоветовал Tilix. Я пользуюсь им три года, и могу сказать, что он просто великолепен.
Для Mac можно выбрать iTerm2, он очень популярен.
Если хотите что-то более легкое для своего терминала на Linux, BSD и Mac, можно остановиться на tmux.
Настройка Zsh
Переходим к наиболее интересной части. Давайте сделаем наш терминал звездой.
Установите плагины
Сначала давайте установим несколько дополнительных плагинов, которые не входят в Oh-My-Zsh.
zsh-autosuggestions
Добавляет автозаполнения для shell-команд.
Для установки запустите
zsh-syntax-highlighting
Подсветка синтаксиса в оболочке.
Для установки запустите
autojump
Умнее система навигации по директориям. Инструкции по установке для вашей операционной системы можно найти здесь.
Теперь давайте внесем определенные настройки в конфигурационный файл
Добавьте экспорты
Начнем с нескольких.
Настройка Zsh
Теперь давайте внесем некоторые настройки, специфичные для Zsh.
Тема Zsh
Давайте выберем хорошую тему. Я пользуюсь powerlevel10k, она быстрая и хорошо выглядит. Вы можете оставить дефолтную тему или любую из списка. Если вам нравится моя тема, обратите внимание на советы Романа Перепелицы.
Для установления темы запустите
Добавьте следующие конфигурации в файл
Включите плагины
Мы можем завершить настройку, включив плагины и некоторые опции.
Все готово. Открывайте новую сессию терминала и наслаждайтесь.
Возможные проблемы и их решение
Если вы используете эмулятор терминала Tilix, вам может понадобиться еще кое-что. Добавьте это в файл
Если вы получаете сообщения об ошибках от плагина zsh-completion, можно добавить вот это в начале вашего файла
Докеризованная игровая площадка
Если у вас установлен Docker, вы можете использовать этот сниппет, чтобы попробовать настройки в песочнице, ничего не устанавливая и не касаясь текущих настроек.
Совет для пользователей VSCode
Если вы, как и я, пользуетесь VSCode, можно кое-что сделать, чтобы интегрированный терминал в редакторе был таким же, как в системе.
Как сделать красивую консоль в Mac и Linux
Если у вас OS X, поставьте iTerm2, он лучше стандартного Terminal.app. Если у вас Linux, то у вас наверняка уже есть неплохой терминал, или вы можете самостоятельно поставить любой, который вам нравится. Я вот люблю Sakura. Ещё я обычно меняю цветовую схему. Стандартные чёрные мне не очень нравятся, есть крутая схема Solarized. Как её устанавливать тоже зависит от вашего терминала.
Теперь настроим непосредственно шелл. Шелл — это оболочка, в которой выполняются команды. Он показывает вам так называемое приглашение, оно обычно состоит из имени пользователя, имени компьютера и пути к тому месту, где вы сейчас находитесь. И выполняет команды, которые вы в него вводите. Стандартный шелл выглядит так:
Стандартное приглашение в шелле
Скучновато, правда? Первое, что мы сделаем — сменим оболочку с bash на zsh. Bash — это стандартная оболочка, которая поставляется в комплекте большинства систем. Zsh — это более современная оболочка со множеством плюшек. По сравнению с bash улучшены автодополнение, алиасы, хоткеи. Всё, что может bash, zsh может тоже, так что не вижу причин не переходить. У пользователей OS X zsh уже есть на компьютере, а пользователям Linux, скорее всего, нужно его установить. В Ubuntu и Debian это делается просто:
Установка zsh в Ubuntu и Debian
Пользователи остальных систем наверняка справятся с установкой. Теперь нужно сделать, чтобы zsh был вашей оболочкой по умолчанию, то есть использовался каждый раз, когда вы открываете терминал. Для этого есть команда chsh (change shell):
Ввод пароля при смене шелла
Смена оболочки по умолчанию
Теперь нужно выйти из системы и снова зайти. Когда вы откроете терминал, увидите приветственное сообщение zsh. Он предлагает вам ничего не делать, записать в свои настройки только комментарии, чтобы это сообщение не появлялось в следующий раз или пойти в меню настройки:
Приветствие от zsh
Мы, ничего не делая, выйдем (нажмём q ), потому что знаем секрет. Секрет в том, что не нужно писать длинный конфиг, если вы новый пользователь: частые проблемы и хотелки уже решили другие, и родилась такая замечательная штука — Oh My ZSH. Это набор плагинов и настроек, которые решают самые популярные задачи и делают ваш шелл просто офигенным. Установим его, следуя инструкциям с официального сайта:
Установка прошла, но ничего не поменялось? Надо закрыть терминал и снова открыть его, чтобы настройки, которые приехали к нам из oh-my-zsh, прочитались и применились. Закрыли-открыли, теперь видим новое приветствие:
Приветствие шелла после установки Oh My ZSH!
Меняем тему в конфиге с помощью переменной ZSH_THEME
Сохраните файл и снова перезапустите терминал (или откройте в нём новую вкладку). Теперь шелл выглядит по-новому:
Тема Bureau в шелле
Это тема Bureau. В верхней строчке сначала имя пользователя, потом имя машины, потом путь к папке, где пользователь сейчас находится. Справа текущее время. В следующей строке просто символы, которые обозначают, что ввод здесь, а справа после шестиугольника текущая версия Node.js, ветка Git (если пользователь сейчас в Git-репозитории), и кружочки, которые обозначают, что есть несохранённые изменения. В этой теме версия Node.js показывается только если вы используете Node Version Manager.
Тема Agnoster в шелле
А это тема Лёши, можете её взять из github и сохранить в папке
Да и вообще, полистайте список тем и выберите ту, которая вам по душе. Или склейте свою из кусочков понравившихся тем, или даже напишите с нуля! Все темы лежат в папке