120 lines
3.9 KiB
Org Mode
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.)
|