From 248e6fbb567c39a79f1a2416e1aab4f334d8afde Mon Sep 17 00:00:00 2001 From: Phil Bajsicki Date: Sun, 13 Aug 2023 17:12:50 +0200 Subject: [PATCH] Add README.org, cleanup. --- .config/alacritty/alacritty.toml | 106 +++++++++++++++++++++++++++ .config/doom/README.org | 48 +++++++++---- .config/doom/config.el | 33 +++++---- .config/doom/packages.el | 10 ++- .config/xmonad/README.org | 7 +- .config/xmonad/xmonad.hs | 7 +- .gitignore | 1 - .stow-local-ignore | 2 + README.org | 119 +++++++++++++++++++++++++++++++ 9 files changed, 296 insertions(+), 37 deletions(-) create mode 100644 .config/alacritty/alacritty.toml create mode 100644 .stow-local-ignore diff --git a/.config/alacritty/alacritty.toml b/.config/alacritty/alacritty.toml new file mode 100644 index 0000000..2fe082e --- /dev/null +++ b/.config/alacritty/alacritty.toml @@ -0,0 +1,106 @@ +[colors] +draw_bold_text_with_bright_colors = true + +[env] +TERM = "xterm-256color" + +[font] +size = 12.0 + +[font.bold] +family = "Source Code Pro" +style = "Bold" + +[font.bold_italic] +family = "Source Code Pro" +style = "Bold Italic" + +[font.italic] +family = "Source Code Pro" +style = "Italic" + +[font.normal] +family = "Source Code Pro" +style = "Regular" + +[font.offset] +x = 0 +y = 1 + +[[keyboard.bindings]] +action = "Paste" +key = "V" +mods = "Control|Shift" + +[[keyboard.bindings]] +action = "Copy" +key = "C" +mods = "Control|Shift" + +[[keyboard.bindings]] +action = "PasteSelection" +key = "Insert" +mods = "Shift" + +[[keyboard.bindings]] +action = "ResetFontSize" +key = "Key0" +mods = "Control" + +[[keyboard.bindings]] +action = "IncreaseFontSize" +key = "Equals" +mods = "Control" + +[[keyboard.bindings]] +action = "IncreaseFontSize" +key = "Plus" +mods = "Control" + +[[keyboard.bindings]] +action = "DecreaseFontSize" +key = "Minus" +mods = "Control" + +[[keyboard.bindings]] +action = "ToggleFullscreen" +key = "F11" +mods = "None" + +[[keyboard.bindings]] +action = "Paste" +key = "Paste" +mods = "None" + +[[keyboard.bindings]] +action = "Copy" +key = "Copy" +mods = "None" + +[[keyboard.bindings]] +action = "ClearLogNotice" +key = "L" +mods = "Control" + +[[keyboard.bindings]] +chars = "\f" +key = "L" +mods = "Control" + +[[keyboard.bindings]] +action = "ScrollPageUp" +key = "PageUp" +mode = "~Alt" +mods = "None" + +[[keyboard.bindings]] +action = "ScrollPageDown" +key = "PageDown" +mode = "~Alt" +mods = "None" + +[scrolling] +history = 5000 + +[window] +opacity = 0.75 diff --git a/.config/doom/README.org b/.config/doom/README.org index a192f17..81f0a59 100644 --- a/.config/doom/README.org +++ b/.config/doom/README.org @@ -15,15 +15,13 @@ You can extract all the source/ config files from here by running Emacs and hitt #+begin_src emacs-lisp :tangle config.el (setq user-full-name "Phil Bajsicki") + (setq global-auto-revert-mode t) (setq auth-sources '("~/.authinfo")) (after! counsel (setq counsel-outline-display-style 'title)) -(setq doom-font (font-spec :family "Iosevka" :size 12 :weight 'semi-light) - doom-variable-pitch-font (font-spec :family "Iosevka" :size 13)) -(setq doom-theme 'doom-one) (setq display-line-numbers-type 'relative) (setq next-screen-context-lines 4) @@ -31,6 +29,16 @@ You can extract all the source/ config files from here by running Emacs and hitt (after! persp-mode (setq persp-emacsclient-init-frame-behaviour-override "main")) (setq doom-modeline-persp-name t) +#+end_src +** Theming +#+begin_src emacs-lisp :tangle config.el +(set-frame-parameter nil 'alpha-background 70) +(add-to-list 'default-frame-alist '(alpha-background . 70)) + +(setq doom-font (font-spec :family "Iosevka" :size 12 :weight 'semi-light) + doom-variable-pitch-font (font-spec :family "Iosevka" :size 13)) +(setq doom-theme 'doom-one) + #+end_src ** org-mode @@ -47,6 +55,7 @@ Make .org file automatically open in org-mode. (setq-default org-enforce-todo-dependencies t) +(setq org-startup-with-inline-images t) #+end_src *** Org-contacts @@ -127,11 +136,12 @@ Inserts timestamps in the proper format. ~'(16)~ stands for two universal argume *** Capture templates #+begin_src emacs-lisp :tangle config.el -(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") "* %?") - ("d" "reminder" entry (file+headline "~/enc/org/phil.org" "Reminders") "* %i%? \n %U") - ("p" "person" entry (file+headline "~/enc/org/people.org" "People") - "* %(org-contacts-template-name) +(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") "* %?") + ("d" "reminder" entry (file+headline "~/enc/org/phil.org" "Reminders") "* %i%? \n %U") + ("p" "person" entry (file+headline "~/enc/org/people.org" "People") + "* %(org-contacts-template-name) :PROPERTIES: :EMAIL: %(org-contacts-template-email) :PHONE: %(org-contacts-template-phone) @@ -193,8 +203,7 @@ This lets me get desktop notifications for TODO items. :unnarrowed t) ("j" "journal" plain "%?" - :if-new (file+head "journal/journal-%<%Y.%m.%d.%H\:%M>-${slug}.org" "#+title: ${title}\n") - :empty-lines 1 + :if-new (file+head "journal/journal-%<%Y.%m.%d.%H\:%M>.org" "#+title: ${title}\n") :unnarrowed t) ("t" "Therapy" plain " @@ -208,9 +217,8 @@ This lets me get desktop notifications for TODO items. ,** Emocje alternatywne- ,** Zachowania alternatywne " - :if-new (file+head "therapy/therapy-%<%Y.%m.%d.%H\:%M>-${slug}.org" "#+title: ${title}\n") - :empty-lines 1 - :unnarrowed))) + :if-new (file+head "therapy/therapy-%<%Y.%m.%d.%H\:%M>.org" "#+title: ${title}\n") + :unnarrowed)))) #+end_src ** org-roam-ui #+begin_src emacs-lisp :tangle config.el @@ -265,7 +273,7 @@ This lets me get desktop notifications for TODO items. *** Settings #+begin_src emacs-lisp :tangle config.el -(setq org-agenda-files '("~/enc/org/org-agenda-files.org")) +(setq org-agenda-files '("~/enc/org/" "~/enc/org/roam/" "~/enc/org/roam/journal" "~/enc/org/roam/therapy")) (setq org-agenda-start-day nil org-agenda-span '14 org-agenda-dim-blocked-tasks 'invisible @@ -476,7 +484,6 @@ release. You can ~unpin!~ them. Note ~(unpin! t)~ unpins all the packages and ca *** Org #+begin_src emacs-lisp :tangle packages.el (package! org-contacts) -(package! org-download) (package! org-cliplink) (package! org-roam) (package! org-ql) @@ -484,6 +491,17 @@ release. You can ~unpin!~ them. Note ~(unpin! t)~ unpins all the packages and ca (unpin! org-roam) (package! org-roam-ui) #+end_src +*** org-download +#+begin_src emacs-lisp :tangle packages.el +(package! org-download) +(after! org-download + (setq org-download-method 'directory) + (setq org-download-image-dir (concat (file-name-sans-extension (buffer-file-name)) "-img")) + (setq org-download-image-org-width 600) + (setq org-download-link-format "[[file:%s]]\n" + org-download-abbreviate-filename-function #'file-relative-name) + (setq org-download-link-format-function #'org-download-link-format-function-default)) +#+end_src *** Org-depend Ensure task dependencies are met. #+begin_src emacs-lisp :tangle packages.el diff --git a/.config/doom/config.el b/.config/doom/config.el index fa99cf0..6917c76 100644 --- a/.config/doom/config.el +++ b/.config/doom/config.el @@ -1,14 +1,12 @@ (setq user-full-name "Phil Bajsicki") + (setq global-auto-revert-mode t) (setq auth-sources '("~/.authinfo")) (after! counsel (setq counsel-outline-display-style 'title)) -(setq doom-font (font-spec :family "Iosevka" :size 12 :weight 'semi-light) - doom-variable-pitch-font (font-spec :family "Iosevka" :size 13)) -(setq doom-theme 'doom-one) (setq display-line-numbers-type 'relative) (setq next-screen-context-lines 4) @@ -17,6 +15,13 @@ (setq persp-emacsclient-init-frame-behaviour-override "main")) (setq doom-modeline-persp-name t) +(set-frame-parameter nil 'alpha-background 70) +(add-to-list 'default-frame-alist '(alpha-background . 70)) + +(setq doom-font (font-spec :family "Iosevka" :size 12 :weight 'semi-light) + doom-variable-pitch-font (font-spec :family "Iosevka" :size 13)) +(setq doom-theme 'doom-one) + (add-to-list 'auto-mode-alist '("\\.org\\'" . org-mode)) (setq org-directory "~/enc/org/") @@ -25,6 +30,7 @@ (setq-default org-enforce-todo-dependencies t) +(setq org-startup-with-inline-images t) (global-set-key "\C-cl" 'org-store-link) (global-set-key "\C-ch" 'counsel-org-link) @@ -79,11 +85,12 @@ ("FIXME" . "#cc9393") ("XXXX*" . "#cc9393"))) -(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") "* %?") - ("d" "reminder" entry (file+headline "~/enc/org/phil.org" "Reminders") "* %i%? \n %U") - ("p" "person" entry (file+headline "~/enc/org/people.org" "People") - "* %(org-contacts-template-name) +(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") "* %?") + ("d" "reminder" entry (file+headline "~/enc/org/phil.org" "Reminders") "* %i%? \n %U") + ("p" "person" entry (file+headline "~/enc/org/people.org" "People") + "* %(org-contacts-template-name) :PROPERTIES: :EMAIL: %(org-contacts-template-email) :PHONE: %(org-contacts-template-phone) @@ -128,8 +135,7 @@ :unnarrowed t) ("j" "journal" plain "%?" - :if-new (file+head "journal/journal-%<%Y.%m.%d.%H\:%M>-${slug}.org" "#+title: ${title}\n") - :empty-lines 1 + :if-new (file+head "journal/journal-%<%Y.%m.%d.%H\:%M>.org" "#+title: ${title}\n") :unnarrowed t) ("t" "Therapy" plain " @@ -143,9 +149,8 @@ ** Emocje alternatywne- ** Zachowania alternatywne " - :if-new (file+head "therapy/therapy-%<%Y.%m.%d.%H\:%M>-${slug}.org" "#+title: ${title}\n") - :empty-lines 1 - :unnarrowed))) + :if-new (file+head "therapy/therapy-%<%Y.%m.%d.%H\:%M>.org" "#+title: ${title}\n") + :unnarrowed)))) (use-package! websocket :after org-roam) @@ -187,7 +192,7 @@ (define-key org-agenda-map "n" 'org-agenda-capture) (define-key org-agenda-map "a" 'org-agenda) -(setq org-agenda-files '("~/enc/org/org-agenda-files.org")) +(setq org-agenda-files '("~/enc/org/" "~/enc/org/roam/" "~/enc/org/roam/journal" "~/enc/org/roam/therapy")) (setq org-agenda-start-day nil org-agenda-span '14 org-agenda-dim-blocked-tasks 'invisible diff --git a/.config/doom/packages.el b/.config/doom/packages.el index 6db6180..188f5d2 100644 --- a/.config/doom/packages.el +++ b/.config/doom/packages.el @@ -15,7 +15,6 @@ (package! ivy-xref) (package! org-contacts) -(package! org-download) (package! org-cliplink) (package! org-roam) (package! org-ql) @@ -23,6 +22,15 @@ (unpin! org-roam) (package! org-roam-ui) +(package! org-download) +(after! org-download + (setq org-download-method 'directory) + (setq org-download-image-dir (concat (file-name-sans-extension (buffer-file-name)) "-img")) + (setq org-download-image-org-width 600) + (setq org-download-link-format "[[file:%s]]\n" + org-download-abbreviate-filename-function #'file-relative-name) + (setq org-download-link-format-function #'org-download-link-format-function-default)) + (package! org-depend :recipe ( :host github diff --git a/.config/xmonad/README.org b/.config/xmonad/README.org index 9781991..65bb87d 100644 --- a/.config/xmonad/README.org +++ b/.config/xmonad/README.org @@ -247,6 +247,7 @@ myManageHook = manageSpawn <> composeAll , className =? "splash" --> doFloat , className =? "toolbar" --> doFloat , className =? "zoom" --> doFloat + , className =? "lxqt-openssh-askpass" --> doFloat , className =? "Yad" --> doCenterFloat , (className =? "firefox" <&&> resource =? "Dialog") --> doFloat -- Float Firefox Dialog , isFullscreen --> doFullFloat @@ -526,9 +527,9 @@ Notes: I use a ZSA Moonlander so a lot of the 4-5 key sequences are actually jus #+end_src *** XMonad.Prompt.OrgMode #+begin_src haskell - , ("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 i", orgPrompt def "TODO" "~/enc/org/phil.org") + , ("M-c l", orgPromptPrimary def "LINK" "~/enc/org/phil.org") + , ("M-c n", orgPrompt def "NOTE" "~/enc/org/phil.org") , ("M-c p", orgPromptRefile def "TODO" "~/enc/org/phil.org") #+end_src *** Timestamp chords diff --git a/.config/xmonad/xmonad.hs b/.config/xmonad/xmonad.hs index 25ba018..f6a0eb8 100644 --- a/.config/xmonad/xmonad.hs +++ b/.config/xmonad/xmonad.hs @@ -133,6 +133,7 @@ myManageHook = manageSpawn <> composeAll , className =? "splash" --> doFloat , className =? "toolbar" --> doFloat , className =? "zoom" --> doFloat + , className =? "lxqt-openssh-askpass" --> doFloat , className =? "Yad" --> doCenterFloat , (className =? "firefox" <&&> resource =? "Dialog") --> doFloat -- Float Firefox Dialog , isFullscreen --> doFullFloat @@ -339,9 +340,9 @@ main = do , ("M-", spawn "dm-maim") , ("", spawn "flameshot gui") - , ("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 i", orgPrompt def "TODO" "~/enc/org/phil.org") + , ("M-c l", orgPromptPrimary def "LINK" "~/enc/org/phil.org") + , ("M-c n", orgPrompt def "NOTE" "~/enc/org/phil.org") , ("M-c p", orgPromptRefile def "TODO" "~/enc/org/phil.org") -- Time! Timestamps! diff --git a/.gitignore b/.gitignore index 53f92b3..8b13789 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1 @@ -.stow-local-ignore diff --git a/.stow-local-ignore b/.stow-local-ignore new file mode 100644 index 0000000..56b02d4 --- /dev/null +++ b/.stow-local-ignore @@ -0,0 +1,2 @@ +\.git +README.org diff --git a/README.org b/README.org index e69de29..691217e 100644 --- a/README.org +++ b/README.org @@ -0,0 +1,119 @@ +#+author: +#+title: + +* Setup :noexport: + +* Table of Contents :toc: +- [[#introduction][Introduction]] +- [[#contents][Contents]] +- [[#requirements][Requirements]] +- [[#installation][Installation]] +- [[#configuration][Configuration]] +- [[#usage][Usage]] + +* Introduction + +This git repository is a collection of the dotfiles I use. The configuration is done in org-mode, and it's literate. + +A lot of them are re-writes (or copies) of [[https://gitlab.com/dwt1/dotfiles/][Derek "DistroTube" Taylor's]] configs. + +* Contents +This repo concludes the following configurations: +1. .bashrc and .rshrc from DistroTube +2. .xprofile +3. alacritty +4. doom emacs +5. fish +6. xmonad +7. xmobar + +And the scripts to run the following from a login shell: +1. hikari +2. hyprland +3. qtile +4. sway + +* Requirements + +I use a number of applications and utilities in my workflow. I'm too lazy to list the ways to install everything, but here's a non-exhaustive list. If you install it, and something is missing, you will most likely get output that explains what you need to do. + +1. git +2. stow +3. XMonad and XMobar +4. Trayer +5. Emacs +6. dmenu +7. rofi +8. alacritty +9. flameshot +10. dunst +11. aw-server, aw-watcher-afk, aw-watcher-window and aw-watcher-spotify +12. gocryptfs if you're using an encrypted directory, and lxqt-openssh-askpass +* Installation +The installation is very simple. Note ~stow~ will not overwrite your files, so you will have to install a lot of these manually the first time. + +First, clone the repo into a hidden directory in your \~. This makes using ~stow~ easier. + +#+begin_src +git clone https://git.bajsicki.com/phil/dot.git .dot +#+end_src + +Then run: + +#+begin_src +cd .dot +stow . +#+end_src + +Done. + +Note that it won't overwrite your files. +* Configuration + +Some of the configurations are literate. That is, you don't edit the configuration file itself, but rather the org-mode file, which you then tangle. + +/Note/ the git repo currently includes already tangled configs. This will not be the case once I get around to making all my configs literate. + +The process for configuring literately: +1. Open the README.org file in your software's config directory. +2. Edit whatever you want in the appropriate source block, or add a new one. +3. Describe the changes you made, so you can come back years later and not be lost. +4. Hit ~C-c C-v t~ to tangle the config file. + +Source blocks look like this: +#+begin_example +#+begin_src emacs-lisp :tangle config.el + +#+end_src +#+end_example + + +The way ~org-babel-tangle~ works is that it will look at the source blocks, and extract them into the file befined by the ~:tangle~ parameter. + +In some cases, we use +#+begin_example +#+PROPERTY: header-args :tangle xmonad.hs +#+end_example +in the .org file. This applies ~:tangle xmonad.hs~ to every source block. + +* Usage + +I use a rather unusual workflow. Here's the set-up: +- 3 monitors +- ZSA Moonlander Keyboard using the [[https://github.com/Apsu/APTex][APTex keyboard layout]] from Apsu. + - You can find [[https://configure.zsa.io/moonlander/layouts/DN9BJ/latest/0][my current layout here.]] +- Elecom Deft trackball. + +I use all the alphanumeric keys (except 0) for workspaces, and they're chorded. + +These are the primary keybinds I use pretty much all the time: + +- ~M~ is my modkey - set to Super. +- ~M-s x~ 'shows' workspace ~x~. +- ~M-t x~ 'throws' the current window to workspace ~x~. +- ~M-w x~ inserts the time, depending on what ~x~ is: + - ~l~ inserts local time. + - ~e~ inserts EST time. + - ~m~ inserts MDT time. +- ~M-d~ launches ~rofi~. +- ~M-p~ launches ~dmenu~.