This commit is contained in:
Marat 2024-10-27 00:29:18 +06:00
parent 5895e35a62
commit c60d01933e
10 changed files with 336 additions and 193 deletions

View File

@ -21,6 +21,7 @@ return require('packer').startup(function(use)
use 'chriskempson/vim-tomorrow-theme' use 'chriskempson/vim-tomorrow-theme'
use 'maxmx03/solarized.nvim' use 'maxmx03/solarized.nvim'
use 'antonk52/lake.nvim' use 'antonk52/lake.nvim'
use 'cocopon/iceberg.vim'
-- auto save -- auto save
use 'pocco81/auto-save.nvim' use 'pocco81/auto-save.nvim'
@ -66,21 +67,40 @@ return require('packer').startup(function(use)
use 'dense-analysis/ale' use 'dense-analysis/ale'
-- lsp -- lsp
-- use {
-- 'VonHeikemen/lsp-zero.nvim',
-- branch = 'v3.x',
-- requires = {
-- {'williamboman/mason.nvim'},
-- {'williamboman/mason-lspconfig.nvim'},
-- {'neovim/nvim-lspconfig'},
-- {'hrsh7th/nvim-cmp'},
-- {'hrsh7th/cmp-nvim-lsp'},
-- {'L3MON4D3/LuaSnip'},
-- }
-- }
-- snippet
-- use 'honza/vim-snippets'
use { use {
'VonHeikemen/lsp-zero.nvim', 'VonHeikemen/lsp-zero.nvim',
branch = 'v3.x',
requires = { requires = {
-- LSP Support
{'neovim/nvim-lspconfig'},
{'williamboman/mason.nvim'}, {'williamboman/mason.nvim'},
{'williamboman/mason-lspconfig.nvim'}, {'williamboman/mason-lspconfig.nvim'},
{'neovim/nvim-lspconfig'}, -- Autocompletion
{'hrsh7th/nvim-cmp'}, {'hrsh7th/nvim-cmp'},
{'hrsh7th/cmp-nvim-lsp'}, {'hrsh7th/cmp-nvim-lsp'},
{'L3MON4D3/LuaSnip'}, {'hrsh7th/cmp-buffer'},
{'hrsh7th/cmp-path'},
{'saadparwaiz1/cmp_luasnip'}, -- интеграция с LuaSnip
{'hrsh7th/cmp-nvim-lua'},
-- Snippets
{'L3MON4D3/LuaSnip'}, -- сам LuaSnip
{'rafamadriz/friendly-snippets'}, -- набор готовых сниппетов
} }
} }
-- snippet
use 'honza/vim-snippets'
end) end)

View File

