Phil's dotfiles.
Find a file
2024-09-19 11:26:26 +02:00
.config Big cleanup 2024-09-19 11:26:26 +02:00
.scripts Update 2024.07.29 12:31:08 CEST 2024-07-29 12:31:22 +02:00
.bashrc Add .xprofile 2023-04-15 17:57:48 +02:00
.gitignore Add README.org, cleanup. 2023-08-13 17:12:50 +02:00
.stow-local-ignore Added automatic timestamps in Emacs so I can save time/ effort on keybinds. 2023-08-22 13:06:03 +02:00
.xprofile Add .xprofile 2023-04-15 17:57:48 +02:00
.zshrc Add .xprofile 2023-04-15 17:57:48 +02:00
README.org Update 2023.10.15 2023-10-16 00:14:39 +02:00

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

git clone https://git.bajsicki.com/phil/dot.git .dot

Then run:

cd .dot
stow .

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_src emacs-lisp :tangle config.el

#+end_src

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

#+PROPERTY: header-args :tangle xmonad.hs

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:

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.)