Красивый терминал arch linux

🌈 Включите цвет! Генерация цветовой схемы для терминала Linux и не только

Однажды, насмотревшись красивых скриншотов с r/unixporn, я решил сделать свою тему оформления для рабочего стола i3 (Linux). Начал я конечно же с цветовой схемы. и тут же потерпел поражение. Оказалось, подобрать сочетающиеся цвета не так-то просто, если ничего не понимаешь в колористике. Но на помощь мне пришла прекрасная утилита под названием Pywal .

В чём суть Pywal: программа берёт изображение, ставит его на рабочий стол, и на его основе генерирует цветовую схему, попутно применяя её ко всем программам, с которыми умеет работать. Открываем терминал, пишем wal -i путь/к/изображению и вуаля!

Что может раскрасить pywal?

Да всё, что угодно. Правда, к сожалению, для некоторых методов, которые не продуманы разработчиком, придётся доустановить дополнительный софт, написать простенький скрипт или поковыряться в конфигах.

Pywal может автоматически перекрашивать многие эмуляторы терминала (urxvt, kitty), разные оконные менеджеры (i3/bspwm), панели (polybar, lemonbar), лоунчеры (dmenu, rofi), редакторы текста (vim, VS Code), тему GTK (с помощью oomox), Steam, даже девайсы от Razer (у которых есть rgb-подсветка) и другие.

Этот список можно расширять благодаря тому, что Pywal экспортирует цветовую схему в разные форматы: .Xresources, переменные shell, JSON, YAML, CSS, SCSS, которые можно потом импортировать куда угодно.

Некоторые программы нужно перезапускать, чтобы применить настройки, а некоторые перекрашиваются на лету. Pywal умеет перезапускать некоторые приложения сам (например polybar ), но иногда требуется написать для этого скрипт или ручками.

Установка и использование Pywal

Установка на Arch Linux:

Остальные системы (Ubuntu, Mint, Fedora. )
Нужен установленный Python 3.5+, pip3, imagemagick, pidof:

Восстановить цвета после перезагрузки:

Использовать скрипт после генерации:

Pywal позволяет сделать собственную красивую и гармоничную цветовую схему и быстро разукрасить ею свой рабочий стол.

Ссылки

👉 Мой первый пост на Дзене. Подписывайтесь 😊 Буду стараться и дальше радовать Вас интересными программами для Linux, о которых Вы могли не знать.

#arch #linux #pywal #оформление #рабочий стол

Источник

Читайте также:  Скрипт добавления пользователей linux

Настройка красивого терминала Unix с оболочкой Zsh

Перевод статьи «Configure a beautiful terminal on Unix with Zsh», автор – Deepu K Sasidharan. Перевод опубликован на сайте hexx.in.ua.

Терминал с оболочкой zsh

На протяжении довольного долгого времени я был пользователем Windows, причем совершенно довольным. Но я – разработчик, и в Windows мне не хватало многих вещей. Основная из них – приятная работа с терминалом. Я не фанат закрытой экосистемы Apple, поэтому для меня логичным выбором стал Linux, на который я и перешел почти 3 года назад. Начал я с Ubuntu, а потом выбрал Fedora, и теперь это моя основная операционная система. О моих настройках машины и системы можно почитать здесь.

Я разработчик-senior и лидер open source сообщества, я провожу много времени, работая с терминалом. А если работа с терминалом приятная, это сразу делает вас счастливее и продуктивнее. Дефолтный bash-терминал годится для новичков, но если вы хотите по-настоящему мощный терминал, вам нужно что-то большее, чем bash.

Давайте посмотрим, как можно настроить терминал для продуктивной работы. Я расскажу о настройках, который у меня стоят на моей машине с Fedora. Но то же самое можно воспроизвести в любом дистрибутиве Linux, BSD или на Mac. Надо только найти соответствующие инструкции по установке инструментов.

Zsh

Zsh – одна из наиболее полнофункциональных командных оболочек для Unix. Она работает в Linux, Mac, WSL и BSD. Есть альтернативные варианты с похожим функционалом, например Fish, но лично мне нравится Zsh.