@ -11,7 +11,9 @@ vim.g.everforest_background = 'hard'
-- vim.cmd('colorscheme doom-one') -- vim.cmd('colorscheme doom-one')
-- vim.cmd('colorscheme dracula-soft') -- vim.cmd('colorscheme dracula-soft')
-- vim.cmd('colorscheme solarized') -- vim.cmd('colorscheme solarized')
-- vim.cmd('colorscheme gruvbox')
vim.cmd('colorscheme gruvbox') vim.cmd('colorscheme gruvbox')
-- vim.cmd('colorscheme iceberg')
-- vim.cmd('colorscheme lake') -- vim.cmd('colorscheme lake')
-- vim.cmd('highlight Normal guibg=#000000 ctermbg=black') -- vim.cmd('highlight Normal guibg=#000000 ctermbg=black')
vim.api.nvim_set_hl(0, 'CursorLine', { underline = true }) vim.api.nvim_set_hl(0, 'CursorLine', { underline = true })
@ -148,12 +150,11 @@ cmp.setup({
formatting = cmp_format, formatting = cmp_format,
}) })
-- to learn how to use mason.nvim -- to learn how to use mason.nvim
-- read this: https://github.com/VonHeikemen/lsp-zero.nvim/blob/v3.x/doc/md/guide/integrate-with-mason-nvim.md -- read this: https://github.com/VonHeikemen/lsp-zero.nvim/blob/v3.x/doc/md/guide/integrate-with-mason-nvim.md
require('mason').setup({}) require('mason').setup({})
require('mason-lspconfig').setup({ require('mason-lspconfig').setup({
ensure_installed = {}, ensure_installed = { 'pyright', 'gopls' },
handlers = { handlers = {
function(server_name) function(server_name)
require('lspconfig')[server_name].setup({}) require('lspconfig')[server_name].setup({})

View File

@ -13,7 +13,8 @@ alias grep='grep --color=auto'
echo "" echo ""
# PS1="[\w] ($(git branch 2>/dev/null | grep '^*' | colrm 1 2)) \n-> " # PS1="[\w] ($(git branch 2>/dev/null | grep '^*' | colrm 1 2)) \n-> "
PS1='[\w]$(git rev-parse --is-inside-work-tree &>/dev/null && echo " ($(git branch 2>/dev/null | grep '\''^\*'\'' | colrm 1 2))") \n-> ' # PS1='[\w]$(git rev-parse --is-inside-work-tree &>/dev/null && echo " ($(git branch 2>/dev/null | grep '\''^\*'\'' | colrm 1 2))") \n-> '
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 VISUAL=nvim
export EDITOR="$VISUAL" export EDITOR="$VISUAL"
@ -79,6 +80,7 @@ bind '"jk":"\e"'
alias v='nvim' alias v='nvim'
alias s='exa -al --color=always --group-directories-first' alias s='exa -al --color=always --group-directories-first'
alias c='clear' alias c='clear'
alias e='exit'
# pyenv # pyenv
alias en='source ../../env/bin/activate' alias en='source ../../env/bin/activate'

View File

@ -8,7 +8,6 @@
- [[#main-packages][main packages]] - [[#main-packages][main packages]]
- [[#general-keybindings][General keybindings]] - [[#general-keybindings][General keybindings]]
- [[#evil-mode][Evil Mode]] - [[#evil-mode][Evil Mode]]
- [[#pojectile][pojectile]]
- [[#ivy][Ivy]] - [[#ivy][Ivy]]
- [[#counsel][Counsel]] - [[#counsel][Counsel]]
- [[#dired][dired]] - [[#dired][dired]]
@ -17,14 +16,11 @@
- [[#perspective][perspective]] - [[#perspective][perspective]]
- [[#anzu][anzu]] - [[#anzu][anzu]]
- [[#doom-modeline][doom-modeline]] - [[#doom-modeline][doom-modeline]]
- [[#perfect-margin][Perfect margin]]
- [[#neotree][NeoTree]] - [[#neotree][NeoTree]]
- [[#latex-pdf][Latex (pdf)]] - [[#file-copy-file-open-file-in-dired][file (copy file, open file in dired)]]
- [[#keybinds][KeyBinds]] - [[#bm-marks--org-tangle][bm-marks / org tangle]]
- [[#file][file]] - [[#project--projectile][project / projectile]]
- [[#marks--org-tangle][marks / org tangle]]
- [[#buffer--bookmarks--harpoon][buffer & bookmarks & harpoon]] - [[#buffer--bookmarks--harpoon][buffer & bookmarks & harpoon]]
- [[#project][project]]
- [[#sudo-edit--code-sudo-editsplitperfect-marginjson][Sudo Edit & code (sudo edit/split/perfect margin/json)]] - [[#sudo-edit--code-sudo-editsplitperfect-marginjson][Sudo Edit & code (sudo edit/split/perfect margin/json)]]
- [[#magit][Magit]] - [[#magit][Magit]]
- [[#org-settings][ORG settings]] - [[#org-settings][ORG settings]]
@ -49,14 +45,14 @@
- [[#evil-snipe][evil-snipe]] - [[#evil-snipe][evil-snipe]]
- [[#org-chckbox-hl][org chckbox hl]] - [[#org-chckbox-hl][org chckbox hl]]
- [[#hl-todo][hl-todo]] - [[#hl-todo][hl-todo]]
- [[#music][Music]] - [[#programs][Programs]]
- [[#emms][emms]] - [[#emms][emms]]
- [[#latex-pdf][Latex (pdf)]]
- [[#scripts][scripts]] - [[#scripts][scripts]]
- [[#add-projectile-project][add projectile project]] - [[#add-projectile-project][add projectile project]]
- [[#rest][REST]] - [[#rest][REST]]
- [[#insert-some-text][insert some text]] - [[#insert-some-text][insert some text]]
- [[#open-terminal][open terminal]] - [[#open-terminal][open terminal]]
- [[#tood][TOOD]]
* auto install packages * auto install packages
#+begin_src emacs-lisp #+begin_src emacs-lisp
@ -238,15 +234,6 @@ https://github.com/emacs-evil/evil
"l l" 'evil-scroll-line-to-center) "l l" 'evil-scroll-line-to-center)
#+end_src #+end_src
** pojectile
#+begin_src emacs-lisp
(use-package projectile
:ensure t
:init
(projectile-mode +1)
:config
(setq projectile-completion-system 'ivy))
#+end_src
** Ivy ** Ivy
*** Setup *** Setup
@ -273,8 +260,6 @@ https://github.com/emacs-evil/evil
(package-refresh-contents) (package-refresh-contents)
(package-install 'counsel)) (package-install 'counsel))
;; (setq counsel-fzf-cmd "find . -type f -not -path '*/.*' 2>&1 | grep -v 'Permission denied' | fzf -f '%s'")
;; (setq counsel-fzf-cmd "find . -type f -not -path '*/.*' 2>&1 | grep -v 'Permission denied' | grep -v './env/' | fzf -f '%s'")
(setq counsel-fzf-cmd (setq counsel-fzf-cmd
(concat (concat
"find . -type f -not -path '*/.*' 2>&1 | " "find . -type f -not -path '*/.*' 2>&1 | "
@ -301,15 +286,28 @@ https://github.com/emacs-evil/evil
** dired ** dired
*** setup *** setup
(setq dired-listing-switches "-alXGh --group-directories-first":
Определяет параметры, которые передаются команде ls для отображения содержимого директорий.
-a: Показывает все файлы, включая скрытые (начинающиеся с точки).
-l: Выводит в длинном формате, показывая дополнительные детали (размер, дата, права и т.д.).
-X: Сортирует файлы по расширению.
-G: Отключает цвета в выводе (если они поддерживаются).
-h: Показывает размеры в человекочитаемом формате (например, 1K, 234M).
--group-directories-first: Сначала отображает директории, затем файлы.
(setq dired-recursive-copies 'always):
Устанавливает режим рекурсивного копирования для dired на "всегда", что означает, что при копировании директорий все их содержимое будет скопировано рекурсивно.
(setq dired-recursive-deletes 'top):
Определяет поведение для рекурсивного удаления. Установлено на "top", что означает, что при удалении директории будет предложено удалить её содержимое (файлы и поддиректории) перед удалением самой директории.
(setq global-auto-revert-non-file-buffers t):
Включает автоматическое обновление (рефреш) буферов, не относящихся к файлам, например, таких как dired, если они изменяются на диске. Это помогает поддерживать актуальность отображаемой информации.
(setq auto-revert-verbose nil):
Отключает вывод сообщений о том, что буфер был обновлен. Это может уменьшить количество сообщений в минибуфере.
(setq dired-dwim-target t):
Включает "do what I mean" (DWIM) поведение для установки целевого пути. Это значит, что при использовании команды dired для перемещения или копирования файлов, Emacs попытается автоматически угадать, куда вы хотите переместить файлы, основываясь на контексте.
(setq wdired-allow-to-change-permissions t):
Разрешает изменять права доступа на файлы и директории в режиме wdired, который позволяет редактировать файлы в dired в текстовом режиме.
#+begin_src emacs-lisp #+begin_src emacs-lisp
(require 'dired) (require 'dired)
(defun dired-open-file-in-new-tab ()
"Open the current file in dired in a new tab."
(interactive)
(tab-new)
(dired-find-file))
(setq dired-listing-switches "-alXGh --group-directories-first" (setq dired-listing-switches "-alXGh --group-directories-first"
dired-recursive-copies 'always dired-recursive-copies 'always
dired-recursive-deletes 'top dired-recursive-deletes 'top
@ -320,8 +318,6 @@ https://github.com/emacs-evil/evil
#+end_src #+end_src
*** открыть файл в вертикально разделенном экране *** открыть файл в вертикально разделенном экране
#+begin_src emacs-lisp #+begin_src emacs-lisp
(defun dired-open-split-horizontal () (defun dired-open-split-horizontal ()
@ -345,7 +341,30 @@ https://github.com/emacs-evil/evil
(evil-define-key 'normal dired-mode-map (kbd "h") 'dired-up-directory) (evil-define-key 'normal dired-mode-map (kbd "h") 'dired-up-directory)
#+end_src #+end_src
*** копировать текущий путь
*** dired subtree
#+begin_src emacs-lisp
(require 'dired-subtree)
(evil-define-key 'normal dired-mode-map (kbd "i") 'dired-subtree-insert)
(evil-define-key 'normal dired-mode-map (kbd "r") 'dired-subtree-remove)
#+end_src
*** открыть pcmanfm
#+begin_src emacs-lisp
(defun dired-open-pcmanfm ()
"Open the current directory in Dired with PCManFM."
(interactive)
(let ((current-dir (dired-current-directory)))
(start-process "nautilus" nil "nautilus" current-dir)))
(define-key dired-mode-map (kbd "C-c o") 'dired-open-pcmanfm)
#+end_src
*** функция для копирования текущего пути
#+begin_src emacs-lisp #+begin_src emacs-lisp
(defun copy-current-file-path-to-clipboard () (defun copy-current-file-path-to-clipboard ()
"Copy the current buffer file name to the clipboard." "Copy the current buffer file name to the clipboard."
@ -358,29 +377,7 @@ https://github.com/emacs-evil/evil
(message "Copied buffer file name '%s' to the clipboard." filename)))) (message "Copied buffer file name '%s' to the clipboard." filename))))
#+end_src #+end_src
*** dired subtree *** KeyBind
#+begin_src emacs-lisp
(require 'dired-subtree)
(evil-define-key 'normal dired-mode-map (kbd "i") 'dired-subtree-insert)
(evil-define-key 'normal dired-mode-map (kbd "r") 'dired-subtree-remove)
(evil-define-key 'normal dired-mode-map (kbd "o") 'dired-open-file-in-new-tab)
#+end_src
*** открыть pcmanfm
#+begin_src emacs-lisp
(defun dired-open-pcmanfm ()
"Open the current directory in Dired with PCManFM."
(interactive)
(let ((current-dir (dired-current-directory)))
(start-process "pcmanfm" nil "pcmanfm" current-dir)))
(define-key dired-mode-map (kbd "C-c o") 'dired-open-pcmanfm)
#+end_src
*** dired hot keys
#+begin_src emacs-lisp #+begin_src emacs-lisp
(spc-leader (spc-leader
"d" '(:ignore t :wk "dired") "d" '(:ignore t :wk "dired")
@ -406,13 +403,16 @@ https://github.com/emacs-evil/evil
(use-package openwith (use-package openwith
:ensure t :ensure t
:config :config
(openwith-mode t)
;; :defer t
)
(openwith-mode t) (defun activate-openwith()
(setq openwith-associations (setq openwith-associations
(list (list (openwith-make-extension-regexp '("pdf" "djvu")) (list (list (openwith-make-extension-regexp '("pdf" "djvu"))
"atril" '(file)) "atril" '(file))
(list (openwith-make-extension-regexp '("flac" "mp3" "wav")) ;; (list (openwith-make-extension-regexp '("flac" "mp3" "wav"))
"vlc" '(file)) ;; "vlc" '(file))
(list (openwith-make-extension-regexp '("bmp" "jpeg" "jpg" "png")) (list (openwith-make-extension-regexp '("bmp" "jpeg" "jpg" "png"))
"vimiv" '(file)) "vimiv" '(file))
(list (openwith-make-extension-regexp '("mpv" "mkv" "mp4")) (list (openwith-make-extension-regexp '("mpv" "mkv" "mp4"))
@ -423,7 +423,8 @@ https://github.com/emacs-evil/evil
"libreoffice" '("--calc" file)) "libreoffice" '("--calc" file))
(list (openwith-make-extension-regexp '("odp" "pps" "ppt" "pptx")) (list (openwith-make-extension-regexp '("odp" "pps" "ppt" "pptx"))
"libreoffice" '("--impress" file)) "libreoffice" '("--impress" file))
))) ))
)
;; Отключить автоматическое открытие изображений в Emacs ;; Отключить автоматическое открытие изображений в Emacs
(setq auto-mode-alist (rassq-delete-all 'image-mode auto-mode-alist)) (setq auto-mode-alist (rassq-delete-all 'image-mode auto-mode-alist))
@ -436,6 +437,8 @@ https://github.com/emacs-evil/evil
;; Добавляем хук для отключения openwith-mode в org-mode ;; Добавляем хук для отключения openwith-mode в org-mode
(add-hook 'org-mode-hook 'disable-openwith-in-org-mode) (add-hook 'org-mode-hook 'disable-openwith-in-org-mode)
;; Добавляем хук для активации openwith-mode в dired-mode
(add-hook 'dired-mode-hook 'activate-openwith)
#+end_src #+end_src
@ -486,6 +489,7 @@ https://github.com/emacs-evil/evil
#+end_src #+end_src
** anzu ** anzu
улучшенный интерфейс для поиска и замены текста
#+begin_src emacs-lisp #+begin_src emacs-lisp
(use-package anzu (use-package anzu
:ensure t :ensure t
@ -507,15 +511,12 @@ https://github.com/emacs-evil/evil
(doom-modeline-mode 1) (doom-modeline-mode 1)
#+end_src #+end_src
** Perfect margin
#+begin_src emacs-lisp
(setq perfect-margin-visible-width 150)
#+end_src
** NeoTree ** NeoTree
*** Setup *** Setup
#+begin_src emacs-lisp #+begin_src emacs-lisp
(use-package neotree (use-package neotree
:init
:ensure t :ensure t
:bind ("<f8>" . neotree-toggle) :bind ("<f8>" . neotree-toggle)
:config :config
@ -523,16 +524,15 @@ https://github.com/emacs-evil/evil
(setq-default neo-smart-open t) (setq-default neo-smart-open t)
;; Вертикальное расположение окна neotree ;; Вертикальное расположение окна neotree
(setq neo-window-position 'left) (setq neo-window-position 'left)
;; Активация пакетов
(use-package all-the-icons :ensure t)
(setq neo-theme (if (display-graphic-p) 'icons 'arrow))
(setq neo-window-fixed-size nil)
(setq neo-smart-open t)
(setq neo-window-width 50)
) )
;; Активация пакетов
(use-package all-the-icons :ensure t)
(setq neo-theme (if (display-graphic-p) 'icons 'arrow))
(setq neo-window-fixed-size nil)
(setq neo-smart-open t)
(setq neo-window-width 50)
(add-hook 'neotree-mode-hook (add-hook 'neotree-mode-hook
(lambda () (lambda ()
(define-key evil-normal-state-local-map (kbd "q") 'neotree-hide) (define-key evil-normal-state-local-map (kbd "q") 'neotree-hide)
@ -549,28 +549,7 @@ https://github.com/emacs-evil/evil
) )
#+end_src #+end_src
** Latex (pdf) ** file (copy file, open file in dired)
#+begin_src emacs-lisp
(setq org-latex-pdf-process
'("xelatex -interaction nonstopmode %f"
"xelatex -interaction nonstopmode %f"))
#+end_src
устанавливать такой header для потдержки русского языка
#+begin_quote
#+LATEX_HEADER: \usepackage{fontspec}
#+LATEX_HEADER: \setmainfont{Noto Sans}
\begin{quote}
\textbf{-} Привет! Как дела? \\
\textbf{-} Всё хорошо, спасибо! А у тебя?
\end{quote}
#+end_quote
* KeyBinds
** file
#+begin_src emacs-lisp #+begin_src emacs-lisp
(defun open-current-directory-in-dired () (defun open-current-directory-in-dired ()
"Open the current directory of the current file in Dired. "Open the current directory of the current file in Dired.
@ -587,7 +566,7 @@ If a Dired buffer is already opened, navigate to that buffer."
"f o" '(open-current-directory-in-dired :wk "open in dired")) "f o" '(open-current-directory-in-dired :wk "open in dired"))
#+end_src #+end_src
** marks / org tangle ** bm-marks / org tangle
#+begin_src emacs-lisp #+begin_src emacs-lisp
(spc-leader (spc-leader
"m" '(:ignore t :wk "marks") "m" '(:ignore t :wk "marks")
@ -609,45 +588,18 @@ If a Dired buffer is already opened, navigate to that buffer."
'(bm-face ((t (:background "yellow" :foreground "black" :weight bold))))) '(bm-face ((t (:background "yellow" :foreground "black" :weight bold)))))
#+end_src #+end_src
** buffer & bookmarks & harpoon ** project / projectile
*** setup projectile
#+begin_src emacs-lisp #+begin_src emacs-lisp
(spc-leader (use-package projectile
;; buffer :ensure t
"b" '(:ignore t :wk "buffer") :init
"b i" '(ibuffer :wk "Switch ibuffer") (projectile-mode +1)
"b b" '(projectile-switch-to-buffer :wk "Switch buffer") :config
"b k" '(kill-this-buffer :wk "Kill this buffer") (setq projectile-completion-system 'ivy))
;; bookmark
"b s" '(bookmark-set :wk "set bookmarks")
"b d" '(bookmark-delete :wk "delete bookmarks")
"b l" '(list-bookmarks :wk "list bookmarks")
"b j" '(bookmark-jump :wk "list jump")
"b a" '(bookmark-set :wk "bookmarks set")
"b r" '(revert-buffer :wk "Reload buffer"))
(spc-leader
"TAB" '(:ignore t :wk "?")
"TAB TAB" '(comment-line :wk "comment line")
)
(spc-leader
"h" '(:ignore t :wk "help & harpoon")
"h a" '(harpoon-add-file :wk "add to harpoon")
"h c" '(harpoon-clear :wk "harboon clear")
"h l" '(harpoon-toggle-quick-menu :wk "toggle menu")
"h m" '(harpoon-quick-menu-hydra :wk "quick menu")
"h 1" '(harpoon-go-to-1 :wk "1")
"h 2" '(harpoon-go-to-2 :wk "2")
"h 3" '(harpoon-go-to-3 :wk "3")
"h 4" '(harpoon-go-to-4 :wk "4")
"h 5" '(harpoon-go-to-5 :wk "5")
"h d" '(harpoon-delete-item :wk "delete item")
)
#+end_src #+end_src
** project *** KeyBind
add and switch project add and switch project
#+begin_src emacs-lisp #+begin_src emacs-lisp
(defun projectile/open-and-switch-project (directory) (defun projectile/open-and-switch-project (directory)
@ -682,7 +634,61 @@ hot keys
#+end_src #+end_src
** buffer & bookmarks & harpoon
#+begin_src emacs-lisp
(spc-leader
;; buffer
"b" '(:ignore t :wk "buffer")
"b i" '(ibuffer :wk "Switch ibuffer")
"b b" '(projectile-switch-to-buffer :wk "Switch buffer")
"b k" '(:ignore t :wk "kill buffer")
"b k t" '(kill-this-buffer :wk "Kill this buffer")
"b k k" '(kill-buffer :wk "Kill buffer in imenu")
;; bookmark
"b s" '(bookmark-set :wk "set bookmarks")
"b d" '(bookmark-delete :wk "delete bookmarks")
"b l" '(list-bookmarks :wk "list bookmarks")
"b j" '(bookmark-jump :wk "list jump")
"b a" '(bookmark-set :wk "bookmarks set")
"b r" '(revert-buffer :wk "Reload buffer"))
(spc-leader
)
(spc-leader
"TAB" '(:ignore t :wk "?")
"TAB TAB" '(comment-line :wk "comment line")
)
(spc-leader
"h" '(:ignore t :wk "help & harpoon")
"h a" '(harpoon-add-file :wk "add to harpoon")
"h c" '(harpoon-clear :wk "harboon clear")
"h l" '(harpoon-toggle-quick-menu :wk "toggle menu")
"h m" '(harpoon-quick-menu-hydra :wk "quick menu")
"h 1" '(harpoon-go-to-1 :wk "1")
"h 2" '(harpoon-go-to-2 :wk "2")
"h 3" '(harpoon-go-to-3 :wk "3")
"h 4" '(harpoon-go-to-4 :wk "4")
"h 5" '(harpoon-go-to-5 :wk "5")
"h d" '(harpoon-delete-item :wk "delete item")
)
#+end_src
** Sudo Edit & code (sudo edit/split/perfect margin/json) ** Sudo Edit & code (sudo edit/split/perfect margin/json)
*** Perfect margin settings
#+begin_src emacs-lisp
;; (setq perfect-margin-visible-width 150)
(setq perfect-margin-visible-width 200)
#+end_src
*** KeyBind
#+begin_src emacs-lisp #+begin_src emacs-lisp
(require 'sudo-edit) (require 'sudo-edit)
(spc-leader (spc-leader
@ -747,6 +753,7 @@ hot keys
"o r" '(org-reset-checkbox-state-subtree :wk "reset checkboxs") "o r" '(org-reset-checkbox-state-subtree :wk "reset checkboxs")
"o g" '(org-agenda :wk "org agenda") "o g" '(org-agenda :wk "org agenda")
"o m" '(eval-buffer :wk "eval buffer") "o m" '(eval-buffer :wk "eval buffer")
"o k" '(org-ctrl-c-minus :wk "eval buffer")
"h RET" '(org-meta-return :wk "org return (insert lists))") "h RET" '(org-meta-return :wk "org return (insert lists))")
) )
@ -855,22 +862,25 @@ hot keys
'(line-number-current-line ((t (:foreground "white"))))) ; Цвет текущей строки '(line-number-current-line ((t (:foreground "white"))))) ; Цвет текущей строки
;; '(line-number ((t (:foreground "black")))) ; Цвет отображения номера строки ;; '(line-number ((t (:foreground "black")))) ; Цвет отображения номера строки
;; '(line-number-current-line ((t (:foreground "black"))))) ; Цвет текущей строки ;; '(line-number-current-line ((t (:foreground "black"))))) ; Цвет текущей строки
;; (load-theme 'doom-1337 t)
;; (load-theme 'doom-nord t) ;; (load-theme 'doom-nord t)
;; (load-theme 'doom-nord-aurora t) ;; (load-theme 'doom-nord-aurora t)
;; (load-theme 'doom-nord-light t) ;; (load-theme 'doom-nord-light t)
;; (load-theme 'doom-one-light t) ;; (load-theme 'doom-one-light t)
;; (load-theme 'doom-gruvbox-light t) ;; (load-theme 'doom-gruvbox-light t)
(load-theme 'doom-gruvbox t) ;; (load-theme 'doom-gruvbox t)
;; (load-theme 'doom-ayu-dark t) ;; (load-theme 'doom-ayu-dark t)
;; (load-theme 'doom-dracula t) ;; (load-theme 'doom-dracula t)
;; (load-theme 'doom-tomorrow-night t) ;; (load-theme 'doom-tomorrow-night t)
;; (load-theme 'doom-henna t)
;; (load-theme 'doom-one t) ;; (load-theme 'doom-one t)
;; (load-theme 'doom-opera t) ;; (load-theme 'doom-opera t)
;; (load-theme 'doom-monokai-pro t) (load-theme 'doom-monokai-pro t)
;; (load-theme 'doom-spacegrey t) ;; (load-theme 'doom-spacegrey t)
;; (load-theme 'doom-tokyo-night t) ;; (load-theme 'doom-tokyo-night t)
;; (load-theme 'doom-xcode t) ;; (load-theme 'doom-xcode t)
;; (load-theme 'doom-solarized-light t) ;; (load-theme 'doom-solarized-light t)
;; (load-theme 'doom-solarized-dark t)
;; (add-to-list 'custom-theme-load-path "~/.emacs.d/everforest-theme") ;; (add-to-list 'custom-theme-load-path "~/.emacs.d/everforest-theme")
;; (load-theme 'everforest-hard-dark t) ;; (load-theme 'everforest-hard-dark t)
@ -878,8 +888,17 @@ hot keys
;; (add-to-list 'custom-theme-load-path "~/.emacs.d/atom-one-dark-theme") ;; (add-to-list 'custom-theme-load-path "~/.emacs.d/atom-one-dark-theme")
;; (load-theme 'atom-one-dark t) ;; (load-theme 'atom-one-dark t)
;; (add-to-list 'custom-theme-load-path "~/.emacs.d/iceberg-theme.el")
;; (load-theme 'iceberg t)
;; (set-frame-parameter nil 'alpha-background 100) ;; (set-frame-parameter nil 'alpha-background 100)
(set-frame-parameter nil 'alpha-background 92) ;; (set-frame-parameter nil 'alpha-background 92)
(let ((al 100)) ;; Прозрачность %
(set-frame-parameter (selected-frame) 'alpha `(,al . ,al)) ;; Прозрачность для текущего фрейма
(add-to-list 'default-frame-alist `(alpha . (,al . ,al)))) ;; Прозрачность для всех новых фреймов
#+end_src #+end_src
** diff ** diff
@ -900,19 +919,28 @@ hot keys
; Firacode Nerd Font ; Firacode Nerd Font
; JetBrainsMonoNL Nerd Font ; JetBrainsMonoNL Nerd Font
(defun set-small-font-wayland ()
(interactive)
(set-face-attribute 'default nil
:font "JetBrainsMonoNL Nerd Font"
:height 110
:weight 'medium))
(defun set-small-font () (defun set-small-font ()
(interactive) (interactive)
(set-face-attribute 'default nil (set-face-attribute 'default nil
:font "Firacode Nerd Font" :font "JetBrainsMonoNL Nerd Font"
:height 120 :height 120
:weight 'medium)) :weight 'medium))
(defun set-big-font () (defun set-big-font ()
(interactive) (interactive)
(set-face-attribute 'default nil (set-face-attribute 'default nil
:font "Firacode Nerd Font" :font "JetBrainsMonoNL Nerd Font"
:height 150 :height 150
:weight 'medium)) :weight 'medium))
;; (set-small-font-wayland)
(set-small-font) (set-small-font)
;; (set-big-font) ;; (set-big-font)
(spc-leader (spc-leader
@ -977,13 +1005,31 @@ names, e.g. #0000ff is displayed in white with a blue background.
** Nyan-mode ** Nyan-mode
#+begin_src emacs-lisp #+begin_src emacs-lisp
(require 'nyan-mode) (use-package nyan-mode
(nyan-mode +1) :ensure t
;; (nyan-toggle-wavy-trail) :init
;; (nyan-start-animation) :config
(setq nyan-wavy-trail t)
(setq nyan-wavy-trail t) (setq nyan-animate-nyancat t)
(setq nyan-animate-nyancat t) (nyan-mode 1)) ;; Включить анимацию
;; (require 'nyan-mode)
;; (nyan-mode +1)
;;
;; (defun my-nyan-cat-settings ()
;; "Set Nyan Cat settings for new frames."
;; (setq nyan-animate-nyancat t)
;; (setq nyan-wavy-trail t)
;; )
;;
;; ;; Применение настроек к уже открытому фрейму
;; (my-nyan-cat-settings)
;;
;; ;; Применение настроек для новых фреймов
;; (add-hook 'after-make-frame-functions
;; (lambda (frame)
;; (my-nyan-cat-settings)
;; (select-frame frame)
;; ))
#+end_src #+end_src
** evil-snipe ** evil-snipe
@ -1012,10 +1058,21 @@ names, e.g. #0000ff is displayed in white with a blue background.
;(global-hl-todo-mode +1) ;(global-hl-todo-mode +1)
#+end_src #+end_src
* Music * Programs
** emms ** emms
#+begin_src emacs-lisp #+begin_src emacs-lisp
;; Функция для отображения только названия треков в плейлисте
(defun my-emms-track-simple-description (track)
"Return a simple description of the TRACK with only the title."
(let ((name (emms-track-get track 'info-title)))
(if name
name
(emms-track-simple-description track))))
(use-package emms (use-package emms
:init
(setq emms-track-description-function 'my-emms-track-simple-description)
:ensure t :ensure t
:config :config
(require 'emms-setup) (require 'emms-setup)
@ -1033,14 +1090,78 @@ names, e.g. #0000ff is displayed in white with a blue background.
:config :config
(emms-playing-time 1)) (emms-playing-time 1))
;; Горячие клавиши для управления (with-eval-after-load 'emms
(global-set-key (kbd "C-c e p") 'emms) (define-key emms-playlist-mode-map (kbd "l") 'emms-seek-forward)
(global-set-key (kbd "C-c e n") 'emms-next) (define-key emms-playlist-mode-map (kbd "h") 'emms-seek-backward)
(global-set-key (kbd "C-c e P") 'emms-previous) (define-key emms-playlist-mode-map (kbd "r") 'emms-repeat)
(global-set-key (kbd "C-c e s") 'emms-stop) (define-key emms-playlist-mode-map (kbd "o") 'emms-pause)
(global-set-key (kbd "C-c e SPC") 'emms-pause)) (define-key emms-playlist-mode-map (kbd "C-c k") 'emms-playlist-clear)
(define-key emms-playlist-mode-map (kbd "j") 'next-line)
(define-key emms-playlist-mode-map (kbd "k") 'previous-line)
(define-key emms-playlist-mode-map (kbd "C-u") 'scroll-down-command)
(define-key emms-playlist-mode-map (kbd "C-d") 'scroll-up-command)
)
)
;; Включаем Evil mode в плейлисте EMMS
(add-hook 'emms-playlist-mode-hook 'evil-normalize-keymaps)
(spc-leader
"e" '(:ignore t :wk "music")
"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 s" '(emms-pause :wk "stop")
"e k" '(emms-next :wk "next")
"e j" '(emms-previous :wk "previous")
;; "e w" '(emms :wk "save playlist")
"e i" '(emms-seek-forward :wk "seek-forward 10s")
"e u" '(emms-seek-backward :wk "seek-backward 10s")
)
#+end_src #+end_src
** Latex (pdf)
чтобы экспорт работал кректно надо установить pygments
=pip install pygments= но для arch linux =sudo pacman -S python-pygments=
#+begin_src emacs-lisp
(setq org-latex-pdf-process
'("xelatex -interaction nonstopmode %f"
"xelatex -interaction nonstopmode %f"))
;; (setq org-latex-compiler "xelatex") ; или "lualatex"
;; (setq org-latex-pdf-process
;; '("xelatex -shell-escape -interaction nonstopmode -output-directory %o %f"
;; "xelatex -shell-escape -interaction nonstopmode -output-directory %o %f"
;; "xelatex -shell-escape -interaction nonstopmode -output-directory %o %f"))
#+end_src
#+begin_src emacs-lisp
;; ;; Использовать minted для подсветки синтаксиса при экспорте в PDF через LaTeX
;; (setq org-latex-listings 'minted)
;; ;; Добавить настройки minted в preamble
;; (setq org-latex-packages-alist '(("" "minted")))
;; ;; Настроить процесс компиляции для использования -shell-escape, необходимого для работы minted
;; (setq org-latex-pdf-process
;; '("pdflatex -shell-escape -interaction nonstopmode -output-directory %o %f"
;; "pdflatex -shell-escape -interaction nonstopmode -output-directory %o %f"
;; "pdflatex -shell-escape -interaction nonstopmode -output-directory %o %f"))
#+end_src
*** Cheat sheet
**** дефолтный header
#+begin_quote
#+LATEX_HEADER: \hypersetup{colorlinks=true, linkcolor=black} ;; убрать красную подсветку из ссылок
#+LATEX_HEADER: \usepackage{fontspec} ;; подтержка русского языка
#+LATEX_HEADER: \setmainfont{Noto Sans} ;; шрифт
#+end_quote
* scripts * scripts
** add projectile project ** add projectile project
@ -1126,13 +1247,3 @@ names, e.g. #0000ff is displayed in white with a blue background.
"t t" '(open-term :wk "terminal") "t t" '(open-term :wk "terminal")
) )
#+end_src #+end_src
* TOOD
1. сохронять файл при смене буфера
2. горячие клавиши для изменения размера окон
3. найти альтернативу format all
4. более быстрый python lsp
5. copilot
6. найти более подходящий спсоб работы со шрифтами и добавить горячие клавиши для управления размерами шрифтов
7. org mod upgrade
8. протестить дерево сохранений

View File

@ -1,5 +1,4 @@
(require 'use-package) (require 'use-package)
(message "hello from python mode")
(add-hook 'python-mode-hook #'tree-sitter-mode +1) (add-hook 'python-mode-hook #'tree-sitter-mode +1)
(add-hook 'python-mode-hook #'tree-sitter-hl-mode +1) (add-hook 'python-mode-hook #'tree-sitter-hl-mode +1)

View File

@ -1,8 +1,7 @@
* python * python
** <s ** init
#+begin_src emacs-lisp #+begin_src emacs-lisp
(require 'use-package) (require 'use-package)
(message "hello from python mode")
#+end_src #+end_src
@ -24,6 +23,8 @@
(setq flycheck-python-pylint-executable "pylint") (setq flycheck-python-pylint-executable "pylint")
(flycheck-add-next-checker 'python-flake8 'python-pylint) (flycheck-add-next-checker 'python-flake8 'python-pylint)
) )
#+end_src #+end_src
#+begin_src emacs-lisp #+begin_src emacs-lisp
@ -41,3 +42,8 @@
(elpy-enable)) (elpy-enable))
(add-hook 'elpy-mode-hook (lambda () (highlight-indentation-mode -1))) (add-hook 'elpy-mode-hook (lambda () (highlight-indentation-mode -1)))
#+end_src #+end_src
* Cheat sheet
** elpy
Search the buffer for a list of definitions of classes and functions.
C-c C-o (elpy-occur-definitions)

View File

@ -3,9 +3,12 @@ xrandr --auto
xrandr -r 60.00 xrandr -r 60.00
xrdb ~/.Xresources xrdb ~/.Xresources
slstatus & slstatus &
picom & # picom &
flameshot & flameshot &
emacs --daemon & emacs --bg-daemon=main &
emacs --bg-daemon=fm &
emacs --bg-daemon=music &
emacs --bg-daemon=other &
dunst & dunst &
# exec ~/bin/startdwm exec ~/bin/startdwm
exec dwm # exec dwm

View File

@ -11,7 +11,8 @@ methods = {
'POST': requests.post, 'POST': requests.post,
'GET': requests.get, 'GET': requests.get,
'PUT': requests.put, 'PUT': requests.put,
'PATCH': requests.patch 'PATCH': requests.patch,
'DELETE': requests.delete
} }
headers = {} headers = {}

View File

@ -12,8 +12,8 @@ if [ "$XDG_SESSION_TYPE" == "wayland" ]; then
fi fi
else else
# Получение списка профилей # Получение списка профилей
# while read -r line; do export "$line"; done < /home/fs/scale_vars while read -r line; do export "$line"; done < /home/fs/scale_vars
dpi="100" dpi="125"
profile=$(grep '\[Profile' -A 2 "$PROFILES_INI" | grep "Name=" | sed 's/Name=//' | rofi -dmenu -dpi $dpi) profile=$(grep '\[Profile' -A 2 "$PROFILES_INI" | grep "Name=" | sed 's/Name=//' | rofi -dmenu -dpi $dpi)
if [ ! "$profile" = "" ]; then if [ ! "$profile" = "" ]; then
firefox -P "$profile"; firefox -P "$profile";

View File

@ -1,5 +1,5 @@
#!/bin/sh #!/bin/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
dpi="100" dpi="125"
rofi -modi drun -show drun Papirus -dpi $dpi -sorting-method fzf -sort -matching fuzzy -show-icons -icon-theme Papirus rofi -modi drun -show drun Papirus -dpi $dpi -sorting-method fzf -sort -matching fuzzy -show-icons -icon-theme Papirus
# rofi -modi drun -show drun -show-icons -icon-theme Papirus -dpi $dpi -sorting-method fzf -sort -matching fuzzy # rofi -modi drun -show drun -show-icons -icon-theme Papirus -dpi $dpi -sorting-method fzf -sort -matching fuzzy