dot/README.org
2023-10-16 00:14:39 +02:00

120 lines
3.9 KiB
Org Mode

#+author:
#+title:
* Setup :noexport:
* 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
1. I have recently started experimenting with Hyprland and Waybar, so if you
intend to run these, be aware you want to have them installed - I use the
latest versions of both from their respective git repositories.
4. xdotool
5. Trayer
6. Emacs with the Doom Emacs framework.
7. rofi
8. alacritty
9. flameshot
1. If you're on wayland, you want hyprshot instead.
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
(X11 only, I do this so rarely I have not been able to justify prettifying
it in Hyprland yet.)
* 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 directory in your ~home~. This makes using ~stow~
easier. Stow, by default, relates to the parent directory of where the files
are. This makes things a lot easier for rapid deployment.
#+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 defined 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~. (Except in Hyprland, I use this so rarely I have not
gotten around to this yet.)