Yes this is a mess, but I want it up and backed up just in case. This *works*, as ugly as the files are.
This commit is contained in:
parent
c8021a7b1b
commit
5a536877f4
12 changed files with 2389 additions and 518 deletions
File diff suppressed because one or more lines are too long
6
.config/doom/config
Normal file
6
.config/doom/config
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
(global-unset-key (kbd "C-c l"))
|
||||||
|
(global-set-key (kbd "C-c l l") 'org-super-links-link)
|
||||||
|
(global-set-key (kbd "C-c l s") 'org-super-links-store-link)
|
||||||
|
(global-set-key (kbd "C-c l i") 'org-super-links-insert-drawer-link)
|
||||||
|
(global-set-key (kbd "C-c l r") 'org-super-links-quick-related)
|
||||||
|
(global-set-key (kbd "C-c l d") 'org-super-links-delete-link)
|
|
@ -1,49 +1,122 @@
|
||||||
(setq user-full-name "Phil Bajsicki")
|
(setq user-full-name "Phil Bajsicki")
|
||||||
|
|
||||||
(setq global-auto-revert-mode t)
|
(setq global-auto-revert-mode t)
|
||||||
|
(org-edna-mode)
|
||||||
(setq auth-sources '("~/.authinfo"))
|
(setq auth-sources '("~/.authinfo"))
|
||||||
|
(setq-default backup-inhibited t)
|
||||||
|
|
||||||
(setq straight-repository-branch "develop")
|
(setq locale-coding-system 'utf-8)
|
||||||
|
(set-terminal-coding-system 'utf-8)
|
||||||
|
(set-keyboard-coding-system 'utf-8)
|
||||||
|
(set-clipboard-coding-system 'utf-8)
|
||||||
|
(prefer-coding-system 'utf-8)
|
||||||
|
|
||||||
(after! counsel
|
(after! counsel
|
||||||
(setq counsel-outline-display-style 'title))
|
(setq counsel-outline-display-style 'title))
|
||||||
|
|
||||||
|
|
||||||
(setq doom-themes-enable-bold t
|
|
||||||
doom-themes-enable-italic t)
|
|
||||||
|
|
||||||
(setq doom-font (font-spec :family "Iosevka" :size 12 :weight 'semi-light)
|
|
||||||
doom-variable-pitch-font (font-spec :family "Iosevka" :size 13))
|
|
||||||
|
|
||||||
(load-theme 'doom-one t)
|
(load-theme 'doom-one t)
|
||||||
(doom-themes-neotree-config)
|
(doom-themes-neotree-config)
|
||||||
(doom-themes-org-config)
|
(doom-themes-org-config)
|
||||||
|
|
||||||
(set-frame-parameter nil 'alpha-background 70)
|
(setq doom-themes-enable-bold t
|
||||||
|
doom-themes-enable-italic t)
|
||||||
|
(setq doom-font (font-spec :family "IosevkaTerm" :size 12)
|
||||||
|
doom-unicode-font (font-spec :family "IosevkaTerm" :size 12))
|
||||||
|
(dolist (charset '(unicode))
|
||||||
|
(set-fontset-font (frame-parameter nil 'font)
|
||||||
|
charset (font-spec :family "IosevkaTerm" :size 12)))
|
||||||
|
|
||||||
(add-to-list 'default-frame-alist '(alpha-background . 70))
|
(set-frame-parameter nil 'alpha-background 70)
|
||||||
|
(add-to-list 'default-frame-alist '(alpha-background . 80))
|
||||||
|
|
||||||
(setq display-line-numbers-type 'relative)
|
(setq display-line-numbers-type 'relative)
|
||||||
(setq next-screen-context-lines 4)
|
(setq next-screen-context-lines 4)
|
||||||
|
(setq-default global-visual-line-mode t)
|
||||||
|
(setq x-stretch-cursor t)
|
||||||
|
(setq column-number-mode t)
|
||||||
|
|
||||||
(after! persp-mode
|
(setq straight-repository-branch "develop")
|
||||||
(setq persp-emacsclient-init-frame-behaviour-override "main"))
|
|
||||||
(setq doom-modeline-persp-name t)
|
(global-set-key "\C-g" 'keyboard-quit)
|
||||||
|
(global-set-key "\C-cu" 'browse-url-chrome)
|
||||||
|
|
||||||
(add-to-list 'auto-mode-alist '("\\.org\\'" . org-mode))
|
(add-to-list 'auto-mode-alist '("\\.org\\'" . org-mode))
|
||||||
(setq org-directory "~/enc/org/")
|
(setq org-directory "~/enc/org/")
|
||||||
|
|
||||||
(setq org-contacts-files
|
(setq org-enforce-todo-dependencies t)
|
||||||
(file-expand-wildcards "~/enc/org/*.org"))
|
(setq org-insert-heading-respect-content nil)
|
||||||
|
(setq org-reverse-note-order nil)
|
||||||
|
(setq org-show-following-heading t)
|
||||||
|
(setq org-show-hierarchy-above t)
|
||||||
|
(setq org-show-siblings nil)
|
||||||
|
(setq org-deadline-warning-days 7)
|
||||||
|
(setq org-blank-before-new-entry (quote ((heading . t)
|
||||||
|
(plain-list-item . nil))))
|
||||||
|
(setq org-todo-repeat-to-state "LOOP")
|
||||||
|
(setq org-remove-highlights-with-change nil)
|
||||||
|
(setq org-read-date-prefer-future nil)
|
||||||
|
(setq org-special-ctrl-a/e t)
|
||||||
|
(setq org-special-ctrl-k t)
|
||||||
|
(setq org-yank-adjusted-subtrees t)
|
||||||
|
(setq org-M-RET-may-split-line t)
|
||||||
|
(setq org-log-done (quote time))
|
||||||
|
(setq org-log-into-drawer t)
|
||||||
|
(setq org-catch-invisible-edits "smart")
|
||||||
|
|
||||||
|
(setq org-completion-use-ido t)
|
||||||
|
(setq org-use-property-inheritance nil)
|
||||||
|
|
||||||
|
(setq org-hierarchical-todo-statistics t)
|
||||||
|
(org-align-tags t)
|
||||||
|
|
||||||
|
(modify-all-frames-parameters
|
||||||
|
'((right-divider-width . 2)
|
||||||
|
(internal-border-width . 0)))
|
||||||
|
(dolist (face '(window-divider
|
||||||
|
window-divider-first-pixel
|
||||||
|
window-divider-last-pixel))
|
||||||
|
(face-spec-reset-face face)
|
||||||
|
(set-face-foreground face (face-attribute 'default :background)))
|
||||||
|
(set-face-background 'fringe (face-attribute 'default :background))
|
||||||
|
|
||||||
|
(setq
|
||||||
|
;; Edit settings
|
||||||
|
org-auto-align-tags nil
|
||||||
|
org-tags-column 0
|
||||||
|
org-catch-invisible-edits 'show-and-error
|
||||||
|
org-insert-heading-respect-content t
|
||||||
|
|
||||||
|
;; Org styling, hide markup etc.
|
||||||
|
org-hide-emphasis-markers t
|
||||||
|
org-pretty-entities t
|
||||||
|
org-ellipsis "…"
|
||||||
|
|
||||||
|
;; Agenda styling
|
||||||
|
org-agenda-tags-column 0
|
||||||
|
org-agenda-block-separator ?─
|
||||||
|
org-agenda-time-grid
|
||||||
|
'((daily today require-timed)
|
||||||
|
(800 1000 1200 1400 1600 1800 2000)
|
||||||
|
" ┄┄┄┄┄ " "┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄")
|
||||||
|
org-agenda-current-time-string
|
||||||
|
"⌚ now ─────────────────────────────────────────────────")
|
||||||
|
|
||||||
|
(global-org-modern-mode)
|
||||||
|
|
||||||
(setq-default org-enforce-todo-dependencies t)
|
(setq-default org-enforce-todo-dependencies t)
|
||||||
|
(setq org-enforce-todo-checkbox-dependencies t)
|
||||||
|
|
||||||
(setq org-superstar-headline-bullets-list
|
(add-hook 'write-file-hooks 'time-stamp)
|
||||||
'("⁖" "◉" "○" "✸" "✿"))
|
(add-hook 'org-mode-hook
|
||||||
|
(lambda ()
|
||||||
(setq org-M-RET-may-split-line '((default . t)))
|
;; yasnippet
|
||||||
|
;;disabled; (make-variable-buffer-local 'yas/trigger-key)
|
||||||
(setq org-contacts-files '("~/enc/org/people.org"))
|
;;disabled; (org-set-local 'yas/trigger-key [tab])
|
||||||
|
;;disabled; (define-key yas/keymap [tab] 'yas/next-field-group)
|
||||||
|
;; flyspell mode for spell checking everywhere
|
||||||
|
;;disabled; (flyspell-mode 1)
|
||||||
|
;; auto-fill mode on
|
||||||
|
(auto-fill-mode 1)))
|
||||||
|
|
||||||
(global-set-key "\C-cl" 'org-store-link)
|
(global-set-key "\C-cl" 'org-store-link)
|
||||||
(global-set-key "\C-ch" 'counsel-org-link)
|
(global-set-key "\C-ch" 'counsel-org-link)
|
||||||
|
@ -51,23 +124,12 @@
|
||||||
(global-set-key "\C-cnn" 'org-capture)
|
(global-set-key "\C-cnn" 'org-capture)
|
||||||
|
|
||||||
(global-set-key "\C-cia" '(lambda ()(interactive)
|
(global-set-key "\C-cia" '(lambda ()(interactive)
|
||||||
(org-timestamp '(16))))
|
(org-time-stamp '(16))))
|
||||||
(global-set-key "\C-cii" '(lambda () (interactive)
|
(global-set-key "\C-cii" '(lambda () (interactive)
|
||||||
(org-timestamp-inactive '(16))))
|
(org-time-stamp-inactive '(16))))
|
||||||
|
|
||||||
(add-hook 'org-insert-heading-hook
|
(after! org
|
||||||
(lambda ()
|
(setq org-todo-keywords
|
||||||
(if
|
|
||||||
(or
|
|
||||||
(string-match "journal" buffer-file-name)
|
|
||||||
(string-match "therapy" buffer-file-name))
|
|
||||||
((lambda ()
|
|
||||||
(interactive)
|
|
||||||
(org-timestamp-inactive '(16))))
|
|
||||||
(setq 'org-insert-heading-hook nil)
|
|
||||||
)))
|
|
||||||
|
|
||||||
(setq org-todo-keywords
|
|
||||||
'((sequence
|
'((sequence
|
||||||
"INBOX(i)"
|
"INBOX(i)"
|
||||||
"TASK(t)" ; A task that needs doing & is ready to do
|
"TASK(t)" ; A task that needs doing & is ready to do
|
||||||
|
@ -85,31 +147,29 @@
|
||||||
"YES(y)" ; take action
|
"YES(y)" ; take action
|
||||||
"NO(n)")) ; don't take action
|
"NO(n)")) ; don't take action
|
||||||
org-todo-keyword-faces
|
org-todo-keyword-faces
|
||||||
'(("[-]" . +org-todo-active)
|
'(
|
||||||
("STRT" . +org-todo-active)
|
("INBOX" :foreground "cyan" :weight bold)
|
||||||
("[?]" . +org-todo-onhold)
|
("TASK" :foreground "purple" :weight bold)
|
||||||
("WAIT" . +org-todo-onhold)
|
("PROJ" :foreground "violet" :weight bold)
|
||||||
("HOLD" . +org-todo-onhold)
|
("LOOP" :foreground "magenta" :weight bold)
|
||||||
("PROJ" . +org-todo-project)
|
("WAIT" :foreground "yellow" :weight bold)
|
||||||
("NO" . +org-todo-cancel)
|
("HOLD" :foreground "orange" :weight bold)
|
||||||
("KILL" . +org-todo-cancel)))
|
("DONE" :foreground "green" :weight bold)
|
||||||
|
("KILL" :foreground "grey" :weight bold))))
|
||||||
|
|
||||||
(setq hl-todo-keyword-faces
|
(add-hook 'org-insert-heading-hook
|
||||||
'(("HOLD" . "#d0bf8f")
|
(lambda ()
|
||||||
("TODO" . "#cc9393")
|
(if
|
||||||
("NEXT" . "#dca3a3")
|
(or
|
||||||
("THEM" . "#dc8cc3")
|
(string-match "journal.org" buffer-file-name)
|
||||||
("PROG" . "#7cb8bb")
|
(string-match "money" buffer-file-name)
|
||||||
("OKAY" . "#7cb8bb")
|
(string-match "therapy.org" buffer-file-name))
|
||||||
("DONT" . "#5f7f5f")
|
((lambda ()
|
||||||
("FAIL" . "#8c5353")
|
(interactive)
|
||||||
("DONE" . "#afd8af")
|
(org-time-stamp-inactive '(16))
|
||||||
("NOTE" . "#d0bf8f")
|
(newline)))
|
||||||
("KLUDGE" . "#d0bf8f")
|
(setq org-insert-heading-hook nil)
|
||||||
("HACK" . "#d0bf8f")
|
)))
|
||||||
("TEMP" . "#d0bf8f")
|
|
||||||
("FIXME" . "#cc9393")
|
|
||||||
("XXXX*" . "#cc9393")))
|
|
||||||
|
|
||||||
(setq org-capture-templates '(("t" "inbox" entry (file+headline "~/enc/org/phil.org" "Inbox") "* TODO %i%?")
|
(setq org-capture-templates '(("t" "inbox" entry (file+headline "~/enc/org/phil.org" "Inbox") "* TODO %i%?")
|
||||||
("i" "idea" entry (file+headline "~/enc/org/phil.org" "Ideas") "* %?")
|
("i" "idea" entry (file+headline "~/enc/org/phil.org" "Ideas") "* %?")
|
||||||
|
@ -128,6 +188,87 @@
|
||||||
:BIRTHDAY:
|
:BIRTHDAY:
|
||||||
:END:")))
|
:END:")))
|
||||||
|
|
||||||
|
(add-hook 'org-babel-after-execute-hook 'org-display-inline-images)
|
||||||
|
|
||||||
|
(defun org-super-links-quick-related ()
|
||||||
|
(interactive)
|
||||||
|
(let ((org-super-links-link-prefix "\nrelated: "))
|
||||||
|
(org-super-links-link)))
|
||||||
|
|
||||||
|
(setq org-super-links-related-into-drawer t)
|
||||||
|
(setq org-super-links-related-drawer-default-name "RELATED"
|
||||||
|
org-super-links-link-prefix 'org-super-links-link-prefix-timestamp)
|
||||||
|
|
||||||
|
(setq org-export-with-broken-links t) ;; avoiding error on export
|
||||||
|
|
||||||
|
(global-unset-key (kbd "C-c l"))
|
||||||
|
(global-set-key (kbd "C-c l l") 'org-super-links-link)
|
||||||
|
(global-set-key (kbd "C-c l s") 'org-super-links-store-link)
|
||||||
|
(global-set-key (kbd "C-c l i") 'org-super-links-insert-drawer-link)
|
||||||
|
(global-set-key (kbd "C-c l r") 'org-super-links-quick-related)
|
||||||
|
(global-set-key (kbd "C-c l d") 'org-super-links-delete-link)
|
||||||
|
|
||||||
|
(org-super-agenda-mode)
|
||||||
|
(setq super-agenda-groups
|
||||||
|
'(;; Each group has an implicit boolean OR operator between its selectors.
|
||||||
|
(:name "Today" ; Optionally specify section name
|
||||||
|
:time-grid t ; Items that appear on the time grid
|
||||||
|
)
|
||||||
|
(:name "DEADLINES" :deadline t :order 1)
|
||||||
|
(:name "Focus | [A]" :tag "Focus" :priority "A" :order 2 :face (:append t :weight bold))
|
||||||
|
;; (:name "Important" :priority "A" :order 4)
|
||||||
|
;; (:name "Habits" :habit t :order 3)
|
||||||
|
;; (:name "Shopping" :tag "Besorgung" :order 8)
|
||||||
|
;; Boolean AND group matches items that match all subgroups
|
||||||
|
;; :and (:tag "shopping" :tag "@town")
|
||||||
|
;; Multiple args given in list with implicit OR
|
||||||
|
;; :tag ("food" "dinner"))
|
||||||
|
;; :habit t
|
||||||
|
;; :tag "personal")
|
||||||
|
(:name "Started" :and (:todo "TASK" :not (:tag "someday") :not (:priority "C") :not (:priority "B") ) :order 10)
|
||||||
|
;;(:name "Space-related (non-moon-or-planet-related)"
|
||||||
|
;; ;; Regexps match case-insensitively on the entire entry
|
||||||
|
;; :and (:regexp ("space" "NASA")
|
||||||
|
;; ;; Boolean NOT also has implicit OR between selectors
|
||||||
|
;; :not (:regexp "moon" :tag "planet")))
|
||||||
|
;;(:name "BWG" :tag "@BWG" :order 16)
|
||||||
|
;; (:name "read" :tag "2read" :order 22)
|
||||||
|
;; Groups supply their own section names when none are given
|
||||||
|
(:name "Someday" :and ( :todo ("WAIT" "HOLD" "INBOX") :tag "someday" :not (:priority "C") :not (:priority "B"))
|
||||||
|
;; Show this group at the end of the agenda (since it has the
|
||||||
|
;; highest number). If you specified this group last, items
|
||||||
|
;; with these todo keywords that e.g. have priority A would be
|
||||||
|
;; displayed in that group instead, because items are grouped
|
||||||
|
;; out in the order the groups are listed.
|
||||||
|
:order 25)
|
||||||
|
|
||||||
|
;; "other items": an auto-group with order 99 ----------------------------
|
||||||
|
|
||||||
|
(:name "Prio ≤ B" :priority<= "B"
|
||||||
|
;; Show this section after "Today" and "Important", because
|
||||||
|
;; their order is unspecified, defaulting to 0. Sections
|
||||||
|
;; are displayed lowest-number-first.
|
||||||
|
:order 105)
|
||||||
|
(:name "reward"
|
||||||
|
:tag ("reward" "lp")
|
||||||
|
:order 110
|
||||||
|
)
|
||||||
|
(:name "Waiting…" :todo "WAIT" :order 118) ; Set order of this section
|
||||||
|
|
||||||
|
;; After the last group, the agenda will display items that didn't
|
||||||
|
;; match any of these groups, with the default order position of 99
|
||||||
|
))
|
||||||
|
|
||||||
|
(defun my-super-agenda()
|
||||||
|
"generates my super-agenda"
|
||||||
|
(interactive)
|
||||||
|
(org-super-agenda-mode)
|
||||||
|
(let
|
||||||
|
((org-super-agenda-groups super-agenda-groups))
|
||||||
|
(org-agenda nil "a")
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
(org-wild-notifier-mode)
|
(org-wild-notifier-mode)
|
||||||
|
|
||||||
(setq org-wild-notifier-alert-time '(10))
|
(setq org-wild-notifier-alert-time '(10))
|
||||||
|
@ -139,6 +280,8 @@
|
||||||
(setq org-outline-path-complete-in-steps nil)
|
(setq org-outline-path-complete-in-steps nil)
|
||||||
(setq org-refile-use-outline-path t)
|
(setq org-refile-use-outline-path t)
|
||||||
|
|
||||||
|
(setq org-contacts-files '("~/enc/org/people.org"))
|
||||||
|
|
||||||
(define-prefix-command 'org-roam-map)
|
(define-prefix-command 'org-roam-map)
|
||||||
(global-set-key "\C-r" 'org-roam-map)
|
(global-set-key "\C-r" 'org-roam-map)
|
||||||
(define-key org-roam-map "o" 'org-roam-buffer-toggle)
|
(define-key org-roam-map "o" 'org-roam-buffer-toggle)
|
||||||
|
@ -156,44 +299,20 @@
|
||||||
(setq org-roam-capture-templates
|
(setq org-roam-capture-templates
|
||||||
'(("n" "default" plain
|
'(("n" "default" plain
|
||||||
"%?"
|
"%?"
|
||||||
:if-new (file+head "%<%Y.%m.%d.%H\:%M>-${slug}.org" "#+title: ${title}\n")
|
:if-new (file+head "${slug}.org" "#+title: ${title}\n#+category: ${title}\n#+filetags: \n")
|
||||||
|
:empty-lines 1
|
||||||
:unnarrowed t)
|
:unnarrowed t)
|
||||||
("j" "journal" plain
|
("j" "journal" plain
|
||||||
"%?"
|
"%?"
|
||||||
:if-new (file+head "journal/journal-%<%Y.%m.%d.%H\:%M>-${slug}.org" "#+title: ${title}\n")
|
:if-new (file+head "journal/journal-${slug}.org" "#+title: ${title}\n#+category: 📔${title}\n#+filetags: 📔\n")
|
||||||
:empty-lines 1
|
:empty-lines 1
|
||||||
:unnarrowed t)
|
:unnarrowed t)
|
||||||
("t" "Therapy" plain
|
("t" "Therapy" plain
|
||||||
"
|
"#+title: ${title}\n"
|
||||||
* Sytuacja
|
:if-new (file+head "therapy/therapy-${slug}.org" "#+title: ${title}\n#+category: 📗 ${title}\n#+filetags: 📗\n")
|
||||||
** Myśli
|
|
||||||
** Emocje
|
|
||||||
** Zachowania
|
|
||||||
** Argumenty potwierdzające myśli
|
|
||||||
** Argumenty podważające
|
|
||||||
** Myśli alternatywne
|
|
||||||
** Emocje alternatywne-
|
|
||||||
** Zachowania alternatywne
|
|
||||||
"
|
|
||||||
:if-new (file+head "therapy/therapy-%<%Y.%m.%d.%H\:%M>-${slug}.org" "#+title: ${title}\n")
|
|
||||||
:empty-lines 1
|
:empty-lines 1
|
||||||
:unnarrowed)))
|
:unnarrowed)))
|
||||||
|
|
||||||
(use-package! websocket
|
|
||||||
:after org-roam)
|
|
||||||
|
|
||||||
(use-package! org-roam-ui
|
|
||||||
:after org-roam ;; or :after org
|
|
||||||
;; normally we'd recommend hooking orui after org-roam, but since org-roam does not have
|
|
||||||
;; a hookable mode anymore, you're advised to pick something yourself
|
|
||||||
;; if you don't care about startup time, use
|
|
||||||
;; :hook (after-init . org-roam-ui-mode)
|
|
||||||
:config
|
|
||||||
(setq org-roam-ui-sync-theme t
|
|
||||||
org-roam-ui-follow t
|
|
||||||
org-roam-ui-update-on-save t
|
|
||||||
org-roam-ui-open-on-start t))
|
|
||||||
|
|
||||||
(add-to-list 'load-path "~/.emacs.d/.local/straight/repos/elgantt/")
|
(add-to-list 'load-path "~/.emacs.d/.local/straight/repos/elgantt/")
|
||||||
|
|
||||||
(setq elgantt-header-type 'outline
|
(setq elgantt-header-type 'outline
|
||||||
|
@ -231,12 +350,230 @@
|
||||||
org-agenda-insert-diary-extract-time t
|
org-agenda-insert-diary-extract-time t
|
||||||
org-log-into-drawer t
|
org-log-into-drawer t
|
||||||
org-clock-into-drawer t
|
org-clock-into-drawer t
|
||||||
org-agenda-log-mode-items '(closed clock state))
|
org-agenda-log-mode-items '(closed clock state)
|
||||||
|
org-agenda-prefix-format "%l %i %c %s %t")
|
||||||
|
|
||||||
|
(setq org-agenda-compact-blocks t)
|
||||||
|
(setq org-agenda-use-tag-inheritance (quote (agenda)));; agenda performance
|
||||||
|
(setq org-agenda-span 1)
|
||||||
|
(add-hook 'org-agenda-mode-hook '(lambda () (hl-line-mode 1)))
|
||||||
|
|
||||||
(setq org-agenda-custom-commands
|
(setq org-agenda-custom-commands
|
||||||
(quote (("x" "Phil's view" agenda ""
|
(quote (("x" "Phil's view" agenda ""
|
||||||
((org-agenda-prefix-format " %i %b %-12:c %s %t "))))))
|
((org-agenda-prefix-format " %i %-12:c %s %t "))))))
|
||||||
|
|
||||||
|
(setq org-agenda-todo-ignore-with-date nil)
|
||||||
|
|
||||||
|
(setq org-agenda-todo-ignore-deadlines (quote far))
|
||||||
|
|
||||||
|
(setq org-agenda-todo-ignore-scheduled (quote future))
|
||||||
|
|
||||||
|
(setq org-agenda-skip-deadline-if-done t)
|
||||||
|
|
||||||
|
(setq org-agenda-skip-scheduled-if-done t)
|
||||||
|
|
||||||
|
(setq org-agenda-text-search-extra-files (quote (agenda-archives)))
|
||||||
|
|
||||||
|
(setq org-agenda-log-mode-items (quote (state)))
|
||||||
|
|
||||||
|
;(setq org-agenda-skip-additional-timestamps-same-entry t)
|
||||||
|
(setq org-agenda-skip-additional-timestamps-same-entry nil)
|
||||||
|
|
||||||
|
(setq org-agenda-search-headline-for-time nil)
|
||||||
|
|
||||||
|
(setq org-agenda-window-setup 'current-window)
|
||||||
|
|
||||||
|
(setq org-agenda-include-diary t)
|
||||||
|
|
||||||
|
(setq org-agenda-repeating-timestamp-show-all t)
|
||||||
|
|
||||||
|
(setq org-agenda-show-all-dates t)
|
||||||
|
|
||||||
|
(setq org-agenda-sorting-strategy
|
||||||
|
(quote ((agenda habit-down time-up user-defined-up priority-down category-keep)
|
||||||
|
(todo priority-down category-keep)
|
||||||
|
(tags priority-down category-keep)
|
||||||
|
(search category-keep))))
|
||||||
|
|
||||||
|
(setq org-agenda-start-on-weekday nil)
|
||||||
|
|
||||||
|
(setq org-agenda-skip-timestamp-if-deadline-is-shown t)
|
||||||
|
|
||||||
|
(setq org-agenda-cmp-user-defined 'bh/agenda-sort)
|
||||||
|
|
||||||
|
;;(setq org-agenda-tags-column -102)
|
||||||
|
(setq org-tags-column -101); for powerplantwin 23" TFT turned 90
|
||||||
|
; degrees; should *not* differ between
|
||||||
|
; systems! Otherwise Org-files gets
|
||||||
|
; re-formatted after switching
|
||||||
|
; system
|
||||||
|
;;(when (my-system-type-is-windows)
|
||||||
|
;; ;;(setq org-agenda-tags-column -103);; for 23" TFT turned 90 degrees
|
||||||
|
;; (setq org-agenda-tags-column -117);; for 24" TFT turned 90 degrees
|
||||||
|
;; )
|
||||||
|
;;(when (my-system-is-sting)
|
||||||
|
;; (setq org-agenda-tags-column -117);; -117 for 23" TFT sting, rotated 90°
|
||||||
|
;; )
|
||||||
|
(setq org-agenda-tags-column (- (- (window-total-width) 3))) ;; total width minus 3
|
||||||
|
|
||||||
|
(define-key org-agenda-mode-map (kbd "C-p") 'my-scroll-down-half)
|
||||||
|
(define-key org-agenda-mode-map (kbd "C-n") 'my-scroll-up-half)
|
||||||
|
|
||||||
|
(setq org-agenda-skip-scheduled-if-deadline-is-shown nil)
|
||||||
|
;;(setq org-agenda-skip-deadline-prewarning-if-scheduled t)
|
||||||
|
|
||||||
|
(setq org-global-properties (quote (("STYLE_ALL" . "habit"))))
|
||||||
|
|
||||||
|
(setq org-habit-graph-column 100)
|
||||||
|
|
||||||
|
(defun org-agenda-sharpie ()
|
||||||
|
"Censor the text of items in the agenda."
|
||||||
|
(interactive)
|
||||||
|
(let (regexp old-heading new-heading properties)
|
||||||
|
;; Save face properties of line in agenda to reapply to changed text
|
||||||
|
(setq properties (text-properties-at (point)))
|
||||||
|
|
||||||
|
;; Go to source buffer
|
||||||
|
(org-with-point-at (org-find-text-property-in-string 'org-marker
|
||||||
|
(buffer-substring (line-beginning-position)
|
||||||
|
(line-end-position)))
|
||||||
|
;; Save old heading text and ask for new text
|
||||||
|
(line-beginning-position)
|
||||||
|
(unless (org-at-heading-p)
|
||||||
|
;; Not sure if necessary
|
||||||
|
(org-back-to-heading))
|
||||||
|
(setq old-heading (when (looking-at org-complex-heading-regexp)
|
||||||
|
(match-string 4))))
|
||||||
|
(unless old-heading
|
||||||
|
(error "Can't find heading. How can this be?"))
|
||||||
|
;; Back to agenda buffer
|
||||||
|
(setq new-heading (read-from-minibuffer "Overwrite visible heading with: "))
|
||||||
|
(add-text-properties 0 (length new-heading) properties new-heading)
|
||||||
|
;; Replace agenda text
|
||||||
|
(save-excursion
|
||||||
|
(let ((inhibit-read-only t))
|
||||||
|
(goto-char (line-beginning-position))
|
||||||
|
(when (search-forward old-heading (line-end-position))
|
||||||
|
(replace-match new-heading 'fixedcase 'literal))))))
|
||||||
|
|
||||||
|
(setq org-export-initial-scope 'subtree)
|
||||||
|
|
||||||
|
(setq org-export-with-broken-links t)
|
||||||
|
|
||||||
|
(with-eval-after-load 'ox-latex
|
||||||
|
;;(message (concat "################################################\norg-latex-classes = [" org-latex-classes "]"))
|
||||||
|
|
||||||
|
(add-to-list 'org-latex-classes
|
||||||
|
'("scrartcl"
|
||||||
|
"\\documentclass\[a4paper,parskip=half\]\{scrartcl\}"
|
||||||
|
("\\section\{%s\}" . "\\section*\{%s\}")
|
||||||
|
("\\subsection\{%s\}" . "\\subsection*\{%s\}")
|
||||||
|
("\\subsubsection\{%s\}" . "\\subsubsection*\{%s\}")))
|
||||||
|
|
||||||
|
(add-to-list 'org-latex-classes
|
||||||
|
'("detego"
|
||||||
|
"\\documentclass\[a4paper,parskip=half,11pt,headinclude=false,footinclude=false\]\{scrartcl\}
|
||||||
|
\\usepackage\[ngerman,american\]\{babel\}\\usepackage\{eurosym\}\\usepackage\{xspace\}\\usepackage\[usenames,dvipsnames\]\{xcolor\}
|
||||||
|
\\usepackage\[protrusion=true,factor=900\]\{microtype\}\\usepackage\{enumitem\}
|
||||||
|
\\definecolor\{DispositionColor\}\{RGB\}\{0,54,90\}
|
||||||
|
\\usepackage\{helvet\}
|
||||||
|
\\renewcommand\{\\familydefault\}\{\\sfdefault\}
|
||||||
|
\\DeclareRobustCommand\{\\myacro\}\[1\]\{\\textsc\{\\lowercase\{#1\}\}\} %% abbrevations using small caps
|
||||||
|
\\usepackage{scrlayer-scrpage} \\rehead{\\includegraphics\[height=1cm\]{{c:/Users/karl.voit/.emacs.d/bin/images/Detego-Logo-209x41.png}}} \\pagestyle{scrheadings} %% Logo in header
|
||||||
|
\\newenvironment{NOTES}{}{} %% declares org-reveal environment in PDF output
|
||||||
|
\\usepackage[space]{grffile} %% enable spaces in filenames of includegraphics
|
||||||
|
%% colorful headings:
|
||||||
|
%\\setheadsepline\{.4pt\}\[\\color\{DispositionColor\}\]
|
||||||
|
\\renewcommand\{\\headfont\}\{\\normalfont\\sffamily\\color\{DispositionColor\}\}
|
||||||
|
\\renewcommand\{\\pnumfont\}\{\\normalfont\\sffamily\\color\{DispositionColor\}\}
|
||||||
|
\\addtokomafont\{disposition\}\{\\color\{DispositionColor\}\}
|
||||||
|
\\addtokomafont\{caption\}\{\\color\{DispositionColor\}\\footnotesize\}
|
||||||
|
\\addtokomafont\{captionlabel\}\{\\color\{DispositionColor\}\}
|
||||||
|
|
||||||
|
\\usepackage\{enumitem\}
|
||||||
|
\\setlist\{noitemsep\} %% kills the space between items
|
||||||
|
|
||||||
|
"
|
||||||
|
("\\section\{%s\}" . "\\section*\{%s\}")
|
||||||
|
("\\subsection\{%s\}" . "\\subsection*\{%s\}")
|
||||||
|
("\\subsubsection\{%s\}" . "\\subsubsection*\{%s\}")))
|
||||||
|
|
||||||
|
(add-to-list 'org-latex-classes
|
||||||
|
'("rise"
|
||||||
|
"\\documentclass\[a4paper,parskip=half,11pt,headinclude=false,footinclude=false\]\{scrartcl\}
|
||||||
|
\\usepackage\[ngerman,american\]\{babel\}\\usepackage\{eurosym\}\\usepackage\{xspace\}\\usepackage\[usenames,dvipsnames\]\{xcolor\}
|
||||||
|
\\usepackage\[protrusion=true,factor=900\]\{microtype\}\\usepackage\{enumitem\}
|
||||||
|
\\definecolor\{DispositionColor\}\{RGB\}\{0,54,90\}
|
||||||
|
\\usepackage\{helvet\}
|
||||||
|
\\renewcommand\{\\familydefault\}\{\\sfdefault\}
|
||||||
|
\\DeclareRobustCommand\{\\myacro\}\[1\]\{\\textsc\{\\lowercase\{#1\}\}\} %% abbrevations using small caps
|
||||||
|
\\usepackage{scrlayer-scrpage} \\rehead{\\includegraphics\[height=1cm\]{{c:/Users/karl.voit/.emacs.d/bin/images/RISE_logo_202x500.jpeg}}} \\pagestyle{scrheadings} %% Logo in header
|
||||||
|
\\newenvironment{NOTES}{}{} %% declares org-reveal environment in PDF output
|
||||||
|
\\usepackage[space]{grffile} %% enable spaces in filenames of includegraphics
|
||||||
|
%% colorful headings:
|
||||||
|
%\\setheadsepline\{.4pt\}\[\\color\{DispositionColor\}\]
|
||||||
|
\\renewcommand\{\\headfont\}\{\\normalfont\\sffamily\\color\{DispositionColor\}\}
|
||||||
|
\\renewcommand\{\\pnumfont\}\{\\normalfont\\sffamily\\color\{DispositionColor\}\}
|
||||||
|
\\addtokomafont\{disposition\}\{\\color\{DispositionColor\}\}
|
||||||
|
\\addtokomafont\{caption\}\{\\color\{DispositionColor\}\\footnotesize\}
|
||||||
|
\\addtokomafont\{captionlabel\}\{\\color\{DispositionColor\}\}
|
||||||
|
|
||||||
|
\\usepackage\{enumitem\}
|
||||||
|
\\setlist\{noitemsep\} %% kills the space between items
|
||||||
|
|
||||||
|
"
|
||||||
|
("\\section\{%s\}" . "\\section*\{%s\}")
|
||||||
|
("\\subsection\{%s\}" . "\\subsection*\{%s\}")
|
||||||
|
("\\subsubsection\{%s\}" . "\\subsubsection*\{%s\}")))
|
||||||
|
|
||||||
|
(add-to-list 'org-latex-classes
|
||||||
|
'("lyrics"
|
||||||
|
"\\documentclass\[a4paper,parskip=half\]\{scrartcl\}
|
||||||
|
\\renewcommand*\\sfdefault\{lcmss\} \\renewcommand*\\familydefault\{\\sfdefault\}"
|
||||||
|
("\\section\{%s\}" . "\\section*\{%s\}")
|
||||||
|
("\\subsection\{%s\}" . "\\subsection*\{%s\}")
|
||||||
|
("\\subsubsection\{%s\}" . "\\subsubsection*\{%s\}")))
|
||||||
|
|
||||||
|
(add-to-list 'org-latex-classes
|
||||||
|
'("lyrics2"
|
||||||
|
"\\documentclass\[a4paper,parskip=half,twocolumn\]\{scrartcl\}
|
||||||
|
\\renewcommand*\\sfdefault\{lcmss\} \\renewcommand*\\familydefault\{\\sfdefault\}"
|
||||||
|
("\\section\{%s\}" . "\\section*\{%s\}")
|
||||||
|
("\\subsection\{%s\}" . "\\subsection*\{%s\}")
|
||||||
|
("\\subsubsection\{%s\}" . "\\subsubsection*\{%s\}")))
|
||||||
|
|
||||||
|
(add-to-list 'org-latex-classes
|
||||||
|
'("memoirbook"
|
||||||
|
"\\documentclass[a5paper,12pt]{memoir}"
|
||||||
|
;; "\\semiisopage[8]"
|
||||||
|
;; "\\hypersetup{colorlinks=true,linkcolor={Blue},urlcolor={Blue}}" ;; genera un problema al exportar
|
||||||
|
("\\chapter{%s}" . "\\chapter*{%s}")
|
||||||
|
("\\section{%s}" . "\\section*{%s}")
|
||||||
|
("\\subsection{%s}" . "\\subsection*{%s}")
|
||||||
|
("\\subsubsection{%s}" . "\\subsubsection*{%s}")
|
||||||
|
("\\paragraph{%s}" . "\\paragraph*{%s}")
|
||||||
|
("\\subparagraph{%s}" . "\\subparagraph*{%s}")))
|
||||||
|
|
||||||
|
'(org-export-latex-default-class "memoir")
|
||||||
|
|
||||||
|
);; with-eval-after-load
|
||||||
|
|
||||||
|
(use-package ox-asciidoc
|
||||||
|
;;:ensure t ;; install package if not found OR: (setq use-package-always-ensure t)
|
||||||
|
:defer 110
|
||||||
|
)
|
||||||
|
|
||||||
|
(defun my-org-copy-region-as-markdown ()
|
||||||
|
"Copy the region (in Org) to the system clipboard as Markdown."
|
||||||
|
(interactive)
|
||||||
|
(if (use-region-p)
|
||||||
|
(let* ((region
|
||||||
|
(buffer-substring-no-properties
|
||||||
|
(region-beginning)
|
||||||
|
(region-end)))
|
||||||
|
(markdown
|
||||||
|
(org-export-string-as region 'md t '(:with-toc nil))))
|
||||||
|
(gui-set-selection 'CLIPBOARD markdown))))
|
||||||
|
|
||||||
(setq doom-snippets-enable-short-helpers t)
|
(setq doom-snippets-enable-short-helpers t)
|
||||||
|
|
||||||
|
@ -245,3 +582,21 @@
|
||||||
("png" . "sxiv")
|
("png" . "sxiv")
|
||||||
("mkv" . "mpv")
|
("mkv" . "mpv")
|
||||||
("mp4" . "mpv")))
|
("mp4" . "mpv")))
|
||||||
|
|
||||||
|
(mode-icons-mode)
|
||||||
|
(add-hook 'dired-mode-hook #'mode-icons--mode-disable) ;; with mode-icons, visiting a dir with dired takes up *lots* of CPU for =mode-icons-reset= (performance-issue)
|
||||||
|
|
||||||
|
(add-to-list 'auto-mode-alist '("\\.[Cc][Ss][Vv]\\'" . csv-mode))
|
||||||
|
(autoload 'csv-mode "csv-mode"
|
||||||
|
"Major mode for editing comma-separated value files." t)
|
||||||
|
|
||||||
|
;; To open files with .journal extension in hledger-mode
|
||||||
|
(add-to-list 'auto-mode-alist '("\\.journal\\'" . hledger-mode))
|
||||||
|
|
||||||
|
;; Provide the path to you journal file.
|
||||||
|
;; The default location is too opinionated.
|
||||||
|
(setq hledger-jfile "~/enc/org/hledger/2023.journal")
|
||||||
|
|
||||||
|
;;; Auto-completion for account names
|
||||||
|
;; For company-mode users,
|
||||||
|
(add-to-list 'company-backends 'hledger-company)
|
||||||
|
|
|
@ -3,8 +3,10 @@
|
||||||
;; If you edit it by hand, you could mess it up, so be careful.
|
;; If you edit it by hand, you could mess it up, so be careful.
|
||||||
;; Your init file should contain only one such instance.
|
;; Your init file should contain only one such instance.
|
||||||
;; If there is more than one, they won't work right.
|
;; If there is more than one, they won't work right.
|
||||||
|
'(ignored-local-variable-values '((org-ql-ask-unsafe-queries)))
|
||||||
|
'(magit-todos-insert-after '(bottom) nil nil "Changed by setter of obsolete option `magit-todos-insert-at'")
|
||||||
'(org-safe-remote-resources
|
'(org-safe-remote-resources
|
||||||
'("\\`https://bajsicki\\.com/org-html-themes/org/theme-readtheorg\\.setup\\'")))
|
'("\\`https://lvxnox\\.com/org-html-themes/org/theme-readtheorg\\.setup\\'" "\\`https://bajsicki\\.com/org-html-themes/org/theme-readtheorg\\.setup\\'")))
|
||||||
(custom-set-faces
|
(custom-set-faces
|
||||||
;; custom-set-faces was added by Custom.
|
;; custom-set-faces was added by Custom.
|
||||||
;; If you edit it by hand, you could mess it up, so be careful.
|
;; If you edit it by hand, you could mess it up, so be careful.
|
||||||
|
|
|
@ -1,66 +1,195 @@
|
||||||
|
;;; 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
|
(doom! :input
|
||||||
|
;;bidi ; (tfel ot) thgir etirw uoy gnipleh
|
||||||
|
;;chinese
|
||||||
|
;;japanese
|
||||||
|
;;layout ; auie,ctsrnm is the superior home row
|
||||||
|
|
||||||
:completion
|
:completion
|
||||||
company
|
company ; the ultimate code completion backend
|
||||||
ivy
|
;;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
|
:ui
|
||||||
doom
|
;;deft ; notational velocity for Emacs
|
||||||
doom-dashboard
|
doom ; what makes DOOM look the way it does
|
||||||
doom-quit
|
doom-dashboard ; a nifty splash screen for Emacs
|
||||||
(emoji +unicode)
|
doom-quit ; DOOM quit-message prompts when you quit Emacs
|
||||||
hl-todo
|
;;(emoji +unicode) ; 🙂
|
||||||
ligatures
|
;;hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW
|
||||||
modeline
|
;;hydra
|
||||||
ophints
|
indent-guides ; highlighted indent columns
|
||||||
(popup +defaults)
|
(ligatures +extra +iosevka) ; ligatures and symbols to make your code pretty again
|
||||||
treemacs
|
;;minimap ; show a map of the code on the side
|
||||||
unicode
|
modeline ; snazzy, Atom-inspired modeline, plus API
|
||||||
vi-tilde-fringe
|
nav-flash ; blink cursor line after big motions
|
||||||
workspaces
|
;;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
|
:editor
|
||||||
file-templates
|
;;(evil +everywhere); come to the dark side, we have cookies
|
||||||
fold
|
file-templates ; auto-snippets for empty files
|
||||||
(format +onsave)
|
fold ; (nigh) universal code folding
|
||||||
snippets
|
(format +onsave) ; automated prettiness
|
||||||
word-wrap
|
;;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
|
:emacs
|
||||||
dired
|
dired ; making dired pretty [functional]
|
||||||
electric
|
electric ; smarter, keyword-based electric-indent
|
||||||
undo
|
;;ibuffer ; interactive buffer management
|
||||||
vc
|
(undo +tree) ; persistent, smarter undo for your inevitable mistakes
|
||||||
|
vc ; version-control and Emacs, sitting in a tree
|
||||||
|
|
||||||
:term
|
:term
|
||||||
vterm
|
;;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
|
:checkers
|
||||||
syntax
|
syntax ; tasing you for every semicolon you forget
|
||||||
|
(spell +flyspell) ; tasing you for misspelling mispelling
|
||||||
|
grammar ; tasing grammar mistake every you make
|
||||||
|
|
||||||
:tools
|
:tools
|
||||||
(eval +overlay)
|
;;ansible
|
||||||
lookup
|
;;biblio ; Writes a PhD for you (citation needed)
|
||||||
lsp
|
;;collab ; buffers with friends
|
||||||
magit
|
;;debugger ; FIXME stepping through code, to help you add bugs
|
||||||
pdf
|
;;direnv
|
||||||
|
;;docker
|
||||||
|
;;editorconfig ; let someone else argue about tabs vs spaces
|
||||||
|
;;ein ; tame Jupyter notebooks with emacs
|
||||||
|
(eval +overlay) ; run code, run (also, repls)
|
||||||
|
;;gist ; interacting with github gists
|
||||||
|
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
|
||||||
|
|
||||||
:lang
|
:os
|
||||||
common-lisp
|
(:if IS-MAC macos) ; improve compatibility with macOS
|
||||||
data
|
;;tty ; improve the terminal Emacs experience
|
||||||
emacs-lisp
|
|
||||||
(haskell +lsp)
|
|
||||||
latex
|
|
||||||
(org +pretty)
|
|
||||||
plantuml
|
|
||||||
raku
|
|
||||||
shipsweb
|
|
||||||
rust
|
|
||||||
yaml
|
|
||||||
zig
|
|
||||||
|
|
||||||
:config
|
:lang
|
||||||
;literate
|
;;agda ; types of types of types of types...
|
||||||
(default +bindings +smartparens)
|
;;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))
|
||||||
|
|
|
@ -15,27 +15,45 @@
|
||||||
(package! fish-mode)
|
(package! fish-mode)
|
||||||
(package! typescript-mode)
|
(package! typescript-mode)
|
||||||
(package! wc-mode)
|
(package! wc-mode)
|
||||||
|
(package! plantuml-mode)
|
||||||
(package! ivy)
|
(package! csv-mode)
|
||||||
(package! ivy-xref)
|
|
||||||
|
|
||||||
(package! dired-open)
|
(package! dired-open)
|
||||||
|
|
||||||
|
;; (package! helm-xref)
|
||||||
|
|
||||||
|
;; Fix for org-roam link issue
|
||||||
|
(package! org :pin "ca873f7")
|
||||||
|
(package! org-auto-tangle)
|
||||||
|
(package! org-modern)
|
||||||
|
(package! org-ql)
|
||||||
|
(package! org-sidebar
|
||||||
|
:recipe (
|
||||||
|
:host github
|
||||||
|
:repo "alphapapa/org-sidebar"
|
||||||
|
))
|
||||||
(package! org-contacts)
|
(package! org-contacts)
|
||||||
(package! org-bullets)
|
(package! org-bullets)
|
||||||
(package! org-download)
|
(package! org-download)
|
||||||
(package! org-cliplink)
|
(package! org-cliplink)
|
||||||
(package! org-roam :pin "ca873f7")
|
(package! org-roam)
|
||||||
(package! org-ql)
|
(package! org-super-agenda)
|
||||||
(package! org-wild-notifier)
|
(package! org-wild-notifier)
|
||||||
(unpin! org-roam)
|
|
||||||
(package! org-roam-ui)
|
|
||||||
|
|
||||||
(package! org-depend
|
(package! org-edna)
|
||||||
:recipe (
|
(package! org-super-links
|
||||||
:host github
|
:recipe (
|
||||||
:repo "fgeller/org-mode"
|
:type git
|
||||||
:files ("contrib/lisp/org-depend.el")))
|
:host github
|
||||||
|
:repo "toshism/org-super-links"
|
||||||
|
:branch "develop"
|
||||||
|
))
|
||||||
|
|
||||||
(package! elgantt
|
(package! elgantt
|
||||||
:recipe (:host github :repo "legalnonsense/elgantt"))
|
:recipe (:host github :repo "legalnonsense/elgantt"))
|
||||||
|
|
||||||
|
(package! mode-icons)
|
||||||
|
|
||||||
|
(package! qrencode)
|
||||||
|
|
||||||
|
(package! hledger-mode)
|
||||||
|
|
|
@ -21,7 +21,7 @@ set VISUAL "emacsclient -c -a emacs"
|
||||||
set QT_QPA_PLATFORMTHEME "qt6ct"
|
set QT_QPA_PLATFORMTHEME "qt6ct"
|
||||||
set SSH_AUTH_SOCK $XDG_RUNTIME_DIR/ssh-agent.socket
|
set SSH_AUTH_SOCK $XDG_RUNTIME_DIR/ssh-agent.socket
|
||||||
set GNUPGHOME "~/enc/keys/gnupg"
|
set GNUPGHOME "~/enc/keys/gnupg"
|
||||||
|
set LEDGER_FILE "~/enc/org/hledger/2023.journal"
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
* Manpager
|
* Manpager
|
||||||
|
@ -241,27 +241,6 @@ alias .5='cd ../../../../..'
|
||||||
#+begin_src fish
|
#+begin_src fish
|
||||||
alias vim='nvim'
|
alias vim='nvim'
|
||||||
#+end_src
|
#+end_src
|
||||||
** emacs
|
|
||||||
Aliases for [[https://github.com/doomemacs/doomemacs][Doom Emacs]].
|
|
||||||
|
|
||||||
*** em
|
|
||||||
Opens emacs in the terminal.
|
|
||||||
#+begin_src fish
|
|
||||||
alias em='/usr/bin/emacs -nw'
|
|
||||||
#+end_src
|
|
||||||
*** emacs
|
|
||||||
Calls ~emacsclient -c -a 'emacs'~.
|
|
||||||
#+begin_src fish
|
|
||||||
alias emacs="emacsclient -c -a 'emacs'"
|
|
||||||
#+end_src
|
|
||||||
*** doom
|
|
||||||
These aliases call the ~doom~ script from ~~/.config/emacs/bin~.
|
|
||||||
#+begin_src fish
|
|
||||||
alias doomsync="~/.config/emacs/bin/doom sync"
|
|
||||||
alias doomdoctor="~/.config/emacs/bin/doom doctor"
|
|
||||||
alias doomupgrade="~/.config/emacs/bin/doom upgrade"
|
|
||||||
alias doompurge="~/.config/emacs/bin/doom purge"
|
|
||||||
#+end_src
|
|
||||||
** exa
|
** exa
|
||||||
These bindings change the way ~ls~ behaves by calling ~exa~ instead.
|
These bindings change the way ~ls~ behaves by calling ~exa~ instead.
|
||||||
#+begin_src fish
|
#+begin_src fish
|
||||||
|
@ -319,7 +298,6 @@ Ask for confirmation before overwriting files.
|
||||||
#+begin_src fish
|
#+begin_src fish
|
||||||
alias cp="cp -i"
|
alias cp="cp -i"
|
||||||
alias mv='mv -i'
|
alias mv='mv -i'
|
||||||
alias rm='rm -i'
|
|
||||||
#+end_src
|
#+end_src
|
||||||
** df, free
|
** df, free
|
||||||
Make the output human-readable by default.
|
Make the output human-readable by default.
|
||||||
|
|
|
@ -6,6 +6,9 @@ set TERM "xterm-256color"
|
||||||
set EDITOR "emacsclient -t -a ''"
|
set EDITOR "emacsclient -t -a ''"
|
||||||
set VISUAL "emacsclient -c -a emacs"
|
set VISUAL "emacsclient -c -a emacs"
|
||||||
set QT_QPA_PLATFORMTHEME "qt6ct"
|
set QT_QPA_PLATFORMTHEME "qt6ct"
|
||||||
|
set SSH_AUTH_SOCK $XDG_RUNTIME_DIR/ssh-agent.socket
|
||||||
|
set GNUPGHOME "~/enc/keys/gnupg"
|
||||||
|
set LEDGER_FILE "~/enc/org/hledger/2023.journal"
|
||||||
|
|
||||||
set -x MANPAGER "sh -c 'col -bx | bat -l man -p'"
|
set -x MANPAGER "sh -c 'col -bx | bat -l man -p'"
|
||||||
|
|
||||||
|
@ -164,15 +167,6 @@ alias .5='cd ../../../../..'
|
||||||
|
|
||||||
alias vim='nvim'
|
alias vim='nvim'
|
||||||
|
|
||||||
alias em='/usr/bin/emacs -nw'
|
|
||||||
|
|
||||||
alias emacs="emacsclient -c -a 'emacs'"
|
|
||||||
|
|
||||||
alias doomsync="~/.config/emacs/bin/doom sync"
|
|
||||||
alias doomdoctor="~/.config/emacs/bin/doom doctor"
|
|
||||||
alias doomupgrade="~/.config/emacs/bin/doom upgrade"
|
|
||||||
alias doompurge="~/.config/emacs/bin/doom purge"
|
|
||||||
|
|
||||||
alias ls='exa -al --color=always --group-directories-first'
|
alias ls='exa -al --color=always --group-directories-first'
|
||||||
alias la='exa -a --color=always --group-directories-first'
|
alias la='exa -a --color=always --group-directories-first'
|
||||||
alias ll='exa -l --color=always --group-directories-first'
|
alias ll='exa -l --color=always --group-directories-first'
|
||||||
|
@ -200,7 +194,6 @@ alias fgrep='fgrep --color=auto'
|
||||||
|
|
||||||
alias cp="cp -i"
|
alias cp="cp -i"
|
||||||
alias mv='mv -i'
|
alias mv='mv -i'
|
||||||
alias rm='rm -i'
|
|
||||||
|
|
||||||
alias df='df -h'
|
alias df='df -h'
|
||||||
alias free='free -m'
|
alias free='free -m'
|
||||||
|
|
|
@ -32,12 +32,14 @@ Config {
|
||||||
, persistent = True
|
, persistent = True
|
||||||
, iconRoot = ".config/xmonad/xpm/" -- default: "."
|
, iconRoot = ".config/xmonad/xpm/" -- default: "."
|
||||||
, commands = [
|
, commands = [
|
||||||
|
Run UnsafeXMonadLog
|
||||||
|
, Run StdinReader
|
||||||
-- Echos a "penguin" icon in front of the kernel output.
|
-- Echos a "penguin" icon in front of the kernel output.
|
||||||
-- Run Com "echo" ["<fn=3>\xf17c</fn>"] "penguin" 3600
|
-- Run Com "echo" ["<fn=3>\xf17c</fn>"] "penguin" 3600
|
||||||
-- Get kernel version (script found in .local/bin)
|
-- Get kernel version (script found in .local/bin)
|
||||||
-- , Run Com ".local/bin/kernel" [] "kernel" 36000
|
-- , Run Com ".local/bin/kernel" [] "kernel" 36000
|
||||||
-- Cpu usage in percent
|
-- Cpu usage in percent
|
||||||
Run Cpu ["-t", "<fn=2>\xf108</fn> cpu: <total>%","-H","50","--high","red"] 20
|
, Run Cpu ["-t", "<fn=2>\xf108</fn> cpu: <total>%","-H","50","--high","red"] 20
|
||||||
-- Ram used number and percent
|
-- Ram used number and percent
|
||||||
, Run Memory ["-t", "<fn=2>\xf233</fn> mem: <used>M <usedratio>%"] 20
|
, Run Memory ["-t", "<fn=2>\xf233</fn> mem: <used>M <usedratio>%"] 20
|
||||||
-- Disk space free
|
-- Disk space free
|
||||||
|
@ -59,8 +61,7 @@ Config {
|
||||||
-- Script that dynamically adjusts xmobar padding depending on number of trayer icons.
|
-- Script that dynamically adjusts xmobar padding depending on number of trayer icons.
|
||||||
, Run Com ".config/xmobar/trayer-padding-icon.sh" [] "trayerpad" 20
|
, Run Com ".config/xmobar/trayer-padding-icon.sh" [] "trayerpad" 20
|
||||||
-- Prints out the left side items such as workspaces, layout, etc.
|
-- Prints out the left side items such as workspaces, layout, etc.
|
||||||
, Run UnsafeStdinReader
|
|
||||||
]
|
]
|
||||||
, sepChar = "%"
|
, sepChar = "%"
|
||||||
, alignSep = "}{"
|
, alignSep = "}{"
|
||||||
, template = "%UnsafeStdinReader% }{ <box type=Bottom width=2 mb=2 color=#b5bd68><fc=#b5bd68><action=`alacritty -e htop`>%cpu%</action></fc></box> <box type=Bottom width=2 mb=2 color=#e6c547><fc=#e6c547><action=`alacritty -e htop`>%memory%</action></fc></box> <box type=Bottom width=2 mb=2 color=#81a2be><fc=#81a2be>%disku%</fc></box> <box type=Bottom width=2 mb=2 color=#b294bb><fc=#b294bb>%uparrow% %uptime%</fc></box> <box type=Bottom width=2 mb=2 color=#ff3334><fc=#ff3334>%baticon% %battery%</fc></box> <box type=Bottom width=2 mb=2 color=#9ec400><fc=#9ec400><action=`emacsclient -c -a 'emacs' --eval '(doom/window-maximize-buffer(dt/year-calendar))'`>%date%</action></fc></box> %trayerpad%"
|
, template = "%UnsafeXMonadLog% }{ <box type=Bottom width=2 mb=2 color=#b5bd68><fc=#b5bd68>%cpu%</fc></box> <box type=Bottom width=2 mb=2 color=#e6c547><fc=#e6c547>%memory%</fc></box> <box type=Bottom width=2 mb=2 color=#81a2be><fc=#81a2be>%disku%</fc></box> <box type=Bottom width=2 mb=2 color=#b294bb><fc=#b294bb>%uparrow% %uptime%</fc></box> <box type=Bottom width=2 mb=2 color=#ff3334><fc=#ff3334>%baticon% %battery%</fc></box> <box type=Bottom width=2 mb=2 color=#9ec400><fc=#9ec400>%date%</fc></box> %trayerpad%"
|
||||||
|
|
|
@ -23,38 +23,23 @@ Config { font = "xft:Ubuntu:weight=bold:size=8:antialias=true:hinting
|
||||||
, persistent = True
|
, persistent = True
|
||||||
, iconRoot = ".xmonad/xpm/" -- default: "."
|
, iconRoot = ".xmonad/xpm/" -- default: "."
|
||||||
, commands = [
|
, commands = [
|
||||||
-- Echos a "penguin" icon in front of the kernel output.
|
|
||||||
Run Com "echo" ["<fn=3>\xf17c</fn>"] "penguin" 3600
|
Run Com "echo" ["<fn=3>\xf17c</fn>"] "penguin" 3600
|
||||||
-- Get kernel version (script found in .local/bin)
|
|
||||||
, Run Com ".local/bin/kernel" [] "kernel" 36000
|
, Run Com ".local/bin/kernel" [] "kernel" 36000
|
||||||
-- Cpu usage in percent
|
|
||||||
, Run Cpu ["-t", "<fn=2>\xf108</fn> cpu: (<total>%)","-H","50","--high","red"] 20
|
, Run Cpu ["-t", "<fn=2>\xf108</fn> cpu: (<total>%)","-H","50","--high","red"] 20
|
||||||
-- Ram used number and percent
|
|
||||||
, Run Memory ["-t", "<fn=2>\xf233</fn> mem: <used>M (<usedratio>%)"] 20
|
, Run Memory ["-t", "<fn=2>\xf233</fn> mem: <used>M (<usedratio>%)"] 20
|
||||||
-- Disk space free
|
|
||||||
, Run DiskU [("/", "<fn=2>\xf0c7</fn> /: <free> free")] [] 60
|
, Run DiskU [("/", "<fn=2>\xf0c7</fn> /: <free> free")] [] 60
|
||||||
, Run DiskU [("/home/", "<fn=2>\xf0c7</fn> /home: <free> free")] [] 60
|
, Run DiskU [("/home/", "<fn=2>\xf0c7</fn> /home: <free> free")] [] 60
|
||||||
|
|
||||||
-- Echos an "up arrow" icon in front of the uptime output.
|
|
||||||
, Run Com "echo" ["<fn=2>\xf0aa</fn>"] "uparrow" 3600
|
, Run Com "echo" ["<fn=2>\xf0aa</fn>"] "uparrow" 3600
|
||||||
-- Uptime
|
|
||||||
, Run Uptime ["-t", "uptime: <days>d <hours>h"] 360
|
, Run Uptime ["-t", "uptime: <days>d <hours>h"] 360
|
||||||
-- Echos a "bell" icon in front of the pacman updates.
|
|
||||||
, Run Com "echo" ["<fn=2>\xf0f3</fn>"] "bell" 3600
|
, Run Com "echo" ["<fn=2>\xf0f3</fn>"] "bell" 3600
|
||||||
-- Check for pacman updates (script found in .local/bin)
|
|
||||||
, Run Com ".local/bin/pacupdate" [] "pacupdate" 36000
|
, Run Com ".local/bin/pacupdate" [] "pacupdate" 36000
|
||||||
-- Echos a "battery" icon in front of the pacman updates.
|
|
||||||
, Run Com "echo" ["<fn=2>\xf242</fn>"] "baticon" 3600
|
, Run Com "echo" ["<fn=2>\xf242</fn>"] "baticon" 3600
|
||||||
-- Battery
|
|
||||||
, Run BatteryP ["BAT0"] ["-t", "<acstatus><watts> (<left>%)"] 360
|
, Run BatteryP ["BAT0"] ["-t", "<acstatus><watts> (<left>%)"] 360
|
||||||
-- Time and date
|
|
||||||
, Run Date "<fn=2>\xf017</fn> %b %d %Y - (%H:%M) " "date" 50
|
, Run Date "<fn=2>\xf017</fn> %b %d %Y - (%H:%M) " "date" 50
|
||||||
-- Script that dynamically adjusts xmobar padding depending on number of trayer icons.
|
|
||||||
, Run Com ".config/xmobar/trayer-padding-icon.sh" [] "trayerpad" 20
|
, Run Com ".config/xmobar/trayer-padding-icon.sh" [] "trayerpad" 20
|
||||||
-- Prints out the left side items such as workspaces, layout, etc.
|
, Run XMonadLog
|
||||||
, Run UnsafeXMonadLog
|
|
||||||
]
|
]
|
||||||
, sepChar = "%"
|
, sepChar = "%"
|
||||||
, alignSep = "}{"
|
, alignSep = "}{"
|
||||||
, template = " <icon=haskell_20.xpm/> <fc=#666666>|</fc> %UnsafeXmonadLog% }{ <box type=Bottom width=2 mb=2 color=#51afef><fc=#51afef>%penguin% <action=`alacritty -e htop`>%kernel%</action> </fc></box> <box type=Bottom width=2 mb=2 color=#ecbe7b><fc=#ecbe7b><action=`alacritty -e htop`>%cpu%</action></fc></box> <box type=Bottom width=2 mb=2 color=#ff6c6b><fc=#ff6c6b><action=`alacritty -e htop`>%memory%</action></fc></box> <box type=Bottom width=2 mb=2 color=#a9a1e1><fc=#a9a1e1><action=`alacritty -e htop`>%disku%</action></fc></box> <box type=Bottom width=2 mb=2 color=#98be65><fc=#98be65>%uparrow% <action=`alacritty -e htop`>%uptime%</action></fc></box> <box type=Bottom width=2 mb=2 color=#c678dd><fc=#c678dd>%bell% <action=`alacritty -e sudo pacman -Syu`>%pacupdate%</action></fc></box> <box type=Bottom width=2 mb=2 color=#da8548><fc=#da8548>%baticon% <action=`alacritty -e sudo pacman -Syu`>%battery%</action></fc></box> <box type=Bottom width=2 mb=2 color=#46d9ff><fc=#46d9ff><action=`emacsclient -c -a 'emacs' --eval '(doom/window-maximize-buffer(dt/year-calendar))'`>%date%</action></fc></box> %trayerpad%"
|
, template = "<fc=#666666>|</fc> %XmonadLog }{ <box type=Bottom width=2 mb=2 color=#51afef><fc=#51afef>%penguin% <action=`alacritty -e htop`>%kernel%</action> </fc></box> <box type=Bottom width=2 mb=2 color=#ecbe7b><fc=#ecbe7b><action=`alacritty -e htop`>%cpu%</action></fc></box> <box type=Bottom width=2 mb=2 color=#ff6c6b><fc=#ff6c6b><action=`alacritty -e htop`>%memory%</action></fc></box> <box type=Bottom width=2 mb=2 color=#a9a1e1><fc=#a9a1e1><action=`alacritty -e htop`>%disku%</action></fc></box> <box type=Bottom width=2 mb=2 color=#98be65><fc=#98be65>%uparrow% <action=`alacritty -e htop`>%uptime%</action></fc></box> <box type=Bottom width=2 mb=2 color=#c678dd><fc=#c678dd>%bell% </fc></box> <box type=Bottom width=2 mb=2 color=#da8548><fc=#da8548>%baticon% %battery%</fc></box> <box type=Bottom width=2 mb=2 color=#46d9ff><fc=#46d9ff>%date%</fc></box> %trayerpad%"
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,10 +19,10 @@
|
||||||
- [[#border-width-and-spacing][Border Width and Spacing]]
|
- [[#border-width-and-spacing][Border Width and Spacing]]
|
||||||
- [[#layouts-1][Layouts]]
|
- [[#layouts-1][Layouts]]
|
||||||
- [[#theming-for-tabs-sublayout][Theming for tabs (sub)layout]]
|
- [[#theming-for-tabs-sublayout][Theming for tabs (sub)layout]]
|
||||||
- [[#clickable-workspaces-in-xmobar][Clickable workspaces in XMobar]]
|
|
||||||
- [[#workspace-definitions][Workspace definitions]]
|
- [[#workspace-definitions][Workspace definitions]]
|
||||||
- [[#manage-hook][Manage Hook]]
|
- [[#manage-hook][Manage Hook]]
|
||||||
- [[#startup-hook][Startup Hook]]
|
- [[#startup-hook][Startup Hook]]
|
||||||
|
- [[#pretty-print-for-xmobar][Pretty Print for XMobar]]
|
||||||
- [[#main-xmonad-loop][Main XMonad loop]]
|
- [[#main-xmonad-loop][Main XMonad loop]]
|
||||||
- [[#xmobar][XMobar]]
|
- [[#xmobar][XMobar]]
|
||||||
- [[#xmonad--managehook][XMonad & manageHook]]
|
- [[#xmonad--managehook][XMonad & manageHook]]
|
||||||
|
@ -131,6 +131,7 @@ import XMonad.Prompt.OrgMode
|
||||||
#+begin_src haskell
|
#+begin_src haskell
|
||||||
import XMonad.Util.Dmenu
|
import XMonad.Util.Dmenu
|
||||||
import XMonad.Util.EZConfig
|
import XMonad.Util.EZConfig
|
||||||
|
import XMonad.Util.Loggers
|
||||||
import XMonad.Util.NamedActions
|
import XMonad.Util.NamedActions
|
||||||
import XMonad.Util.NamedScratchpad
|
import XMonad.Util.NamedScratchpad
|
||||||
import XMonad.Util.Run (runProcessWithInput, safeSpawn, spawnPipe)
|
import XMonad.Util.Run (runProcessWithInput, safeSpawn, spawnPipe)
|
||||||
|
@ -212,11 +213,6 @@ myTabTheme = def { fontName = "xft:Iosevka-9"
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
|
||||||
** Clickable workspaces in XMobar
|
|
||||||
#+begin_src haskell
|
|
||||||
mySB = statusBarProp "xmobar" (clickablePP xmobarPP)
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** Workspace definitions
|
** Workspace definitions
|
||||||
|
|
||||||
#+begin_src haskell
|
#+begin_src haskell
|
||||||
|
@ -224,13 +220,9 @@ myWorkspaces = ["1", "2", "3", "4", "5", "6", "7", "8", "9",
|
||||||
"e",
|
"e",
|
||||||
"w", "g", "d", "b", "j", "f", "o", "u",
|
"w", "g", "d", "b", "j", "f", "o", "u",
|
||||||
"r", "s", "t", "h", "v", "y", "n", "a", "i", "l",
|
"r", "s", "t", "h", "v", "y", "n", "a", "i", "l",
|
||||||
"x", "c", "m", "k", "q", "z", "p"
|
"x", "c", "m", "k", "q", "z", "p"]
|
||||||
]
|
|
||||||
|
|
||||||
myWorkspaceIndices = M.fromList $ zipWith (,) myWorkspaces [1..] -- (,) == \x y -> (x,y)
|
|
||||||
|
|
||||||
clickable ws = "<action=xdotool key super+"++show i++">"++ws++"</action>"
|
|
||||||
where i = fromJust $ M.lookup ws myWorkspaceIndices
|
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
** Manage Hook
|
** Manage Hook
|
||||||
|
@ -311,23 +303,67 @@ Emacs daemon for emacsclient.
|
||||||
spawnOn "e" "/usr/bin/emacsclient"
|
spawnOn "e" "/usr/bin/emacsclient"
|
||||||
spawnOn "j" "keepassxc"
|
spawnOn "j" "keepassxc"
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
|
||||||
|
** Pretty Print for XMobar
|
||||||
|
|
||||||
|
#+begin_src haskell
|
||||||
|
myXmobarPP :: PP
|
||||||
|
myXmobarPP = def
|
||||||
|
{ ppSep = magenta " "
|
||||||
|
, ppTitleSanitize = xmobarStrip
|
||||||
|
, ppCurrent = xmobarBorder "Top" "#8be9fd" 2
|
||||||
|
, ppHidden = white
|
||||||
|
, ppHiddenNoWindows = lowWhite
|
||||||
|
, ppUrgent = red . wrap (yellow "!") (yellow "!")
|
||||||
|
, ppOrder = \[ws, l, _, wins] -> [ws, l, wins]
|
||||||
|
, ppExtras = [logTitles formatFocused formatUnfocused]
|
||||||
|
}
|
||||||
|
where
|
||||||
|
formatFocused = wrap (white "[") (white "]") . magenta . ppWindow
|
||||||
|
formatUnfocused = wrap (lowWhite "[") (lowWhite "]") . blue . ppWindow
|
||||||
|
|
||||||
|
-- | Windows should have *some* title, which should not not exceed a
|
||||||
|
-- sane length.
|
||||||
|
ppWindow :: String -> String
|
||||||
|
ppWindow = xmobarRaw . (\w -> if null w then "untitled" else w) . shorten 30
|
||||||
|
|
||||||
|
blue, lowWhite, magenta, red, white, yellow :: String -> String
|
||||||
|
magenta = xmobarColor "#ff79c6" ""
|
||||||
|
blue = xmobarColor "#bd93f9" ""
|
||||||
|
white = xmobarColor "#f8f8f2" ""
|
||||||
|
yellow = xmobarColor "#f1fa8c" ""
|
||||||
|
red = xmobarColor "#ff5555" ""
|
||||||
|
lowWhite = xmobarColor "#bbbbbb" ""
|
||||||
|
|
||||||
|
#+end_src
|
||||||
|
#+begin_src haskell
|
||||||
|
xmobar0 = statusBarProp "xmobar -x 0 ~/.config/xmobar/xmobarrc" (pure myXmobarPP)
|
||||||
|
xmobar1 = statusBarProp "xmobar -x 1 ~/.config/xmobar/xmobarrc" (pure myXmobarPP)
|
||||||
|
xmobar2 = statusBarProp "xmobar -x 2 ~/.config/xmobar/xmobarrc" (pure myXmobarPP)
|
||||||
|
#+end_src
|
||||||
* Main XMonad loop
|
* Main XMonad loop
|
||||||
|
|
||||||
#+begin_src haskell
|
#+begin_src haskell
|
||||||
main :: IO ()
|
main :: IO ()
|
||||||
main = do
|
main = do
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
** XMobar
|
** XMobar
|
||||||
Launching three instances of xmobar on their monitors.
|
Launching three instances of xmobar on their monitors.
|
||||||
#+begin_src haskell
|
#+begin_src haskell :tangle no
|
||||||
xmproc0 <- spawnPipe ("xmobar -x 0 $HOME/.config/xmobar/tomorrow-night-xmobarrc")
|
xmproc0 <- spawnPipe ("xmobar -x 0 $HOME/.config/xmobar/xmobarrc")
|
||||||
xmproc1 <- spawnPipe ("xmobar -x 1 $HOME/.config/xmobar/tomorrow-night-xmobarrc")
|
xmproc1 <- spawnPipe ("xmobar -x 1 $HOME/.config/xmobar/xmobarrc")
|
||||||
xmproc2 <- spawnPipe ("xmobar -x 2 $HOME/.config/xmobar/tomorrow-night-xmobarrc")
|
xmproc2 <- spawnPipe ("xmobar -x 2 $HOME/.config/xmobar/xmobarrc")
|
||||||
|
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
** XMonad & manageHook
|
** XMonad & manageHook
|
||||||
#+begin_src haskell
|
#+begin_src haskell
|
||||||
xmonad $ ewmh $ docks $ def
|
xmonad
|
||||||
|
$ ewmh
|
||||||
|
$ docks
|
||||||
|
$ withSB (xmobar0 <> xmobar1 <> xmobar2)
|
||||||
|
$ def
|
||||||
{ manageHook = myManageHook <+> manageDocks
|
{ manageHook = myManageHook <+> manageDocks
|
||||||
#+end_src
|
#+end_src
|
||||||
*** handleEventHook
|
*** handleEventHook
|
||||||
|
@ -352,26 +388,30 @@ This lets alacritty be swallowed when it opens a GUI application.
|
||||||
, borderWidth = myBorderWidth
|
, borderWidth = myBorderWidth
|
||||||
, normalBorderColor = colorBack
|
, normalBorderColor = colorBack
|
||||||
, focusedBorderColor = color15
|
, focusedBorderColor = color15
|
||||||
|
, logHook = updatePointer (0.5, 0.5) (0, 0)
|
||||||
|
}
|
||||||
#+end_src
|
#+end_src
|
||||||
*** logHook
|
*** logHook
|
||||||
Define logHook. ppOutput streams into the three instances of XMobar.
|
Define logHook. ppOutput streams into the three instances of XMobar.
|
||||||
#+begin_src haskell
|
#+begin_src haskell :tangle no
|
||||||
, logHook = dynamicLogWithPP xmobarPP
|
|
||||||
|
, logHook = dynamicLogWithPP
|
||||||
{ ppOutput = \x -> hPutStrLn xmproc0 x
|
{ ppOutput = \x -> hPutStrLn xmproc0 x
|
||||||
>> hPutStrLn xmproc1 x
|
>> hPutStrLn xmproc1 x
|
||||||
>> hPutStrLn xmproc2 x
|
>> hPutStrLn xmproc2 x
|
||||||
|
}
|
||||||
#+end_src
|
#+end_src
|
||||||
**** Colors/ clicks
|
**** Colors/ clicks
|
||||||
#+begin_src haskell
|
#+begin_src haskell :tangle no
|
||||||
, ppCurrent = xmobarColor color06 "" . wrap
|
, ppCurrent = xmobarColor color06 "" . wrap
|
||||||
("<box type=Bottom width=2 mb=1 color=" ++ color06 ++ ">") "</box>"
|
("<box type=Bottom width=2 mb=1 color=" ++ color06 ++ ">") "</box>"
|
||||||
, ppVisible = xmobarColor color06 "" . clickable
|
, ppVisible = xmobarColor color06 ""
|
||||||
, ppHidden = xmobarColor color05 "" . wrap
|
, ppHidden = xmobarColor color05 "" . wrap
|
||||||
("<box type=Top width=2 mt=1 color=" ++ color05 ++ ">") "</box>" . clickable
|
("<box type=Top width=2 mt=1 color=" ++ color05 ++ ">") "</box>"
|
||||||
, ppHiddenNoWindows = xmobarColor color05 "" . clickable
|
, ppHiddenNoWindows = xmobarColor color05 ""
|
||||||
#+end_src
|
#+end_src
|
||||||
**** Window Title, Separators, etc.
|
**** Window Title, Separators, etc.
|
||||||
#+begin_src haskell
|
#+begin_src haskell :tangle no
|
||||||
-- Title of active window
|
-- Title of active window
|
||||||
, ppTitle = xmobarColor colorFore "" . shorten 48
|
, ppTitle = xmobarColor colorFore "" . shorten 48
|
||||||
-- Separator character
|
-- Separator character
|
||||||
|
|
|
@ -62,6 +62,7 @@ import XMonad.Prompt.OrgMode
|
||||||
|
|
||||||
import XMonad.Util.Dmenu
|
import XMonad.Util.Dmenu
|
||||||
import XMonad.Util.EZConfig
|
import XMonad.Util.EZConfig
|
||||||
|
import XMonad.Util.Loggers
|
||||||
import XMonad.Util.NamedActions
|
import XMonad.Util.NamedActions
|
||||||
import XMonad.Util.NamedScratchpad
|
import XMonad.Util.NamedScratchpad
|
||||||
import XMonad.Util.Run (runProcessWithInput, safeSpawn, spawnPipe)
|
import XMonad.Util.Run (runProcessWithInput, safeSpawn, spawnPipe)
|
||||||
|
@ -107,19 +108,11 @@ myTabTheme = def { fontName = "xft:Iosevka-9"
|
||||||
, activeTextColor = colorBack
|
, activeTextColor = colorBack
|
||||||
, inactiveTextColor = colorFore }
|
, inactiveTextColor = colorFore }
|
||||||
|
|
||||||
mySB = statusBarProp "xmobar" (clickablePP xmobarPP)
|
|
||||||
|
|
||||||
myWorkspaces = ["1", "2", "3", "4", "5", "6", "7", "8", "9",
|
myWorkspaces = ["1", "2", "3", "4", "5", "6", "7", "8", "9",
|
||||||
"e",
|
"e",
|
||||||
"w", "g", "d", "b", "j", "f", "o", "u",
|
"w", "g", "d", "b", "j", "f", "o", "u",
|
||||||
"r", "s", "t", "h", "v", "y", "n", "a", "i", "l",
|
"r", "s", "t", "h", "v", "y", "n", "a", "i", "l",
|
||||||
"x", "c", "m", "k", "q", "z", "p"
|
"x", "c", "m", "k", "q", "z", "p"]
|
||||||
]
|
|
||||||
|
|
||||||
myWorkspaceIndices = M.fromList $ zipWith (,) myWorkspaces [1..] -- (,) == \x y -> (x,y)
|
|
||||||
|
|
||||||
clickable ws = "<action=xdotool key super+"++show i++">"++ws++"</action>"
|
|
||||||
where i = fromJust $ M.lookup ws myWorkspaceIndices
|
|
||||||
|
|
||||||
myManageHook = manageSpawn <> composeAll
|
myManageHook = manageSpawn <> composeAll
|
||||||
[ className =? "confirm" --> doFloat
|
[ className =? "confirm" --> doFloat
|
||||||
|
@ -133,7 +126,6 @@ myManageHook = manageSpawn <> composeAll
|
||||||
, className =? "splash" --> doFloat
|
, className =? "splash" --> doFloat
|
||||||
, className =? "toolbar" --> doFloat
|
, className =? "toolbar" --> doFloat
|
||||||
, className =? "zoom" --> doFloat
|
, className =? "zoom" --> doFloat
|
||||||
, className =? "lxqt-openssh-askpass" --> doFloat
|
|
||||||
, className =? "Yad" --> doCenterFloat
|
, className =? "Yad" --> doCenterFloat
|
||||||
, (className =? "firefox" <&&> resource =? "Dialog") --> doFloat -- Float Firefox Dialog
|
, (className =? "firefox" <&&> resource =? "Dialog") --> doFloat -- Float Firefox Dialog
|
||||||
, isFullscreen --> doFullFloat
|
, isFullscreen --> doFullFloat
|
||||||
|
@ -161,22 +153,54 @@ myStartupHook = do
|
||||||
|
|
||||||
spawnOnce "/usr/bin/emacs --daemon"
|
spawnOnce "/usr/bin/emacs --daemon"
|
||||||
|
|
||||||
spawnOnOnce "1" "firefox-developer-edition"
|
spawnOn "1" "firefox-developer-edition"
|
||||||
spawnOnOnce "2" "evolution"
|
spawnOn "2" "evolution"
|
||||||
spawnOnOnce "3" "discord"
|
spawnOn "9" "steam"
|
||||||
spawnOnOnce "6" "google-chrome-stable --profile-directory='Profile 1'"
|
spawnOn "3" "discord"
|
||||||
spawnOnOnce "9" "steam"
|
spawnOn "6" "google-chrome-stable"
|
||||||
spawnOnOnce "e" "/usr/bin/emacsclient"
|
spawnOn "e" "/usr/bin/emacsclient"
|
||||||
spawnOnOnce "j" "keepassxc ~/enc/keys/Passwords.kdbx"
|
spawnOn "j" "keepassxc"
|
||||||
|
|
||||||
|
myXmobarPP :: PP
|
||||||
|
myXmobarPP = def
|
||||||
|
{ ppSep = magenta " "
|
||||||
|
, ppTitleSanitize = xmobarStrip
|
||||||
|
, ppCurrent = xmobarBorder "Top" "#8be9fd" 2
|
||||||
|
, ppHidden = white
|
||||||
|
, ppHiddenNoWindows = lowWhite
|
||||||
|
, ppUrgent = red . wrap (yellow "!") (yellow "!")
|
||||||
|
, ppOrder = \[ws, l, _, wins] -> [ws, l, wins]
|
||||||
|
, ppExtras = [logTitles formatFocused formatUnfocused]
|
||||||
|
}
|
||||||
|
where
|
||||||
|
formatFocused = wrap (white "[") (white "]") . magenta . ppWindow
|
||||||
|
formatUnfocused = wrap (lowWhite "[") (lowWhite "]") . blue . ppWindow
|
||||||
|
|
||||||
|
-- | Windows should have *some* title, which should not not exceed a
|
||||||
|
-- sane length.
|
||||||
|
ppWindow :: String -> String
|
||||||
|
ppWindow = xmobarRaw . (\w -> if null w then "untitled" else w) . shorten 30
|
||||||
|
|
||||||
|
blue, lowWhite, magenta, red, white, yellow :: String -> String
|
||||||
|
magenta = xmobarColor "#ff79c6" ""
|
||||||
|
blue = xmobarColor "#bd93f9" ""
|
||||||
|
white = xmobarColor "#f8f8f2" ""
|
||||||
|
yellow = xmobarColor "#f1fa8c" ""
|
||||||
|
red = xmobarColor "#ff5555" ""
|
||||||
|
lowWhite = xmobarColor "#bbbbbb" ""
|
||||||
|
|
||||||
|
xmobar0 = statusBarProp "xmobar -x 0 ~/.config/xmobar/xmobarrc" (pure myXmobarPP)
|
||||||
|
xmobar1 = statusBarProp "xmobar -x 1 ~/.config/xmobar/xmobarrc" (pure myXmobarPP)
|
||||||
|
xmobar2 = statusBarProp "xmobar -x 2 ~/.config/xmobar/xmobarrc" (pure myXmobarPP)
|
||||||
|
|
||||||
main :: IO ()
|
main :: IO ()
|
||||||
main = do
|
main = do
|
||||||
|
|
||||||
xmproc0 <- spawnPipe ("xmobar -x 0 $HOME/.config/xmobar/tomorrow-night-xmobarrc")
|
xmonad
|
||||||
xmproc1 <- spawnPipe ("xmobar -x 1 $HOME/.config/xmobar/tomorrow-night-xmobarrc")
|
$ ewmh
|
||||||
xmproc2 <- spawnPipe ("xmobar -x 2 $HOME/.config/xmobar/tomorrow-night-xmobarrc")
|
$ docks
|
||||||
|
$ withSB (xmobar0 <> xmobar1 <> xmobar2)
|
||||||
xmonad $ ewmh $ docks $ def
|
$ def
|
||||||
{ manageHook = myManageHook <+> manageDocks
|
{ manageHook = myManageHook <+> manageDocks
|
||||||
|
|
||||||
, handleEventHook = swallowEventHook (className =? "Alacritty" <||> className =? "st-256color" <||> className =? "XTerm") (return True)
|
, handleEventHook = swallowEventHook (className =? "Alacritty" <||> className =? "st-256color" <||> className =? "XTerm") (return True)
|
||||||
|
@ -196,30 +220,8 @@ main = do
|
||||||
, borderWidth = myBorderWidth
|
, borderWidth = myBorderWidth
|
||||||
, normalBorderColor = colorBack
|
, normalBorderColor = colorBack
|
||||||
, focusedBorderColor = color15
|
, focusedBorderColor = color15
|
||||||
|
, logHook = updatePointer (0.5, 0.5) (0, 0)
|
||||||
, logHook = dynamicLogWithPP xmobarPP
|
}
|
||||||
{ ppOutput = \x -> hPutStrLn xmproc0 x
|
|
||||||
>> hPutStrLn xmproc1 x
|
|
||||||
>> hPutStrLn xmproc2 x
|
|
||||||
|
|
||||||
, ppCurrent = xmobarColor color06 "" . wrap
|
|
||||||
("<box type=Bottom width=2 mb=1 color=" ++ color06 ++ ">") "</box>"
|
|
||||||
, ppVisible = xmobarColor color06 "" . clickable
|
|
||||||
, ppHidden = xmobarColor color05 "" . wrap
|
|
||||||
("<box type=Top width=2 mt=1 color=" ++ color05 ++ ">") "</box>" . clickable
|
|
||||||
, ppHiddenNoWindows = xmobarColor color05 "" . clickable
|
|
||||||
|
|
||||||
-- Title of active window
|
|
||||||
, ppTitle = xmobarColor colorFore "" . shorten 48
|
|
||||||
-- Separator character
|
|
||||||
, ppSep = "<fc=" ++ color09 ++ "><fn=1> | </fn></fc>"
|
|
||||||
-- Urgent workspace
|
|
||||||
, ppUrgent = xmobarColor color02 "" . wrap "!" "!"
|
|
||||||
-- Adding # of windows on current workspace to the bar
|
|
||||||
, ppExtras = [windowCount]
|
|
||||||
-- order of things in xmobar
|
|
||||||
, ppOrder = \(ws:l:t:ex) -> [ws,l]++ex++[t]
|
|
||||||
} >> updatePointer (0.5, 0.5) (0.0, 0.0) }
|
|
||||||
|
|
||||||
`additionalKeysP`
|
`additionalKeysP`
|
||||||
[ ("M-s 1", (windows $ W.greedyView $ myWorkspaces !! 0))
|
[ ("M-s 1", (windows $ W.greedyView $ myWorkspaces !! 0))
|
||||||
|
@ -328,7 +330,7 @@ main = do
|
||||||
, ("C-S-M1-j", onGroup W.focusUp')
|
, ("C-S-M1-j", onGroup W.focusUp')
|
||||||
, ("C-S-M1-y", onGroup W.focusDown')
|
, ("C-S-M1-y", onGroup W.focusDown')
|
||||||
|
|
||||||
, ("C-M1-S-0", sequence_ [spawn "xmonad --recompile", spawn "xmonad --restart"])
|
, ("C-M1-S-0", sequence_ [spawn "xmonad --restart", spawn "xmonad --recompile"])
|
||||||
, ("M-S-M1-C-0", io exitSuccess)
|
, ("M-S-M1-C-0", io exitSuccess)
|
||||||
, ("S-C-M1-q", kill1)
|
, ("S-C-M1-q", kill1)
|
||||||
, ("M-S-C-M1-q", killAll)
|
, ("M-S-C-M1-q", killAll)
|
||||||
|
@ -337,16 +339,14 @@ main = do
|
||||||
, ("M-e", spawn "emacsclient -c -a 'emacs'")
|
, ("M-e", spawn "emacsclient -c -a 'emacs'")
|
||||||
, ("M-<Return>", spawn "alacritty")
|
, ("M-<Return>", spawn "alacritty")
|
||||||
, ("M-S-<F11>", spawn "feh --randomize --bg-fill /usr/share/backgrounds/archlinux/*")
|
, ("M-S-<F11>", spawn "feh --randomize --bg-fill /usr/share/backgrounds/archlinux/*")
|
||||||
|
, ("M-<Print>", spawn "dm-maim")
|
||||||
, ("<Print>", spawn "flameshot gui")
|
, ("<Print>", spawn "flameshot gui")
|
||||||
|
|
||||||
, ("M-c i", orgPromptRefileTo def "Inbox" "TODO" "~/enc/org/phil.org")
|
, ("M-c i", orgPrompt def "TODO" "~/enc/org/inbox.org")
|
||||||
|
, ("M-c l", orgPromptPrimary def "LINK" "~/enc/org/inbox.org")
|
||||||
|
, ("M-c n", orgPrompt def "NOTE" "~/enc/org/inbox.org")
|
||||||
, ("M-c p", orgPromptRefile def "TODO" "~/enc/org/phil.org")
|
, ("M-c p", orgPromptRefile def "TODO" "~/enc/org/phil.org")
|
||||||
|
|
||||||
, ("M-c n", orgPromptRefileTo def "Inbox" "NOTE" "~/enc/org/phil.org")
|
|
||||||
|
|
||||||
, ("M-c l", orgPromptPrimary def "" "~/enc/org/bookmarks.org")
|
|
||||||
|
|
||||||
-- Time! Timestamps!
|
-- Time! Timestamps!
|
||||||
, ("M-w l", spawn "sleep 0.5 && xdotool type \"$(date +'%Y.%m.%d %H:%M:%S %Z')\"")
|
, ("M-w l", spawn "sleep 0.5 && xdotool type \"$(date +'%Y.%m.%d %H:%M:%S %Z')\"")
|
||||||
, ("M-w e", spawn "sleep 0.5 && xdotool type \"$(TZ=America/New_York date +'%Y.%m.%d %H:%M:%S %Z')\"")
|
, ("M-w e", spawn "sleep 0.5 && xdotool type \"$(TZ=America/New_York date +'%Y.%m.%d %H:%M:%S %Z')\"")
|
||||||
|
|
Loading…
Reference in a new issue