2020-10-14 00:35:02 +00:00
( map! :leader
2021-03-21 01:19:31 +00:00
( :prefix ( " b " . " buffer " )
2021-04-01 20:58:04 +00:00
:desc " List bookmarks " " L " #' list-bookmarks
:desc " Save current bookmarks to bookmark file " " w " #' bookmark-save ) )
2020-06-20 03:43:40 +00:00
2021-04-26 18:58:12 +00:00
;; https://stackoverflow.com/questions/9547912/emacs-calendar-show-more-than-3-months
( defun dt/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 dt/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 ) ) )
( dt/year-calendar year ) ) )
( goto-char ( point-min ) )
( run-hooks 'calendar-move-hook ) ) )
( defun dt/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 ) )
( dt/scroll-year-calendar-forward ( - ( or arg 1 ) ) event ) )
( map! :leader
:desc " Scroll year calendar backward " " <left> " #' dt/scroll-year-calendar-backward
:desc " Scroll year calendar forward " " <right> " #' dt/scroll-year-calendar-forward )
( defalias 'year-calendar 'dt/year-calendar )
2021-06-18 15:23:22 +00:00
( use-package! calfw )
( use-package! calfw-org )
2020-10-14 00:35:02 +00:00
( setq centaur-tabs-set-bar 'over
centaur-tabs-set-icons t
centaur-tabs-gray-out-icons 'buffer
centaur-tabs-height 24
centaur-tabs-set-modified-marker t
centaur-tabs-style " bar "
centaur-tabs-modified-marker " • " )
( map! :leader
2021-03-21 01:19:31 +00:00
:desc " Toggle tabs globally " " t c " #' centaur-tabs-mode
:desc " Toggle tabs local display " " t C " #' centaur-tabs-local-mode )
2020-11-03 00:56:51 +00:00
( evil-define-key 'normal centaur-tabs-mode-map ( kbd " g <right> " ) 'centaur-tabs-forward ; default Doom binding is 'g t'
( kbd " g <left> " ) 'centaur-tabs-backward ; default Doom binding is 'g T'
( kbd " g <down> " ) 'centaur-tabs-forward-group
( kbd " g <up> " ) 'centaur-tabs-backward-group )
2020-10-24 01:39:58 +00:00
2021-04-19 00:36:50 +00:00
( use-package dashboard
:init ;; tweak dashboard config before loading it
( setq dashboard-set-heading-icons t )
( setq dashboard-set-file-icons t )
2021-10-10 02:39:41 +00:00
( setq dashboard-banner-logo-title " \n KEYBINDINGS: \n Open dired file manager (SPC .) \n Open buffer list (SPC b i) \n Find recent files (SPC f r) \n Open the eshell (SPC e s) \n Toggle big font mode (SPC t b) " )
2021-04-19 00:36:50 +00:00
;;(setq dashboard-startup-banner 'logo) ;; use standard emacs logo as banner
2021-04-21 19:32:19 +00:00
( setq dashboard-startup-banner " ~/.config/doom/doom-emacs-dash.png " ) ;; use custom image as banner
2021-04-19 00:36:50 +00:00
( setq dashboard-center-content nil ) ;; set to 't' for centered content
( setq dashboard-items ' ( ( recents . 5 )
( agenda . 5 )
( bookmarks . 5 )
( projects . 5 )
( registers . 5 ) ) )
:config
( dashboard-setup-startup-hook )
( dashboard-modify-heading-icons ' ( ( recents . " file-text " )
2021-10-10 02:39:41 +00:00
( bookmarks . " book " ) ) ) )
2021-04-19 00:36:50 +00:00
2021-04-28 22:21:58 +00:00
( setq doom-fallback-buffer " *dashboard* " )
2021-04-19 00:36:50 +00:00
2020-10-24 01:39:58 +00:00
( map! :leader
2021-03-21 01:19:31 +00:00
( :prefix ( " d " . " dired " )
:desc " Open dired " " d " #' dired
:desc " Dired jump to current " " j " #' dired-jump )
2020-10-24 01:39:58 +00:00
( :after dired
2021-03-21 01:19:31 +00:00
( :map dired-mode-map
:desc " Peep-dired image previews " " d p " #' peep-dired
:desc " Dired view file " " d v " #' dired-view-file ) ) )
2020-11-07 20:05:16 +00:00
;; Make 'h' and 'l' go back and forward in dired. Much faster to navigate the directory structure!
( evil-define-key 'normal dired-mode-map
2021-05-06 03:49:30 +00:00
( kbd " M-RET " ) 'dired-display-file
2020-11-07 20:05:16 +00:00
( kbd " h " ) 'dired-up-directory
2021-05-06 03:49:30 +00:00
( kbd " l " ) 'dired-open-file ; use dired-find-file instead of dired-open.
( kbd " m " ) 'dired-mark
( kbd " t " ) 'dired-toggle-marks
( kbd " u " ) 'dired-unmark
( kbd " C " ) 'dired-do-copy
( kbd " D " ) 'dired-do-delete
( kbd " J " ) 'dired-goto-file
( kbd " M " ) 'dired-chmod
( kbd " O " ) 'dired-chown
( kbd " P " ) 'dired-do-print
( kbd " R " ) 'dired-rename
( kbd " T " ) 'dired-do-touch
( kbd " Y " ) 'dired-copy-filenamecopy-filename-as-kill ; copies filename to kill ring.
( kbd " + " ) 'dired-create-directory
( kbd " - " ) 'dired-up-directory
( kbd " % l " ) 'dired-downcase
( kbd " % u " ) 'dired-upcase
( kbd " ; d " ) 'epa-dired-do-decrypt
( kbd " ; e " ) 'epa-dired-do-encrypt )
2020-11-07 20:05:16 +00:00
;; If peep-dired is enabled, you will get image previews as you go up/down with 'j' and 'k'
( evil-define-key 'normal peep-dired-mode-map
( kbd " j " ) 'peep-dired-next-file
( kbd " k " ) 'peep-dired-prev-file )
2020-10-24 01:39:58 +00:00
( add-hook 'peep-dired-hook 'evil-normalize-keymaps )
2020-11-07 20:05:16 +00:00
;; Get file icons in dired
( add-hook 'dired-mode-hook 'all-the-icons-dired-mode )
;; With dired-open plugin, you can launch external programs for certain extensions
;; For example, I set all .png files to open in 'sxiv' and all .mp4 files to open in 'mpv'
( setq dired-open-extensions ' ( ( " gif " . " sxiv " )
( " jpg " . " sxiv " )
( " png " . " sxiv " )
( " mkv " . " mpv " )
( " mp4 " . " mpv " ) ) )
2020-10-24 01:39:58 +00:00
2021-03-20 23:31:24 +00:00
( setq doom-theme 'doom-one )
2020-10-24 01:39:58 +00:00
( map! :leader
2021-03-21 01:19:31 +00:00
:desc " Load new theme " " h t " #' counsel-load-theme )
2020-10-24 01:39:58 +00:00
2021-04-12 23:56:03 +00:00
( use-package! elfeed-goodies )
2021-04-04 15:43:40 +00:00
( elfeed-goodies/setup )
( setq elfeed-goodies/entry-pane-size 0.5 )
2021-04-07 21:38:17 +00:00
( add-hook 'elfeed-show-mode-hook 'visual-line-mode )
2021-04-04 15:43:40 +00:00
( evil-define-key 'normal elfeed-show-mode-map
( kbd " J " ) 'elfeed-goodies/split-show-next
( kbd " K " ) 'elfeed-goodies/split-show-prev )
( evil-define-key 'normal elfeed-search-mode-map
( kbd " J " ) 'elfeed-goodies/split-show-next
( kbd " K " ) 'elfeed-goodies/split-show-prev )
2021-04-01 20:58:04 +00:00
( setq elfeed-feeds ( quote
( ( " https://www.reddit.com/r/linux.rss " reddit linux )
2021-04-19 00:36:50 +00:00
( " https://www.reddit.com/r/commandline.rss " reddit commandline )
( " https://www.reddit.com/r/distrotube.rss " reddit distrotube )
( " https://www.reddit.com/r/emacs.rss " reddit emacs )
2021-03-21 02:57:45 +00:00
( " https://www.gamingonlinux.com/article_rss.php " gaming linux )
( " https://hackaday.com/blog/feed/ " hackaday linux )
( " https://opensource.com/feed " opensource linux )
( " https://linux.softpedia.com/backend.xml " softpedia linux )
( " https://itsfoss.com/feed/ " itsfoss linux )
( " https://www.zdnet.com/topic/linux/rss.xml " zdnet linux )
( " https://www.phoronix.com/rss.php " phoronix linux )
( " http://feeds.feedburner.com/d0od " omgubuntu linux )
( " https://www.computerworld.com/index.rss " computerworld linux )
( " https://www.networkworld.com/category/linux/index.rss " networkworld linux )
( " https://www.techrepublic.com/rssfeeds/topic/open-source/ " techrepublic linux )
( " https://betanews.com/feed " betanews linux )
( " http://lxer.com/module/newswire/headlines.rss " lxer linux )
2021-04-01 20:58:04 +00:00
( " https://distrowatch.com/news/dwd.xml " distrowatch linux ) ) ) )
2020-10-24 01:39:58 +00:00
2021-03-20 23:31:24 +00:00
( emms-all )
( emms-default-players )
2020-10-24 01:39:58 +00:00
( emms-mode-line 1 )
( emms-playing-time 1 )
2021-10-09 23:56:25 +00:00
( setq emms-source-file-default-directory " ~/Music/ "
2020-10-24 01:39:58 +00:00
emms-playlist-buffer-name " *Music* "
emms-info-asynchronously t
emms-source-file-directory-tree-function 'emms-source-file-directory-tree-find )
2021-03-20 23:31:24 +00:00
( map! :leader
2021-03-21 01:19:31 +00:00
( :prefix ( " a " . " EMMS audio player " )
:desc " Go to emms playlist " " a " #' emms-playlist-mode-go
:desc " Emms pause track " " x " #' emms-pause
:desc " Emms stop track " " s " #' emms-stop
:desc " Emms play previous track " " p " #' emms-previous
:desc " Emms play next track " " n " #' emms-next ) )
2020-10-17 02:43:49 +00:00
2021-10-19 00:38:30 +00:00
( use-package emojify
:hook ( after-init . global-emojify-mode ) )
2020-10-17 02:43:49 +00:00
( map! :leader
2021-03-21 01:19:31 +00:00
( :prefix ( " e " . " evaluate/EWW " )
:desc " Evaluate elisp in buffer " " b " #' eval-buffer
:desc " Evaluate defun " " d " #' eval-defun
:desc " Evaluate elisp expression " " e " #' eval-expression
:desc " Evaluate last sexpression " " l " #' eval-last-sexp
:desc " Evaluate elisp in region " " r " #' eval-region ) )
2020-10-17 02:43:49 +00:00
2020-10-24 01:39:58 +00:00
( setq browse-url-browser-function 'eww-browse-url )
2020-10-17 02:43:49 +00:00
( map! :leader
2021-03-20 23:31:24 +00:00
:desc " Search web for text between BEG/END "
2021-03-21 01:19:31 +00:00
" s w " #' eww-search-words
( :prefix ( " e " . " evaluate/EWW " )
:desc " Eww web browser " " w " #' eww
:desc " Eww reload page " " R " #' eww-reload ) )
2021-03-20 18:06:31 +00:00
2021-04-19 00:36:50 +00:00
( setq doom-font ( font-spec :family " Source Code Pro " :size 15 )
2020-10-24 01:39:58 +00:00
doom-variable-pitch-font ( font-spec :family " Ubuntu " :size 15 )
2021-04-19 00:36:50 +00:00
doom-big-font ( font-spec :family " Source Code Pro " :size 24 ) )
2020-10-17 23:04:49 +00:00
( after! doom-themes
2020-10-24 01:39:58 +00:00
( 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 ) )
2020-10-17 23:04:49 +00:00
2020-11-03 00:56:51 +00:00
( 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.
2020-10-24 01:39:58 +00:00
( map! :leader
2021-03-21 01:19:31 +00:00
( :prefix ( " v " . " Ivy " )
:desc " Ivy push view " " v p " #' ivy-push-view
:desc " Ivy switch view " " v s " #' ivy-switch-view ) )
2020-10-17 23:04:49 +00:00
2020-10-24 01:39:58 +00:00
( setq display-line-numbers-type t )
( map! :leader
2021-03-21 01:19:31 +00:00
: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 ) )
2020-10-24 01:39:58 +00:00
2021-04-30 00:21:23 +00:00
( xterm-mouse-mode 1 )
2020-10-24 01:39:58 +00:00
( after! neotree
( setq neo-smart-open t
neo-window-fixed-size nil ) )
( after! doom-themes
( setq doom-neotree-enable-variable-pitch t ) )
( map! :leader
2021-03-21 01:19:31 +00:00
:desc " Toggle neotree file viewer " " t n " #' neotree-toggle
:desc " Open directory in neotree " " d n " #' neotree-dir )
2020-06-20 03:43:40 +00:00
2020-10-24 01:39:58 +00:00
( map! :leader
2021-03-21 01:19:31 +00:00
( :prefix ( " - " . " open file " )
:desc " Edit agenda file " " a " #' ( lambda ( ) ( interactive ) ( find-file " ~/Org/agenda.org " ) )
2021-04-22 01:25:51 +00:00
:desc " Edit doom config.org " " c " #' ( lambda ( ) ( interactive ) ( find-file " ~/.config/doom/config.org " ) )
:desc " Edit eshell aliases " " e a " #' ( lambda ( ) ( interactive ) ( find-file " ~/.config/doom/eshell/aliases " ) )
:desc " Edit eshell aliases " " e p " #' ( lambda ( ) ( interactive ) ( find-file " ~/.config/doom/eshell/profile " ) )
: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 " ) ) ) )
2020-07-14 16:54:54 +00:00
2021-04-20 22:54:29 +00:00
( map! :leader
:desc " Org babel tangle " " m B " #' org-babel-tangle )
2020-10-24 01:39:58 +00:00
( after! org
( add-hook 'org-mode-hook ( lambda ( ) ( org-bullets-mode 1 ) ) )
2021-11-13 21:27:35 +00:00
( setq org-directory " ~/nc/Org/ "
org-agenda-files ' ( " ~/nc/Org/agenda.org " )
2020-10-24 01:39:58 +00:00
org-default-notes-file ( expand-file-name " notes.org " org-directory )
org-ellipsis " ▼ "
org-log-done 'time
2021-11-13 21:27:35 +00:00
org-journal-dir " ~/nc/Org/journal/ "
2020-12-15 23:16:29 +00:00
org-journal-date-format " %B %d, %Y (%A) "
2020-10-24 01:39:58 +00:00
org-journal-file-format " %Y-%m-%d.org "
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
" 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
2021-06-18 15:23:22 +00:00
( custom-set-faces
' ( org-level-1 ( ( t ( :inherit outline-1 :height 1.2 ) ) ) )
' ( org-level-2 ( ( t ( :inherit outline-2 :height 1.0 ) ) ) )
' ( org-level-3 ( ( t ( :inherit outline-3 :height 1.0 ) ) ) )
' ( org-level-4 ( ( t ( :inherit outline-4 :height 1.0 ) ) ) )
' ( org-level-5 ( ( t ( :inherit outline-5 :height 1.0 ) ) ) )
)
2021-04-30 00:21:23 +00:00
( use-package ox-man )
2021-05-17 19:31:04 +00:00
( use-package ox-gemini )
2021-08-20 22:09:21 +00:00
( use-package ox-publish )
2021-08-24 20:37:45 +00:00
( setq org-publish-use-timestamps-flag nil )
( setq org-export-with-broken-links t )
2021-08-20 22:09:21 +00:00
( setq org-publish-project-alist
2021-08-24 20:37:45 +00:00
' ( ( " distro.tube "
:base-directory " ~/gitlab-repos/distro.tube/ "
2021-08-20 22:09:21 +00:00
:base-extension " org "
2021-08-24 20:37:45 +00:00
:publishing-directory " ~/gitlab-repos/distro.tube/html/ "
2021-08-20 22:09:21 +00:00
:recursive t
2021-08-24 20:37:45 +00:00
:exclude " org-html-themes/.* "
2021-08-20 22:09:21 +00:00
:publishing-function org-html-publish-to-html
:headline-levels 4 ; Just the default for this project.
:auto-preamble t )
( " org-static "
:base-directory " ~/Org/website "
:base-extension " css \\ |js \\ |png \\ |jpg \\ |gif \\ |pdf \\ |mp3 \\ |ogg \\ |swf "
:publishing-directory " ~/public_html/ "
:recursive t
2021-08-24 20:37:45 +00:00
:exclude " .*/org-html-themes/.* "
2021-08-20 22:09:21 +00:00
:publishing-function org-publish-attachment )
) )
2021-04-28 22:21:58 +00:00
2021-11-13 21:27:35 +00:00
( setq org-roam-directory " ~/nc/Roam " )
2021-06-05 17:38:42 +00:00
( use-package! password-store )
2020-10-24 01:39:58 +00:00
( map! :leader
2021-03-21 01:19:31 +00:00
( :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 ) )
2020-10-24 01:39:58 +00:00
( setq shell-file-name " /bin/fish "
2021-04-20 22:54:29 +00:00
vterm-max-scrollback 5000 )
( setq eshell-rc-script " ~/.config/doom/eshell/profile "
eshell-aliases-file " ~/.config/doom/eshell/aliases "
2020-11-03 00:56:51 +00:00
eshell-history-size 5000
eshell-buffer-maximum-lines 5000
eshell-hist-ignoredups t
eshell-scroll-to-bottom-on-input t
eshell-destroy-buffer-when-process-dies t
2021-04-20 22:54:29 +00:00
eshell-visual-commands ' ( " bash " " fish " " htop " " ssh " " top " " zsh " ) )
2020-11-03 00:56:51 +00:00
( map! :leader
2021-03-21 01:19:31 +00:00
:desc " Eshell " " e s " #' eshell
:desc " Counsel eshell history " " e h " #' counsel-esh-history )
2020-10-24 01:39:58 +00:00
( 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
2021-03-21 01:19:31 +00:00
:desc " Clone indirect buffer other window " " b c " #' clone-indirect-buffer-other-window )
2020-10-24 01:39:58 +00:00
( map! :leader
2021-03-21 01:19:31 +00:00
( :prefix ( " w " . " window " )
:desc " Winner redo " " <right> " #' winner-redo
:desc " Winner undo " " <left> " #' winner-undo ) )