diff --git a/roles/dots/files/config/kitty/current-theme.conf b/roles/dots/files/config/kitty/current-theme.conf index 716499a..8c845bb 100644 --- a/roles/dots/files/config/kitty/current-theme.conf +++ b/roles/dots/files/config/kitty/current-theme.conf @@ -1,33 +1,59 @@ -## name: Gruvbox Light -## author: Pavel Pertsev -## license: MIT/X11 -## upstream: https://raw.githubusercontent.com/gruvbox-community/gruvbox-contrib/master/kitty/gruvbox-light.conf +# vim:ft=kitty +## name: Doom One +## author: Henrik Lissner +## license: MIT +## blurb: Inspired by Atom's One Dark color scheme. -selection_foreground #3c3836 -selection_background #d65d0e +# The basic colors +foreground #bbc2cf +background #282c34 +selection_foreground #bbc2cf +selection_background #3f444a -background #fbf1c7 -foreground #3c3836 +# Cursor colors +cursor #bbc2cf +cursor_text_color #282c34 -color0 #ebdbb2 -color1 #cc241d -color2 #98971a -color3 #d79921 -color4 #458588 -color5 #b16286 -color6 #689d6a -color7 #7c6f64 -color8 #928374 -color9 #9d0006 -color10 #79740e -color11 #b57614 -color12 #076678 -color13 #8f3f71 -color14 #427b58 -color15 #282828 +# kitty window border colors +active_border_color #46D9FF +inactive_border_color #3f444a -cursor #665c54 -cursor_text_color #bdae93 +# Tab bar colors +active_tab_foreground #282c34 +active_tab_background #DFDFDF +inactive_tab_foreground #3f444a +inactive_tab_background #5B6268 -url_color #458588 +# The basic 16 colors +# black +color0 #2a2e38 +color8 #3f444a + +# red +color1 #ff6c6b +color9 #ff6655 + +# green +color2 #98be65 +color10 #99bb66 + +# yellow +color3 #ECBE7B +color11 #ECBE7B + +# blue +color4 #51afef +color12 #51afef + +# magenta +color5 #c678dd +color13 #c678dd + +# cyan +color6 #46D9FF +color14 #46D9FF + +# white +color7 #DFDFDF +color15 #bbc2cf diff --git a/roles/dots/files/config/kitty/doom-one.conf b/roles/dots/files/config/kitty/doom-one.conf new file mode 100644 index 0000000..8c845bb --- /dev/null +++ b/roles/dots/files/config/kitty/doom-one.conf @@ -0,0 +1,59 @@ +# vim:ft=kitty + +## name: Doom One +## author: Henrik Lissner +## license: MIT +## blurb: Inspired by Atom's One Dark color scheme. + +# The basic colors +foreground #bbc2cf +background #282c34 +selection_foreground #bbc2cf +selection_background #3f444a + +# Cursor colors +cursor #bbc2cf +cursor_text_color #282c34 + +# kitty window border colors +active_border_color #46D9FF +inactive_border_color #3f444a + +# Tab bar colors +active_tab_foreground #282c34 +active_tab_background #DFDFDF +inactive_tab_foreground #3f444a +inactive_tab_background #5B6268 + +# The basic 16 colors +# black +color0 #2a2e38 +color8 #3f444a + +# red +color1 #ff6c6b +color9 #ff6655 + +# green +color2 #98be65 +color10 #99bb66 + +# yellow +color3 #ECBE7B +color11 #ECBE7B + +# blue +color4 #51afef +color12 #51afef + +# magenta +color5 #c678dd +color13 #c678dd + +# cyan +color6 #46D9FF +color14 #46D9FF + +# white +color7 #DFDFDF +color15 #bbc2cf diff --git a/roles/dots/files/config/kitty/henna.conf b/roles/dots/files/config/kitty/henna.conf new file mode 100644 index 0000000..ef82738 --- /dev/null +++ b/roles/dots/files/config/kitty/henna.conf @@ -0,0 +1,39 @@ +background #21272e +foreground #f8f8f0 +cursor #f8f8f0 + +# Black (base colors) +color0 #10151a +color8 #181A1F + +# Red +color1 #e74c3c +color9 #e74c3c + +# Green +color2 #53df83 +color10 #9cd230 + +# Yellow +color3 #ECBE7B +color11 #ECBE7B + +# Blue +color4 #56b5c2 +color12 #2257A0 + +# Magenta +color5 #FFB8D1 +color13 #C5A3FF + +# Cyan +color6 #56b6c2 +color14 #2e4a54 + +# White +color7 #495162 +color15 #606F73 + +# Selection and other customizations +selection_background #1B1F23 +selection_foreground #f8f8f0 diff --git a/roles/dots/files/config/kitty/kitty.conf b/roles/dots/files/config/kitty/kitty.conf index 07b1e91..9c243c7 100644 --- a/roles/dots/files/config/kitty/kitty.conf +++ b/roles/dots/files/config/kitty/kitty.conf @@ -1,12 +1,12 @@ -font_size 12 -# font_family JetBrainsMonoNl Nerd Font Mono -font_family Firacode Nerd Font +font_size 16 +font_family JetBrainsMonoNl Nerd Font Mono +# font_family Firacode Nerd Font bold_font auto italic_font auto bold_italic_font auto # background_opacity 1 -background_opacity 0.9 +background_opacity 0.92 window_padding_width 15 allow_remote_control yes enable_audio_bell no @@ -20,15 +20,16 @@ map ctrl+m paste_from_clipboard # BEGIN_KITTY_THEME -# Gruvbox Light +# Doom One # include current-theme.conf -# include solarized_light.conf -# include ayu.conf -# include tomorrow-night.conf include gruvbox.conf -# include gruvbox_light.conf -# include everforset-theme.conf +# include space_grey.conf +# include doom-one.conf # include nord.conf -# include everforset-theme.conf -# include solarized_light.conf +# include dracula.conf +# include monokai-pro.conf +# include iceberg.conf +# include tokyo_night.conf +# include black-metal.conf +# include henna.conf # END_KITTY_THEME diff --git a/roles/dots/files/config/kitty/kitty.conf.bak b/roles/dots/files/config/kitty/kitty.conf.bak index f1156dd..fa238c7 100644 --- a/roles/dots/files/config/kitty/kitty.conf.bak +++ b/roles/dots/files/config/kitty/kitty.conf.bak @@ -1,12 +1,12 @@ font_size 16 -font_family JetBrainsMonoNl Nerd Font Mono -# font_family Firacode Nerd Font +# font_family JetBrainsMonoNl Nerd Font Mono +font_family Firacode Nerd Font bold_font auto italic_font auto bold_italic_font auto -# background_opacity 0.9 -background_opacity 1 +# background_opacity 1 +background_opacity 0.92 window_padding_width 15 allow_remote_control yes enable_audio_bell no @@ -20,6 +20,9 @@ map ctrl+m paste_from_clipboard # BEGIN_KITTY_THEME -# Solarized Light -include current-theme.conf +# Solarized Dark +# include current-theme.conf +# include gruvbox.conf +# include solarized_light.conf +include tomorrow-night.conf # END_KITTY_THEME diff --git a/roles/dots/files/config/kitty/kitty_note b/roles/dots/files/config/kitty/kitty_note index 187a666..e826ab6 100644 --- a/roles/dots/files/config/kitty/kitty_note +++ b/roles/dots/files/config/kitty/kitty_note @@ -1,2 +1,2 @@ # set theme -kitty +kitten themes --reload-in=all Nord +kitty +kitten themes --reload-in=all Doom One diff --git a/roles/dots/files/config/nvim/lua/some/packer_setting.lua b/roles/dots/files/config/nvim/lua/some/packer_setting.lua index 6a49863..1052a33 100755 --- a/roles/dots/files/config/nvim/lua/some/packer_setting.lua +++ b/roles/dots/files/config/nvim/lua/some/packer_setting.lua @@ -11,24 +11,30 @@ vim.g.everforest_background = 'hard' -- vim.cmd('colorscheme doom-one') -- vim.cmd('colorscheme dracula-soft') -- vim.cmd('colorscheme solarized') --- vim.cmd('colorscheme gruvbox') vim.cmd('colorscheme gruvbox') -- vim.cmd('colorscheme iceberg') -- vim.cmd('colorscheme lake') +-- vim.cmd('colorscheme tokyonight') -- vim.cmd('highlight Normal guibg=#000000 ctermbg=black') vim.api.nvim_set_hl(0, 'CursorLine', { underline = true }) -- vim.cmd('highlight Normal guibg=none') -- цвет номеров строк --- vim.cmd('hi linenr guifg=white') -vim.cmd('hi linenr guifg=#D3C6AA') +vim.cmd('hi linenr guifg=white') +-- vim.cmd('hi linenr guifg=#D3C6AA') -- telescope local builtin = require('telescope.builtin') -- Функция для поиска файлов, исключая скрытые local function custom_file_search() builtin.find_files({ prompt_title = "< Search without hidden files >", - find_command = { "find", ".", "-type", "f", "-not", "-path", "*/.*" }, + find_command = { + "find", ".", "-type", "f", + "-not", "-path", "*/.*", + "-not", "-path", "./env/*", + "-not", "-path", "./fonts/*", + "-not", "-path", "*.pyc" + }, }) end @@ -87,7 +93,8 @@ end, {remap=true}) -- auto pairs -- Настройка символов, для которых будет автоматически вставляться закрывающая скобка require('nvim-autopairs').setup{} -require("no-neck-pain").setup({ width = 150 }) +-- require("no-neck-pain").setup({ width = 150 }) +require("no-neck-pain").setup({ width = 180 }) -- harpoon print(vim.api.nvim_win_get_width(0)) diff --git a/roles/dots/files/home/.bashrc b/roles/dots/files/home/.bashrc index 3f5b425..b98ab5c 100644 --- a/roles/dots/files/home/.bashrc +++ b/roles/dots/files/home/.bashrc @@ -17,6 +17,7 @@ echo "" PS1='\w$(git rev-parse --is-inside-work-tree &>/dev/null && echo " ($(git branch 2>/dev/null | grep '\''^\*'\'' | colrm 1 2))") $ ' export VISUAL=nvim +export MANPAGER='nvim +Man!' export EDITOR="$VISUAL" function tmux_create_session_with_FZF() { diff --git a/roles/dots/files/home/.emacs.d/config.org b/roles/dots/files/home/.emacs.d/config.org index 5fd198b..aacc025 100644 --- a/roles/dots/files/home/.emacs.d/config.org +++ b/roles/dots/files/home/.emacs.d/config.org @@ -4,13 +4,16 @@ * :toc: - [[#auto-install-packages][auto install packages]] + - [[#setup-use-package][Setup use-package]] - [[#common][common]] + - [[#ui][UI]] - [[#main-packages][main packages]] - [[#general-keybindings][General keybindings]] - [[#evil-mode][Evil Mode]] - [[#ivy][Ivy]] - [[#counsel][Counsel]] - [[#dired][dired]] + - [[#image-viewer][Image Viewer]] - [[#openwith][openwith]] - [[#org-download][org-download]] - [[#perspective][perspective]] @@ -48,6 +51,9 @@ - [[#programs][Programs]] - [[#emms][emms]] - [[#latex-pdf][Latex (pdf)]] +- [[#exwm][EXWM]] + - [[#setup-windows-hotkey][setup windows hotkey]] + - [[#setup-wm][setup wm]] - [[#scripts][scripts]] - [[#add-projectile-project][add projectile project]] - [[#rest][REST]] @@ -57,60 +63,71 @@ * auto install packages #+begin_src emacs-lisp (require 'package) -(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t) +;; (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t) +(setq package-archives '(("melpa" . "https://melpa.org/packages/") + ("gnu" . "https://elpa.gnu.org/packages/"))) (package-initialize) +(unless package-archive-contents + (package-refresh-contents)) + +;; Список пакетов для установки. +;; (defvar my-required-packages +;; '(doom-themes +;; doom-modeline +;; evil +;; evil-collection +;; evil-surround +;; evil-snipe +;; which-key +;; general +;; key-chord +;; toc-org +;; org-bullets +;; projectile +;; sudo-edit +;; ivy +;; counsel +;; harpoon +;; bm +;; vterm +;; org-download +;; restclient +;; magit +;; magit-delta +;; image-dired +;; yaml-mode + +;; ;; decorations +;; rainbow-mode +;; all-the-icons +;; all-the-icons-dired ;; M-x all-the-icons-install-fonts +;; centered-window +;; nyan-mode +;; perfect-margin +;; hl-todo +;; ligature + +;; tree-sitter +;; diff-hl +;; dired-subtree +;; tree-sitter-langs +;; flycheck +;; flycheck-pycheckers +;; ;; python +;; elpy +;; ;; copilot +;; ;; editorconfig +;; ; jsonrpc +;; haskell-mode + +;; ;; frontend +;; web-mode +;; )) + ;; Список пакетов для установки. (defvar my-required-packages - '(doom-themes - doom-modeline - evil - evil-collection - evil-surround - evil-snipe - which-key - general - key-chord - toc-org - org-bullets - projectile - sudo-edit - ivy - counsel - harpoon - bm - vterm - org-download - restclient - magit - magit-delta - image-dired - - ;; decorations - rainbow-mode - all-the-icons - all-the-icons-dired ;; M-x all-the-icons-install-fonts - centered-window - nyan-mode - perfect-margin - hl-todo - ligature - - tree-sitter - diff-hl - dired-subtree - tree-sitter-langs - flycheck - flycheck-pycheckers - ;; python - elpy - ;; copilot - ;; editorconfig - ; jsonrpc - haskell-mode - - ;; frontend - web-mode + '(org-download )) ;; Установите недостающие пакеты. @@ -119,17 +136,17 @@ (package-install p))) #+end_src +** Setup use-package +#+begin_src emacs-lisp +;; This is only needed once, near the top of the file +(require 'use-package) +#+end_src + * common #+begin_src emacs-lisp -(menu-bar-mode -1) ; Отключение меню-бара -(tool-bar-mode -1) ; Отключение панели инструментов -(scroll-bar-mode -1) ; Отключение вертикальной полосы прокрутки -(show-paren-mode 1) ; Включение подсветки соответствующих скобок - (setq make-backup-files nil) ; Отключение создания файлов резервных копий (файлов с суффиксом ~) (setq auto-save-default nil) ; Отключение автосохранения и создания файлов с префиксом .# -(setq inhibit-startup-screen t) ; Отключение стартового экрана при запуске Emacs (setq-default isearch-lazy-highlight t) ; Включение "ленивой" подсветки при поиске @@ -143,15 +160,30 @@ (setq default-buffer-file-coding-system 'utf-8) ; Установка системы кодирования файловых буферов на UTF-8 (setq scroll-conservatively 10000) ; Установка плавного скроллинга без резкого перемещения экрана (electric-pair-mode 1) ; автоматически закрывать скопки -;; (global-hl-line-mode 1) ; cursor line (add-hook 'before-save-hook 'delete-trailing-whitespace) ; Удаление пустых пробелов в конце строк перед сохранением файла (blink-cursor-mode 0) ; cursorline (setq display-fill-column-indicator nil) ; отключить вертикальные линии (setq warning-minimum-level :error) ; отключить предупреждения + +;; (setq indent-tabs-mode nil) ;; Использовать пробелы вместо табов +;; (setq tab-width 4) +#+end_src + +** UI +#+begin_src emacs-lisp +(setq inhibit-startup-screen t) ; Отключение стартового экрана при запуске Emacs +(menu-bar-mode -1) ; Отключение меню-бара +(tool-bar-mode -1) ; Отключение панели инструментов +(scroll-bar-mode -1) ; Отключение вертикальной полосы прокрутки +(show-paren-mode 1) ; Включение подсветки соответствующих скобок +#+end_src + +*** Cursor LIne +#+begin_src emacs-lisp +(global-hl-line-mode 1) ; cursor line #+end_src * main packages - ** General keybindings https://github.com/noctuid/general.el *** Setup @@ -194,7 +226,12 @@ https://github.com/emacs-evil/evil :config (evil-mode 1) (define-key evil-normal-state-map "p" 'evil-paste-after) - (setq evil-kill-on-visual-paste nil)) + (setq evil-kill-on-visual-paste nil) + + (define-key evil-normal-state-map (kbd ",") 'evil-scroll-up) + (define-key evil-normal-state-map (kbd ".") 'evil-scroll-down) + (define-key evil-normal-state-map (kbd "'") 'evil-execute-macro) +) (use-package evil-collection :after evil @@ -220,15 +257,12 @@ https://github.com/emacs-evil/evil *** KeyBing #+begin_src emacs-lisp -(require 'key-chord) -(key-chord-mode 1) -(key-chord-define evil-insert-state-map "jk" 'evil-normal-state) -(key-chord-define evil-insert-state-map "kj" 'evil-normal-state) - -(define-key evil-normal-state-map (kbd ",") 'evil-scroll-up) -(define-key evil-normal-state-map (kbd ".") 'evil-scroll-down) - -(define-key evil-normal-state-map (kbd "'") 'evil-execute-macro) +(use-package key-chord + :ensure t + :config + (key-chord-mode 1) + (key-chord-define evil-insert-state-map "jk" 'evil-normal-state) + (key-chord-define evil-insert-state-map "kj" 'evil-normal-state)) (spc-leader "l l" 'evil-scroll-line-to-center) @@ -236,38 +270,74 @@ https://github.com/emacs-evil/evil ** Ivy +пакет для Emacs, который предоставляет интерфейс для интерактивного выбора (completion) и навигации. Это часть экосистемы swiper и counsel и часто используется для упрощения работы с различными функциями Emacs + *** Setup #+begin_src emacs-lisp +;; (use-package ivy +;; :ensure t +;; :init +;; (ivy-mode +1)) + (use-package ivy :ensure t - :init - (ivy-mode +1)) + :config + (ivy-mode 1) ;; Включение Ivy + :bind (:map ivy-minibuffer-map + ("C-l" . ivy-immediate-done) ;; Завершить без проверки + ("RET" . ivy-done) ;; Завершить выбор + ("" . ivy-done) ;; Завершить выбор + ("C-j" . ivy-next-line) ;; Перейти к следующей строке + ("C-k" . ivy-previous-line)) ;; Перейти к предыдущей строке + :custom + (ivy-use-virtual-buffers t) ;; Показывать виртуальные буферы (например, недавние файлы) + (ivy-count-format "(%d/%d) ")) ;; Показывать счетчик выбора -(define-key ivy-minibuffer-map (kbd "C-l") 'ivy-immediate-done) -(define-key ivy-minibuffer-map (kbd "RET") 'ivy-done) -(define-key ivy-minibuffer-map (kbd "") 'ivy-done) -#+end_src -*** KeyBind -#+begin_src emacs-lisp -(define-key ivy-minibuffer-map (kbd "C-j") 'ivy-next-line) -(define-key ivy-minibuffer-map (kbd "C-k") 'ivy-previous-line) +;; (define-key ivy-minibuffer-map (kbd "C-l") 'ivy-immediate-done) +;; (define-key ivy-minibuffer-map (kbd "RET") 'ivy-done) +;; (define-key ivy-minibuffer-map (kbd "") 'ivy-done) +;; (define-key ivy-minibuffer-map (kbd "C-j") 'ivy-next-line) +;; (define-key ivy-minibuffer-map (kbd "C-k") 'ivy-previous-line) #+end_src ** Counsel #+begin_src emacs-lisp -(unless (package-installed-p 'counsel) - (package-refresh-contents) - (package-install 'counsel)) +;; (unless (package-installed-p 'counsel) +;; (package-refresh-contents) +;; (package-install 'counsel)) -(setq counsel-fzf-cmd - (concat - "find . -type f -not -path '*/.*' 2>&1 | " - "grep -v 'Permission denied' | " - "grep -v './env/' | " - "grep -v './fonts/' | " - "grep -v './__pycache__/' | " - "fzf -f '%s'")) +;; (setq counsel-fzf-cmd +;; (concat +;; "find . -type f -not -path '*/.*' 2>&1 | " +;; "grep -v 'Permission denied' | " +;; "grep -v './env/' | " +;; "grep -v './fonts/' | " +;; "grep -v './__pycache__/' | " +;; "grep -v 'site-packages' | " +;; "grep -v '.pyc' | " +;; "grep -v '_minted' | " +;; "fzf -f '%s'")) + + +(use-package counsel + :ensure t + :config + ;; Настройка команды fzf для counsel + (setq counsel-fzf-cmd + (concat + "find . -type f -not -path '*/.*' 2>&1 | " + "grep -v 'Permission denied' | " + "grep -v './env/' | " + "grep -v './fonts/' | " + "grep -v './__pycache__/' | " + "grep -v 'site-packages' | " + "grep -v '.pyc' | " + "grep -v '_minted' | " + "fzf -f '%s'")) + ;; Включение counsel для различных функций + :bind (("M-x" . counsel-M-x) ;; Улучшенная команда M-x + )) #+end_src @@ -398,6 +468,12 @@ https://github.com/emacs-evil/evil ) #+end_src +** Image Viewer +#+begin_src emacs-lisp +(setq imagemagick-enabled-types '("PNG" "JPEG" "GIF" "TIFF")) +(setq image-use-external-converter t) +#+end_src + ** openwith #+begin_src emacs-lisp (use-package openwith @@ -439,6 +515,18 @@ https://github.com/emacs-evil/evil (add-hook 'org-mode-hook 'disable-openwith-in-org-mode) ;; Добавляем хук для активации openwith-mode в dired-mode (add-hook 'dired-mode-hook 'activate-openwith) + + +;; setup open when make frame +(defun setup/openwith () + "Activate openwith in Dired mode." + (when (derived-mode-p 'dired-mode) + (activate-openwith))) + +(add-hook 'after-make-frame-functions + (lambda (_frame) + (with-current-buffer (current-buffer) + (setup/openwith)))) #+end_src @@ -507,8 +595,17 @@ https://github.com/emacs-evil/evil ** doom-modeline #+begin_src emacs-lisp -(require 'doom-modeline) -(doom-modeline-mode 1) +(use-package doom-modeline + :ensure t + :hook (after-init . doom-modeline-mode) ;; Включает doom-modeline после инициализации Emacs + ;; :custom + ;; (doom-modeline-height 15) ;; Высота строки модели + ;; (doom-modeline-bar-width 3) ;; Ширина индикатора + ;; (doom-modeline-icon t) ;; Показывать иконки (зависит от поддержки шрифтов) + ;; (doom-modeline-major-mode-icon t) ;; Показывать иконку режима + ;; (doom-modeline-minor-modes nil) ;; Скрыть список минорных режимов +) + #+end_src @@ -600,6 +697,7 @@ If a Dired buffer is already opened, navigate to that buffer." #+end_src *** KeyBind + add and switch project #+begin_src emacs-lisp (defun projectile/open-and-switch-project (directory) @@ -623,7 +721,7 @@ hot keys "." '(swiper :wk "swiper") "p" '(:ignore t :wk "projectile") - "p a" '(projectile/open-and-switch-project :wk "add project") + "p a" '(projectile/open-and-switch-project :wk "add project and switch") "p s" '(projectile-switch-project :wk "switch project") "p g" '(counsel-rg :wk "project tile grep") ;; "p g" '(lambda () (interactive) (counsel-rg) (recenter) :wk "project tile grep") @@ -639,8 +737,11 @@ hot keys (spc-leader ;; buffer "b" '(:ignore t :wk "buffer") + ;; "b i" '(counsel-ibuffer :wk "Switch ibuffer") "b i" '(ibuffer :wk "Switch ibuffer") + "b c" '(counsel-ibuffer :wk "counsel Switch ibuffer") "b b" '(projectile-switch-to-buffer :wk "Switch buffer") + "b m" '(rename-buffer :wk "rename buffer") "b k" '(:ignore t :wk "kill buffer") "b k t" '(kill-this-buffer :wk "Kill this buffer") @@ -685,7 +786,7 @@ hot keys *** Perfect margin settings #+begin_src emacs-lisp ;; (setq perfect-margin-visible-width 150) -(setq perfect-margin-visible-width 200) +(setq perfect-margin-visible-width 180) #+end_src *** KeyBind @@ -746,6 +847,7 @@ hot keys "o h" '(org-shiftmetaleft :wk "move metric left") "o t" '(org-tree-to-indirect-buffer :wk "tree to inderect buffer") "o o" '(org-cycle-global :wk "org cycle global") + "o ;" '(org-cycle :wk "org cycle global") "o i" '(org-display-inline-images :wk "display image") "o m" '(org-babel-execute-src-block :wk "org babel execute") @@ -757,6 +859,9 @@ hot keys "h RET" '(org-meta-return :wk "org return (insert lists))") ) + +(with-eval-after-load 'org + (define-key org-mode-map (kbd "M-h") nil)) #+end_src ** Org Temo chet sheet @@ -895,7 +1000,7 @@ hot keys ;; (set-frame-parameter nil 'alpha-background 100) ;; (set-frame-parameter nil 'alpha-background 92) -(let ((al 100)) ;; Прозрачность % +(let ((al 92)) ;; Прозрачность % (set-frame-parameter (selected-frame) 'alpha `(,al . ,al)) ;; Прозрачность для текущего фрейма (add-to-list 'default-frame-alist `(alpha . (,al . ,al)))) ;; Прозрачность для всех новых фреймов @@ -938,7 +1043,14 @@ hot keys (interactive) (set-face-attribute 'default nil :font "JetBrainsMonoNL Nerd Font" - :height 150 + :height 140 + :weight 'medium)) + +(defun set-large-font () + (interactive) + (set-face-attribute 'default nil + :font "JetBrainsMonoNL Nerd Font" + :height 200 :weight 'medium)) ;; (set-small-font-wayland) ;; (set-small-font) @@ -946,7 +1058,8 @@ hot keys (spc-leader "c f" '(:ignore t :wk "font") "c f s" '(set-small-font :wk "small font") - "c f b" '(set-big-font :wk "big font")) + "c f b" '(set-big-font :wk "big font") + "c f l" '(set-large-font :wk "l font")) ;; This sets the default font on all graphical frames created after restarting Emacs. ;; Does the same thing as 'set-face-attribute default' above, but emacsclient fonts @@ -1093,7 +1206,6 @@ names, e.g. #0000ff is displayed in white with a blue background. (with-eval-after-load 'emms (define-key emms-playlist-mode-map (kbd "l") 'emms-seek-forward) (define-key emms-playlist-mode-map (kbd "h") 'emms-seek-backward) - (define-key emms-playlist-mode-map (kbd "r") 'emms-repeat) (define-key emms-playlist-mode-map (kbd "o") 'emms-pause) (define-key emms-playlist-mode-map (kbd "C-c k") 'emms-playlist-clear) @@ -1113,7 +1225,7 @@ names, e.g. #0000ff is displayed in white with a blue background. "e d" '(emms-add-dired :wk "add dired tree to playlist") "e t" '(emms-add-directory-tree :wk "dir tree to playlist") "e r" '(emms :wk "start") - "e o" '(emms-toggle-repeat-track :wk "start") + "e a" '(emms-toggle-repeat-track :wk "repeat track") "e s" '(emms-pause :wk "stop") "e k" '(emms-next :wk "next") "e j" '(emms-previous :wk "previous") @@ -1122,8 +1234,8 @@ names, e.g. #0000ff is displayed in white with a blue background. "e u" '(emms-seek-backward :wk "seek-backward 10s") "e w" '(:ignore t :wk "music playlist load/save") - "e w s" '(emms-playlist-save :wk "seek-forward 10s") - "e w l" '(emms-play-m3u-playlist :wk "seek-forward 10s") + "e w s" '(emms-playlist-save :wk "save playlist") + "e w l" '(emms-play-m3u-playlist :wk "load playlist") ) #+end_src @@ -1142,6 +1254,7 @@ https://tug.org/texlive/quickinstall.html "xelatex -interaction nonstopmode %f")) #+end_src + *** настройка каталога PATH #+begin_src emacs-lisp ;; Указываем путь к каталогу LaTeX @@ -1185,6 +1298,39 @@ https://tug.org/texlive/quickinstall.html a4paper — формат бумаги (можно поменять на letterpaper или другой, если требуется). left=2cm, right=2cm, top=2.5cm, bottom=2.5cm — отступы от левой, правой, верхней и нижней границы страницы, соответственно. можно изменить эти значения на нужные размеры в сантиметрах (или дюймах, используя in). + +* EXWM +** setup windows hotkey +*** ace window (для перемещения по окнам) +#+begin_src emacs-lisp +(use-package ace-window + :ensure t + :bind ( + ("M-o" . ace-window) + ("M-s" . ace-swap-window)) + :config + (setq aw-swap-other-window t)) +#+end_src + +*** transpose-frame +#+begin_src emacs-lisp +(use-package transpose-frame + :ensure t + :bind ( + ("M-t" . transpose-frame) +)) +#+end_src + +** setup wm +#+begin_src emacs-lisp +;; (org-babel-load-file +;; (expand-file-name +;; "lib/ex.org" +;; user-emacs-directory)) + +#+end_src + + * scripts ** add projectile project #+begin_src emacs-lisp @@ -1204,8 +1350,8 @@ left=2cm, right=2cm, top=2.5cm, bottom=2.5cm — отступы от левой, (interactive) (let ( (output-buffer (get-buffer-create "*Rest Output*")) - (command (concat "python /home/fs/bin/easy_http.py " buffer-file-name " " (projectile-project-root)))) - ;; (command (concat "/home/fs/bin/http " buffer-file-name " " (projectile-project-root)))) + ;; (command (concat "python /home/fs/bin/easy_http.py " buffer-file-name " " (projectile-project-root)))) + (command (concat "/home/fs/bin/http " buffer-file-name " " (projectile-project-root)))) (save-buffer) (unless (get-buffer-window output-buffer) (split-window-right) diff --git a/roles/dots/files/home/.emacs.d/lib/ex.el b/roles/dots/files/home/.emacs.d/lib/ex.el new file mode 100644 index 0000000..ae3f9b2 --- /dev/null +++ b/roles/dots/files/home/.emacs.d/lib/ex.el @@ -0,0 +1,5 @@ +(use-package exwm + :config + (setq exwm-workspace-number 9) + (exwm-enable)) +(message "----- hi") diff --git a/roles/dots/files/home/.emacs.d/lib/ex.org b/roles/dots/files/home/.emacs.d/lib/ex.org new file mode 100644 index 0000000..0aefa5a --- /dev/null +++ b/roles/dots/files/home/.emacs.d/lib/ex.org @@ -0,0 +1,167 @@ +* Start exwm +#+begin_src emacs-lisp +(defun volume-up () + "Increase the volume by 5%." + (interactive) + (start-process-shell-command "volume-up" nil "pactl set-sink-volume 0 +5%")) + +(defun volume-down () + "Decrease the volume by 5%." + (interactive) + (start-process-shell-command "volume-down" nil "pactl set-sink-volume 0 -5%")) + +(defun volume-mute-toggle () + "Toggle mute." + (interactive) + (start-process-shell-command "volume-mute" nil "pactl set-sink-mute 0 toggle")) + +(defun change-lan () + "change language" + (interactive) + (start-process-shell-command "change-local" nil "bash /home/fs/bin/change_layout.sh")) + +(defun make-screenshot () + "change language" + (interactive) + (start-process-shell-command "make-screenshot" nil "flameshot gui")) + +(defun my-hide-current-buffer () + "Скрыть текущий буфер." + (interactive) + (scratch-buffer) + (delete-window)) + +(defun efs/exwm-update-class () + (exwm-workspace-rename-buffer exwm-class-name)) + +(defun efs/exwm-init () + (exwm-workspace-switch-create 1) +) + +(use-package exwm + :config + ;; Set the default number of workspaces + (setq exwm-workspace-number 10) + + ;; When window "class" updates, use it to set the buffer name + (add-hook 'exwm-update-class-hook #'efs/exwm-update-class) + + (add-hook 'exwm-init-hook #'efs/exwm-init) + + ;; These keys should always pass through to Emacs + (setq exwm-input-prefix-keys + '(?\C-x + ?\C-u + ;; ?\C-h + ?\M-x + ?\M-` + ?\M-& + ?\M-: + ?\M-r + ?\M-j ; move + ?\M-k ; move + ?\M-h ; move + ?\M-l ; move + ?\M-J ; move swap + ?\M-K ; move swap + ?\M-H ; move swap + ?\M-L ; move swap + ?\M-n ; buffers + ?\M-p ; buffers + ?\M-\ ; + ?\M-- ; + ?\M-m ; hide buffer + ?\M-1 ; workspace + ?\M-2 ; workspace + ?\M-3 ; workspace + ?\M-4 ; workspace + ?\M-5 ; workspace + ?\M-6 ; workspace + ?\M-7 ; workspace + ?\M-8 ; workspace + ?\M-9 ; workspace + ?\s-\ ; + ?\C-\M-j ;; Buffer list + ?\C-\ )) ;; Ctrl+Space + + ;; Ctrl+Q will enable the next key to be sent directly + (define-key exwm-mode-map [?\C-q] 'exwm-input-send-next-key) + + ;; Set up global key bindings. These always work, no matter the input state! + ;; Keep in mind that changing this list after EXWM initializes has no effect. + (global-set-key (kbd "s-SPC") 'change-lan) + (global-set-key (kbd "M-.") 'change-lan) + (global-set-key (kbd "M-ю") 'change-lan) + (global-set-key (kbd "M--") 'change-lan) + (global-set-key (kbd "M-r") 'counsel-linux-app) + (global-set-key (kbd "M-m") 'my-hide-current-buffer) + + (global-set-key (kbd "M-n") 'next-buffer) + (global-set-key (kbd "M-p") 'previous-buffer) + + (global-set-key (kbd "M-1") (lambda () (interactive) (exwm-workspace-switch-create 1))) + (global-set-key (kbd "M-2") (lambda () (interactive) (exwm-workspace-switch-create 2))) + (global-set-key (kbd "M-3") (lambda () (interactive) (exwm-workspace-switch-create 3))) + (global-set-key (kbd "M-4") (lambda () (interactive) (exwm-workspace-switch-create 4))) + (global-set-key (kbd "M-5") (lambda () (interactive) (exwm-workspace-switch-create 5))) + (global-set-key (kbd "M-6") (lambda () (interactive) (exwm-workspace-switch-create 6))) + (global-set-key (kbd "M-7") (lambda () (interactive) (exwm-workspace-switch-create 7))) + (global-set-key (kbd "M-8") (lambda () (interactive) (exwm-workspace-switch-create 8))) + (global-set-key (kbd "M-9") (lambda () (interactive) (exwm-workspace-switch-create 9))) + + (global-set-key (kbd "M-h") (lambda () (interactive) (windmove-left))) + (global-set-key (kbd "M-l") (lambda () (interactive) (windmove-right))) + (global-set-key (kbd "M-j") (lambda () (interactive) (windmove-down))) + (global-set-key (kbd "M-k") (lambda () (interactive) (windmove-up))) + + (global-set-key (kbd "M-H") (lambda () (interactive) (windmove-swap-states-left))) + (global-set-key (kbd "M-L") (lambda () (interactive) (windmove-swap-states-right))) + (global-set-key (kbd "M-J") (lambda () (interactive) (windmove-swap-states-down))) + (global-set-key (kbd "M-K") (lambda () (interactive) (windmove-swap-states-up))) + + (global-set-key (kbd "C-c p") (lambda () (interactive) (make-screenshot))) + + (setq exwm-input-global-keys + `( + ;; Reset to line-mode (C-c C-k switches to char-mode via exwm-input-release-keyboard) + ([?\s-r] . exwm-reset) + + (,(kbd "s-h") . windmove-left) ;; Super + h: окно влево + (,(kbd "s-l") . windmove-right) ;; Super + l: окно вправо + (,(kbd "s-k") . windmove-up) ;; Super + k: окно вверх + (,(kbd "s-j") . windmove-down) + + (,(kbd "") . volume-up) + (,(kbd "") . volume-down) + (,(kbd "") . volume-mute-toggle) + + ;; Launch applications via shell command + ([?\s-&] . (lambda (command) + (interactive (list (read-shell-command "$ "))) + (start-process-shell-command command nil command))) + + ;; Switch workspace + ([?\s-w] . exwm-workspace-switch) + )) + + ;; Show battery status in the mode line + (display-battery-mode 1) + + ;; Show the time and date in modeline + (setq display-time-day-and-date t) + (display-time-mode 1) + + (exwm-enable)) + +(require 'exwm-randr) +(exwm-randr-enable) + +(start-process-shell-command "xrandr" nil "xrandr --output HDMI1 --mode 3840x2160 --panning 3840x2160 --rate 60 --output eDP1 --off") +#+end_src + +** system keybind +#+begin_src emacs-lisp +(global-set-key (kbd "") 'volume-up) +(global-set-key (kbd "") 'volume-down) +(global-set-key (kbd "") 'volume-mute-toggle) +#+end_src diff --git a/roles/dots/files/home/bin/http b/roles/dots/files/home/bin/http new file mode 100755 index 0000000..d477dac Binary files /dev/null and b/roles/dots/files/home/bin/http differ diff --git a/roles/dots/files/home/bin/scale.py b/roles/dots/files/home/bin/scale.py index 1784e11..3e9ef18 100755 --- a/roles/dots/files/home/bin/scale.py +++ b/roles/dots/files/home/bin/scale.py @@ -30,3 +30,4 @@ elif sys.argv[1] == '-d': replace_line_in_file('/home/fs/bin/rofi', 'while read -r line; do export "$line"; done < /home/fs/scale_vars', '# while read -r line; do export "$line"; done < /home/fs/scale_vars') replace_line_in_file('/home/fs/bin/firefox_profiles.sh', 'while read -r line; do export "$line"; done < /home/fs/scale_vars', '# while read -r line; do export "$line"; done < /home/fs/scale_vars') replace_line_in_file('/home/fs/bin/firefox_profiles.sh', 'dpi="125"', 'dpi="100"') + diff --git a/roles/dots/files/home/bin/tmux-sessionizer.sh b/roles/dots/files/home/bin/tmux-sessionizer.sh index 35f36bc..ec53770 100755 --- a/roles/dots/files/home/bin/tmux-sessionizer.sh +++ b/roles/dots/files/home/bin/tmux-sessionizer.sh @@ -2,7 +2,7 @@ function fzf_project() { # tmux new session - DIR=$(find /home/fs/Desktop/work -maxdepth 2 -type d ! -readable -prune -o -print | fzf) + DIR=$(find /home/fs/Desktop/pet /home/fs/Desktop/work -maxdepth 2 -type d ! -readable -prune -o -print | fzf) if [ -z "$DIR" ]; then return diff --git a/roles/window_managers/files/sway/config b/roles/window_managers/files/sway/config index 0350dfe..adcdc23 100644 --- a/roles/window_managers/files/sway/config +++ b/roles/window_managers/files/sway/config @@ -27,7 +27,8 @@ set $term kitty # # Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/) # output * bg /usr/share/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png fill -output * bg /home/fs/Pictures/nord.png fill +# output * bg /home/fs/Pictures/nord.png fill +output * bg /home/fs/Pictures/pic/new_hidpi_wallpaper/wallpaper_upscayl_2x_realesrgan-x4plus-anime.png fill # # Example configuration: # @@ -82,14 +83,23 @@ output * bg /home/fs/Pictures/nord.png fill bindsym $mod+e mode $emacs_map mode "$emacs_map" { bindsym e exec "emacsclient -n -q -c --socket-name=main" ; mode "default" - bindsym o exec "emacsclient -n -q -c --socket-name=other" ; mode "default" - bindsym h exec "emacsclient -n -q -c --socket-name=http /home/fs/Desktop/work/http/"; mode "default" - bindsym d exec "emacsclient -n -q -c --socket-name=fm /home/fs/Documents/" ; mode "default" - bindsym f exec "emacsclient -n -q -c --socket-name=fm /home/fs/" ; mode "default" - bindsym p exec "emacsclient -n -q -c --socket-name=fm /home/fs/Pictures/ " ; mode "default" - bindsym v exec "emacsclient -n -q -c --socket-name=fm /home/fs/Videos/ " ; mode "default" - bindsym m exec "emacsclient -n -q -c --socket-name=music /home/fs/Music/8/ " ; mode "default" - bindsym t exec "emacsclient -n -q -c --socket-name=terminal" ; mode "default" + # bindsym o exec "emacsclient -n -q -c --socket-name=other" ; mode "default" + # bindsym h exec "emacsclient -n -q -c --socket-name=http /home/fs/Desktop/work/http/"; mode "default" + # bindsym d exec "emacsclient -n -q -c --socket-name=documents /home/fs/Documents/" ; mode "default" + # bindsym f exec "emacsclient -n -q -c --socket-name=fm /home/fs/" ; mode "default" + # bindsym p exec "emacsclient -n -q -c --socket-name=fm /home/fs/Pictures/ " ; mode "default" + # bindsym v exec "emacsclient -n -q -c --socket-name=fm /home/fs/Videos/ " ; mode "default" + # bindsym m exec "emacsclient -n -q -c --socket-name=music /home/fs/Music/8/ " ; mode "default" + # bindsym t exec "emacsclient -n -q -c --socket-name=terminal" ; mode "default" + + bindsym o exec "emacsclient -n -q -c" ; mode "default" + bindsym h exec "emacsclient -n -q -c /home/fs/Desktop/work/http/"; mode "default" + bindsym d exec "emacsclient -n -q -c /home/fs/Documents/" ; mode "default" + bindsym f exec "emacsclient -n -q -c /home/fs/" ; mode "default" + bindsym p exec "emacsclient -n -q -c /home/fs/Pictures/ " ; mode "default" + bindsym v exec "emacsclient -n -q -c /home/fs/Videos/ " ; mode "default" + bindsym m exec "emacsclient -n -q -c /home/fs/Music/8/ " ; mode "default" + bindsym t exec "emacsclient -n -q -c" ; mode "default" } # Drag floating windows by holding down $mod and left mouse button. @@ -240,7 +250,7 @@ include /etc/sway/config.d/* # --- autostart --- -exec swaymsg "workspace 1; exec emacs --daemon;" +exec swaymsg "workspace 1; exec --daemon" } diff --git a/save_new_config.sh b/save_new_config.sh index 601cc1b..1681d37 100755 --- a/save_new_config.sh +++ b/save_new_config.sh @@ -5,6 +5,7 @@ rsync -av /home/fs/.config/kitty/ roles/dots/files/config/kitty # emacs cp /home/fs/.emacs.d/config.org roles/dots/files/home/.emacs.d/ cp -r /home/fs/.emacs.d/lan roles/dots/files/home/.emacs.d/ +cp -r /home/fs/.emacs.d/lib roles/dots/files/home/.emacs.d/ # wayland wm rsync -av /home/fs/.config/sway roles/window_managers/files/