diff --git a/inventory b/inventory index 53418ad..e6c2be1 100644 --- a/inventory +++ b/inventory @@ -2,4 +2,4 @@ localhost [local:vars] -display_server=wayland +display_server=xorg diff --git a/roles/dots/files/config/kitty/kitty.conf b/roles/dots/files/config/kitty/kitty.conf index 9c243c7..ec2479b 100644 --- a/roles/dots/files/config/kitty/kitty.conf +++ b/roles/dots/files/config/kitty/kitty.conf @@ -12,7 +12,7 @@ allow_remote_control yes enable_audio_bell no url_style single tab_bar_style powerline -hide_window_decorations yes +# hide_window_decorations yes map ctrl+o copy_to_clipboard map ctrl+m paste_from_clipboard @@ -22,7 +22,7 @@ map ctrl+m paste_from_clipboard # BEGIN_KITTY_THEME # Doom One # include current-theme.conf -include gruvbox.conf +# include gruvbox.conf # include space_grey.conf # include doom-one.conf # include nord.conf @@ -32,4 +32,8 @@ include gruvbox.conf # include tokyo_night.conf # include black-metal.conf # include henna.conf +# include solarized_dark.conf +# include everforset-theme.conf +# include solarized_light.conf +# include gruvbox_light.conf # END_KITTY_THEME diff --git a/roles/dots/files/config/nsxiv/exec/key-handler b/roles/dots/files/config/nsxiv/exec/key-handler new file mode 100755 index 0000000..4a9b6cc --- /dev/null +++ b/roles/dots/files/config/nsxiv/exec/key-handler @@ -0,0 +1,37 @@ +#!/bin/sh + +# Example for $XDG_CONFIG_HOME/sxiv/exec/key-handler +# Called by sxiv(1) after the external prefix key (C-x by default) is pressed. +# The next key combo is passed as its first argument. Passed via stdin are the +# images to act upon, one path per line: all marked images, if in thumbnail +# mode and at least one image has been marked, otherwise the current image. +# sxiv(1) blocks until this script terminates. It then checks which images +# have been modified and reloads them. + +# The key combo argument has the following form: "[C-][M-][S-]KEY", +# where C/M/S indicate Ctrl/Meta(Alt)/Shift modifier states and KEY is the X +# keysym as listed in /usr/include/X11/keysymdef.h without the "XK_" prefix. + +rotate() { + degree="$1" + tr '\n' '\0' | xargs -0 realpath | sort | uniq | while read file; do + case "$(file -b -i "$file")" in + image/jpeg*) jpegtran -rotate "$degree" -copy all -outfile "$file" "$file" ;; + *) mogrify -rotate "$degree" "$file" ;; + esac + done +} + +case "$1" in +"C-x") xclip -in -filter | tr '\n' ' ' | xclip -in -selection clipboard ;; +"C-c") while read file; do xclip -selection clipboard -target image/png "$file"; done ;; +"C-e") while read file; do urxvt -bg "#444" -fg "#eee" -sl 0 -title "$file" -e sh -c "exiv2 pr -q -pa '$file' | less" & done ;; +"C-g") tr '\n' '\0' | xargs -0 gimp & ;; +"C-r") while read file; do rawtherapee "$file" & done ;; +"m") while read file; do echo "$file" >> /tmp/curr & done ;; +"w") while read file; do feh --bg-fill "$file" & done ;; +"b") while read file; do feh --bg-max "$file" & done ;; +"C-comma") rotate 270 ;; +"C-period") rotate 90 ;; +"C-slash") rotate 180 ;; +esac diff --git a/roles/dots/files/config/nvim/lua/some/common.lua b/roles/dots/files/config/nvim/lua/some/common.lua index c908750..761be13 100755 --- a/roles/dots/files/config/nvim/lua/some/common.lua +++ b/roles/dots/files/config/nvim/lua/some/common.lua @@ -14,7 +14,7 @@ set.clipboard = 'unnamed,unnamedplus' set.list = true -set.lcs='space:·' +-- set.lcs='space:·' g.mapleader='\\' vim.o.termguicolors = true 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 1052a33..1d75abd 100755 --- a/roles/dots/files/config/nvim/lua/some/packer_setting.lua +++ b/roles/dots/files/config/nvim/lua/some/packer_setting.lua @@ -1,17 +1,17 @@ +-- vim.o.background = 'dark' -- 'dark' or 'light' vim.o.background = 'dark' -- 'dark' or 'light' -vim.g.everforest_background = 'hard' +-- vim.g.everforest_background = 'hard' -- vim.cmd('colorscheme everforest') -- vim.cmd('colorscheme nord') -- vim.cmd('colorscheme base16-black-metal') --- vim.cmd('colorscheme doom-one') -- vim.cmd('colorscheme dracula') -- vim.cmd('colorscheme onedark') -- vim.cmd('colorscheme nightfox') -- vim.cmd('colorscheme Tomorrow-Night-Bright') --- vim.cmd('colorscheme doom-one') +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') @@ -21,6 +21,7 @@ vim.api.nvim_set_hl(0, 'CursorLine', { underline = true }) -- цвет номеров строк vim.cmd('hi linenr guifg=white') +-- vim.cmd('hi linenr guifg=white') -- vim.cmd('hi linenr guifg=#D3C6AA') -- telescope local builtin = require('telescope.builtin') diff --git a/roles/dots/files/config/nvim/lua/some/scripts.lua b/roles/dots/files/config/nvim/lua/some/scripts.lua index 88440ed..f67f8c0 100755 --- a/roles/dots/files/config/nvim/lua/some/scripts.lua +++ b/roles/dots/files/config/nvim/lua/some/scripts.lua @@ -35,7 +35,7 @@ function rest() local absolute_current_file = vim.api.nvim_buf_get_name(0) local neovim_open_path = vim.fn.getcwd() - local pyhttp = 'python ~/bin/easy_http.py ' .. absolute_current_file .. ' ' .. neovim_open_path + local pyhttp = '~/bin/http ' .. absolute_current_file .. ' ' .. neovim_open_path pyhttp_exec = io.popen(pyhttp) close_window_with_response() diff --git a/roles/dots/files/home/.bashrc b/roles/dots/files/home/.bashrc index b98ab5c..fa67fce 100644 --- a/roles/dots/files/home/.bashrc +++ b/roles/dots/files/home/.bashrc @@ -11,10 +11,9 @@ export PATH="$HOME/.local/bin:$PATH" alias ls='ls --color=auto' alias grep='grep --color=auto' -echo "" # 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))") $ ' +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 MANPAGER='nvim +Man!' @@ -109,6 +108,8 @@ alias bg='feh --bg-fil' alias em='emacsclient -t' alias wifi='/home/fs/bin/wifi.py' alias bgg='/home/fs/bin/gifwall.sh' +alias dff='echo -e "Filesystem\tSize\tUsed\tAvail\tUse%\tMounted on" && df -h | grep nvme' +alias sd='exa -al --color=always --group-directories-first -d */' # git alias gdel='f() { git branch -D $(git branch | grep "$1"); }; f' diff --git a/roles/dots/files/home/.emacs.d/config.org b/roles/dots/files/home/.emacs.d/config.org index aacc025..6b31d38 100644 --- a/roles/dots/files/home/.emacs.d/config.org +++ b/roles/dots/files/home/.emacs.d/config.org @@ -9,6 +9,7 @@ - [[#ui][UI]] - [[#main-packages][main packages]] - [[#general-keybindings][General keybindings]] + - [[#window-move][Window move]] - [[#evil-mode][Evil Mode]] - [[#ivy][Ivy]] - [[#counsel][Counsel]] @@ -33,10 +34,12 @@ - [[#org-babel-execute][org babel execute]] - [[#org-agenda][org agenda]] - [[#org-image][Org Image]] + - [[#org-level-size][org level size]] - [[#programming][PROGRAMMING]] - [[#snipets][snipets]] - [[#python][python]] - [[#go][go]] + - [[#emacs-lisp][Emacs-lisp]] - [[#decorations][decorations]] - [[#colorthemes][colorthemes]] - [[#diff][diff]] @@ -51,14 +54,15 @@ - [[#programs][Programs]] - [[#emms][emms]] - [[#latex-pdf][Latex (pdf)]] + - [[#terminal][Terminal]] - [[#exwm][EXWM]] - [[#setup-windows-hotkey][setup windows hotkey]] - [[#setup-wm][setup wm]] +- [[#text-processor][Text Processor]] - [[#scripts][scripts]] - [[#add-projectile-project][add projectile project]] - [[#rest][REST]] - [[#insert-some-text][insert some text]] - - [[#open-terminal][open terminal]] * auto install packages #+begin_src emacs-lisp @@ -211,6 +215,16 @@ https://github.com/noctuid/general.el ) #+end_src +** Window move +#+begin_src emacs-lisp +(global-unset-key (kbd "C-j")) + +(global-set-key (kbd "C-h") 'windmove-left) ;; Alt-h для перехода влево +(global-set-key (kbd "C-l") 'windmove-right) ;; Alt-l для перехода вправо +(global-set-key (kbd "C-k") 'windmove-up) ;; Alt-k для перехода вверх +(global-set-key (kbd "C-j") 'windmove-down) ;; Alt-j для перехода вниз +#+end_src + ** Evil Mode https://github.com/emacs-evil/evil *** Setup @@ -354,6 +368,7 @@ https://github.com/emacs-evil/evil (advice-remove 'process-exit-status #'filter-func)))))) #+end_src + ** dired *** setup (setq dired-listing-switches "-alXGh --group-directories-first": @@ -428,10 +443,7 @@ https://github.com/emacs-evil/evil "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) - + (start-process "pcmanfm" nil "pcmanfm" current-dir))) #+end_src *** функция для копирования текущего пути @@ -489,8 +501,8 @@ https://github.com/emacs-evil/evil "atril" '(file)) ;; (list (openwith-make-extension-regexp '("flac" "mp3" "wav")) ;; "vlc" '(file)) - (list (openwith-make-extension-regexp '("bmp" "jpeg" "jpg" "png")) - "vimiv" '(file)) + (list (openwith-make-extension-regexp '("bmp" "jpeg" "jpg" "png" "webp")) + "sxiv -t ." '(file)) (list (openwith-make-extension-regexp '("mpv" "mkv" "mp4")) "mpv" '(file)) (list (openwith-make-extension-regexp '("doc" "docx" "odt")) @@ -647,6 +659,7 @@ https://github.com/emacs-evil/evil #+end_src ** file (copy file, open file in dired) +*** Dired function #+begin_src emacs-lisp (defun open-current-directory-in-dired () "Open the current directory of the current file in Dired. @@ -656,13 +669,27 @@ If a Dired buffer is already opened, navigate to that buffer." (if (get-buffer-window (dired-noselect dir)) (switch-to-buffer-other-window (dired-noselect dir)) (dired-jump nil dir)))) +#+end_src + +*** transpose-frame +#+begin_src emacs-lisp +(use-package transpose-frame + :ensure t + :bind ( + ("C-t" . transpose-frame) +)) +#+end_src + +#+begin_src emacs-lisp (spc-leader - "f" '(:ignore t :wk "file") + "f" '(:ignore t :wk "file/frame") + "f t" '(transpose-frame :wk "transpose-frame") "f c" '(copy-file :wk "copy file") "f o" '(open-current-directory-in-dired :wk "open in dired")) #+end_src + ** bm-marks / org tangle #+begin_src emacs-lisp (spc-leader @@ -713,6 +740,15 @@ add and switch project #+end_src + +*** Search M-x commands with fzf +#+begin_src emacs-lisp +(use-package fzf + :ensure t + :init (setenv "FZF_DEFAULT_COMMAND" "fd --type f") +) +#+end_src + hot keys #+begin_src emacs-lisp (spc-leader @@ -819,7 +855,7 @@ hot keys "g l g" '(magit-log-current :wk "log") "g l l" '(magit-log-buffer-file :wk "log buffer") - "g c" '(magit-commit t :wk "commit") + "g c" '(magit-commit-create t :wk "commit") "g b" '(:ignore t :wk "branch") "g b b" '(magit-branch-checkout t :wk "checkout") @@ -834,6 +870,8 @@ hot keys "g d d" '(magit-diff-buffer-file :wk "log buffer") "g d g" '(magit-diff-unstaged :wk "diff unstaged buffer") "g d s" '(magit-diff-staged :wk "diff staged buffer") + + "g f" '(magit-fetch :wk "fetch") ) #+end_src @@ -927,6 +965,16 @@ hot keys (setq org-image-actual-width '(500)) #+end_src +** org level size +#+begin_src emacs-lisp +;; Установка стилей для заголовков +(custom-set-faces + '(org-level-1 ((t (:height 1.5 :weight bold)))) + '(org-level-2 ((t (:height 1.3 :weight bold)))) + '(org-level-3 ((t (:height 1.2)))) + '(org-level-4 ((t (:height 1.1))))) +#+end_src + * PROGRAMMING ** snipets @@ -959,26 +1007,35 @@ hot keys (add-hook 'go-mode-hook 'load-go-config) #+end_src +** Emacs-lisp +#+begin_src emacs-lisp +(use-package highlight-function-calls + :ensure t + :config + (add-hook 'emacs-lisp-mode-hook 'highlight-function-calls-mode)) +#+end_src + * decorations ** colorthemes #+begin_src emacs-lisp (custom-set-faces '(line-number ((t (:foreground "white")))) ; Цвет отображения номера строки '(line-number-current-line ((t (:foreground "white"))))) ; Цвет текущей строки -;; '(line-number ((t (:foreground "black")))) ; Цвет отображения номера строки -;; '(line-number-current-line ((t (:foreground "black"))))) ; Цвет текущей строки +'(org-block-background ((t (:background "#1b1b1b")))) +; '(line-number ((t (:foreground "black")))) ; Цвет отображения номера строки +; '(line-number-current-line ((t (:foreground "black"))))) ; Цвет текущей строки ;; (load-theme 'doom-1337 t) ;; (load-theme 'doom-nord t) ;; (load-theme 'doom-nord-aurora t) ;; (load-theme 'doom-nord-light t) ;; (load-theme 'doom-one-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-dracula 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-monokai-pro t) ;; (load-theme 'doom-spacegrey t) @@ -986,6 +1043,8 @@ hot keys ;; (load-theme 'doom-xcode t) ;; (load-theme 'doom-solarized-light t) ;; (load-theme 'doom-solarized-dark t) +;; (load-theme 'solarized-gruvbox-light t) +;; (load-theme 'solarized-gruvbox-dark t) ;; (add-to-list 'custom-theme-load-path "~/.emacs.d/everforest-theme") ;; (load-theme 'everforest-hard-dark t) @@ -1000,7 +1059,7 @@ hot keys ;; (set-frame-parameter nil 'alpha-background 100) ;; (set-frame-parameter nil 'alpha-background 92) -(let ((al 92)) ;; Прозрачность % +(let ((al 90)) ;; Прозрачность % (set-frame-parameter (selected-frame) 'alpha `(,al . ,al)) ;; Прозрачность для текущего фрейма (add-to-list 'default-frame-alist `(alpha . (,al . ,al)))) ;; Прозрачность для всех новых фреймов @@ -1042,7 +1101,7 @@ hot keys (defun set-big-font () (interactive) (set-face-attribute 'default nil - :font "JetBrainsMonoNL Nerd Font" + :font "Firacode Nerd Font" :height 140 :weight 'medium)) @@ -1240,6 +1299,24 @@ names, e.g. #0000ff is displayed in white with a blue background. #+end_src ** Latex (pdf) +*** Warning +#+begin_quote +PLEASE READ THIS WARNING *********************************** + +The following (inessential) packages failed to install properly: + + yb-book + +You can fix this by running this command: + tlmgr update --all --reinstall-forcibly-removed +to complete the installation. + +However, if the problem was a failure to download (by far the +most common cause), check that you can connect to the chosen mirror +in a browser; you may need to specify a mirror explicitly. +****************************************************************** +#+end_quote + *** Install чтобы экспорт работал кректно надо установить pygments =pip install pygments= но для arch linux =sudo pacman -S python-pygments= @@ -1298,6 +1375,97 @@ https://tug.org/texlive/quickinstall.html a4paper — формат бумаги (можно поменять на letterpaper или другой, если требуется). left=2cm, right=2cm, top=2.5cm, bottom=2.5cm — отступы от левой, правой, верхней и нижней границы страницы, соответственно. можно изменить эти значения на нужные размеры в сантиметрах (или дюймах, используя in). +** Terminal +*** Open terminal with random buffer name +#+begin_src emacs-lisp +(defun run-buffer-random (command) + "Open a shell and rename its buffer to shell-." + (let ((random-name (format "shell-%s" (make-temp-name ""))) ; Генерируем случайное имя + (shell-buffer (funcall command))) ; Запускаем shell + (with-current-buffer shell-buffer + (rename-buffer random-name t)))) ; Переименовываем буфер + +(defun open-eshell-on-right () + "Open a terminal in a new right split window with a randomly named buffer." + (interactive) + (let ((term-buffer (generate-new-buffer (format "eshell-%s" (make-temp-name ""))))) + (set-window-buffer (split-window-right) term-buffer) + (select-window (get-buffer-window term-buffer)) + (eshell term-buffer))) + +(defun rand-eshell () + (interactive) + (run-buffer-random #'eshell)) ; Передаем функцию как объект + +(defun rand-shell () + (interactive) + (run-buffer-random #'vterm)) ; Передаем функцию как объект + +(defun default-terminal () + (interactive) + (run-buffer-random #'eshell)) +#+end_src + +*** scripts +**** fuzzy cd by main dirs +#+begin_src emacs-lisp +(defun counsel-find-dirs () + "Search directories with `find` and display results in Ivy." + (interactive) + (let* ((paths '("/home/fs/Desktop/pet" + "/home/fs/Desktop/tmp" + "/home/fs/Desktop/work")) + (find-command (concat "find " + (mapconcat #'shell-quote-argument paths " ") + " -maxdepth 2 -type d ! -readable -prune -o -print")) + (results (split-string (shell-command-to-string find-command) "\n" t))) + (ivy-read "Select directory: " results + :action (lambda (dir) + (when (file-directory-p dir) + (dired dir)))))) +#+end_src + +**** цвета +#+begin_src emacs-lisp +(add-hook 'eshell-preoutput-filter-functions + 'ansi-color-apply) + +(setenv "TERM" "xterm-256color") +#+end_src + +*** open terminal +#+begin_src emacs-lisp +(spc-leader + "t" '(:ignore t :wk "terminal") + "t e" '(rand-eshell :wk "run emacs shell") + "t s" '(rand-shell :wk "run standart shell") + "t t" '(open-eshell-on-right :wk "eshell on right") +) +#+end_src + +*** Vterm +#+begin_src emacs-lisp +(use-package eshell-vterm + :load-path "site-lisp/eshell-vterm" + :demand t + :after eshell + :config + (eshell-vterm-mode)) +#+end_src + +**** Vterm paste +#+begin_src emacs-lisp +(with-eval-after-load 'evil + (add-hook 'vterm-mode-hook + (lambda () + ;; Назначение hjkl как стрелок в normal state + (evil-define-key 'normal vterm-mode-map + "p" 'vterm-yank + "h" (lambda () (interactive) (vterm-send-key "")) + "j" (lambda () (interactive) (vterm-send-key "")) + "k" (lambda () (interactive) (vterm-send-key "")) + "l" (lambda () (interactive) (vterm-send-key "")))))) +#+end_src * EXWM ** setup windows hotkey @@ -1306,20 +1474,15 @@ left=2cm, right=2cm, top=2.5cm, bottom=2.5cm — отступы от левой, (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 +#+RESULTS: +: ace-swap-window + + ** setup wm #+begin_src emacs-lisp @@ -1327,9 +1490,15 @@ left=2cm, right=2cm, top=2.5cm, bottom=2.5cm — отступы от левой, ;; (expand-file-name ;; "lib/ex.org" ;; user-emacs-directory)) - #+end_src +* Text Processor +#+begin_src emacs-lisp +(org-babel-load-file + (expand-file-name + "lib/text-processor.el" + user-emacs-directory)) +#+end_src * scripts ** add projectile project @@ -1411,19 +1580,3 @@ left=2cm, right=2cm, top=2.5cm, bottom=2.5cm — отступы от левой, "i l " '(insert-latex-header :wk "latex header") ) #+end_src - -** open terminal -#+begin_src emacs-lisp -(defun open-term () - "Open a terminal in a new right split window." - (interactive) - (let ((term-buffer (generate-new-buffer "*term*"))) - (set-window-buffer (split-window-right) term-buffer) - (select-window (get-buffer-window term-buffer)) - (vterm))) - -(spc-leader - "t" '(:ignore t :wk "terminal") - "t t" '(open-term :wk "terminal") -) -#+end_src diff --git a/roles/dots/files/home/.emacs.d/lib/doom-tomorrow-night-theme.el b/roles/dots/files/home/.emacs.d/lib/doom-tomorrow-night-theme.el new file mode 100644 index 0000000..d4ac4e0 --- /dev/null +++ b/roles/dots/files/home/.emacs.d/lib/doom-tomorrow-night-theme.el @@ -0,0 +1,126 @@ +;;; doom-tomorrow-night-theme.el --- One of the dark variants of Tomorrow -*- lexical-binding: t; no-byte-compile: t; -*- +;; +;; Added: May 14, 2017 (4c981f2cccf3) +;; Author: Henrik Lissner +;; Maintainer: +;; Source: https://github.com/ChrisKempson/Tomorrow-Theme +;; +;;; Commentary: +;;; Code: + +(require 'doom-themes) + + +;; +;;; Variables + +(defgroup doom-tomorrow-night-theme nil + "Options for the `doom-tomorrow-night' theme." + :group 'doom-themes) + +(defcustom doom-tomorrow-night-padded-modeline doom-themes-padded-modeline + "If non-nil, adds a 4px padding to the mode-line. Can be an integer to +determine the exact padding." + :group 'doom-tomorrow-night-theme + :type '(choice integer boolean)) + + +;; +;;; Theme definition + + + +(def-doom-theme doom-tomorrow-night + "A theme based off of Chris Kempson's Tomorrow Dark." + + ;; name gui 256 16 + ((bg '("#000000" nil nil )) + (bg-alt '("#000000" nil nil )) + (base0 '("#0d0d0d" "black" "black" )) + (base1 '("#1b1b1b" "#1b1b1b" )) + (base2 '("#212122" "#1e1e1e" )) + (base3 '("#0d0d0d" "#292929" "brightblack")) ;; bg org mode + (base4 '("#3f4040" "#3f3f3f" "brightblack")) + (base5 '("#5c5e5e" "#525252" "brightblack")) + (base6 '("#757878" "#6b6b6b" "brightblack")) + (base7 '("#969896" "#979797" "brightblack")) + (base8 '("#ffffff" "#ffffff" "white" )) + (fg '("#c5c8c6" "#c5c5c5" "white")) + (fg-alt (doom-darken fg 0.4)) + + (grey '("#5a5b5a" "#5a5a5a" "brightblack")) + (red '("#cc6666" "#cc6666" "red")) + (orange '("#de935f" "#dd9955" "brightred")) + (yellow '("#f0c674" "#f0c674" "yellow")) + (green '("#b5bd68" "#b5bd68" "green")) + (blue '("#81a2be" "#88aabb" "brightblue")) + (dark-blue '("#41728e" "#41728e" "blue")) + (teal blue) ; FIXME replace with real teal + (magenta '("#c9b4cf" "#c9b4cf" "magenta")) + (violet '("#b294bb" "#b294bb" "brightmagenta")) + (cyan '("#8abeb7" "#8abeb7" "cyan")) + (dark-cyan (doom-darken cyan 0.4)) + + ;; face categories + (highlight blue) + (vertical-bar base0) + (selection `(,(car (doom-lighten bg 0.1)) ,@(cdr base4))) + (builtin blue) + (comments grey) + (doc-comments (doom-lighten grey 0.14)) + (constants orange) + (functions blue) + (keywords violet) + (methods blue) + (operators fg) + (type yellow) + (strings green) + (variables red) + (numbers orange) + (region selection) + (error red) + (warning yellow) + (success green) + (vc-modified fg-alt) + (vc-added green) + (vc-deleted red) + + ;; custom categories + (modeline-bg `(,(doom-darken (car bg-alt) 0.3) ,@(cdr base3))) + (modeline-bg-alt `(,(car bg) ,@(cdr base1))) + (modeline-fg base8) + (modeline-fg-alt comments) + (-modeline-pad + (when doom-tomorrow-night-padded-modeline + (if (integerp doom-tomorrow-night-padded-modeline) + doom-tomorrow-night-padded-modeline + 4)))) + + + ;; --- faces ------------------------------ + (((line-number &override) :foreground base4) + ((line-number-current-line &override) :foreground blue :bold bold) + (mode-line + :background modeline-bg :foreground modeline-fg + :box (if -modeline-pad `(:line-width ,-modeline-pad :color ,modeline-bg))) + (mode-line-inactive + :background modeline-bg-alt :foreground modeline-fg-alt + :box (if -modeline-pad `(:line-width ,-modeline-pad :color ,modeline-bg-alt))) + + ;;;; rainbow-delimiters + (rainbow-delimiters-depth-1-face :foreground violet) + (rainbow-delimiters-depth-2-face :foreground blue) + (rainbow-delimiters-depth-3-face :foreground orange) + (rainbow-delimiters-depth-4-face :foreground green) + (rainbow-delimiters-depth-5-face :foreground magenta) + (rainbow-delimiters-depth-6-face :foreground yellow) + (rainbow-delimiters-depth-7-face :foreground teal) + ;;;; doom-modeline + (doom-modeline-buffer-path :foreground violet :bold bold) + (doom-modeline-buffer-major-mode :inherit 'doom-modeline-buffer-path)) + + ;; --- variables -------------------------- + ;; () + ) + +;;; doom-tomorrow-night-theme.el ends here diff --git a/roles/dots/files/home/.emacs.d/lib/ex.el b/roles/dots/files/home/.emacs.d/lib/ex.el index ae3f9b2..2ab7188 100644 --- a/roles/dots/files/home/.emacs.d/lib/ex.el +++ b/roles/dots/files/home/.emacs.d/lib/ex.el @@ -1,5 +1,161 @@ +(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 - (setq exwm-workspace-number 9) + ;; 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)) -(message "----- hi") + +(require 'exwm-randr) +(exwm-randr-enable) + +(start-process-shell-command "xrandr" nil "xrandr --output HDMI1 --mode 3840x2160 --panning 3840x2160 --rate 60 --output eDP1 --off") + +(global-set-key (kbd "") 'volume-up) +(global-set-key (kbd "") 'volume-down) +(global-set-key (kbd "") 'volume-mute-toggle) diff --git a/roles/dots/files/home/.emacs.d/lib/text-processor.el b/roles/dots/files/home/.emacs.d/lib/text-processor.el new file mode 100644 index 0000000..734220a --- /dev/null +++ b/roles/dots/files/home/.emacs.d/lib/text-processor.el @@ -0,0 +1,45 @@ +(require 'json) +(require 'url-util) + + +(defun tx/add-to-end (start end user-input) + "" + (interactive "r\nsEnter: ") + (let ((selected-text (buffer-substring start end))) + (message "Selected text: %s, User input: %s" selected-text user-input) + (delete-region start end) + (dolist (line (split-string selected-text "\n")) + (insert (concat line user-input "\n"))))) + + +(defun tx/remove-line-separator (start end) + (interactive "r") + (let ((selected-text (buffer-substring start end))) + (delete-region start end) + (dolist (line (split-string selected-text "\n")) + (insert (string-replace " " "" (concat line " ")))) + )) + + +(defun tx/add-separator-by-symbol (start end user-input) + (interactive "r\nsEnter symbol: ") + (let ((selected-text (buffer-substring start end))) + (delete-region start end) + (dolist (line (split-string selected-text user-input)) + (insert (concat line user-input "\n"))))) + + +(defun tx/url-param-to-json (start end) + "Convert URL query parameters from the region (START END) into JSON format." + (interactive "r") + (let* ((url-string (buffer-substring-no-properties start end)) + (query-part (if (string-match "\\?.*" url-string) + (substring url-string (+ (match-beginning 0) 1)) + url-string)) + (params (url-parse-query-string query-part)) + (json-object (mapcar (lambda (pair) + (cons (car pair) (cadr pair))) + params))) + (kill-new (json-encode json-object)) + (message "Converted URL parameters to JSON and copied to clipboard: %s" + (json-encode json-object)))) diff --git a/roles/dots/files/home/.tmux.conf b/roles/dots/files/home/.tmux.conf index 2170852..0393968 100644 --- a/roles/dots/files/home/.tmux.conf +++ b/roles/dots/files/home/.tmux.conf @@ -42,7 +42,6 @@ set -g status-left-length 60 # set-option -g status-left "#[bg=colour241,fg=colour248] #S #[bg=black,fg=colour241,nobold,noitalics,nounderscore]" # set-option -g status-right "#[bg=black,fg=colour239 nobold, nounderscore, noitalics]#[bg=colour239,fg=colour246] %Y-%m-%d  %H:%M #[bg=colour239,fg=colour248,nobold,noitalics,nounderscore]#[bg=colour248,fg=colour237] #h " -# # set-window-option -g window-status-current-format "#[bg=green,fg=black,nobold,noitalics,nounderscore]#[bg=green,fg=black] #I #[bg=green,fg=black,bold] #W#{?window_zoomed_flag,*Z,} #[bg=black,fg=green,nobold,noitalics,nounderscore]" # set-window-option -g window-status-format "#[bg=white,fg=black,noitalics]#[bg=white,fg=black] #I #[bg=white,fg=black,bold] #W #[bg=black,fg=white,noitalics]" @@ -50,4 +49,3 @@ set -g status-left-length 60 set -g base-index 1 setw -g pane-base-index 1 bind-key s choose-tree -ZsK '#{?#{e|<:#{line},9},#{e|+:1,#{line}},#{?#{e|<:#{line},35},M-#{a:#{e|+:97,#{e|-:#{line},9}}},}}' - diff --git a/roles/dots/files/home/.xinitrc b/roles/dots/files/home/.xinitrc index 1116ac3..19d135b 100644 --- a/roles/dots/files/home/.xinitrc +++ b/roles/dots/files/home/.xinitrc @@ -3,12 +3,10 @@ xrandr --auto xrandr -r 60.00 xrdb ~/.Xresources slstatus & -# picom & +picom & flameshot & -emacs --bg-daemon=main & -emacs --bg-daemon=fm & -emacs --bg-daemon=music & -emacs --bg-daemon=other & dunst & exec ~/bin/startdwm # exec dwm +# exec dbus-launch --exit-with-session emacs +# while read -r line; do export "$line"; done < /home/fs/scale_vars && exec emacs diff --git a/roles/dots/files/home/bin/firefox_profiles.sh b/roles/dots/files/home/bin/firefox_profiles.sh index 122fee9..e1c4ff3 100755 --- a/roles/dots/files/home/bin/firefox_profiles.sh +++ b/roles/dots/files/home/bin/firefox_profiles.sh @@ -3,7 +3,9 @@ # Путь к файлу profiles.ini PROFILES_INI="$HOME/.mozilla/firefox/profiles.ini" + if [ "$XDG_SESSION_TYPE" == "wayland" ]; then +while read -r line; do export "$line"; done < /home/fs/scale_vars profiles_ini="$HOME/.mozilla/firefox/profiles.ini" profiles=$(grep '\[Profile' -A 2 "$profiles_ini" | grep 'Name=' | cut -d '=' -f 2) selected_profile=$(echo "$profiles" | wofi --dmenu --prompt "Choose Firefox Profile:") @@ -11,10 +13,10 @@ if [ "$XDG_SESSION_TYPE" == "wayland" ]; then firefox -P "$selected_profile"; fi else - # Получение списка профилей while read -r line; do export "$line"; done < /home/fs/scale_vars 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) + profile=$(grep '\[Profile' -A 2 "$PROFILES_INI" | grep "Name=" | sed 's/Name=//' | dmenu -l 15) if [ ! "$profile" = "" ]; then firefox -P "$profile"; fi diff --git a/roles/dots/files/home/bin/http b/roles/dots/files/home/bin/http index d477dac..66a7f04 100755 Binary files a/roles/dots/files/home/bin/http and b/roles/dots/files/home/bin/http differ diff --git a/roles/dots/files/home/bin/pywall.py b/roles/dots/files/home/bin/pywall.py index 1eef65a..d141f87 100755 --- a/roles/dots/files/home/bin/pywall.py +++ b/roles/dots/files/home/bin/pywall.py @@ -6,15 +6,17 @@ import time import sys path = '/home/fs/Pictures/pic/new_hidpi_wallpaper' -server = os.getenv('XDG_SESSION_TYPE') +# path = '/home/fs/Pictures/pic/mafu_wallpaper/' +minute = 10 +server = os.getenv('XDG_SESSION_TYPE') + if server == 'wayland': command = 'killall swaybg; swaybg -i "{}" -m fill &' else: command = 'feh --randomize --bg-fill "{}"' -minute = 10 if len(sys.argv) > 1: diff --git a/roles/dots/files/home/bin/rofi b/roles/dots/files/home/bin/rofi index 4b3a5bc..dafc17e 100755 --- a/roles/dots/files/home/bin/rofi +++ b/roles/dots/files/home/bin/rofi @@ -1,5 +1,10 @@ #!/bin/sh while read -r line; do export "$line"; done < /home/fs/scale_vars 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 -show-icons -icon-theme Papirus -dpi $dpi -sorting-method fzf -sort -matching fuzzy + +if [ "$XDG_SESSION_TYPE" == "wayland" ]; then + wofi --show run +else + # rofi -modi drun -show drun Papirus -dpi $dpi -sorting-method fzf -sort -matching fuzzy -show-icons -icon-theme Papirus + dmenu_run -l 15 +fi diff --git a/roles/dots/files/home/bin/wifi_passwords.db b/roles/dots/files/home/bin/wifi_passwords.db new file mode 100644 index 0000000..70032f8 Binary files /dev/null and b/roles/dots/files/home/bin/wifi_passwords.db differ diff --git a/roles/dots/files/system/pacman.conf b/roles/dots/files/system/pacman.conf index 9c0f211..675658e 100644 --- a/roles/dots/files/system/pacman.conf +++ b/roles/dots/files/system/pacman.conf @@ -8,7 +8,7 @@ Color #NoProgressBar CheckSpace #VerbosePkgLists -ILoveCandy +#ILoveCandy ParallelDownloads = 5 SigLevel = Required DatabaseOptional diff --git a/roles/dots/tasks/common_files.yml b/roles/dots/tasks/common_files.yml index 2808ca5..cf8264a 100644 --- a/roles/dots/tasks/common_files.yml +++ b/roles/dots/tasks/common_files.yml @@ -24,6 +24,7 @@ loop: - { src: "files/config/kitty" } - { src: "files/config/nvim" } + - { src: "files/config/nsxiv" } - name: Copy pacman.conf copy: diff --git a/roles/packages/tasks/apps.yml b/roles/packages/tasks/apps.yml index 1609ee9..bdb1d0b 100644 --- a/roles/packages/tasks/apps.yml +++ b/roles/packages/tasks/apps.yml @@ -16,7 +16,7 @@ - name: drivers & demons & low level tools pacman: name: - - openresolv # resolv.conf management framework (resolvconf) Optional For: dhcpcd networkmanager wireguard-tools + - openresolv # resolv.conf management framework (resolvconf) Optional For: dhcpcd networkmanager wireguard-tools - android-file-transfer - openssh - ntfs-3g @@ -35,7 +35,7 @@ - drawing - gnome-sound-recorder - cherrytree - - chromium + - brave - firefox - libreoffice-still - virt-manager @@ -87,3 +87,4 @@ - ttf-liberation - ttf-opensans - ttf-ubuntu-mono-nerd + - ttf-cascadia-code-nerd diff --git a/roles/packages/tasks/aur.yml b/roles/packages/tasks/aur.yml index d830c0b..f0b0ab5 100644 --- a/roles/packages/tasks/aur.yml +++ b/roles/packages/tasks/aur.yml @@ -3,7 +3,5 @@ name: "{{ item }}" user: "{{ main_user.name }}" loop: - - moc-pulse - - vimiv-qt + # - vimiv-qt - ttf-devicons - - snapd diff --git a/roles/packages/tasks/main.yml b/roles/packages/tasks/main.yml index 17d9dc6..cd6fe0d 100644 --- a/roles/packages/tasks/main.yml +++ b/roles/packages/tasks/main.yml @@ -1,14 +1,14 @@ - - name: install packages from main repository - ansible.builtin.include_tasks: - file: "apps.yml" + # - name: install packages from main repository + # ansible.builtin.include_tasks: + # file: "apps.yml" - - name: install aur packages - ansible.builtin.include_tasks: - file: "aur.yml" + # - name: install aur packages + # ansible.builtin.include_tasks: + # file: "aur.yml" - - name: include tasks install docker file - ansible.builtin.include_tasks: - file: "docker.yml" + # - name: include tasks install docker file + # ansible.builtin.include_tasks: + # file: "docker.yml" - name: include tasks install xorg when: display_server == 'xorg' diff --git a/roles/window_managers/files/sway/config b/roles/window_managers/files/sway/config index adcdc23..ab2c710 100644 --- a/roles/window_managers/files/sway/config +++ b/roles/window_managers/files/sway/config @@ -9,7 +9,8 @@ # titlebar_padding 1 # titlebar_border_thickness 0 -set $menu wofi --show run +# set $menu wofi --show run +set $menu ~/bin/rofi ### Variables # @@ -28,7 +29,7 @@ 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/pic/new_hidpi_wallpaper/wallpaper_upscayl_2x_realesrgan-x4plus-anime.png fill +output * bg /home/fs/Downloads/wp4330820-distro-wallpapers.png fill # # Example configuration: # @@ -83,23 +84,23 @@ output * bg /home/fs/Pictures/pic/new_hidpi_wallpaper/wallpaper_upscayl_2x_reale 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=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 --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" + # 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. diff --git a/roles/window_managers/files/sway/outputs b/roles/window_managers/files/sway/outputs index 7e256f5..ac2091f 100644 --- a/roles/window_managers/files/sway/outputs +++ b/roles/window_managers/files/sway/outputs @@ -1,20 +1,20 @@ -# Generated by nwg-displays on 2024-10-13 at 20:17:30. Do not edit manually. +# Generated by nwg-displays on 2024-12-30 at 07:56:36. Do not edit manually. -output "eDP-1" { - mode 1920x1080@60.004Hz - pos 2480 1800 +output "HDMI-A-1" { + mode 3840x2160@60.0Hz + pos 0 0 transform normal scale 1.0 scale_filter nearest adaptive_sync off dpms on } -output "HDMI-A-1" { - mode 3840x2160@60.0Hz - pos 1888 0 +output "eDP-1" { + mode 1920x1080@144.003Hz + pos 3840 0 transform normal - scale 1.2 - scale_filter linear + scale 1.0 + scale_filter nearest adaptive_sync off dpms on } diff --git a/roles/window_managers/files/waybar/backup/config b/roles/window_managers/files/waybar/backup/config new file mode 100644 index 0000000..2bc2e36 --- /dev/null +++ b/roles/window_managers/files/waybar/backup/config @@ -0,0 +1,212 @@ +{ + "layer": "top", + "position": "top", + + "modules-left": [ + "sway/mode", + "sway/workspaces", + "custom/arrow10", + "sway/window" + ], + + "modules-right": [ + "custom/arrow9", + "pulseaudio", + "custom/arrow8", + "network", + "custom/arrow7", + "memory", + "custom/arrow6", + "cpu", + "custom/arrow5", + "temperature", + "custom/arrow4", + "battery", + "custom/arrow3", + "sway/language", + "custom/arrow2", + "tray", + "clock#date", + "custom/arrow1", + "clock#time" + ], + + // Modules + + "battery": { + "interval": 10, + "states": { + "warning": 30, + "critical": 15 + }, + "format-time": "{H}:{M:02}", + "format": "{icon} {capacity}% ({time})", + "format-charging": " {capacity}% ({time})", + "format-charging-full": " {capacity}%", + "format-full": "{icon} {capacity}%", + "format-alt": "{icon} {power}W", + "format-icons": [ + " ", + " ", + " ", + " ", + " " + ], + "tooltip": false + }, + + "clock#time": { + "interval": 10, + "format": "{:%H:%M}", + "tooltip": false + }, + + "clock#date": { + "interval": 20, + "format": "{:%e %b %Y}", + "tooltip": false + //"tooltip-format": "{:%e %B %Y}" + }, + + "sway/language": { + "format": " {short}", + "min-length": 5, + "on-click": "swaymsg 'input * xkb_switch_layout next'", + "tooltip": false + }, + + "cpu": { + "interval": 5, + "tooltip": false, + "format": " {usage}%", + "format-alt": " {load}", + "states": { + "warning": 70, + "critical": 90 + } + }, + + "memory": { + "interval": 5, + "format": "RAM {used:0.1f}G/{total:0.1f}G", + "states": { + "warning": 70, + "critical": 90 + }, + "tooltip": false + }, + + "network": { + "interval": 5, + "format-wifi": " {essid} ({signalStrength}%)", + "format-ethernet": " {ifname}", + "format-disconnected": "No connection", + "format-alt": " {ipaddr}/{cidr}", + "tooltip": false + }, + + "sway/mode": { + "format": "{}", + "tooltip": false + }, + + "sway/window": { + "format": "{}", + "max-length": 30, + "tooltip": false + }, + + "sway/workspaces": { + "disable-scroll-wraparound": true, + "smooth-scrolling-threshold": 4, + "enable-bar-scroll": true, + "format": "{name}" + }, + + "pulseaudio": { + "format": "{icon} {volume}%", + "format-bluetooth": "{icon} {volume}%", + "format-muted": "", + "format-icons": { + "headphone": " ", + "hands-free": "", + "headset": "", + "phone": "", + "portable": "", + "car": "", + "default": [" ", " "] + }, + "scroll-step": 1, + "on-click": "pactl set-sink-mute @DEFAULT_SINK@ toggle", + "tooltip": false + }, + + "temperature": { + "critical-threshold": 90, + "interval": 5, + "format": "{icon} {temperatureC}°", + "format-icons": [ + "", + "", + "", + "", + "" + ], + "tooltip": false + }, + + "tray": { + "icon-size": 18 + //"spacing": 10 + }, + + "custom/arrow1": { + "format": "", + "tooltip": false + }, + + "custom/arrow2": { + "format": "", + "tooltip": false + }, + + "custom/arrow3": { + "format": "", + "tooltip": false + }, + + "custom/arrow4": { + "format": "", + "tooltip": false + }, + + "custom/arrow5": { + "format": "", + "tooltip": false + }, + + "custom/arrow6": { + "format": "", + "tooltip": false + }, + + "custom/arrow7": { + "format": "", + "tooltip": false + }, + + "custom/arrow8": { + "format": "", + "tooltip": false + }, + + "custom/arrow9": { + "format": "", + "tooltip": false + }, + + "custom/arrow10": { + "format": "", + "tooltip": false + } +} diff --git a/roles/window_managers/files/waybar/backup/style.css b/roles/window_managers/files/waybar/backup/style.css new file mode 100644 index 0000000..45561d2 --- /dev/null +++ b/roles/window_managers/files/waybar/backup/style.css @@ -0,0 +1,266 @@ + + +@keyframes blink-critical { + to { + /*color: @white;*/ + background-color: @critical; + } +} + + +/* Styles */ + +/* Colors (gruvbox) */ +@define-color black #282828; +@define-color red #cc241d; +@define-color green #98971a; +@define-color yellow #d79921; +@define-color blue #458588; +@define-color purple #b16286; +@define-color aqua #689d6a; +@define-color gray #a89984; +@define-color brgray #928374; +@define-color brred #fb4934; +@define-color brgreen #b8bb26; +@define-color bryellow #fabd2f; +@define-color brblue #83a598; +@define-color brpurple #d3869b; +@define-color braqua #8ec07c; +@define-color white #ebdbb2; +@define-color bg2 #504945; + + +@define-color warning @bryellow; +@define-color critical @red; +@define-color mode @black; +@define-color unfocused @bg2; +@define-color focused @braqua; +@define-color inactive @purple; +@define-color sound @brpurple; +@define-color network @purple; +@define-color memory @braqua; +@define-color cpu @green; +@define-color temp @brgreen; +@define-color layout @bryellow; +@define-color battery @aqua; +@define-color date @black; +@define-color time @white; + +/* Reset all styles */ +* { + border: none; + border-radius: 0; + min-height: 0; + margin: 0; + padding: 0; + box-shadow: none; + text-shadow: none; + icon-shadow: none; +} + +/* The whole bar */ +#waybar { + background: rgba(40, 40, 40, 0.8784313725); /* #282828e0 */ + color: @white; + font-family: JetBrains Mono, Siji; + /*font-size: 10pt; + font-weight: bold;*/ + font-size: 13pt; +} + +/* Each module */ +#battery, +#clock, +#cpu, +#language, +#memory, +#mode, +#network, +#pulseaudio, +#temperature, +#tray, +#backlight, +#idle_inhibitor, +#disk, +#user, +#mpris { + padding-left: 8pt; + padding-right: 8pt; +} + +/* Each critical module */ +#mode, +#memory.critical, +#cpu.critical, +#temperature.critical, +#battery.critical.discharging { + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; + animation-name: blink-critical; + animation-duration: 1s; +} + +/* Each warning */ +#network.disconnected, +#memory.warning, +#cpu.warning, +#temperature.warning, +#battery.warning.discharging { + color: @warning; +} + +/* And now modules themselves in their respective order */ + +/* Current sway mode (resize etc) */ +#mode { + color: @white; + background: @mode; +} + +/* Workspaces stuff */ +#workspaces button { + /*font-weight: bold;*/ + padding-left: 2pt; + padding-right: 2pt; + color: @white; + background: @unfocused; +} + +/* Inactive (on unfocused output) */ +#workspaces button.visible { + color: @white; + background: @inactive; +} + +/* Active (on focused output) */ +#workspaces button.focused { + color: @black; + background: @focused; +} + +/* Contains an urgent window */ +#workspaces button.urgent { + color: @black; + background: @warning; +} + +/* Style when cursor is on the button */ +#workspaces button:hover { + background: @black; + color: @white; +} + +#window { + margin-right: 35pt; + margin-left: 35pt; +} + +#pulseaudio { + background: @sound; + color: @black; +} + +#network { + background: @network; + color: @white; +} + +#memory { + background: @memory; + color: @black; +} + +#cpu { + background: @cpu; + color: @white; +} + +#temperature { + background: @temp; + color: @black; +} + +#language { + background: @layout; + color: @black; +} + +#battery { + background: @battery; + color: @white; +} + +#tray { + background: @date; +} + +#clock.date { + background: @date; + color: @white; +} + +#clock.time { + background: @time; + color: @black; +} + +#custom-arrow1 { + font-size: 11pt; + color: @time; + background: @date; +} + +#custom-arrow2 { + font-size: 11pt; + color: @date; + background: @layout; +} + +#custom-arrow3 { + font-size: 11pt; + color: @layout; + background: @battery; +} + +#custom-arrow4 { + font-size: 11pt; + color: @battery; + background: @temp; +} + +#custom-arrow5 { + font-size: 11pt; + color: @temp; + background: @cpu; +} + +#custom-arrow6 { + font-size: 11pt; + color: @cpu; + background: @memory; +} + +#custom-arrow7 { + font-size: 11pt; + color: @memory; + background: @network; +} + +#custom-arrow8 { + font-size: 11pt; + color: @network; + background: @sound; +} + +#custom-arrow9 { + font-size: 11pt; + color: @sound; + background: transparent; +} + +#custom-arrow10 { + font-size: 11pt; + color: @unfocused; + background: transparent; +} diff --git a/roles/window_managers/files/waybar/config b/roles/window_managers/files/waybar/config index 2bc2e36..19c27db 100644 --- a/roles/window_managers/files/waybar/config +++ b/roles/window_managers/files/waybar/config @@ -1,102 +1,101 @@ +// -*- mode: json -*- + { "layer": "top", "position": "top", "modules-left": [ - "sway/mode", "sway/workspaces", - "custom/arrow10", - "sway/window" + "custom/right-arrow-dark" + ], + "modules-center": [ + "custom/left-arrow-dark", + "clock#1", + "custom/left-arrow-light", + "custom/left-arrow-dark", + "clock#2", + "custom/right-arrow-dark", + "custom/right-arrow-light", + "clock#3", + "custom/right-arrow-dark" ], - "modules-right": [ - "custom/arrow9", + "custom/left-arrow-dark", "pulseaudio", - "custom/arrow8", - "network", - "custom/arrow7", + "custom/left-arrow-light", + "custom/left-arrow-dark", + "network", + "custom/left-arrow-light", + "custom/left-arrow-dark", + "sway/language", + "custom/left-arrow-light", + "custom/left-arrow-dark", "memory", - "custom/arrow6", + "custom/left-arrow-light", + "custom/left-arrow-dark", "cpu", - "custom/arrow5", - "temperature", - "custom/arrow4", + "custom/left-arrow-light", + "custom/left-arrow-dark", "battery", - "custom/arrow3", - "sway/language", - "custom/arrow2", - "tray", - "clock#date", - "custom/arrow1", - "clock#time" + "custom/left-arrow-light", + "custom/left-arrow-dark", + "disk", + "custom/left-arrow-light", + "custom/left-arrow-dark", + "tray" ], - // Modules - - "battery": { - "interval": 10, - "states": { - "warning": 30, - "critical": 15 - }, - "format-time": "{H}:{M:02}", - "format": "{icon} {capacity}% ({time})", - "format-charging": " {capacity}% ({time})", - "format-charging-full": " {capacity}%", - "format-full": "{icon} {capacity}%", - "format-alt": "{icon} {power}W", - "format-icons": [ - " ", - " ", - " ", - " ", - " " - ], + "custom/left-arrow-dark": { + "format": "", + "tooltip": false + }, + "custom/left-arrow-light": { + "format": "", + "tooltip": false + }, + "custom/right-arrow-dark": { + "format": "", + "tooltip": false + }, + "custom/right-arrow-light": { + "format": "", "tooltip": false }, - "clock#time": { - "interval": 10, + "sway/workspaces": { + "disable-scroll": true, + "format": "{name}" + }, + + "clock#1": { + "format": "{:%a}", + "tooltip": false + }, + "clock#2": { "format": "{:%H:%M}", "tooltip": false }, - - "clock#date": { - "interval": 20, - "format": "{:%e %b %Y}", - "tooltip": false - //"tooltip-format": "{:%e %B %Y}" - }, - - "sway/language": { - "format": " {short}", - "min-length": 5, - "on-click": "swaymsg 'input * xkb_switch_layout next'", + "clock#3": { + "format": "{:%m-%d}", "tooltip": false }, - "cpu": { - "interval": 5, - "tooltip": false, - "format": " {usage}%", - "format-alt": " {load}", - "states": { - "warning": 70, - "critical": 90 - } - }, - - "memory": { - "interval": 5, - "format": "RAM {used:0.1f}G/{total:0.1f}G", - "states": { - "warning": 70, - "critical": 90 + "pulseaudio": { + "format": "{icon} {volume:2}%", + "format-bluetooth": "{icon} {volume}%", + "format-muted": "MUTE", + "format-icons": { + "headphones": "", + "default": [ + "", + "" + ] }, - "tooltip": false + "scroll-step": 5, + "on-click": "pamixer -t", + "on-click-right": "pavucontrol" }, - - "network": { + "network": { "interval": 5, "format-wifi": " {essid} ({signalStrength}%)", "format-ethernet": " {ifname}", @@ -104,109 +103,41 @@ "format-alt": " {ipaddr}/{cidr}", "tooltip": false }, - - "sway/mode": { - "format": "{}", + "sway/language": { + "format": " {short}", + "min-length": 5, + "on-click": "swaymsg 'input * xkb_switch_layout next'", "tooltip": false }, - - "sway/window": { - "format": "{}", - "max-length": 30, - "tooltip": false - }, - - "sway/workspaces": { - "disable-scroll-wraparound": true, - "smooth-scrolling-threshold": 4, - "enable-bar-scroll": true, - "format": "{name}" - }, - - "pulseaudio": { - "format": "{icon} {volume}%", - "format-bluetooth": "{icon} {volume}%", - "format-muted": "", - "format-icons": { - "headphone": " ", - "hands-free": "", - "headset": "", - "phone": "", - "portable": "", - "car": "", - "default": [" ", " "] - }, - "scroll-step": 1, - "on-click": "pactl set-sink-mute @DEFAULT_SINK@ toggle", - "tooltip": false - }, - - "temperature": { - "critical-threshold": 90, + "memory": { "interval": 5, - "format": "{icon} {temperatureC}°", + "format": "Mem {}%" + }, + "cpu": { + "interval": 5, + "format": "CPU {usage:2}%" + }, + "battery": { + "states": { + "good": 95, + "warning": 30, + "critical": 15 + }, + "format": "{icon} {capacity}%", "format-icons": [ - "", - "", - "", - "", - "" - ], - "tooltip": false + "", + "", + "", + "", + "" + ] + }, + "disk": { + "interval": 5, + "format": "Disk {percentage_used:2}%", + "path": "/" }, - "tray": { - "icon-size": 18 - //"spacing": 10 - }, - - "custom/arrow1": { - "format": "", - "tooltip": false - }, - - "custom/arrow2": { - "format": "", - "tooltip": false - }, - - "custom/arrow3": { - "format": "", - "tooltip": false - }, - - "custom/arrow4": { - "format": "", - "tooltip": false - }, - - "custom/arrow5": { - "format": "", - "tooltip": false - }, - - "custom/arrow6": { - "format": "", - "tooltip": false - }, - - "custom/arrow7": { - "format": "", - "tooltip": false - }, - - "custom/arrow8": { - "format": "", - "tooltip": false - }, - - "custom/arrow9": { - "format": "", - "tooltip": false - }, - - "custom/arrow10": { - "format": "", - "tooltip": false + "icon-size": 30 } } diff --git a/roles/window_managers/files/waybar/style.css b/roles/window_managers/files/waybar/style.css index 305789e..c85ee81 100644 --- a/roles/window_managers/files/waybar/style.css +++ b/roles/window_managers/files/waybar/style.css @@ -1,265 +1,84 @@ - - -@keyframes blink-critical { - to { - /*color: @white;*/ - background-color: @critical; - } -} - - -/* Styles */ - -/* Colors (gruvbox) */ -@define-color black #282828; -@define-color red #cc241d; -@define-color green #98971a; -@define-color yellow #d79921; -@define-color blue #458588; -@define-color purple #b16286; -@define-color aqua #689d6a; -@define-color gray #a89984; -@define-color brgray #928374; -@define-color brred #fb4934; -@define-color brgreen #b8bb26; -@define-color bryellow #fabd2f; -@define-color brblue #83a598; -@define-color brpurple #d3869b; -@define-color braqua #8ec07c; -@define-color white #ebdbb2; -@define-color bg2 #504945; - - -@define-color warning @bryellow; -@define-color critical @red; -@define-color mode @black; -@define-color unfocused @bg2; -@define-color focused @braqua; -@define-color inactive @purple; -@define-color sound @brpurple; -@define-color network @purple; -@define-color memory @braqua; -@define-color cpu @green; -@define-color temp @brgreen; -@define-color layout @bryellow; -@define-color battery @aqua; -@define-color date @black; -@define-color time @white; - -/* Reset all styles */ * { - border: none; - border-radius: 0; - min-height: 0; - margin: 0; - padding: 0; - box-shadow: none; - text-shadow: none; - icon-shadow: none; + font-size: 20px; + font-family: monospace; } -/* The whole bar */ -#waybar { - background: rgba(40, 40, 40, 0.8784313725); /* #282828e0 */ - color: @white; - font-family: JetBrains Mono, Siji; - font-size: 10pt; - /*font-weight: bold;*/ +window#waybar { + background: #292b2e; + color: #fdf6e3; } -/* Each module */ -#battery, -#clock, -#cpu, -#language, -#memory, -#mode, -#network, +#custom-right-arrow-dark, +#custom-left-arrow-dark { + color: #1a1a1a; +} +#custom-right-arrow-light, +#custom-left-arrow-light { + color: #292b2e; + background: #1a1a1a; +} + +#workspaces, +#clock.1, +#clock.2, +#clock.3, #pulseaudio, -#temperature, -#tray, -#backlight, -#idle_inhibitor, +#memory, +#cpu, +#battery, #disk, -#user, -#mpris { - padding-left: 8pt; - padding-right: 8pt; +#network, +#language, +#tray { + background: #1a1a1a; } -/* Each critical module */ -#mode, -#memory.critical, -#cpu.critical, -#temperature.critical, -#battery.critical.discharging { - animation-timing-function: linear; - animation-iteration-count: infinite; - animation-direction: alternate; - animation-name: blink-critical; - animation-duration: 1s; -} - -/* Each warning */ -#network.disconnected, -#memory.warning, -#cpu.warning, -#temperature.warning, -#battery.warning.discharging { - color: @warning; -} - -/* And now modules themselves in their respective order */ - -/* Current sway mode (resize etc) */ -#mode { - color: @white; - background: @mode; -} - -/* Workspaces stuff */ #workspaces button { - /*font-weight: bold;*/ - padding-left: 2pt; - padding-right: 2pt; - color: @white; - background: @unfocused; + padding: 0 2px; + color: #fdf6e3; } - -/* Inactive (on unfocused output) */ -#workspaces button.visible { - color: @white; - background: @inactive; -} - -/* Active (on focused output) */ #workspaces button.focused { - color: @black; - background: @focused; + color: #268bd2; } - -/* Contains an urgent window */ -#workspaces button.urgent { - color: @black; - background: @warning; -} - -/* Style when cursor is on the button */ #workspaces button:hover { - background: @black; - color: @white; + box-shadow: inherit; + text-shadow: inherit; } - -#window { - margin-right: 35pt; - margin-left: 35pt; +#workspaces button:hover { + background: #1a1a1a; + border: #1a1a1a; + padding: 0 3px; } #pulseaudio { - background: @sound; - color: @black; + color: #268bd2; } - -#network { - background: @network; - color: @white; -} - #memory { - background: @memory; - color: @black; + color: #2aa198; } - #cpu { - background: @cpu; - color: @white; + color: #6c71c4; } - -#temperature { - background: @temp; - color: @black; -} - -#language { - background: @layout; - color: @black; -} - #battery { - background: @battery; - color: @white; + color: #859900; +} +#disk { + color: #b58900; +} +#network { + color: #C7EFCF; +} +#language { + color: #E4DFDA; } -#tray { - background: @date; -} -#clock.date { - background: @date; - color: @white; -} - -#clock.time { - background: @time; - color: @black; -} - -#custom-arrow1 { - font-size: 11pt; - color: @time; - background: @date; -} - -#custom-arrow2 { - font-size: 11pt; - color: @date; - background: @layout; -} - -#custom-arrow3 { - font-size: 11pt; - color: @layout; - background: @battery; -} - -#custom-arrow4 { - font-size: 11pt; - color: @battery; - background: @temp; -} - -#custom-arrow5 { - font-size: 11pt; - color: @temp; - background: @cpu; -} - -#custom-arrow6 { - font-size: 11pt; - color: @cpu; - background: @memory; -} - -#custom-arrow7 { - font-size: 11pt; - color: @memory; - background: @network; -} - -#custom-arrow8 { - font-size: 11pt; - color: @network; - background: @sound; -} - -#custom-arrow9 { - font-size: 11pt; - color: @sound; - background: transparent; -} - -#custom-arrow10 { - font-size: 11pt; - color: @unfocused; - background: transparent; +#clock, +#pulseaudio, +#memory, +#cpu, +#battery, +#language, +#disk { + padding: 0 10px; } diff --git a/save_new_config.sh b/save_new_config.sh index 1681d37..e6c6188 100755 --- a/save_new_config.sh +++ b/save_new_config.sh @@ -1,6 +1,7 @@ #!/bin/bash rsync -av /home/fs/.config/nvim/ roles/dots/files/config/nvim --exclude packer rsync -av /home/fs/.config/kitty/ roles/dots/files/config/kitty +rsync -av /home/fs/.config/nsxiv/ roles/dots/files/config/nsxiv # emacs cp /home/fs/.emacs.d/config.org roles/dots/files/home/.emacs.d/ @@ -23,3 +24,4 @@ cp /home/fs/.ssh/config roles/dots/files/home/.ssh/ rsync -av /home/fs/.moc roles/dots/files/home/ rsync -av /home/fs/bin roles/dots/files/home/ +rsync -av /home/fs/bin roles/dots/files/home/