From 7b1fb4b1a574a16bbb20ef7ed567998a6131151c Mon Sep 17 00:00:00 2001 From: Artem Dolgiy Date: Fri, 10 Jan 2025 17:29:16 +0300 Subject: [PATCH] init commit --- .config/tmux/tmux.conf | 88 ++++++++++++++++++++ README.md | 185 +++++++++++++++++++++++++++++++++++++++++ tmux_zsh_install.sh | 47 +++++++++++ 3 files changed, 320 insertions(+) create mode 100644 .config/tmux/tmux.conf create mode 100644 README.md create mode 100644 tmux_zsh_install.sh diff --git a/.config/tmux/tmux.conf b/.config/tmux/tmux.conf new file mode 100644 index 0000000..e8f1984 --- /dev/null +++ b/.config/tmux/tmux.conf @@ -0,0 +1,88 @@ +######################### +### TMUX CLI COMMANDS ### +######################### + +# Reload tmux configuration tmux source ~/.config/tmux/tmux.conf +# Attach to an existing session tmux attach -t session_name +# Kill all tmux processes pkill -f tmux +# Install specified plugins via TPM prefix + I +# Run custom shell script at startup run-shell "~/your/command.sh" +# (in tmux.conf) + + +######################## +### GENERAL SETTINGS ### +######################## + +set -g base-index 1 # Start window numbering at 1 +set -g pane-base-index 1 # Start pane numbering at 1 +set -g aggressive-resize on # Automatically resize panes on window size change +set -g history-limit 10000 # Keep 10,000 lines in scrollback buffer +set -g set-titles on # Enable automatic title updates +set -g mouse on # Enable mouse support +set -g mode-style "fg=black,bg=blue" # Customize text selection colors in copy mode +#set -g status-position top # Place status bar at top +set -g default-shell /usr/bin/zsh # Set default shell +set -g default-command /usr/bin/zsh # Set default shell command +set-environment -g LC_CTYPE "ru_RU.UTF-8" # Set environment encoding for Russian + + + +#################### +### PLUGINS LIST ### +#################### + +# List of plugins +set -g @plugin 'tmux-plugins/tpm' +set -g @plugin 'tmux-plugins/tmux-sensible' +set -g @plugin 'dracula/tmux' + +# available plugins: battery, cpu-usage, git, gpu-usage, ram-usage, tmux-ram-usage, network, network-bandwidth, network-ping, ssh-session, attached-clients, network-vpn, weather, time, mpc, spotify-tui, kubernetes-context, synchronize-panes +set -g @dracula-plugins "cpu-usage ram-usage time" + +# available colors: white, gray, dark_gray, light_purple, dark_purple, cyan, green, orange, red, pink, yellow +# set -g @dracula-[plugin-name]-colors "[background] [foreground]" +# set -g @dracula-cpu-usage-colors "dark_purple white" +set -g @dracula-cpu-usage-colors "green dark_gray" + +set -g @dracula-show-timezone false +set -g @dracula-day-month true +set -g @dracula-military-time true +# set -g @dracula-time-format "%F %R" +set -g @dracula-time-format "%H:%M, %d %b %Y г." + +set -g @dracula-show-powerline true + +# for left +set -g @dracula-show-left-sep  + +# for right symbol (can set any symbol you like as separator) +set -g @dracula-show-right-sep  + +set -g @dracula-show-flags true + +# it can accept `hostname` (full hostname), `session`, `shortname` (short name), `smiley`, `window`, or any character. +set -g @dracula-show-left-icon session + + +# Other examples: +# set -g @plugin 'github_username/plugin_name' +# set -g @plugin 'git@github.com:user/plugin' +# set -g @plugin 'git@bitbucket.com:user/plugin' + + + +###################### +### PLUGINS CONFIG ### +###################### + +# Ensure TPM plugin is installed +if "test ! -d ~/.config/tmux/plugins/tpm" \ + "run 'git clone https://github.com/tmux-plugins/tpm ~/.config/tmux/plugins/tpm'" + +# Autoinstall other plugins on new machine +run '~/.config/tmux/plugins/tpm/tpm' +run '~/.config/tmux/plugins/tpm/bin/install_plugins' + +# Initialize TPM (keep this line at very bottom of tmux.conf) +run '~/.config/tmux/plugins/tpm/tpm' diff --git a/README.md b/README.md new file mode 100644 index 0000000..7e27f9d --- /dev/null +++ b/README.md @@ -0,0 +1,185 @@ +# Первоначальная настройка GNU Linux после установки + +В репозитории собраны некоторые конфигурационные файлы для комфортной работы в консоли GNU Linux + +Для упрощения процесса настройки можно воспользоваться [установочным скриптом](install.sh) + +- [Первоначальная настройка GNU Linux после установки](#первоначальная-настройка-gnu-linux-после-установки) + - [Автонастройка](#автонастройка) + - [Ручная настройка](#ручная-настройка) + - [Tmux](#tmux) + - [Установка tmux](#установка-tmux) + - [Скачивание конфига и запуск](#скачивание-конфига-и-запуск) + - [Оболочка zsh](#оболочка-zsh) + - [Oh-My-Zsh — популярный и активно развивающийся фреймворк Zsh, который позволяет гибко настроить оболочку терминала](#oh-my-zsh--популярный-и-активно-развивающийся-фреймворк-zsh-который-позволяет-гибко-настроить-оболочку-терминала) + - [Подсветка синтаксиса в консоли при вводе - `zsh-syntax-highlighting`](#подсветка-синтаксиса-в-консоли-при-вводе---zsh-syntax-highlighting) + - [Автодополнение команд из истории](#автодополнение-команд-из-истории) + - [Внешний вид - плагин PowerLevel10K](#внешний-вид---плагин-powerlevel10k) + - [Установить шрифт с поддержкой иконок](#установить-шрифт-с-поддержкой-иконок) + - [Установить непосредственно плагин PowerLevel10K для Oh My Zsh](#установить-непосредственно-плагин-powerlevel10k-для-oh-my-zsh) + - [Настройка](#настройка) + - [Aliases](#aliases) + +## Автонастройка + +Для упрощения процесса настройки можно воспользоваться [установочным скриптом](install.sh) + +- выполнится установка `tmux`, из репозитория будет скопирован конфигурационный файл с настройками. Первый запуск будет долгим, т.к. будут скачаны темы и плагины +- выполнится установка `zsh` и плагинов `zsh-syntax-highlighting` (подсветка известных команд) `zsh-autosuggestions` (автодополнение команд из истории) +- выполнится установка и настройка фреймворка для `zsh` - [Oh-My-Zsh](https://ohmyz.sh/) +- для пользователя произойдёт смена оболочки на `zsh` +- [PowerLevel10K](https://github.com/romkatv/powerlevel10k) установлен НЕ БУДЕТ, т.к. требует интерактивной настройки при первом запуске + +```shell +wget https://git.da2001.ru/da2001/dots/raw/branch/main/tmux_zsh_install.sh +``` + +Скрипт необходимо запукать от имени текущего пользователя. Пользователь должен имень привилегии `sudo`, в процессе выполнения скрипт попросит ввести пароль для установки пакетов и смены консоли пользователя. + +```shell +bash install.sh +``` + +## Ручная настройка + +### Tmux + +#### Установка tmux + +```shell +sudo apt-get update && sudo apt-get install -y curl git tmux +``` + +#### Скачивание конфига и запуск + +Плагины установятся автоматически + +```shell +curl --create-dirs -fLo \ + ~/.config/tmux/tmux.conf \ + https://git.da2001.ru/da2001/dots/raw/branch/main/.config/tmux/tmux.conf +``` + +После скачивания конфига можно запускать tmux, первый запуск будет долгим, т.к. потребуется скачать плагины + +```shell +tmux +``` + +### Оболочка zsh + +```shell +sudo apt-get update && sudo apt-get install -y zsh zsh-syntax-highlighting +``` + +#### [Oh-My-Zsh](https://ohmyz.sh/) — популярный и активно развивающийся фреймворк Zsh, который позволяет гибко настроить оболочку терминала + +Установка - [тыц](https://ohmyz.sh/#install) + +```sh +sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" +``` + +#### Подсветка синтаксиса в консоли при вводе - `zsh-syntax-highlighting` + + + +```shell +sudo apt-get update && sudo apt-get install -y zsh-syntax-highlighting +``` + +Для активации подсветки синтаксиса необходимо добавить путь к скрипту в настройки `.zshrc` + +```shell +echo "source /usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> ${ZDOTDIR:-$HOME}/.zshrc +``` + +#### Автодополнение команд из истории + + + +Установка в Oh My Zsh + +```shell +git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions +``` + +Добавить плагин к списку плагинов Oh My Zsh `~/.zshrc`: + +```shell +plugins=( + # other plugins... + zsh-autosuggestions +) +``` + +Для дефолтного zsh + +```sh +source ~/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh +``` + +Перезагрузить оболочку + +```sh +source ~/.zshrc +``` + +#### Внешний вид - плагин PowerLevel10K + +Тема [PowerLevel10K](https://github.com/romkatv/powerlevel10k) + +##### Установить шрифт с поддержкой иконок + +```shell +https://github.com/ryanoasis/nerd-fonts?tab=readme-ov-file#font-installation +``` + +если кратко: + +```shell +apt-get install -y fontconfig +mkdir -p ~/.local/share/fonts +curl -OL https://github.com/ryanoasis/nerd-fonts/releases/latest/download/JetBrainsMono.tar.xz +tar -xvf JetBrainsMono.tar.xz -C ~/.local/share/fonts +rm JetBrainsMono.tar.xz +fc-cache +``` + +##### Установить непосредственно плагин PowerLevel10K для Oh My Zsh + +```shell +git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k +``` + +В настройках `~/.zshrc` заменить значение темы на + +```shell +ZSH_THEME="powerlevel10k/powerlevel10k" +``` + +##### Настройка + +После первого запуска консоли будет запущен мастер настройки внешнего вида PowerLevel10K + +### Aliases + +При переключении между `bash` и `zsh` удобнее иметь единый файл для псевдонимов (aliases) - `.aliases` и связать его с `.bashrc` и `.zshrc`: + +```shell +.bashrc +if [ -f ~/.aliases ]; then + . ~/.aliases +fi +``` + +```shell +.zshrc +source $HOME/.aliases +``` + +```shell +.aliases +alias ip='ip --color=auto' +alias ssht='ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no' +``` diff --git a/tmux_zsh_install.sh b/tmux_zsh_install.sh new file mode 100644 index 0000000..426869f --- /dev/null +++ b/tmux_zsh_install.sh @@ -0,0 +1,47 @@ +#!/bin/bash + +#set -x + +sudo apt-get update +sudo apt-get install -y curl git tmux zsh zsh-syntax-highlighting + +# Tmux config +curl --create-dirs -fLo \ + ~/.config/tmux/tmux.conf \ + https://git.da2001.ru/da2001/dots/raw/branch/main/.config/tmux/tmux.conf + +# Install Oh My Zsh +sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended +sed -i 's/^ZSH_THEME=.*/ZSH_THEME="tjkirch"/g' ~/.zshrc + +# Install zsh-syntax-highlighting +echo "source /usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> ${ZDOTDIR:-$HOME}/.zshrc + +# Install zsh-autosuggestions +git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions +sed -i 's/^plugins=.*[^\)]/& zsh-autosuggestions/g' ~/.zshrc + +# Aliases +echo "Create => .aliases" +cat << EOF >> ~/.aliases +alias ip='ip --color=auto' +alias ssht='ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no' +EOF + +echo "Add link .aliases to .bashrc" +cat << EOF >> ~/.bashrc +if [ -f ~/.aliases ]; then + . ~/.aliases +fi +EOF + +echo "Add link .aliases to .zshrc" +cat << EOF >> ~/.zshrc +source ~/.aliases +EOF + +# Shell to zsh +echo "Change sheel for $USER" +sudo -k chsh -s "$(which zsh)" "$USER" # -k forces the password prompt + +echo "ALL Done. Relogin for apply settings."