1. Проверьте, не установлена ли у вас Zsh. Для этого запустите в терминале команду zsh –version. Если ничего не найдено, установите оболочку, используя свой менеджер пакетов.

  • Fedora: sudo dnf install zsh
  • Mac: brew install zsh zsh-completions
  • RHEL / CentOS: sudo yum update && sudo yum -y install zsh
  • Ubuntu / Debian: sudo apt install zsh
  • Инструкции для других платформ можно найти по ссылке.

2. Теперь сделайте Zsh вашей дефолтной оболочкой, запустив chsh -s $(which zsh) .

3. Выйдите из системы и войдите заново (log out / log in), чтобы в дальнейшем использовать вашу новую дефолтную оболочку.

Проверьте, успешно ли прошла смена оболочки, выполнив команду echo $SHELL . Ожидаемый результат – /bin/zsh или что-то подобное.

5. Протестируйте еще раз, проверив версию оболочки: $SHELL —version . Ожидаемый результат – нечто вроде zsh 5.6.2 .

Примечание. Если вы установили Zsh впервые, оболочка предложит сделать определенные настройки. Вы можете проигнорировать это предложение, нажав q , поскольку дальше мы все равно займемся настройками.

Читайте также:  Cryptopro browser plugin astra linux

Oh-My-Zsh

Oh-My-Zsh дает оболочке Zsh суперсилу. Это фреймворк для управления настройками Zsh. В нем есть плагины и темы для Zsh (много).

«После установки ваша оболочка терминала станет главным поводом для разговоров в вашем окружении, или мы вернем деньги! При каждом нажатии на клавишу вы будете получать все преимущества сотен плагинов и прекрасных тем. Незнакомцы станут подходить к вам в кафе и спрашивать, не гений ли вы».

Просто установите этот фреймворк. Поверьте, он вам нужен 🙂

sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

Эмулятор терминала

При желании вы можете использовать эмулятор терминала с управлением окнами и панелями.

Для Linux я бы посоветовал Tilix. Я пользуюсь им три года, и могу сказать, что он просто великолепен.

Для Mac можно выбрать iTerm2, он очень популярен.

Если хотите что-то более легкое для своего терминала на Linux, BSD и Mac, можно остановиться на tmux.

Настройка Zsh

Переходим к наиболее интересной части. Давайте сделаем наш терминал звездой.

Установите плагины

Сначала давайте установим несколько дополнительных плагинов, которые не входят в Oh-My-Zsh.

zsh-autosuggestions

Добавляет автозаполнения для shell-команд.

git clone https://github.com/zsh-users/zsh-autosuggestions $/plugins/zsh-autosuggestions
zsh-syntax-highlighting

Подсветка синтаксиса в оболочке.

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $/plugins/zsh-syntax-highlighting
autojump

Умнее система навигации по директориям. Инструкции по установке для вашей операционной системы можно найти здесь.

Теперь давайте внесем определенные настройки в конфигурационный файл ~/.zshrc . Здесь вы найдете мой файл .zshrc. Ваш может отличаться.

Добавьте экспорты

export TERM="xterm-256color" # This sets up colors properly # set shell export SHELL=/usr/bin/zsh # If you come from bash you might have to change your $PATH. export NODE_PATH=$NODE_PATH:$HOME/.npm-global/lib/node_modules export JAVA_HOME=/usr/java/latest export PATH=$JAVA_HOME/bin:~/.npm-global/bin:$HOME/bin:/usr/local/bin:$PATH # Add exports from your profile source ~/.profile # Path to your oh-my-zsh installation. export ZSH=$HOME/.oh-my-zsh

Настройка Zsh

Теперь давайте внесем некоторые настройки, специфичные для Zsh.

DISABLE_MAGIC_FUNCTIONS=true ZSH_AUTOSUGGEST_MANUAL_REBIND=1 COMPLETION_WAITING_DOTS=true DISABLE_UNTRACKED_FILES_DIRTY=true

Тема Zsh

