This commit is contained in:
Marat 2024-12-12 00:05:59 +06:00
parent c4cfe93d59
commit fecf26bd3a
16 changed files with 630 additions and 164 deletions

View File

@ -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 <https://github.com/hlissner>
## 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

View File

@ -0,0 +1,59 @@
# vim:ft=kitty
## name: Doom One
## author: Henrik Lissner <https://github.com/hlissner>
## 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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -1,2 +1,2 @@
# set theme
kitty +kitten themes --reload-in=all Nord
kitty +kitten themes --reload-in=all Doom One

View File

@ -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))

View File

@ -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() {

View File

@ -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) ;; Завершить выбор
("<return>" . 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 "<return>") '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 "<return>") '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
;; (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)

View File

@ -0,0 +1,5 @@
(use-package exwm
:config
(setq exwm-workspace-number 9)
(exwm-enable))
(message "----- hi")

View File

@ -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 "<XF86AudioRaiseVolume>") . volume-up)
(,(kbd "<XF86AudioLowerVolume>") . volume-down)
(,(kbd "<XF86AudioMute>") . 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 "<XF86AudioRaiseVolume>") 'volume-up)
(global-set-key (kbd "<XF86AudioLowerVolume>") 'volume-down)
(global-set-key (kbd "<XF86AudioMute>") 'volume-mute-toggle)
#+end_src

BIN
roles/dots/files/home/bin/http Executable file

Binary file not shown.

View File

@ -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"')

View File

@ -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

View File

@ -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"
}

View File

@ -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/