diff --git a/.bash_profile b/.bash_profile index 7ff99f6d8..9880631b0 100644 --- a/.bash_profile +++ b/.bash_profile @@ -34,4 +34,3 @@ if [ -z "$DISPLAY" ] && [ "$(tty)" = "/dev/tty1" ]; then exec Hyprland logout fi - diff --git a/.config/doom/config.el b/.config/doom/config.el deleted file mode 100644 index b94aaa64d..000000000 --- a/.config/doom/config.el +++ /dev/null @@ -1,311 +0,0 @@ -(beacon-mode 1) - -(map! :leader - (:prefix ("b". "buffer") - :desc "List bookmarks" "L" #'list-bookmarks - :desc "Save current bookmarks to bookmark file" "w" #'bookmark-save)) - -(global-auto-revert-mode 1) -(setq global-auto-revert-non-file-buffers t) - -(evil-define-key 'normal ibuffer-mode-map - (kbd "f c") 'ibuffer-filter-by-content - (kbd "f d") 'ibuffer-filter-by-directory - (kbd "f f") 'ibuffer-filter-by-filename - (kbd "f m") 'ibuffer-filter-by-mode - (kbd "f n") 'ibuffer-filter-by-name - (kbd "f x") 'ibuffer-filter-disable - (kbd "g h") 'ibuffer-do-kill-lines - (kbd "g H") 'ibuffer-update) - -;; https://stackoverflow.com/questions/9547912/emacs-calendar-show-more-than-3-months -(defun drk/year-calendar (&optional year) - (interactive) - (require 'calendar) - (let* ( - (current-year (number-to-string (nth 5 (decode-time (current-time))))) - (month 0) - (year (if year year (string-to-number (format-time-string "%Y" (current-time)))))) - (switch-to-buffer (get-buffer-create calendar-buffer)) - (when (not (eq major-mode 'calendar-mode)) - (calendar-mode)) - (setq displayed-month month) - (setq displayed-year year) - (setq buffer-read-only nil) - (erase-buffer) - ;; horizontal rows - (dotimes (j 4) - ;; vertical columns - (dotimes (i 3) - (calendar-generate-month - (setq month (+ month 1)) - year - ;; indentation / spacing between months - (+ 5 (* 25 i)))) - (goto-char (point-max)) - (insert (make-string (- 10 (count-lines (point-min) (point-max))) ?\n)) - (widen) - (goto-char (point-max)) - (narrow-to-region (point-max) (point-max))) - (widen) - (goto-char (point-min)) - (setq buffer-read-only t))) - -(defun drk/scroll-year-calendar-forward (&optional arg event) - "Scroll the yearly calendar by year in a forward direction." - (interactive (list (prefix-numeric-value current-prefix-arg) - last-nonmenu-event)) - (unless arg (setq arg 0)) - (save-selected-window - (if (setq event (event-start event)) (select-window (posn-window event))) - (unless (zerop arg) - (let* ( - (year (+ displayed-year arg))) - (drk/year-calendar year))) - (goto-char (point-min)) - (run-hooks 'calendar-move-hook))) - -(defun drk/scroll-year-calendar-backward (&optional arg event) - "Scroll the yearly calendar by year in a backward direction." - (interactive (list (prefix-numeric-value current-prefix-arg) - last-nonmenu-event)) - (drk/scroll-year-calendar-forward (- (or arg 1)) event)) - -(map! :leader - :desc "Scroll year calendar backward" "" #'drk/scroll-year-calendar-backward - :desc "Scroll year calendar forward" "" #'drk/scroll-year-calendar-forward) - -(defalias 'year-calendar 'drk/year-calendar) - -(map! :leader - (:prefix ("c h" . "Help info from Clippy") - :desc "Clippy describes function under point" "f" #'clippy-describe-function - :desc "Clippy describes variable under point" "v" #'clippy-describe-variable)) - -;; With dired-open plugin, you can launch external programs for certain -;; extensions For example, I set all .png files to open in 'vimiv' and all .mp4 -;; files to open in 'mpv' -(setq dired-open-extensions '(("gif" . "vimiv") - ("jpg" . "vimiv") - ("png" . "vimiv") - ("mkv" . "mpv") - ("mp4" . "mpv"))) - -(evil-define-key 'normal peep-dired-mode-map - (kbd "j") 'peep-dired-next-file - (kbd "k") 'peep-dired-prev-file) -(add-hook 'peep-dired-hook 'evil-normalize-keymaps) - -(setq delete-by-moving-to-trash t - trash-directory "~/.local/share/Trash/files/") - -(setq doom-theme 'catppuccin) -(map! :leader - :desc "Load new theme" "h t" #'load-theme) -(setq catppuccin-flavor 'mocha) ;; or 'latte, 'macchiato, or 'mocha - -(use-package emojify - :hook (after-init . global-emojify-mode)) - -(setq doom-font (font-spec :family "Mononoki Nerd Font" :size 18) - doom-variable-pitch-font (font-spec :family "Mononoki Nerd Font" :size 18) - doom-big-font (font-spec :family "Mononoki Nerd Font" :size 24)) -(after! doom-themes - (setq doom-themes-enable-bold t - doom-themes-enable-italic t)) -(custom-set-faces! - '(font-lock-comment-face :slant italic) - '(font-lock-keyword-face :slant italic)) - -(defun drk/insert-todays-date (prefix) - (interactive "P") - (let ((format (cond - ((not prefix) "%A, %B %d, %Y") - ((equal prefix '(4)) "%m-%d-%Y") - ((equal prefix '(16)) "%Y-%m-%d")))) - (insert (format-time-string format)))) - -(require 'calendar) -(defun drk/insert-any-date (date) - "Insert DATE using the current locale." - (interactive (list (calendar-read-date))) - (insert (calendar-date-string date))) - -(map! :leader - (:prefix ("i d" . "Insert date") - :desc "Insert any date" "a" #'drk/insert-any-date - :desc "Insert todays date" "t" #'drk/insert-todays-date)) - -(setq ivy-posframe-display-functions-alist - '((swiper . ivy-posframe-display-at-point) - (complete-symbol . ivy-posframe-display-at-point) - (counsel-M-x . ivy-display-function-fallback) - (counsel-esh-history . ivy-posframe-display-at-window-center) - (counsel-describe-function . ivy-display-function-fallback) - (counsel-describe-variable . ivy-display-function-fallback) - (counsel-find-file . ivy-display-function-fallback) - (counsel-recentf . ivy-display-function-fallback) - (counsel-register . ivy-posframe-display-at-frame-bottom-window-center) - (dmenu . ivy-posframe-display-at-frame-top-center) - (nil . ivy-posframe-display)) - ivy-posframe-height-alist - '((swiper . 20) - (dmenu . 20) - (t . 10))) -(ivy-posframe-mode 1) ; 1 enables posframe-mode, 0 disables it. - -(map! :leader - (:prefix ("v" . "Ivy") - :desc "Ivy push view" "v p" #'ivy-push-view - :desc "Ivy switch view" "v s" #'ivy-switch-view)) - -(setq display-line-numbers-type t) -(map! :leader - :desc "Comment or uncomment lines" "TAB TAB" #'comment-line - (:prefix ("t" . "toggle") - :desc "Toggle line numbers" "l" #'doom/toggle-line-numbers - :desc "Toggle line highlight in frame" "h" #'hl-line-mode - :desc "Toggle line highlight globally" "H" #'global-hl-line-mode - :desc "Toggle truncate lines" "t" #'toggle-truncate-lines)) - -(custom-set-faces - '(markdown-header-face ((t (:inherit font-lock-function-name-face :weight bold :family "Mononoki Nerd Font")))) - '(markdown-header-face-1 ((t (:inherit markdown-header-face :height 1.7)))) - '(markdown-header-face-2 ((t (:inherit markdown-header-face :height 1.6)))) - '(markdown-header-face-3 ((t (:inherit markdown-header-face :height 1.5)))) - '(markdown-header-face-4 ((t (:inherit markdown-header-face :height 1.4)))) - '(markdown-header-face-5 ((t (:inherit markdown-header-face :height 1.3)))) - '(markdown-header-face-6 ((t (:inherit markdown-header-face :height 1.2))))) - -(set-face-attribute 'mode-line nil :font "Mononoki Nerd Font-14") -(setq doom-modeline-height 30 ;; sets modeline height - doom-modeline-bar-width 5 ;; sets right bar width - doom-modeline-persp-name t ;; adds perspective name to modeline - doom-modeline-persp-icon t) ;; adds folder icon next to persp name - -(xterm-mouse-mode 1) - -(map! :leader - :desc "Toggle neotree" "e" #'neotree-toggle) -(setq neo-theme 'nerd) -(setq neo-smart-open t) -(setq projectile-switch-project-action 'neotree-projectile-action) - -(map! :leader - (:prefix ("=" . "open file") - :desc "Edit agenda file" "a" #'(lambda () (interactive) (find-file "~/org/agenda.org")) - :desc "Edit doom config.org" "c" #'(lambda () (interactive) (find-file "~/.config/doom/config.org")) - :desc "Edit doom init.el" "i" #'(lambda () (interactive) (find-file "~/.config/doom/init.el")) - :desc "Edit doom packages.el" "p" #'(lambda () (interactive) (find-file "~/.config/doom/packages.el")))) - -(map! :leader - :desc "Org babel tangle" "m B" #'org-babel-tangle) -(after! org - (setq org-directory "~/org/" - org-agenda-files '("~/org/agenda.org") - org-default-notes-file (expand-file-name "notes.org" org-directory) - org-ellipsis " ▼ " - org-superstar-headline-bullets-list '("◉" "●" "○" "◆" "●" "○" "◆") - org-superstar-item-bullet-alist '((?+ . ?➤) (?- . ?✦)) ; changes +/- symbols in item lists - org-log-done 'time - org-hide-emphasis-markers t - ;; ex. of org-link-abbrev-alist in action - ;; [[arch-wiki:Name_of_Page][Description]] - org-link-abbrev-alist ; This overwrites the default Doom org-link-abbrev-list - '(("google" . "http://www.google.com/search?q=") - ("arch-wiki" . "https://wiki.archlinux.org/index.php/") - ("ddg" . "https://duckduckgo.com/?q=") - ("wiki" . "https://en.wikipedia.org/wiki/")) - org-todo-keywords ; This overwrites the default Doom org-todo-keywords - '((sequence - "TODO(t)" ; A task that is ready to be tackled - "BLOG(b)" ; Blog writing assignments - "GYM(g)" ; Things to accomplish at the gym - "GAME(j)" ; Things to accomplish at the gym - "PROJ(p)" ; A project that contains other tasks - "VIDEO(v)" ; Video assignments - "WAIT(w)" ; Something is holding up this task - "|" ; The pipe necessary to separate "active" states and "inactive" states - "DONE(d)" ; Task has been completed - "CANCELLED(c)" )))) ; Task has been cancelled - (setq org-agenda-custom-commands - '(("p" "Priority view" - ((tags "PRIORITY=\"A\"" - ((org-agenda-skip-function '(org-agenda-skip-entry-if 'todo 'done)) - (org-agenda-overriding-header "High priority unfinished tasks:"))) - (tags "PRIORITY=\"B\"" - ((org-agenda-skip-function '(org-agenda-skip-entry-if 'todo 'done)) - (org-agenda-overriding-header "Medium priority unfinished tasks:"))) - (tags "PRIORITY=\"C\"" - ((org-agenda-skip-function '(org-agenda-skip-entry-if 'todo 'done)) - (org-agenda-overriding-header "Low priority unfinished tasks:"))))) - ("i" "INTEC view" - ((tags "homeworks" - ((org-agenda-skip-function '(org-agenda-skip-entry-if 'todo 'done)) - (org-agenda-overriding-header "Pending homeworks:"))) - (tags "studies" - ((org-agenda-skip-function '(org-agenda-skip-entry-if 'todo 'done)) - (org-agenda-overriding-header "Pending studies:"))) - (tags "exam" - ((org-agenda-skip-function '(org-agenda-skip-entry-if 'todo 'done)) - (org-agenda-overriding-header "Pending exams:"))))) - )) - - (setq - org-agenda-block-separator 985827 - org-fancy-priorities-list '("󰈼" "󰈻" "󰈽") - org-priority-faces - '((?A :foreground "#fb4934" :weight bold) - (?B :foreground "#fabd2f" :weight bold) - (?C :foreground "#83a598" :weight bold))) - -(setq org-publish-use-timestamps-flag nil) -(setq org-export-with-broken-links t) - -(use-package! org-auto-tangle - :defer t - :hook (org-mode . org-auto-tangle-mode) - :config - (setq org-auto-tangle-default t)) - -(define-globalized-minor-mode global-rainbow-mode rainbow-mode - (lambda () (rainbow-mode 1))) -(global-rainbow-mode 1 ) - -(map! :leader - (:prefix ("r" . "registers") - :desc "Copy to register" "c" #'copy-to-register - :desc "Frameset to register" "f" #'frameset-to-register - :desc "Insert contents of register" "i" #'insert-register - :desc "Jump to register" "j" #'jump-to-register - :desc "List registers" "l" #'list-registers - :desc "Number to register" "n" #'number-to-register - :desc "Interactively choose a register" "r" #'counsel-register - :desc "View a register" "v" #'view-register - :desc "Window configuration to register" "w" #'window-configuration-to-register - :desc "Increment register" "+" #'increment-register - :desc "Point to register" "SPC" #'point-to-register)) - -(setq shell-file-name "/bin/fish" - vterm-max-scrollback 5000) -(map! :leader - :desc "Vterm popup toggle" "v t" #'+vterm/toggle) - -(defun prefer-horizontal-split () - (set-variable 'split-height-threshold nil t) - (set-variable 'split-width-threshold 40 t)) ; make this as low as needed -(add-hook 'markdown-mode-hook 'prefer-horizontal-split) -(map! :leader - :desc "Clone indirect buffer other window" "b c" #'clone-indirect-buffer-other-window) - -(map! :leader - (:prefix ("w" . "window") - :desc "Winner redo" "" #'winner-redo - :desc "Winner undo" "" #'winner-undo)) - -(map! :leader - :desc "Zap to char" "z" #'zap-to-char - :desc "Zap up to char" "Z" #'zap-up-to-char) - -(set-frame-parameter nil 'alpha-background 90) ; For current frame -(add-to-list 'default-frame-alist '(alpha-background . 90)) ; For all new frames henceforth diff --git a/.config/doom/config.org b/.config/doom/config.org deleted file mode 100644 index 256ab0203..000000000 --- a/.config/doom/config.org +++ /dev/null @@ -1,711 +0,0 @@ -#+TITLE: DRK's Doom Emacs Config -#+AUTHOR: Clay Gomera (Drake) -#+DESCRIPTION: DRK's personal Doom Emacs config. -#+STARTUP: showeverything -#+PROPERTY: header-args :tangle config.el - -* TABLE OF CONTENTS :toc: -- [[#about-this-config][ABOUT THIS CONFIG]] -- [[#beacon][BEACON]] -- [[#bookmarks-and-buffers][BOOKMARKS AND BUFFERS]] - - [[#bookmarks][Bookmarks]] - - [[#buffers][Buffers]] - - [[#global-auto-revert][Global Auto Revert]] - - [[#keybindings-within-ibuffer-mode][Keybindings within ibuffer mode]] -- [[#calendar][CALENDAR]] -- [[#clippy][CLIPPY]] -- [[#dired][DIRED]] - - [[#keybindings-within-dired-with-peep-dired-mode-enabled][Keybindings Within Dired With Peep-Dired-Mode Enabled]] - - [[#making-deleted-files-go-to-trash-can][Making deleted files go to trash can]] -- [[#doom-theme][DOOM THEME]] -- [[#emojis][EMOJIS]] -- [[#fonts][FONTS]] -- [[#insert-date][INSERT DATE]] -- [[#ivy][IVY]] - - [[#ivy-posframe][IVY-POSFRAME]] - - [[#ivy-keybindings][IVY KEYBINDINGS]] -- [[#line-settings][LINE SETTINGS]] -- [[#markdown][MARKDOWN]] -- [[#modeline][MODELINE]] -- [[#mouse-support][MOUSE SUPPORT]] -- [[#neotree][NEOTREE]] -- [[#open-specific-files][OPEN SPECIFIC FILES]] -- [[#org-mode][ORG MODE]] - - [[#org-publish][Org-publish]] - - [[#org-auto-tangle][Org-auto-tangle]] -- [[#rainbow-mode][RAINBOW MODE]] -- [[#registers][REGISTERS]] -- [[#shells][SHELLS]] -- [[#splits][SPLITS]] -- [[#winner-mode][WINNER MODE]] -- [[#zap-to-char][ZAP TO CHAR]] -- [[#transparent][TRANSPARENT]] - -* ABOUT THIS CONFIG -This is my personal Doom Emacs config. Doom Emacs is a distribution of Emacs -that uses the "evil" keybindings (Vim keybindings) and includes a number of nice -extensions and a bit of configuration out of the box. I am maintaining this -config not just for myself, but also for those that want to explore some of what -is possible with Emacs. I will add a lot of examples of plugins and settings, -some of them I may not even use personally. I do this because many people -following me on YouTube look at my configs as "documentation". This config is -based on DistroTube's config. - -* BEACON -Never lose your cursor. When you scroll, your cursor will shine! This is a -global minor-mode. Turn it on everywhere with: - -#+begin_src emacs-lisp -(beacon-mode 1) -#+end_src - -* BOOKMARKS AND BUFFERS -Doom Emacs uses 'SPC b' for keybindings related to bookmarks and buffers. - -** Bookmarks -Bookmarks are somewhat like registers in that they record positions you can jump -to. Unlike registers, they have long names, and they persist automatically from -one Emacs session to the next. The prototypical use of bookmarks is to record -where you were reading in various files. - -#+BEGIN_SRC emacs-lisp -(map! :leader - (:prefix ("b". "buffer") - :desc "List bookmarks" "L" #'list-bookmarks - :desc "Save current bookmarks to bookmark file" "w" #'bookmark-save)) -#+END_SRC - -** Buffers -Regarding /buffers/, the text you are editing in Emacs resides in an object called -a /buffer/. Each time you visit a file, a buffer is used to hold the file’s text. -Each time you invoke Dired, a buffer is used to hold the directory listing. -/Ibuffer/ is a program that lists all of your Emacs /buffers/, allowing you to -navigate between them and filter them. - -| COMMAND | DESCRIPTION | KEYBINDING | -|-----------------+----------------------+------------| -| ibuffer | Launch ibuffer | SPC b i | -| kill-buffer | Kill current buffer | SPC b k | -| next-buffer | Goto next buffer | SPC b n | -| previous-buffer | Goto previous buffer | SPC b p | -| save-buffer | Save current buffer | SPC b s | - -** Global Auto Revert -A buffer can get out of sync with respect to its visited file on disk if that -file is changed by another program. To keep it up to date, you can enable Auto -Revert mode by typing M-x auto-revert-mode, or you can set it to be turned on -globally with 'global-auto-revert-mode'. I have also turned on Global Auto -Revert on non-file buffers, which is especially useful for 'dired' buffers. - -#+begin_src emacs-lisp -(global-auto-revert-mode 1) -(setq global-auto-revert-non-file-buffers t) -#+end_src - -** Keybindings within ibuffer mode - -| COMMAND | DESCRIPTION | KEYBINDING | -|-----------------------------------+----------------------------------------+------------| -| ibuffer-mark-forward | Mark the buffer | m | -| ibuffer-unmark-forward | Unmark the buffer | u | -| ibuffer-do-kill-on-deletion-marks | Kill the marked buffers | x | -| ibuffer-filter-by-content | Ibuffer filter by content | f c | -| ibuffer-filter-by-directory | Ibuffer filter by directory | f d | -| ibuffer-filter-by-filename | Ibuffer filter by filename (full path) | f f | -| ibuffer-filter-by-mode | Ibuffer filter by mode | f m | -| ibuffer-filter-by-name | Ibuffer filter by name | f n | -| ibuffer-filter-disable | Disable ibuffer filter | f x | -| ibuffer-do-kill-lines | Hide marked buffers | g h | -| ibuffer-update | Restore hidden buffers | g H | - -#+begin_src emacs-lisp -(evil-define-key 'normal ibuffer-mode-map - (kbd "f c") 'ibuffer-filter-by-content - (kbd "f d") 'ibuffer-filter-by-directory - (kbd "f f") 'ibuffer-filter-by-filename - (kbd "f m") 'ibuffer-filter-by-mode - (kbd "f n") 'ibuffer-filter-by-name - (kbd "f x") 'ibuffer-filter-disable - (kbd "g h") 'ibuffer-do-kill-lines - (kbd "g H") 'ibuffer-update) -#+end_src - -* CALENDAR -Let's make a 12-month calendar available so we can have a calendar app that, -when we click on time/date in xmobar, we get a nice 12-month calendar to view. - -#+begin_src emacs-lisp -;; https://stackoverflow.com/questions/9547912/emacs-calendar-show-more-than-3-months -(defun drk/year-calendar (&optional year) - (interactive) - (require 'calendar) - (let* ( - (current-year (number-to-string (nth 5 (decode-time (current-time))))) - (month 0) - (year (if year year (string-to-number (format-time-string "%Y" (current-time)))))) - (switch-to-buffer (get-buffer-create calendar-buffer)) - (when (not (eq major-mode 'calendar-mode)) - (calendar-mode)) - (setq displayed-month month) - (setq displayed-year year) - (setq buffer-read-only nil) - (erase-buffer) - ;; horizontal rows - (dotimes (j 4) - ;; vertical columns - (dotimes (i 3) - (calendar-generate-month - (setq month (+ month 1)) - year - ;; indentation / spacing between months - (+ 5 (* 25 i)))) - (goto-char (point-max)) - (insert (make-string (- 10 (count-lines (point-min) (point-max))) ?\n)) - (widen) - (goto-char (point-max)) - (narrow-to-region (point-max) (point-max))) - (widen) - (goto-char (point-min)) - (setq buffer-read-only t))) - -(defun drk/scroll-year-calendar-forward (&optional arg event) - "Scroll the yearly calendar by year in a forward direction." - (interactive (list (prefix-numeric-value current-prefix-arg) - last-nonmenu-event)) - (unless arg (setq arg 0)) - (save-selected-window - (if (setq event (event-start event)) (select-window (posn-window event))) - (unless (zerop arg) - (let* ( - (year (+ displayed-year arg))) - (drk/year-calendar year))) - (goto-char (point-min)) - (run-hooks 'calendar-move-hook))) - -(defun drk/scroll-year-calendar-backward (&optional arg event) - "Scroll the yearly calendar by year in a backward direction." - (interactive (list (prefix-numeric-value current-prefix-arg) - last-nonmenu-event)) - (drk/scroll-year-calendar-forward (- (or arg 1)) event)) - -(map! :leader - :desc "Scroll year calendar backward" "" #'drk/scroll-year-calendar-backward - :desc "Scroll year calendar forward" "" #'drk/scroll-year-calendar-forward) - -(defalias 'year-calendar 'drk/year-calendar) -#+end_src - -* CLIPPY -Gives us a popup box with "Clippy, the paper clip". You can make him say various -things by calling 'clippy-say' function. But the more useful functions of -clippy are the two describe functions provided: 'clippy-describe-function' and -'clippy-describe-variable'. Hit the appropriate keybinding while the point is -over a function/variable to call it. A popup with helpful clippy will appear, -telling you about the function/variable (using describe-function and -describe-variable respectively). - -| COMMAND | DESCRIPTION | KEYBINDING | -|--------------------------+---------------------------------------+------------| -| clippy-describe-function | /Clippy describes function under point/ | SPC c h f | -| clippy-describe-variable | /Clippy describes variable under point/ | SPC c h v | - -#+begin_src emacs-lisp -(map! :leader - (:prefix ("c h" . "Help info from Clippy") - :desc "Clippy describes function under point" "f" #'clippy-describe-function - :desc "Clippy describes variable under point" "v" #'clippy-describe-variable)) -#+end_src - -* DIRED -Dired is the file manager within Emacs. - -#+begin_src emacs-lisp -;; With dired-open plugin, you can launch external programs for certain -;; extensions For example, I set all .png files to open in 'vimiv' and all .mp4 -;; files to open in 'mpv' -(setq dired-open-extensions '(("gif" . "vimiv") - ("jpg" . "vimiv") - ("png" . "vimiv") - ("mkv" . "mpv") - ("mp4" . "mpv"))) -#+end_src - -** Keybindings Within Dired With Peep-Dired-Mode Enabled -If peep-dired is enabled, you will get image previews as you go up/down with 'j' -and 'k' - -| COMMAND | DESCRIPTION | KEYBINDING | -|----------------------+------------------------------------------+------------| -| peep-dired | /Toggle previews within dired/ | SPC d p | -| peep-dired-next-file | /Move to next file in peep-dired-mode/ | j | -| peep-dired-prev-file | /Move to previous file in peep-dired-mode/ | k | - -#+BEGIN_SRC emacs-lisp -(evil-define-key 'normal peep-dired-mode-map - (kbd "j") 'peep-dired-next-file - (kbd "k") 'peep-dired-prev-file) -(add-hook 'peep-dired-hook 'evil-normalize-keymaps) -#+END_SRC - -** Making deleted files go to trash can -#+begin_src emacs-lisp -(setq delete-by-moving-to-trash t - trash-directory "~/.local/share/Trash/files/") -#+end_src - -* DOOM THEME -Setting the theme to doom-one. To try out new themes, I set a keybinding for -counsel-load-theme with 'SPC h t'. - -#+BEGIN_SRC emacs-lisp -(setq doom-theme 'catppuccin) -(map! :leader - :desc "Load new theme" "h t" #'load-theme) -(setq catppuccin-flavor 'mocha) ;; or 'latte, 'macchiato, or 'mocha -#+END_SRC - -* EMOJIS -Emojify is an Emacs extension to display emojis. It can display github style -emojis like :smile: or plain ascii ones like :). - -#+begin_src emacs-lisp -(use-package emojify - :hook (after-init . global-emojify-mode)) -#+end_src - -* FONTS -Settings related to fonts within Doom Emacs: -+ 'doom-font' -- standard monospace font that is used for most things in Emacs. -+ 'doom-variable-pitch-font' -- variable font which is useful in some Emacs plugins. -+ 'doom-big-font' -- used in doom-big-font-mode; useful for presentations. -+ 'font-lock-comment-face' -- for comments. -+ 'font-lock-keyword-face' -- for keywords with special significanclike 'setq' in elisp. - -#+BEGIN_SRC emacs-lisp -(setq doom-font (font-spec :family "Mononoki Nerd Font" :size 18) - doom-variable-pitch-font (font-spec :family "Mononoki Nerd Font" :size 18) - doom-big-font (font-spec :family "Mononoki Nerd Font" :size 24)) -(after! doom-themes - (setq doom-themes-enable-bold t - doom-themes-enable-italic t)) -(custom-set-faces! - '(font-lock-comment-face :slant italic) - '(font-lock-keyword-face :slant italic)) -#+END_SRC - -* INSERT DATE -Some custom functions to insert the date. The function 'insert-todays-date' can -be used one of three different ways: (1) just the keybinding without the -universal argument prefix, (2) with one universal argument prefix, or (3) with -two universal argument prefixes. The universal argument prefix is 'SPC-u' in -Doom Emacs (C-u in standard GNU Emacs). The function 'insert-any-date' only -outputs to one format, which is the same format as 'insert-todays-date' without -a prefix. - -| COMMAND | EXAMPLE OUTPUT | KEYBINDING | -|------------------------+---------------------------+-----------------------| -| drk/insert-todays-date | Friday, November 19, 2021 | SPC i d t | -| drk/insert-todays-date | 11-19-2021 | SPC u SPC i d t | -| drk/insert-todays-date | 2021-11-19 | SPC u SPC u SPC i d t | -| drk/insert-any-date | Friday, November 19, 2021 | SPC i d a | - -#+begin_src emacs-lisp -(defun drk/insert-todays-date (prefix) - (interactive "P") - (let ((format (cond - ((not prefix) "%A, %B %d, %Y") - ((equal prefix '(4)) "%m-%d-%Y") - ((equal prefix '(16)) "%Y-%m-%d")))) - (insert (format-time-string format)))) - -(require 'calendar) -(defun drk/insert-any-date (date) - "Insert DATE using the current locale." - (interactive (list (calendar-read-date))) - (insert (calendar-date-string date))) - -(map! :leader - (:prefix ("i d" . "Insert date") - :desc "Insert any date" "a" #'drk/insert-any-date - :desc "Insert todays date" "t" #'drk/insert-todays-date)) -#+end_src - -* IVY -Ivy is a generic completion mechanism for Emacs. - -** IVY-POSFRAME -Ivy-posframe is an ivy extension, which lets ivy use posframe to show its -candidate menu. Some of the settings below involve: -+ ivy-posframe-display-functions-alist -- sets the display position for specific - programs -+ ivy-posframe-height-alist -- sets the height of the list displayed for - specific programs - -Available functions (positions) for 'ivy-posframe-display-functions-alist' -+ ivy-posframe-display-at-frame-center -+ ivy-posframe-display-at-window-center -+ ivy-posframe-display-at-frame-bottom-left -+ ivy-posframe-display-at-window-bottom-left -+ ivy-posframe-display-at-frame-bottom-window-center -+ ivy-posframe-display-at-point -+ ivy-posframe-display-at-frame-top-center - -=NOTE:= If the setting for 'ivy-posframe-display' is set to 'nil' (false), -anything that is set to 'ivy-display-function-fallback' will just default to -their normal position in Doom Emacs (usually a bottom split). However, if this -is set to 't' (true), then the fallback position will be centered in the window. - -#+BEGIN_SRC emacs-lisp -(setq ivy-posframe-display-functions-alist - '((swiper . ivy-posframe-display-at-point) - (complete-symbol . ivy-posframe-display-at-point) - (counsel-M-x . ivy-display-function-fallback) - (counsel-esh-history . ivy-posframe-display-at-window-center) - (counsel-describe-function . ivy-display-function-fallback) - (counsel-describe-variable . ivy-display-function-fallback) - (counsel-find-file . ivy-display-function-fallback) - (counsel-recentf . ivy-display-function-fallback) - (counsel-register . ivy-posframe-display-at-frame-bottom-window-center) - (dmenu . ivy-posframe-display-at-frame-top-center) - (nil . ivy-posframe-display)) - ivy-posframe-height-alist - '((swiper . 20) - (dmenu . 20) - (t . 10))) -(ivy-posframe-mode 1) ; 1 enables posframe-mode, 0 disables it. -#+END_SRC - -** IVY KEYBINDINGS -By default, Doom Emacs does not use 'SPC v', so the format I use for these -bindings is 'SPC v' plus 'key'. - -#+BEGIN_SRC emacs-lisp -(map! :leader - (:prefix ("v" . "Ivy") - :desc "Ivy push view" "v p" #'ivy-push-view - :desc "Ivy switch view" "v s" #'ivy-switch-view)) -#+END_SRC - -* LINE SETTINGS -I set comment-line to 'SPC TAB TAB' which is a rather comfortable keybinding for -me on my ZSA Moonlander keyboard. The standard Emacs keybinding for -comment-line is 'C-x C-;'. The other keybindings are for commands that toggle -on/off various line-related settings. Doom Emacs uses 'SPC t' for "toggle" -commands, so I choose 'SPC t' plus 'key' for those bindings. - -| COMMAND | DESCRIPTION | KEYBINDING | -|--------------------------+-------------------------------------------+-------------| -| comment-line | /Comment or uncomment lines/ | SPC TAB TAB | -| hl-line-mode | /Toggle line highlighting in current frame/ | SPC t h | -| global-hl-line-mode | /Toggle line highlighting globally/ | SPC t H | -| doom/toggle-line-numbers | /Toggle line numbers/ | SPC t l | -| toggle-truncate-lines | /Toggle truncate lines/ | SPC t t | - -#+BEGIN_SRC emacs-lisp -(setq display-line-numbers-type t) -(map! :leader - :desc "Comment or uncomment lines" "TAB TAB" #'comment-line - (:prefix ("t" . "toggle") - :desc "Toggle line numbers" "l" #'doom/toggle-line-numbers - :desc "Toggle line highlight in frame" "h" #'hl-line-mode - :desc "Toggle line highlight globally" "H" #'global-hl-line-mode - :desc "Toggle truncate lines" "t" #'toggle-truncate-lines)) -#+END_SRC - -* MARKDOWN - -#+begin_src emacs-lisp -(custom-set-faces - '(markdown-header-face ((t (:inherit font-lock-function-name-face :weight bold :family "Mononoki Nerd Font")))) - '(markdown-header-face-1 ((t (:inherit markdown-header-face :height 1.7)))) - '(markdown-header-face-2 ((t (:inherit markdown-header-face :height 1.6)))) - '(markdown-header-face-3 ((t (:inherit markdown-header-face :height 1.5)))) - '(markdown-header-face-4 ((t (:inherit markdown-header-face :height 1.4)))) - '(markdown-header-face-5 ((t (:inherit markdown-header-face :height 1.3)))) - '(markdown-header-face-6 ((t (:inherit markdown-header-face :height 1.2))))) -#+end_src - -* MODELINE -The modeline is the bottom status bar that appears in Emacs windows. For more -information on what is available to configure in the Doom modeline, check out: -https://github.com/seagle0128/doom-modeline - -#+begin_src emacs-lisp -(set-face-attribute 'mode-line nil :font "Mononoki Nerd Font-14") -(setq doom-modeline-height 30 ;; sets modeline height - doom-modeline-bar-width 5 ;; sets right bar width - doom-modeline-persp-name t ;; adds perspective name to modeline - doom-modeline-persp-icon t) ;; adds folder icon next to persp name -#+end_src - -* MOUSE SUPPORT -Adding mouse support in the terminal version of Emacs. - -#+begin_src emacs-lisp -(xterm-mouse-mode 1) -#+end_src - -* NEOTREE -1. SPC + e to toggle neotree -2. Make neotree prettier -3. Every time when the neotree window is opened, let it find current file and jump to node. -4. When running ‘projectile-switch-project’ (SPC p p), ‘neotree’ will change root automatically. - -#+begin_src emacs-lisp -(map! :leader - :desc "Toggle neotree" "e" #'neotree-toggle) -(setq neo-theme 'nerd) -(setq neo-smart-open t) -(setq projectile-switch-project-action 'neotree-projectile-action) -#+end_src - -* OPEN SPECIFIC FILES -Keybindings to open files that I work with all the time using the find-file -command, which is the interactive file search that opens with 'C-x C-f' in GNU -Emacs or 'SPC f f' in Doom Emacs. These keybindings use find-file -non-interactively since we specify exactly what file to open. The format I use -for these bindings is 'SPC =' plus 'key' since Doom Emacs does not use 'SPC ='. - -| PATH TO FILE | DESCRIPTION | KEYBINDING | -|--------------------------------+-----------------------+------------| -| ~/org/agenda.org | /Edit agenda file/ | SPC = a | -| ~/.config/doom/config.org" | /Edit doom config.org/ | SPC = c | -| ~/.config/doom/init.el" | /Edit doom init.el/ | SPC = i | -| ~/.config/doom/packages.el" | /Edit doom packages.el/ | SPC = p | - -#+BEGIN_SRC emacs-lisp -(map! :leader - (:prefix ("=" . "open file") - :desc "Edit agenda file" "a" #'(lambda () (interactive) (find-file "~/org/agenda.org")) - :desc "Edit doom config.org" "c" #'(lambda () (interactive) (find-file "~/.config/doom/config.org")) - :desc "Edit doom init.el" "i" #'(lambda () (interactive) (find-file "~/.config/doom/init.el")) - :desc "Edit doom packages.el" "p" #'(lambda () (interactive) (find-file "~/.config/doom/packages.el")))) -#+END_SRC - -* ORG MODE -I wrapped most of this block in (after! org). Without this, my settings might -be evaluated too early, which will result in my settings being overwritten by -Doom's defaults. I have also enabled org-journal, org-superstar and org-roam by -adding (+journal +pretty +roam2) to the org section of my Doom Emacs init.el. - -#+BEGIN_SRC emacs-lisp -(map! :leader - :desc "Org babel tangle" "m B" #'org-babel-tangle) -(after! org - (setq org-directory "~/org/" - org-agenda-files '("~/org/agenda.org") - org-default-notes-file (expand-file-name "notes.org" org-directory) - org-ellipsis " ▼ " - org-superstar-headline-bullets-list '("◉" "●" "○" "◆" "●" "○" "◆") - org-superstar-item-bullet-alist '((?+ . ?➤) (?- . ?✦)) ; changes +/- symbols in item lists - org-log-done 'time - org-hide-emphasis-markers t - ;; ex. of org-link-abbrev-alist in action - ;; [[arch-wiki:Name_of_Page][Description]] - org-link-abbrev-alist ; This overwrites the default Doom org-link-abbrev-list - '(("google" . "http://www.google.com/search?q=") - ("arch-wiki" . "https://wiki.archlinux.org/index.php/") - ("ddg" . "https://duckduckgo.com/?q=") - ("wiki" . "https://en.wikipedia.org/wiki/")) - org-todo-keywords ; This overwrites the default Doom org-todo-keywords - '((sequence - "TODO(t)" ; A task that is ready to be tackled - "BLOG(b)" ; Blog writing assignments - "GYM(g)" ; Things to accomplish at the gym - "GAME(j)" ; Things to accomplish at the gym - "PROJ(p)" ; A project that contains other tasks - "VIDEO(v)" ; Video assignments - "WAIT(w)" ; Something is holding up this task - "|" ; The pipe necessary to separate "active" states and "inactive" states - "DONE(d)" ; Task has been completed - "CANCELLED(c)" )))) ; Task has been cancelled - (setq org-agenda-custom-commands - '(("p" "Priority view" - ((tags "PRIORITY=\"A\"" - ((org-agenda-skip-function '(org-agenda-skip-entry-if 'todo 'done)) - (org-agenda-overriding-header "High priority unfinished tasks:"))) - (tags "PRIORITY=\"B\"" - ((org-agenda-skip-function '(org-agenda-skip-entry-if 'todo 'done)) - (org-agenda-overriding-header "Medium priority unfinished tasks:"))) - (tags "PRIORITY=\"C\"" - ((org-agenda-skip-function '(org-agenda-skip-entry-if 'todo 'done)) - (org-agenda-overriding-header "Low priority unfinished tasks:"))))) - ("i" "INTEC view" - ((tags "homeworks" - ((org-agenda-skip-function '(org-agenda-skip-entry-if 'todo 'done)) - (org-agenda-overriding-header "Pending homeworks:"))) - (tags "studies" - ((org-agenda-skip-function '(org-agenda-skip-entry-if 'todo 'done)) - (org-agenda-overriding-header "Pending studies:"))) - (tags "exam" - ((org-agenda-skip-function '(org-agenda-skip-entry-if 'todo 'done)) - (org-agenda-overriding-header "Pending exams:"))))) - )) - - (setq - org-agenda-block-separator 985827 - org-fancy-priorities-list '("󰈼" "󰈻" "󰈽") - org-priority-faces - '((?A :foreground "#fb4934" :weight bold) - (?B :foreground "#fabd2f" :weight bold) - (?C :foreground "#83a598" :weight bold))) -#+END_SRC - -** Org-publish -#+begin_src emacs-lisp -(setq org-publish-use-timestamps-flag nil) -(setq org-export-with-broken-links t) -#+end_src - -** Org-auto-tangle -=org-auto-tangle= allows you to add the option =#+auto_tangle: t= in your Org file -so that it automatically tangles when you save the document. - -#+begin_src emacs-lisp -(use-package! org-auto-tangle - :defer t - :hook (org-mode . org-auto-tangle-mode) - :config - (setq org-auto-tangle-default t)) -#+end_src - -* RAINBOW MODE -Rainbox mode displays the actual color for any hex value color. It's such a -nice feature that I wanted it turned on all the time, regardless of what mode I -am in. The following creates a global minor mode for rainbow-mode and enables -it. - -#+begin_src emacs-lisp -(define-globalized-minor-mode global-rainbow-mode rainbow-mode - (lambda () (rainbow-mode 1))) -(global-rainbow-mode 1 ) -#+end_src - -* REGISTERS -Emacs registers are compartments where you can save text, rectangles and -positions for later use. Once you save text or a rectangle in a register, you -can copy it into the buffer once or many times; once you save a position in a -register, you can jump back to that position once or many times. The default -GNU Emacs keybindings for these commands (with the exception of -counsel-register) involves 'C-x r' followed by one or more other keys. I wanted -to make this a little more user friendly, and since I am using Doom Emacs, I -choose to replace the 'C-x r' part of the key chords with 'SPC r'. - -| COMMAND | DESCRIPTION | KEYBINDING | -|----------------------------------+----------------------------------+------------| -| copy-to-register | /Copy to register/ | SPC r c | -| frameset-to-register | /Frameset to register/ | SPC r f | -| insert-register | /Insert contents of register/ | SPC r i | -| jump-to-register | /Jump to register/ | SPC r j | -| list-registers | /List registers/ | SPC r l | -| number-to-register | /Number to register/ | SPC r n | -| counsel-register | /Interactively choose a register/ | SPC r r | -| view-register | /View a register/ | SPC r v | -| window-configuration-to-register | /Window configuration to register/ | SPC r w | -| increment-register | /Increment register/ | SPC r + | -| point-to-register | /Point to register/ | SPC r SPC | - -#+BEGIN_SRC emacs-lisp -(map! :leader - (:prefix ("r" . "registers") - :desc "Copy to register" "c" #'copy-to-register - :desc "Frameset to register" "f" #'frameset-to-register - :desc "Insert contents of register" "i" #'insert-register - :desc "Jump to register" "j" #'jump-to-register - :desc "List registers" "l" #'list-registers - :desc "Number to register" "n" #'number-to-register - :desc "Interactively choose a register" "r" #'counsel-register - :desc "View a register" "v" #'view-register - :desc "Window configuration to register" "w" #'window-configuration-to-register - :desc "Increment register" "+" #'increment-register - :desc "Point to register" "SPC" #'point-to-register)) -#+END_SRC - -* SHELLS -Settings for the various shells and terminal emulators within Emacs. -+ 'shell-file-name' -- sets the shell to be used in M-x shell, M-x term, M-x - ansi-term and M-x vterm. - -#+BEGIN_SRC emacs-lisp -(setq shell-file-name "/bin/fish" - vterm-max-scrollback 5000) -(map! :leader - :desc "Vterm popup toggle" "v t" #'+vterm/toggle) -#+END_SRC - -* SPLITS -I set splits to default to opening on the right using 'prefer-horizontal-split'. -I set a keybinding for 'clone-indirect-buffer-other-window' for when I want to -have the same document in two splits. The text of the indirect buffer is always -identical to the text of its base buffer; changes made by editing either one are -visible immediately in the other. But in all other respects, the indirect -buffer and its base buffer are completely separate. For example, I can fold one -split but other will be unfolded. - -#+BEGIN_SRC emacs-lisp -(defun prefer-horizontal-split () - (set-variable 'split-height-threshold nil t) - (set-variable 'split-width-threshold 40 t)) ; make this as low as needed -(add-hook 'markdown-mode-hook 'prefer-horizontal-split) -(map! :leader - :desc "Clone indirect buffer other window" "b c" #'clone-indirect-buffer-other-window) -#+END_SRC - -* WINNER MODE -Winner mode has been included with GNU Emacs since version 20. This is a global -minor mode and, when activated, it allows you to “undo” (and “redo”) changes in -the window configuration with the key commands 'SCP w ' and 'SPC w -'. - -#+BEGIN_SRC emacs-lisp -(map! :leader - (:prefix ("w" . "window") - :desc "Winner redo" "" #'winner-redo - :desc "Winner undo" "" #'winner-undo)) -#+END_SRC - -* ZAP TO CHAR -Emacs provides a 'zap-to-char' command that kills from the current point to a -character. It is bound to 'M-z' in standard GNU Emacs but since Doom Emacs uses -'SPC' as its leader key and does not have 'SPC z' binded to anything, it just -makes since to use it for 'zap-to-char'. Note that 'zap-to-char' can be used -with the universal argument 'SPC u' to modify its behavior. Examples of -'zap-to-char' usage are listed in the table below: - -| KEYBINDING | WHAT IS DOES | -|---------------------------+------------------------------------------------------------| -| SPC z e | deletes all chars to the next occurrence of 'e' | -| SPC u 2 SPC z e | deletes all chars to the second occurrence of 'e' | -| SPC u - SPC z e | deletes all chars to the previous occurrence of 'e' | -| SPC u -2 SPC z e | deletes all chars to the fourth previous occurrence of 'e' | -| SPC u 1 0 0 SPC u SPC z e | deletes all chars to the 100th occurrence of 'e' | - -=TIP:= The universal argument (SPC u) can only take a single integer by default. -If you need to use a multi-digit number (like 100 in the last example in the -table above), then you must terminate the universal argument with another 'SPC -u' after typing the number. - -'zap-up-to-char' is an alternative command that does not zap the char specified. -It is binded to 'SPC Z'. It can also be used in conjunction with the universal -argument 'SPC u' in similar fashion to the the 'zap-to-char' examples above. - -=NOTE:= Vim (evil mode) has similar functionality builtin. You can delete to the -next occurrence of 'e' by using 'dte' in normal. To delete to the next -occurrence of 'e' including the 'e', then you would use 'dfe'. And you can -modify 'dt' and 'df' by prefixing them with numbers, so '2dte' would delete to -the second occurrence of 'e'. - -#+BEGIN_SRC emacs-lisp -(map! :leader - :desc "Zap to char" "z" #'zap-to-char - :desc "Zap up to char" "Z" #'zap-up-to-char) -#+END_SRC - - -* TRANSPARENT -Transparent window - -#+BEGIN_SRC emacs-lisp -(set-frame-parameter nil 'alpha-background 90) ; For current frame -(add-to-list 'default-frame-alist '(alpha-background . 90)) ; For all new frames henceforth -#+END_SRC diff --git a/.config/doom/init.el b/.config/doom/init.el deleted file mode 100644 index bb3548bec..000000000 --- a/.config/doom/init.el +++ /dev/null @@ -1,195 +0,0 @@ -;;; init.el -*- lexical-binding: t; -*- - -;; This file controls what Doom modules are enabled and what order they load -;; in. Remember to run 'doom sync' after modifying it! - -;; NOTE Press 'SPC h d h' (or 'C-h d h' for non-vim users) to access Doom's -;; documentation. There you'll find a link to Doom's Module Index where all -;; of our modules are listed, including what flags they support. - -;; NOTE Move your cursor over a module's name (or its flags) and press 'K' (or -;; 'C-c c k' for non-vim users) to view its documentation. This works on -;; flags as well (those symbols that start with a plus). -;; -;; Alternatively, press 'gd' (or 'C-c c d') on a module to browse its -;; directory (for easy access to its source code). - -(doom! :input - ;;bidi ; (tfel ot) thgir etirw uoy gnipleh - ;;chinese - ;;japanese - ;;layout ; auie,ctsrnm is the superior home row - - :completion - company ; the ultimate code completion backend - ;;(corfu +orderless) ; complete with cap(f), cape and a flying feather! - ;;helm ; the *other* search engine for love and life - ;;ido ; the other *other* search engine... - ;;ivy ; a search engine for love and life - vertico ; the search engine of the future - - :ui - ;;deft ; notational velocity for Emacs - doom ; what makes DOOM look the way it does - doom-dashboard ; a nifty splash screen for Emacs - ;;doom-quit ; DOOM quit-message prompts when you quit Emacs - (emoji +unicode) ; 🙂 - hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW - ;;hydra - indent-guides ; highlighted indent columns - ;;ligatures ; ligatures and symbols to make your code pretty again - ;;minimap ; show a map of the code on the side - modeline ; snazzy, Atom-inspired modeline, plus API - ;;nav-flash ; blink cursor line after big motions - neotree ; a project drawer, like NERDTree for vim - ophints ; highlight the region an operation acts on - (popup +defaults) ; tame sudden yet inevitable temporary windows - ;;tabs ; a tab bar for Emacs - ;;treemacs ; a project drawer, like neotree but cooler - ;;unicode ; extended unicode support for various languages - (vc-gutter +pretty) ; vcs diff in the fringe - vi-tilde-fringe ; fringe tildes to mark beyond EOB - ;;window-select ; visually switch windows - workspaces ; tab emulation, persistence & separate workspaces - ;;zen ; distraction-free coding or writing - - :editor - (evil +everywhere); come to the dark side, we have cookies - file-templates ; auto-snippets for empty files - fold ; (nigh) universal code folding - ;;(format +onsave) ; automated prettiness - ;;god ; run Emacs commands without modifier keys - ;;lispy ; vim for lisp, for people who don't like vim - ;;multiple-cursors ; editing in many places at once - ;;objed ; text object editing for the innocent - ;;parinfer ; turn lisp into python, sort of - ;;rotate-text ; cycle region at point between text candidates - snippets ; my elves. They type so I don't have to - ;;word-wrap ; soft wrapping with language-aware indent - - :emacs - dired ; making dired pretty [functional] - electric ; smarter, keyword-based electric-indent - ibuffer ; interactive buffer management - undo ; persistent, smarter undo for your inevitable mistakes - vc ; version-control and Emacs, sitting in a tree - - :term - ;;eshell ; the elisp shell that works everywhere - ;;shell ; simple shell REPL for Emacs - ;;term ; basic terminal emulator for Emacs - vterm ; the best terminal emulation in Emacs - - :checkers - syntax ; tasing you for every semicolon you forget - ;;(spell +flyspell) ; tasing you for misspelling mispelling - ;;grammar ; tasing grammar mistake every you make - - :tools - ;;ansible - ;;biblio ; Writes a PhD for you (citation needed) - ;;collab ; buffers with friends - ;;debugger ; FIXME stepping through code, to help you add bugs - ;;direnv - docker - ;;editorconfig ; let someone else argue about tabs vs spaces - ;;ein ; tame Jupyter notebooks with emacs - (eval +overlay) ; run code, run (also, repls) - lookup ; navigate your code and its documentation - lsp ; M-x vscode - magit ; a git porcelain for Emacs - ;;make ; run make tasks from Emacs - ;;pass ; password manager for nerds - pdf ; pdf enhancements - ;;prodigy ; FIXME managing external services & code builders - ;;rgb ; creating color strings - ;;taskrunner ; taskrunner for all your projects - ;;terraform ; infrastructure as code - ;;tmux ; an API for interacting with tmux - ;tree-sitter ; syntax and parsing, sitting in a tree... - ;;upload ; map local to remote projects via ssh/ftp - - :os - (:if (featurep :system 'macos) macos) ; improve compatibility with macOS - ;;tty ; improve the terminal Emacs experience - - :lang - ;;agda ; types of types of types of types... - ;;beancount ; mind the GAAP - (cc +lsp) ; C > C++ == 1 - ;;clojure ; java with a lisp - ;;common-lisp ; if you've seen one lisp, you've seen them all - ;;coq ; proofs-as-programs - ;;crystal ; ruby at the speed of c - csharp ; unity, .NET, and mono shenanigans - ;;data ; config/data formats - (dart +flutter) ; paint ui and not much else - ;;dhall - ;;elixir ; erlang done right - ;;elm ; care for a cup of TEA? - emacs-lisp ; drown in parentheses - ;;erlang ; an elegant language for a more civilized age - ;;ess ; emacs speaks statistics - ;;factor - ;;faust ; dsp, but you get to keep your soul - ;;fortran ; in FORTRAN, GOD is REAL (unless declared INTEGER) - ;;fsharp ; ML stands for Microsoft's Language - ;;fstar ; (dependent) types and (monadic) effects and Z3 - ;;gdscript ; the language you waited for - (go +lsp) ; the hipster dialect - ;;(graphql +lsp) ; Give queries a REST - ;;(haskell +lsp) ; a language that's lazier than I am - ;;hy ; readability of scheme w/ speed of python - ;;idris ; a language you can depend on - json ; At least it ain't XML - ;;(java +lsp) ; the poster child for carpal tunnel syndrome - javascript ; all(hope(abandon(ye(who(enter(here)))))) - ;;julia ; a better, faster MATLAB - ;;kotlin ; a better, slicker Java(Script) - latex ; writing papers in Emacs has never been so fun - ;;lean ; for folks with too much to prove - ;;ledger ; be audit you can be - lua ; one-based indices? one-based indices - markdown ; writing docs for people to ignore - ;;nim ; python + lisp at the speed of c - ;;nix ; I hereby declare "nix geht mehr!" - ;;ocaml ; an objective camel - org ; organize your plain life in plain text - ;;php ; perl's insecure younger brother - ;;plantuml ; diagrams for confusing people more - ;;purescript ; javascript, but functional - python ; beautiful is better than ugly - ;;qt ; the 'cutest' gui framework ever - ;;racket ; a DSL for DSLs - ;;raku ; the artist formerly known as perl6 - rest ; Emacs as a REST client - ;;rst ; ReST in peace - ;;(ruby +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"} - (rust +lsp) ; Fe2O3.unwrap().unwrap().unwrap().unwrap() - ;;scala ; java, but good - ;;(scheme +guile) ; a fully conniving family of lisps - sh ; she sells {ba,z,fi}sh shells on the C xor - ;;sml - ;;solidity ; do you need a blockchain? No. - ;;swift ; who asked for emoji variables? - ;;terra ; Earth and Moon in alignment for performance. - web ; the tubes - yaml ; JSON, but readable - ;;zig ; C, but simpler - - :email - ;;(mu4e +org +gmail) - ;;notmuch - ;;(wanderlust +gmail) - - :app - calendar - ;;emms - ;;everywhere ; *leave* Emacs!? You must be joking - ;;irc ; how neckbeards socialize - (rss +org) ; emacs as an RSS reader - ;;twitter ; twitter client https://twitter.com/vnought - - :config - ;;literate - (default +bindings +smartparens)) diff --git a/.config/doom/packages.el b/.config/doom/packages.el deleted file mode 100644 index c457be658..000000000 --- a/.config/doom/packages.el +++ /dev/null @@ -1,83 +0,0 @@ -;; -*- no-byte-compile: t; -*- -;;; $DOOMDIR/packages.el - -;; To install a package with Doom you must declare them here and run 'doom sync' -;; on the command line, then restart Emacs for the changes to take effect -- or -;; use 'M-x doom/reload'. - - -;; To install SOME-PACKAGE from MELPA, ELPA or emacsmirror: -;; (package! some-package) - -;; To install a package directly from a remote git repo, you must specify a -;; `:recipe'. You'll find documentation on what `:recipe' accepts here: -;; https://github.com/radian-software/straight.el#the-recipe-format -;; (package! another-package -;; :recipe (:host github :repo "username/repo")) - -;; If the package you are trying to install does not contain a PACKAGENAME.el -;; file, or is located in a subdirectory of the repo, you'll need to specify -;; `:files' in the `:recipe': -;; (package! this-package -;; :recipe (:host github :repo "username/repo" -;; :files ("some-file.el" "src/lisp/*.el"))) - -;; If you'd like to disable a package included with Doom, you can do so here -;; with the `:disable' property: -;; (package! builtin-package :disable t) - -;; You can override the recipe of a built in package without having to specify -;; all the properties for `:recipe'. These will inherit the rest of its recipe -;; from Doom or MELPA/ELPA/Emacsmirror: -;; (package! builtin-package :recipe (:nonrecursive t)) -;; (package! builtin-package-2 :recipe (:repo "myfork/package")) - -;; Specify a `:branch' to install a package from a particular branch or tag. -;; This is required for some packages whose default branch isn't 'master' (which -;; our package manager can't deal with; see radian-software/straight.el#279) -;; (package! builtin-package :recipe (:branch "develop")) - -;; Use `:pin' to specify a particular commit to install. -;; (package! builtin-package :pin "1a2b3c4d5e") - - -;; Doom's packages are pinned to a specific commit and updated from release to -;; release. The `unpin!' macro allows you to unpin single packages... -;; (unpin! pinned-package) -;; ...or multiple packages -;; (unpin! pinned-package another-pinned-package) -;; ...Or *all* packages (NOT RECOMMENDED; will likely break things) -;; (unpin! t) - -(package! gitconfig-mode - :recipe (:host github :repo "magit/git-modes" - :files ("gitconfig-mode.el"))) -(package! gitignore-mode - :recipe (:host github :repo "magit/git-modes" - :files ("gitignore-mode.el"))) -(package! flycheck-aspell) -(package! async) -(package! dired-open) -(package! dired-subtree) -(package! esxml) -(package! evil-tutor) -(package! imenu-list) -(package! ivy-posframe) -(package! mw-thesaurus) -(package! org-board) -(package! org-web-tools) -(package! org-auto-tangle) -(package! peep-dired) -(package! rainbow-mode) -(package! request) -(package! resize-window) -(package! s) -(package! tldr) -(package! wc-mode) -(package! beacon) -(package! olivetti) -(package! sharper) -(package! csproj-mode) -(package! dap-mode) -(package! vimrc-mode) -(package! catppuccin-theme) diff --git a/.config/dunst/dunstrc b/.config/dunst/dunstrc index aa1ce1004..93b94acd7 100644 --- a/.config/dunst/dunstrc +++ b/.config/dunst/dunstrc @@ -12,7 +12,7 @@ frame_color = "#89b4fa" separator_color= frame sort = yes idle_threshold = 120 -font = mononoki Nerd Font 14 +font = mononoki Nerd Font 10 line_height = 0 markup = full format = "%s\n%b" diff --git a/.config/fish/config.fish b/.config/fish/config.fish index 9978828e9..3e7f032bb 100644 --- a/.config/fish/config.fish +++ b/.config/fish/config.fish @@ -9,7 +9,7 @@ # First line removes the path; second line sets it. Without the first line, # your path gets massive and fish becomes very slow. set -e fish_user_paths -set -U fish_user_paths $HOME/.bin $HOME/.local/bin $HOME/.go/bin $HOME/Applications /var/lib/flatpak/exports/bin/ $fish_user_paths +set -U fish_user_paths $HOME/.bin $HOME/.local/bin $HOME/.go/bin $HOME/Applications $HOME/.local/share/JetBrains/Toolbox/scripts /var/lib/flatpak/exports/bin/ $fish_user_paths ### EXPORT ### set fish_greeting # Supresses fish's intro message @@ -35,7 +35,6 @@ set fish_color_command brcyan set fish_color_error '#fb4934' set fish_color_param brcyan - ### FUNCTIONS ### # Functions needed for !! and !$ function __history_previous_command @@ -238,3 +237,4 @@ alias blt='bluetoothctl' ### SETTING THE STARSHIP PROMPT ### starship init fish | source +zoxide init fish | source diff --git a/.config/gtk-2.0/gtkrc-2.0 b/.config/gtk-2.0/gtkrc-2.0 index 1b7bd0ddb..cc9d54ff4 100644 --- a/.config/gtk-2.0/gtkrc-2.0 +++ b/.config/gtk-2.0/gtkrc-2.0 @@ -1,6 +1,6 @@ -gtk-theme-name="Catppuccin-Mocha-BL" +gtk-theme-name="Catppuccin-Dark-BL-MB" gtk-icon-theme-name="Papirus-Dark" -gtk-font-name="Inter 12" +gtk-font-name="Inter 10" gtk-cursor-theme-name="Simp1e-Catppuccin-Mocha" gtk-cursor-theme-size=16 gtk-toolbar-style=GTK_TOOLBAR_BOTH diff --git a/.config/gtk-3.0/settings.ini b/.config/gtk-3.0/settings.ini index 61b5fb5d5..bb4417f12 100644 --- a/.config/gtk-3.0/settings.ini +++ b/.config/gtk-3.0/settings.ini @@ -1,7 +1,7 @@ [Settings] -gtk-theme-name=Catppuccin-Mocha-BL +gtk-theme-name=Catppuccin-Dark-BL-MB gtk-icon-theme-name=Papirus-Dark -gtk-font-name=Inter 12 +gtk-font-name=Inter 10 gtk-cursor-theme-name=Simp1e-Catppuccin-Mocha gtk-cursor-theme-size=16 gtk-toolbar-style=GTK_TOOLBAR_BOTH diff --git a/.config/hypr/hypridle.conf b/.config/hypr/hypridle.conf index 5eea973e7..20fd04c25 100644 --- a/.config/hypr/hypridle.conf +++ b/.config/hypr/hypridle.conf @@ -3,7 +3,7 @@ # ┻ ┻┛ ┗┛┗┛ general { - lock_cmd = pidof lock || $HOME/.config/hypr/scripts/lock # avoid starting multiple hyprlock instances. + lock_cmd = pidof hyprlock || hyprlock # avoid starting multiple hyprlock instances. before_sleep_cmd = loginctl lock-session # lock before suspend. after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key twice to turn on the display. } diff --git a/.config/hypr/hyprland.conf b/.config/hypr/hyprland.conf index cdf2a9ba2..26c93eb33 100644 --- a/.config/hypr/hyprland.conf +++ b/.config/hypr/hyprland.conf @@ -8,9 +8,8 @@ exec-once = waybar exec-once = dunst --config $HOME/.config/dunst/dunstrc exec-once = wl-paste --type text --watch cliphist store exec-once = wl-paste --type image --watch cliphist store -exec-once = swww-daemon +exec-once = hyprpaper exec-once = hypridle -exec-once = /usr/bin/emacs --daemon # environment variables env = SSH_AUTH_SOCK,$XDG_RUNTIME_DIR/ssh-agent.socket @@ -30,14 +29,17 @@ env = HYPRLAND_NO_SD_NOTIFY=0 env = XKB_DEFAULT_LAYOUT,us env = ELECTRON_OZONE_PLATFORM_HINT,auto env = TERMINAL,kitty -env = BROWSER,flatpak run org.mozilla.firefox +env = BROWSER,flatpak run com.brave.Browser env = VIEWER,zathura env = RUNNER,rofi -dmenu env = RUNNER_EX,rofi -show drun # monitor settings -monitor = eDP-1, preferred, auto, 1 -monitor = HDMI-A-1, preferred, auto, 1, mirror, eDP-1 +monitor = eDP-1, preferred, -1920x0, 1 +monitor = DP-1, highrr, 0x0, 1 +monitor = HDMI-A-2, highrr, 1920x0, 1 +# monitor = eDP-1, preferred, -1920x0, 1 +# monitor = HDMI-A-2, preferred, auto, 1, mirror, eDP-1 bindl = , switch:off:Lid Switch, exec, hyprctl keyword monitor "eDP-1, preferred, auto, 1" bindl = , switch:on:Lid Switch, exec, hyprctl keyword monitor "eDP-1, disable" @@ -75,7 +77,7 @@ dwindle { master { no_gaps_when_only = true - new_is_master = false + new_status = slave drop_at_cursor = false orientation = left mfact = 0.50 @@ -91,6 +93,11 @@ misc { mouse_move_focuses_monitor = true } +binds { + workspace_center_on = 1 + allow_workspace_cycles = true +} + # source source = ~/.config/hypr/animations.conf source = ~/.config/hypr/keybindings.conf diff --git a/.config/hypr/hyprlock.conf b/.config/hypr/hyprlock.conf new file mode 100644 index 000000000..3eb810382 --- /dev/null +++ b/.config/hypr/hyprlock.conf @@ -0,0 +1,62 @@ +# _ _ _ +# | |__ _ _ _ __ _ __| | ___ ___| | __ +# | '_ \| | | | '_ \| '__| |/ _ \ / __| |/ / +# | | | | |_| | |_) | | | | (_) | (__| < +# |_| |_|\__, | .__/|_| |_|\___/ \___|_|\_\ +# |___/|_| + +general { + grace = 1 +} + +background { + monitor = + path = $HOME/.config/hypr/wall/lock.png # only png supported for now + blur_passes = 3 # 0 disables blurring + blur_size = 3 + noise = 0.0117 + contrast = 0.8916 + brightness = 0.8172 + vibrancy = 0.1696 + vibrancy_darkness = 0.0 +} + +input-field { + monitor = + size = 300, 50 + outline_thickness = 2 + dots_size = 0.33 # Scale of input-field height, 0.2 - 0.8 + dots_spacing = 0.15 # Scale of dots' absolute size, 0.0 - 1.0 + dots_center = true + dots_rounding = -1 # -1 default circle, -2 follow input-field rounding + outer_color = rgb(203, 166, 247) + inner_color = rgb(30, 30, 46) + font_color = rgb(205, 214, 244) + fade_on_empty = false + fade_timeout = 1000 # Milliseconds before fade_on_empty is triggered. + placeholder_text = Input password... # Text rendered in the input box when it's empty. + hide_input = false + rounding = -1 # -1 means complete rounding (circle/oval) + check_color = rgb(249, 226, 175) + fail_color = rgb(243, 139, 168) # if authentication failed, changes outer_color and fail message color + fail_text = $FAIL ($ATTEMPTS) # can be set to empty + fail_transition = 300 # transition time in ms between normal outer_color and fail_color + capslock_color = rgb(166, 227, 161) + numlock_color = -1 + bothlock_color = -1 # when both locks are active. -1 means don't change outer color (same for above) + invert_numlock = false # change color if numlock is off + position = 0, -50 + halign = center + valign = center +} + +label { + monitor = + text = cmd[update:1000] echo "$TIME" + color = rgb(205, 214, 244) + font_size = 92 + font_family = Inter Bold + position = 0, 80 + halign = center + valign = center +} diff --git a/.config/hypr/hyprpaper.conf b/.config/hypr/hyprpaper.conf new file mode 100644 index 000000000..31886c33e --- /dev/null +++ b/.config/hypr/hyprpaper.conf @@ -0,0 +1,5 @@ +preload = $HOME/.config/hypr/wall/wall.png +wallpaper = eDP-1,$HOME/.config/hypr/wall/wall.png +wallpaper = HDMI-A-2,$HOME/.config/hypr/wall/wall.png +wallpaper = DP-1,$HOME/.config/hypr/wall/wall.png +splash = false diff --git a/.config/hypr/keybindings.conf b/.config/hypr/keybindings.conf index 7ba95541b..57293cf33 100644 --- a/.config/hypr/keybindings.conf +++ b/.config/hypr/keybindings.conf @@ -35,16 +35,16 @@ bindm = $supMod, mouse:272, movewindow # window movement wi bindm = $supMod, mouse:273, resizewindow # window resizing with mouse # workspaces binds -bind = $supMod, 1, workspace, 1 # switch to workspace 1 -bind = $supMod, 2, workspace, 2 # switch to workspace 2 -bind = $supMod, 3, workspace, 3 # switch to workspace 3 -bind = $supMod, 4, workspace, 4 # switch to workspace 4 -bind = $supMod, 5, workspace, 5 # switch to workspace 5 -bind = $supMod, 6, workspace, 6 # switch to workspace 6 -bind = $supMod, 7, workspace, 7 # switch to workspace 7 -bind = $supMod, 8, workspace, 8 # switch to workspace 8 -bind = $supMod, 9, workspace, 9 # switch to workspace 9 -bind = $supMod, 0, workspace, 10 # switch to workspace 10 +bind = $supMod, 1, focusworkspaceoncurrentmonitor, 1 # switch to workspace 1 +bind = $supMod, 2, focusworkspaceoncurrentmonitor, 2 # switch to workspace 2 +bind = $supMod, 3, focusworkspaceoncurrentmonitor, 3 # switch to workspace 3 +bind = $supMod, 4, focusworkspaceoncurrentmonitor, 4 # switch to workspace 4 +bind = $supMod, 5, focusworkspaceoncurrentmonitor, 5 # switch to workspace 5 +bind = $supMod, 6, focusworkspaceoncurrentmonitor, 6 # switch to workspace 6 +bind = $supMod, 7, focusworkspaceoncurrentmonitor, 7 # switch to workspace 7 +bind = $supMod, 8, focusworkspaceoncurrentmonitor, 8 # switch to workspace 8 +bind = $supMod, 9, focusworkspaceoncurrentmonitor, 9 # switch to workspace 9 +bind = $supMod, 0, focusworkspaceoncurrentmonitor, 10 # switch to workspace 10 bind = $supMod_SHIFT, 1, movetoworkspace, 1 # move active window to workspace 1 bind = $supMod_SHIFT, 2, movetoworkspace, 2 # move active window to workspace 2 @@ -98,11 +98,12 @@ binde = $supMod_$altMod, m, exec, kitty --class ytfzf_music ytfzf -mlstT kitty binde = $supMod_$altMod, f, exec, kitty --class flix_cli flix-cli # launch torrent movie player binde = $supMod_$altMod, a, exec, kitty --class ani_cli ani-cli # launch anime player binde = $supMod_$altMod, b, exec, kitty --class btop btop # launch resource monitor +binde = $supMod_$altMod, h, exec, kitty --class htop htop # launch resource monitor binde = $supMod_$altMod, p, exec, kitty --class pulsemixer pulsemixer # launch audio mixer binde = $supMod_$conMod, f, exec, kitty --class file_manager yazi # launch file manager -binde = $supMod_$conMod, e, exec, /usr/bin/emacsclient -c -a 'emacs' # launch text editor +binde = $supMod_$conMod, e, exec, kitty --class editor $HOME/.local/bin/lvim # launch text editor binde = $supMod_$conMod, m, exec, kitty --class music_player cmus # launch music player binde = $supMod_$conMod, r, exec, kitty --class newsboat newsboat # launch rss feed reader -binde = $supMod_$conMod, w, exec, flatpak run org.mozilla.firefox # launch web browser +binde = $supMod_$conMod, w, exec, flatpak run com.brave.Browser # launch web browser binde = $supMod_$conMod, c, exec, flatpak run org.signal.Signal # launch chat app binde = $supMod_$conMod, p, exec, flatpak run com.bitwarden.desktop # launch password manager diff --git a/.config/hypr/rules.conf b/.config/hypr/rules.conf index e23ddffab..fb09b2a34 100644 --- a/.config/hypr/rules.conf +++ b/.config/hypr/rules.conf @@ -15,6 +15,8 @@ windowrulev2 = float,class:^(org.kde.polkit-kde-authentication-agent-1)$ windowrulev2 = float,class:^(com.obsproject.Studio)$,title:^(Controls)$ windowrulev2 = float,class:^(qalculate-gtk)$ windowrulev2 = float,class:^(xdg-desktop-portal-gtk)$ +windowrulev2 = float,class:^(xfce-polkit)$ +windowrulev2 = float,class:^(com.saivert.pwvucontrol)$ # ╻ ╻┏━┓┏━┓╻┏ ┏━┓┏━┓┏━┓┏━╸┏━╸ ┏━┓╻ ╻╻ ┏━╸┏━┓ # ┃╻┃┃ ┃┣┳┛┣┻┓┗━┓┣━┛┣━┫┃ ┣╸ ┣┳┛┃ ┃┃ ┣╸ ┗━┓ @@ -41,6 +43,7 @@ windowrule = workspace 2, ^(wdisplays)$ windowrule = workspace 2, ^(font-manager)$ windowrule = workspace 2, ^(org.qbittorrent.qBittorrent)$ windowrule = workspace 2, ^(btop)$ +windowrule = workspace 2, ^(htop)$ windowrule = workspace 2, ^(file-roller)$ # workspace 3 - file management @@ -53,7 +56,7 @@ windowrule = workspace 4, ^(org.qutebrowser.qutebrowser)$ windowrule = workspace 4, ^(org.mozilla.firefox)$ windowrule = workspace 4, ^(LibreWolf)$ windowrule = workspace 4, ^(Chromium)$ -windowrule = workspace 4, ^(Brave-browser)$ +windowrule = workspace 4, ^(brave-browser)$ windowrule = workspace 4, ^(newsboat)$ windowrule = workspace 4, ^(org.kde.akregator)$ windowrule = workspace 4, ^(io.gitlab.news_flash.NewsFlash)$ @@ -140,3 +143,9 @@ windowrule = workspace 10, ^(duckstation-qt)$ windowrule = workspace 10, ^(pcsx2-qt)$ windowrule = workspace 10, ^(info.cemu.Cemu)$ windowrule = workspace 10, ^(org.ppsspp.PPSSPP)$ + +windowrulev2 = fullscreen,class:^steam_app\d+$ +windowrulev2 = workspace 10,class:^steam_app_\d+$ +windowrulev2 = fullscreen,class:^lutris\d+$ +windowrulev2 = workspace 10,class:^lutris\d+$ +workspace = 10, border:false, rounding:false diff --git a/.config/hypr/scripts/lock b/.config/hypr/scripts/lock deleted file mode 100755 index 976a44550..000000000 --- a/.config/hypr/scripts/lock +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -currwall=$(swww query | awk '{print $8}') - -swaylock -f -i "$currwall" diff --git a/.config/hypr/theme.conf b/.config/hypr/theme.conf index dd7c7cbae..039ad2f0b 100644 --- a/.config/hypr/theme.conf +++ b/.config/hypr/theme.conf @@ -4,13 +4,13 @@ env = XCURSOR_THEME,Simp1e-Catppuccin-Mocha env = XCURSOR_SIZE,16 -env = GTK_THEME,Catppuccin-Mocha-BL +env = GTK_THEME,Catppuccin-Dark-BL-MB exec = hyprctl setcursor Simp1e-Catppuccin-Mocha 16 exec = gsettings set org.gnome.desktop.interface cursor-theme 'Simp1e-Catppuccin-Mocha' exec = gsettings set org.gnome.desktop.interface cursor-size 16 exec = gsettings set org.gnome.desktop.interface icon-theme 'Papirus-Dark' -exec = gsettings set org.gnome.desktop.interface gtk-theme 'Catppuccin-Mocha-BL' +exec = gsettings set org.gnome.desktop.interface gtk-theme 'Catppuccin-Dark-BL-MB' exec = gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark' general { @@ -52,8 +52,8 @@ decoration { # ┣╸ ┃ ┃┃┗┫ ┃ # ╹ ┗━┛╹ ╹ ╹ -exec = gsettings set org.gnome.desktop.interface font-name 'Inter 12' -exec = gsettings set org.gnome.desktop.interface document-font-name 'Liberation Sans 12' -exec = gsettings set org.gnome.desktop.interface monospace-font-name 'Mononoki Nerd Font 12' +exec = gsettings set org.gnome.desktop.interface font-name 'Inter 10' +exec = gsettings set org.gnome.desktop.interface document-font-name 'Liberation Sans 10' +exec = gsettings set org.gnome.desktop.interface monospace-font-name 'Mononoki Nerd Font 10' exec = gsettings set org.gnome.desktop.interface font-antialiasing 'rgba' exec = gsettings set org.gnome.desktop.interface font-hinting 'full' diff --git a/.config/hypr/wall/lock.png b/.config/hypr/wall/lock.png new file mode 100644 index 000000000..ada9bc5da Binary files /dev/null and b/.config/hypr/wall/lock.png differ diff --git a/.config/hypr/wall/wall.png b/.config/hypr/wall/wall.png new file mode 100644 index 000000000..ada9bc5da Binary files /dev/null and b/.config/hypr/wall/wall.png differ diff --git a/.config/kitty/kitty.conf b/.config/kitty/kitty.conf index ea2ab7a6b..a65afddfd 100644 --- a/.config/kitty/kitty.conf +++ b/.config/kitty/kitty.conf @@ -4,7 +4,7 @@ font_family Mononoki Nerd Font bold_font auto italic_font auto bold_italic_font auto -font_size 14.0 +font_size 12.0 shell fish confirm_os_window_close 0 background_opacity 0.95 diff --git a/.config/lvim/config.lua b/.config/lvim/config.lua index f53b61f69..3b95d89ca 100644 --- a/.config/lvim/config.lua +++ b/.config/lvim/config.lua @@ -21,14 +21,12 @@ lvim.builtin.alpha.mode = "dashboard" lvim.builtin.terminal.active = true lvim.builtin.nvimtree.setup.view.side = "left" lvim.builtin.nvimtree.setup.renderer.icons.show.git = false -lvim.builtin.lualine.style = "default" lvim.builtin.treesitter.ensure_installed = { "bash", "c", "javascript", "json", - "lua", "python", "typescript", "tsx", diff --git a/.config/rofi/catppuccin-mocha.rasi b/.config/rofi/catppuccin-mocha.rasi index f183d38d1..bc15ed2e0 100644 --- a/.config/rofi/catppuccin-mocha.rasi +++ b/.config/rofi/catppuccin-mocha.rasi @@ -10,7 +10,7 @@ fg-col2: @blue; width: 800px; - font: "Mononoki Nerd Font 12"; + font: "Mononoki Nerd Font 10"; } element-text, element-icon , mode-switcher { diff --git a/.config/rofi/scripts/rs_wall b/.config/rofi/scripts/rs_wall index ed39222b3..637fa1359 100755 --- a/.config/rofi/scripts/rs_wall +++ b/.config/rofi/scripts/rs_wall @@ -29,7 +29,7 @@ CheckDependencies() { fi local missing_deps=() - for dep in swww; do + for dep in hyprpaper; do if ! command -v "$dep" &> /dev/null; then missing_deps+=("$dep") fi @@ -49,9 +49,14 @@ CheckDependencies() { CheckDependencies cd "$walldir" || exit 1 -wallpaper=$(fd -p "$walldir" | $RUNNER -i -p "󰋩 Wallpaper Selector") +wallpaper=$(fd -p "$walldir" | $RUNNER -only-match -i -p "󰋩 Wallpaper Selector") if [ -n "$wallpaper" ]; then - swww img "$wallpaper" + cp "$wallpaper" "$HOME/.config/hypr/wall/wall.png" + cp "$wallpaper" "$HOME/.config/hypr/wall/lock.png" + pidof hyprpaper && pkill hyprpaper + sleep 0.5 + hyprpaper & + disown else exit 0 fi diff --git a/.config/user-dirs.dirs b/.config/user-dirs.dirs deleted file mode 100644 index 7f9a95931..000000000 --- a/.config/user-dirs.dirs +++ /dev/null @@ -1,15 +0,0 @@ -# This file is written by xdg-user-dirs-update -# If you want to change or add directories, just edit the line you're -# interested in. All local changes will be retained on the next run. -# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped -# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an -# absolute path. No other format is supported. -# -XDG_DESKTOP_DIR="$HOME/Desktop" -XDG_DOWNLOAD_DIR="$HOME/Downloads" -XDG_TEMPLATES_DIR="$HOME/Templates" -XDG_PUBLICSHARE_DIR="$HOME/Public" -XDG_DOCUMENTS_DIR="$HOME/Documents" -XDG_MUSIC_DIR="$HOME/Music" -XDG_PICTURES_DIR="$HOME/Pictures" -XDG_VIDEOS_DIR="$HOME/Videos" diff --git a/.config/waybar/config b/.config/waybar/config index 7c0b5cda4..4e9a1d067 100644 --- a/.config/waybar/config +++ b/.config/waybar/config @@ -1,6 +1,6 @@ { "position": "top", - "height": 35, + "height": 34, "layer": "top", // Modules order @@ -24,6 +24,7 @@ "idle_inhibitor", "power-profiles-daemon", "battery", + "battery#bat2", "custom/arrow5", "network", "custom/arrow6", @@ -56,7 +57,7 @@ }, "hyprland/window": { - "format": "{initialTitle}", + "format": "{title}", "icon": true, "icon-size": 24, "separate-outputs": true @@ -127,6 +128,7 @@ }, "battery": { + "bat": "BAT0", "states": { "warning": 30, "critical": 15 @@ -144,15 +146,37 @@ "\udb80\udc79" ], "tooltip-format": "{capacity}% - {timeTo}", - "on-click": "$HOME/.config/fuzzel/scripts/fuzz_power" + "on-click": "$HOME/.config/rofi/scripts/rs_power" + }, + + "battery#bat2": { + "bat": "BAT1", + "states": { + "warning": 30, + "critical": 15 + }, + "format": "{icon}", + "format-charging": "{icon} \udb81\udea5", + "format-plugged": "{icon} \udb81\udea5", + "format-critical": "{icon} \udb84\ude38", + "format-warning": "{icon} \udb84\ude38", + "format-icons": [ + "\udb80\udc7a", + "\udb80\udc7c", + "\udb80\udc7e", + "\udb80\udc80", + "\udb80\udc79" + ], + "tooltip-format": "{capacity}% - {timeTo}", + "on-click": "$HOME/.config/rofi/scripts/rs_power" }, "network": { - "format-wifi": "\udb81\udda9 {essid}", + "format-wifi": "\udb81\udda9", "format-ethernet": "\udb80\ude00", - "format-disconnected": "\udb81\uddaa Disconnected", - "tooltip-format": "{signalStrength}% - {ifname}: {ipaddr}/{cidr}", - "on-click": "$HOME/.config/fuzzel/scripts/fuzz_wifi" + "format-disconnected": "\udb80\udd5b", + "tooltip-format": "{essid} ({signalStrength}%) - {ifname}: {ipaddr}/{cidr}", + "on-click": "$HOME/.config/rofi/scripts/rs_wifi" }, "clock": { diff --git a/.config/waybar/style.css b/.config/waybar/style.css index c391885d5..59be96fd0 100644 --- a/.config/waybar/style.css +++ b/.config/waybar/style.css @@ -68,7 +68,7 @@ button:hover { window#waybar { background-color: @wbackground; font-family: Symbols Nerd Font Mono, Mononoki Nerd Font; - font-size: 16px; + font-size: 14px; } /* Workspaces */ @@ -185,7 +185,7 @@ label:focus { #custom-arrow4, #custom-arrow5, #custom-arrow6 { - font-size: 26pt; + font-size: 25pt; } /* Individual Modeline arrows */ diff --git a/.config/yazi/yazi.toml b/.config/yazi/yazi.toml index 089cc4465..aa0a5d67c 100644 --- a/.config/yazi/yazi.toml +++ b/.config/yazi/yazi.toml @@ -7,7 +7,7 @@ ratio = [ 1, 4, 3 ] sort_by = "natural" sort_sensitive = false sort_reverse = false -sort_dir_first = false +sort_dir_first = true linemode = "none" show_hidden = false show_symlink = true diff --git a/README.md b/README.md index 7161f86e8..45ec1126f 100644 --- a/README.md +++ b/README.md @@ -5,15 +5,16 @@ clone them and edit them as you wish. Part of this work was based on other people's dotfiles (Distrotube for example), and it may contain scripts or binaries that they made or modify. -![screenshot](./screenshot.jpg) +![screenshot](./screenshot.png) -# Dependencies +# Dependencies (some of them) - hyprland - hyprpaper +- hyprpicker - hypridle - hyprlock - waybar -- fuzzel +- rofi - dunst - vimiv diff --git a/screenshot.jpg b/screenshot.jpg deleted file mode 100644 index c40b1b9cb..000000000 Binary files a/screenshot.jpg and /dev/null differ diff --git a/screenshot.png b/screenshot.png new file mode 100644 index 000000000..f3bb81732 Binary files /dev/null and b/screenshot.png differ