Давайте выберем хорошую тему. Я пользуюсь powerlevel10k, она быстрая и хорошо выглядит. Вы можете оставить дефолтную тему или любую из списка. Если вам нравится моя тема, обратите внимание на советы Романа Перепелицы.

Для установления темы запустите

git clone https://github.com/romkatv/powerlevel10k.git $/themes

Добавьте следующие конфигурации в файл ~/.zshrc

# Set name of the theme to load. Optionally, if you set this to "random" # it'll load a random theme each time that oh-my-zsh is loaded. # See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes ZSH_THEME="powerlevel10k/powerlevel10k" ############ POWERLEVEL THEME SETTINGS ############## POWERLEVEL9K_MODE='awesome-fontconfig' POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(dir vcs nvm) POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(disk_usage time) POWERLEVEL9K_PROMPT_ADD_NEWLINE=true POWERLEVEL9K_PROMPT_ON_NEWLINE=true POWERLEVEL9K_SHOW_RULER=true POWERLEVEL9K_RULER_CHAR='─' POWERLEVEL9K_RULER_BACKGROUND=none POWERLEVEL9K_RULER_FOREGROUND=237 POWERLEVEL9K_LEFT_SEGMENT_END_SEPARATOR= POWERLEVEL9K_LEFT_SEGMENT_SEPARATOR= POWERLEVEL9K_LEFT_SUBSEGMENT_SEPARATOR=' ' POWERLEVEL9K_RIGHT_SEGMENT_END_SEPARATOR= POWERLEVEL9K_RIGHT_SEGMENT_SEPARATOR= POWERLEVEL9K_RIGHT_SUBSEGMENT_SEPARATOR= POWERLEVEL9K_WHITESPACE_BETWEEN_LEFT_SEGMENTS= POWERLEVEL9K_SHORTEN_DIR_LENGTH=2 POWERLEVEL9K_SHORTEN_STRATEGY="truncate_middle" POWERLEVEL9K_DIR_SHOW_WRITABLE=true POWERLEVEL9K_DISK_USAGE_NORMAL_BACKGROUND=none POWERLEVEL9K_DISK_USAGE_WARNING_BACKGROUND=magenta POWERLEVEL9K_DISK_USAGE_CRITICAL_BACKGROUND=red POWERLEVEL9K_TIME_BACKGROUND=none POWERLEVEL9K_TIME_FOREGROUND=white POWERLEVEL9K_DIR_HOME_BACKGROUND=none POWERLEVEL9K_DIR_HOME_SUBFOLDER_BACKGROUND=none POWERLEVEL9K_DIR_ETC_BACKGROUND=none POWERLEVEL9K_DIR_DEFAULT_BACKGROUND=none POWERLEVEL9K_DIR_NOT_WRITABLE_BACKGROUND=none POWERLEVEL9K_DIR_HOME_FOREGROUND=blue POWERLEVEL9K_DIR_HOME_SUBFOLDER_FOREGROUND=blue POWERLEVEL9K_DIR_ETC_FOREGROUND=blue POWERLEVEL9K_DIR_DEFAULT_FOREGROUND=blue POWERLEVEL9K_DIR_NOT_WRITABLE_FOREGROUND=red POWERLEVEL9K_OS_ICON_BACKGROUND="white" POWERLEVEL9K_OS_ICON_FOREGROUND="blue" POWERLEVEL9K_VCS_GIT_ICON='%fon %F\uf1d3 ' POWERLEVEL9K_VCS_GIT_GITHUB_ICON='%fon %F\uf09b ' POWERLEVEL9K_VCS_GIT_BITBUCKET_ICON='%fon %F\uf171 ' POWERLEVEL9K_VCS_GIT_GIT_GITLAB_ICON='%fon %F\uf296 ' POWERLEVEL9K_VCS_CLEAN_BACKGROUND=none POWERLEVEL9K_VCS_UNTRACKED_BACKGROUND=none POWERLEVEL9K_VCS_MODIFIED_BACKGROUND=none POWERLEVEL9K_VCS_LOADING_BACKGROUND=none POWERLEVEL9K_VCS_CLEAN_FOREGROUND="040" POWERLEVEL9K_VCS_UNTRACKED_FOREGROUND="red" POWERLEVEL9K_VCS_MODIFIED_FOREGROUND="yellow" POWERLEVEL9K_VCS_LOADING_FOREGROUND="grey" POWERLEVEL9K_VCS_UNTRACKED_ICON=$'%' POWERLEVEL9K_VCS_UNSTAGED_ICON=$'%' POWERLEVEL9K_VCS_STAGED_ICON=$'%' POWERLEVEL9K_DIR_NOT_WRITABLE_VISUAL_IDENTIFIER_COLOR=red POWERLEVEL9K_LOCK_ICON=$'\uf023' POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX='' local p='%F< %(?.green.red)>$:#vicmd>:+❯>$<$<$((!$<#$:#vicmd>)):#0>:+❮>%f ' POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX="$p" POWERLEVEL9K_NVM_BACKGROUND=none POWERLEVEL9K_NVM_FOREGROUND=green POWERLEVEL9K_NODE_ICON='%fvia %F⬢' ############ END- POWERLEVEL THEME SETTINGS ##############

