Add README.org, cleanup.

This commit is contained in:
Phil Bajsicki 2023-08-13 17:12:50 +02:00
parent 93f995a6d0
commit 248e6fbb56
9 changed files with 296 additions and 37 deletions

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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-<Print>", spawn "dm-maim")
, ("<Print>", 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!

1
.gitignore vendored
View file

@ -1,2 +1 @@
.stow-local-ignore

2
.stow-local-ignore Normal file
View file

@ -0,0 +1,2 @@
\.git
README.org

View file

@ -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~.