Включите плагины

Мы можем завершить настройку, включив плагины и некоторые опции.

plugins=(zsh-autosuggestions git docker docker-compose autojump zsh-syntax-highlighting dnf npm) source $ZSH/oh-my-zsh.sh

Все готово. Открывайте новую сессию терминала и наслаждайтесь.

Возможные проблемы и их решение

Если вы используете эмулятор терминала Tilix, вам может понадобиться еще кое-что. Добавьте это в файл ~/.zshrc

if [[ $TILIX_ID ]]; then source /etc/profile.d/vte.sh fi

Если вы получаете сообщения об ошибках от плагина zsh-completion, можно добавить вот это в начале вашего файла ~/.zshrc

# workaround as per https://superuser.com/questions/1222867/zsh-completion-functions-broken FPATH=$HOME/.oh-my-zsh/plugins/git:$HOME/.oh-my-zsh/functions:$HOME/.oh-my-zsh/completions:/usr/share/zsh/site-functions:/usr/share/zsh/$ZSH_VERSION/functions export FPATH

Если вы получите ошибку от Oh-My-Zsh, где сказано [oh-my-zsh] Insecure completion-dependent directories detected , установите ZSH_DISABLE_COMPFIX=true непосредственно перед строкой source $ZSH/oh-my-zsh.sh в вашем файле ~/.zshrc и перезагрузите сессию или запустите exec zsh .

Докеризованная игровая площадка

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

docker run -e LANG=C.UTF-8 -e LC_ALL=C.UTF-8 -e TERM=$TERM -it --rm ubuntu bash -uexc ' apt update && apt install -y git curl zsh autojump && cd /root sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" --skip-chsh --unattended git clone https://github.com/zsh-users/zsh-autosuggestions $/plugins/zsh-autosuggestions git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $/plugins/zsh-syntax-highlighting git clone https://github.com/romkatv/powerlevel10k.git $/themes/powerlevel10k curl -fsSLO http://bit.ly/Spaceship10kTheme echo "source ~/Spaceship10kTheme" >~/.zshrc exec zsh'

Совет для пользователей VSCode

Если вы, как и я, пользуетесь VSCode, можно кое-что сделать, чтобы интегрированный терминал в редакторе был таким же, как в системе.

  • Загрузите и установите patched font.
  • В Linux запустите fc-cache -f -v для обновления кэша шрифтов.
  • В VSCode откройте Preferences → Settings и нажмите на иконку <> , чтобы открыть JSON. установите там следующие правила:
"terminal.integrated.shell.linux": "/usr/bin/zsh", "terminal.integrated.fontFamily": "'SauceCodePro Nerd Font Mono','Source Code Pro'", "terminal.integrated.rightClickCopyPaste": true, "terminal.integrated.fontSize": 14, "terminal.integrated.cursorStyle": "underline", "terminal.integrated.cursorBlinking": true

Если у вас Mac, замените linux на osx .

Надеюсь, вам понравится результат.

Источник

Оцените статью
Adblock
detector