Update 2023.10.15

This commit is contained in:
Phil Bajsicki 2023-10-15 23:24:24 +02:00
parent fb4bca380f
commit b2ca022160
6 changed files with 452 additions and 102 deletions

View file

@ -1,7 +1,5 @@
#+title: Phil's Doom Emacs Config
#+TODO: ACTIVE | DISABLED
#+STARTUP: indent
#+auto_tangle: t
* Intro
@ -34,6 +32,12 @@ A lot of these are swiped from [[https://gitlab.com/dwt1/configuring-emacs/][DT'
(prefer-coding-system 'utf-8)
#+END_SRC
*** Langtool
Note that for this functionality you do need some resources, namely:
- some kind of Java runtime (OpenJRE for instance)
- [[https://languagetool.org/][LanguageTool]]
This command only sets up the path to your java runtime binary.
#+begin_src emacs-lisp :tangle config.el
(setq langtool-java-bin "/usr/bin/java")
#+end_src

View file

@ -368,9 +368,11 @@ alias tobash="sudo chsh $USER -s /bin/bash && echo 'Now log out.'"
alias tozsh="sudo chsh $USER -s /bin/zsh && echo 'Now log out.'"
alias tofish="sudo chsh $USER -s /bin/fish && echo 'Now log out.'"
#+end_src
** config
** config :noexport:
Bare git repo for dotfiles.
#+begin_src fish
/Note:/ No longer in use, since I moved to using stow instead. See the main readme
file in the root directory of this git repo.
#+begin_src fish :tangle no
alias config="/usr/bin/git --git-dir=$HOME/git/dot --work-tree=$HOME"
#+end_src
** tb

339
.config/hypr/README.org Normal file
View file

@ -0,0 +1,339 @@
#+title: Phil's Hyprland config
#+STARTUP: indent
#+PROPERTY: header-args :tangle hyprland.conf
#+auto-tangle: t
* Intro
This is my personal [[https://hyprland.org/][Hyprland]] config. It is a literate config, which means that
/this/ is the file you want to be editing, and then running ~org-babel-tangle~ to
tangle it into the ~hyprland.conf~ file.
A lot of this configuration is very opinionated, and not for everyone.
* Thee configuration
** Monitor set-up
#+begin_src config
monitor=HDMI-A-1, 1920x1080@60, 0x0, 1
monitor=eDP-1, 1920x1080@165, 1920x0, 1
monitor=DP-2, 1920x1080@60, 3840x0, 1
#+end_src
** Input
#+begin_src config
input {
kb_layout = pl
kb_options = compose:rctrl
follow_mouse = 1
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
touchpad {
natural_scroll = no
}
}
#+end_src
** General
#+begin_src config
general {
gaps_in = 5
gaps_out = 20
border_size = 2
col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
col.inactive_border = rgba(595959aa)
layout = master
}
#+end_src
** Decorations
#+begin_src config
decoration {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
rounding = 0
blur {
enabled = true
size = 3
passes = 1
}
drop_shadow = yes
shadow_range = 4
shadow_render_power = 3
col.shadow = rgba(1a1a1aee)
}
#+end_src
** Animations
#+begin_src config
animations {
enabled = yes
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
animation = windows, 1, 7, myBezier
animation = windowsOut, 1, 7, default, popin 80%
animation = border, 1, 10, default
animation = borderangle, 1, 8, default
animation = fade, 1, 7, default
animation = workspaces, 1, 6, default
}
#+end_src
** Layouts
*** Dwindle
#+begin_src config
dwindle {
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = yes # you probably want this
}
#+end_src
*** Master
#+begin_src config
master {
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
new_is_master = true
inherit_fullscreen = true
mfact = 0.6
}
#+end_src
** Gestures
#+begin_src config
gestures {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
workspace_swipe = off
}
#+end_src
** Environment variables
#+begin_src config
env = XCURSOR_SIZE,24
env = HYPRSHOT_DIR,"~/enc/pictures/screenshots"
#+end_src
** Keybinds
*** Hypr
#+begin_src config
$mainMod = SUPER
bind = CTRL_SHIFT_ALT, Q, killactive,
bind = SUPER_CTRL_SHIFT_ALT, 0, exit,
bind = $mainMod, B, togglefloating,
bind = $mainMod, F, fullscreen, 0
bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, J, togglesplit, # dwindle
bind = $mainMod, a, layoutmsg, cyclenext
bind = $mainMod, o, layoutmsg, cycleprev
bind = $mainMod, BACKSPACE, layoutmsg, swapwithmaster auto
bind = $mainMod, comma, focusmonitor, -1
bind = $mainMod, period, focusmonitor, +1
#+end_src
*** Applications
#+begin_src config
bind = $mainMod, RETURN, exec, alacritty
bind = SUPER_SHIFT, RETURN, exec, sakura
bind = $mainMod, D, exec, rofi -show drun
bind = , Print, exec, hyprshot -m region
bind = $mainMod, E, exec, emacsclient -c -a 'emacs'
#+end_src
*** Workspaces
**** Show
#+begin_src config
bind = $mainMod, S, submap, show
submap = show
bind = , 1, moveworkspacetomonitor, name:1 current
bind = , 1, workspace, name:1
bind = , 1, submap, reset
bind = , 2, moveworkspacetomonitor, name:2 current
bind = , 2, workspace, name:2
bind = , 2, submap, reset
bind = , 3, moveworkspacetomonitor, name:3 current
bind = , 3, workspace, name:3
bind = , 3, submap, reset
bind = , 4, moveworkspacetomonitor, name:4 current
bind = , 4, workspace, name:4
bind = , 4, submap, reset
bind = , 5, moveworkspacetomonitor, name:5 current
bind = , 5, workspace, name:5
bind = , 5, submap, reset
bind = , 6, moveworkspacetomonitor, name:6 current
bind = , 6, workspace, name:6
bind = , 6, submap, reset
bind = , 7, moveworkspacetomonitor, name:7 current
bind = , 7, workspace, name:7
bind = , 7, submap, reset
bind = , 8, moveworkspacetomonitor, name:8 current
bind = , 8, workspace, name:8
bind = , 8, submap, reset
bind = , 9, moveworkspacetomonitor, name:9 current
bind = , 9, workspace, name:9
bind = , 9, submap, reset
bind = , e, moveworkspacetomonitor, name:e current
bind = , e, workspace, name:e
bind = , e, submap, reset
bind = , w, moveworkspacetomonitor, name:w current
bind = , w, workspace, name:w
bind = , w, submap, reset
bind = , g, moveworkspacetomonitor, name:g current
bind = , g, workspace, name:g
bind = , g, submap, reset
bind = , d, moveworkspacetomonitor, name:d current
bind = , d, workspace, name:d
bind = , d, submap, reset
bind = , b, moveworkspacetomonitor, name:b current
bind = , b, workspace, name:b
bind = , b, submap, reset
bind = , j, moveworkspacetomonitor, name:j current
bind = , j, workspace, name:j
bind = , j, submap, reset
bind = , f, moveworkspacetomonitor, name:f current
bind = , f, workspace, name:f
bind = , f, submap, reset
bind = , o, moveworkspacetomonitor, name:o current
bind = , o, workspace, name:o
bind = , o, submap, reset
bind = , u, moveworkspacetomonitor, name:u current
bind = , u, workspace, name:u
bind = , u, submap, reset
bind = , r, moveworkspacetomonitor, name:r current
bind = , r, workspace, name:r
bind = , r, submap, reset
bind = , s, moveworkspacetomonitor, name:s current
bind = , s, workspace, name:s
bind = , s, submap, reset
bind = , t, moveworkspacetomonitor, name:t current
bind = , t, workspace, name:t
bind = , t, submap, reset
bind = , h, moveworkspacetomonitor, name:h current
bind = , h, workspace, name:h
bind = , h, submap, reset
bind = , v, moveworkspacetomonitor, name:v current
bind = , v, workspace, name:v
bind = , v, submap, reset
bind = , y, moveworkspacetomonitor, name:y current
bind = , y, workspace, name:y
bind = , y, submap, reset
bind = , n, moveworkspacetomonitor, name:n current
bind = , n, workspace, name:n
bind = , n, submap, reset
bind = , a, moveworkspacetomonitor, name:a current
bind = , a, workspace, name:a
bind = , a, submap, reset
bind = , i, moveworkspacetomonitor, name:i current
bind = , i, workspace, name:i
bind = , i, submap, reset
bind = , l, moveworkspacetomonitor, name:l current
bind = , l, workspace, name:l
bind = , l, submap, reset
bind = , x, moveworkspacetomonitor, name:x current
bind = , x, workspace, name:x
bind = , x, submap, reset
bind = , c, moveworkspacetomonitor, name:c current
bind = , c, workspace, name:c
bind = , c, submap, reset
bind = , m, moveworkspacetomonitor, name:m current
bind = , m, workspace, name:m
bind = , m, submap, reset
bind = , k, moveworkspacetomonitor, name:k current
bind = , k, workspace, name:k
bind = , k, submap, reset
bind = , q, moveworkspacetomonitor, name:q current
bind = , q, workspace, name:q
bind = , q, submap, reset
bind = , z, moveworkspacetomonitor, name:z current
bind = , z, workspace, name:z
bind = , z, submap, reset
bind = , p, moveworkspacetomonitor, name:p current
bind = , p, workspace, name:p
bind = , p, submap, reset
bind=,escape,submap,reset
submap = reset
#+end_src
**** Throw
#+begin_src config
bind = $mainMod, T, submap, throw
submap = throw
bind = , 1, movetoworkspacesilent, name:1
bind = , 1, submap, reset
bind = , 2, movetoworkspacesilent, name:2
bind = , 2, submap, reset
bind = , 3, movetoworkspacesilent, name:3
bind = , 3, submap, reset
bind = , 4, movetoworkspacesilent, name:4
bind = , 4, submap, reset
bind = , 5, movetoworkspacesilent, name:5
bind = , 5, submap, reset
bind = , 6, movetoworkspacesilent, name:6
bind = , 6, submap, reset
bind = , 7, movetoworkspacesilent, name:7
bind = , 7, submap, reset
bind = , 8, movetoworkspacesilent, name:8
bind = , 8, submap, reset
bind = , 9, movetoworkspacesilent, name:9
bind = , 9, submap, reset
bind = , e, movetoworkspacesilent, name:e
bind = , e, submap, reset
bind = , w, movetoworkspacesilent, name:w
bind = , w, submap, reset
bind = , g, movetoworkspacesilent, name:g
bind = , g, submap, reset
bind = , d, movetoworkspacesilent, name:d
bind = , d, submap, reset
bind = , b, movetoworkspacesilent, name:b
bind = , b, submap, reset
bind = , j, movetoworkspacesilent, name:j
bind = , j, submap, reset
bind = , f, movetoworkspacesilent, name:f
bind = , f, submap, reset
bind = , o, movetoworkspacesilent, name:o
bind = , o, submap, reset
bind = , u, movetoworkspacesilent, name:u
bind = , u, submap, reset
bind = , r, movetoworkspacesilent, name:r
bind = , r, submap, reset
bind = , s, movetoworkspacesilent, name:s
bind = , s, submap, reset
bind = , t, movetoworkspacesilent, name:t
bind = , t, submap, reset
bind = , h, movetoworkspacesilent, name:h
bind = , h, submap, reset
bind = , v, movetoworkspacesilent, name:v
bind = , v, submap, reset
bind = , y, movetoworkspacesilent, name:y
bind = , y, submap, reset
bind = , n, movetoworkspacesilent, name:n
bind = , n, submap, reset
bind = , a, movetoworkspacesilent, name:a
bind = , a, submap, reset
bind = , i, movetoworkspacesilent, name:i
bind = , i, submap, reset
bind = , l, movetoworkspacesilent, name:l
bind = , l, submap, reset
bind = , x, movetoworkspacesilent, name:x
bind = , x, submap, reset
bind = , c, movetoworkspacesilent, name:c
bind = , c, submap, reset
bind = , m, movetoworkspacesilent, name:m
bind = , m, submap, reset
bind = , k, movetoworkspacesilent, name:k
bind = , k, submap, reset
bind = , q, movetoworkspacesilent, name:q
bind = , q, submap, reset
bind = , z, movetoworkspacesilent, name:z
bind = , z, submap, reset
bind = , p, movetoworkspacesilent, name:tp
bind = , p, submap, reset
bind=,escape,submap,reset
submap = reset
#+end_src
*** Mouse
#+begin_src config
# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1
# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
#+end_src
** Autostart
#+begin_src config
exec-once=waybar
#+end_src

View file

@ -1,56 +1,18 @@
monitor=HDMI-A-1, 1920x1080@60, 0x0, 1
monitor=eDP-1, 1920x1080@165, 1920x0, 1
monitor=DP-2, 1920x1080@60, 3840x0, 1
########################################################################################
AUTOGENERATED HYPR CONFIG.
PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hypr.conf AND EDIT IT,
OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS.
########################################################################################
#
# Please note not all available settings / options are set here.1
# For a full list, see the wiki
#
autogenerated = 0 # remove this line to remove the warning
# See https://wiki.hyprland.org/Configuring/Monitors/
monitor=HDMI-A-1, 1920x1080, 0x0, 1
monitor=eDP-1, 1920x1080, 1920x0, 1
monitor=DP-2, 1920x1080, 3840x0, 1
exec-once=waybar
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
# Execute your favorite apps at launch
# exec-once = waybar & hyprpaper & firefox
# Source a file (multi-file configs)
# source = ~/.config/hypr/myColors.conf
# Some default env vars.
env = XCURSOR_SIZE,24
env = HYPRSHOT_DIR,"~/enc/pictures/screenshots"
# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
input {
kb_layout = pl
kb_variant =
kb_model =
kb_options =
kb_rules =
kb_options = compose:rctrl
follow_mouse = 1
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
touchpad {
natural_scroll = no
}
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
}
general {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
gaps_in = 5
gaps_out = 20
border_size = 2
@ -64,7 +26,7 @@ decoration {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
rounding = 0
blur {
enabled = true
size = 3
@ -79,11 +41,7 @@ decoration {
animations {
enabled = yes
# Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
animation = windows, 1, 7, myBezier
animation = windowsOut, 1, 7, default, popin 80%
animation = border, 1, 10, default
@ -105,55 +63,23 @@ master {
mfact = 0.6
}
gestures {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
workspace_swipe = off
}
# Example per-device config
# See https://wiki.hyprland.org/Configuring/Keywords/#executing for more
device:epic-mouse-v1 {
sensitivity = -0.5
}
env = XCURSOR_SIZE,24
env = HYPRSHOT_DIR,"~/enc/pictures/screenshots"
# Example windowrule v1
# windowrule = float, ^(kitty)$
# Example windowrule v2
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
$mainMod = SUPER
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = $mainMod, RETURN, exec, alacritty
bind = SUPER_SHIFT, RETURN, exec, sakura
bind = CTRL_SHIFT_ALT, Q, killactive,
bind = SUPER_CTRL_SHIFT_ALT, 0, exit,
bind = $mainMod, E, exec, emacsclient -c -a 'emacs'
set
bind = , Print, exec, hyprshot -m region
# windowrulev2=move 0 0,title:^(flameshot)
# windowrulev2=nofullscreenrequest,title:^(flameshot)
bind = $mainMod, B, togglefloating,
bind = $mainMod, F, fullscreen, 0
bind = $mainMod, D, exec, rofi -show drun
bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, J, togglesplit, # dwindle
# Move focus with mainMod + arrow keys
# bind = $mainMod, n, movefocus, l
# bind = $mainMod, i, movefocus, r
# bind = $mainMod, o, movefocus, u
# bind = $mainMod, a, movefocus, d
bind = $mainMod, a, layoutmsg, cyclenext
bind = $mainMod, o, layoutmsg, cycleprev
@ -162,7 +88,14 @@ bind = $mainMod, BACKSPACE, layoutmsg, swapwithmaster auto
bind = $mainMod, comma, focusmonitor, -1
bind = $mainMod, period, focusmonitor, +1
# Switch workspaces with mainMod + [0-9]
bind = $mainMod, RETURN, exec, alacritty
bind = SUPER_SHIFT, RETURN, exec, sakura
bind = $mainMod, D, exec, rofi -show drun
bind = , Print, exec, hyprshot -m region
bind = $mainMod, E, exec, emacsclient -c -a 'emacs'
bind = $mainMod, S, submap, show
submap = show
bind = , 1, moveworkspacetomonitor, name:1 current
@ -270,13 +203,9 @@ bind = , z, submap, reset
bind = , p, moveworkspacetomonitor, name:p current
bind = , p, workspace, name:p
bind = , p, submap, reset
bind=,escape,submap,reset
submap = reset
# Move active window to a workspace with main
# Mod + SHIFT + [0-9]
bind = $mainMod, T, submap, throw
submap = throw
bind = , 1, movetoworkspacesilent, name:1
@ -352,7 +281,6 @@ bind = , p, submap, reset
bind=,escape,submap,reset
submap = reset
# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1
@ -360,3 +288,5 @@ bind = $mainMod, mouse_up, workspace, e-1
# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
exec-once=waybar

View file

@ -0,0 +1,67 @@
-- Xmobar (http://projects.haskell.org/xmobar/)
-- This is one of the xmobar configurations for DTOS.
-- This config is packaged in the DTOS repo as 'dtos-xmobar'
-- Color scheme: Tomorrow Night
-- Dependencies:
-- otf-font-awesome
-- ttf-mononoki
-- ttf-ubuntu-font-family
-- htop
-- emacs
-- pacman (Arch Linux)
-- trayer
-- 'dtos-local-bin' (from dtos-core-repo)
Config {
font = "xft:Iosevka-12"
, additionalFonts = [ "xft:Mononoki:pixelsize=8:antialias=true:hinting=true"
, "xft:Font Awesome 6 Free Solid:pixelsize=10"
, "xft:Font Awesome 6 Brands:pixelsize=10"
]
, bgColor = "#1d1f21"
, fgColor = "#ffffff"
-- Position TopSize and BottomSize take 3 arguments:
-- an alignment parameter (L/R/C) for Left, Right or Center.
-- an integer for the percentage width, so 100 would be 100%.
-- an integer for the minimum pixel height for xmobar, so 24 would force a height of at least 24 pixels.
-- NOTE: The height should be the same as the trayer (system tray) height.
, position = TopSize L 100 16
, lowerOnStart = True
, hideOnStart = False
, allDesktops = True
, persistent = True
, iconRoot = ".config/xmonad/xpm/" -- default: "."
, commands = [
Run UnsafeXMonadLog
, Run StdinReader
-- Echos a "penguin" icon in front of the kernel output.
-- Run Com "echo" ["<fn=3>\xf17c</fn>"] "penguin" 3600
-- Get kernel version (script found in .local/bin)
-- , Run Com ".local/bin/kernel" [] "kernel" 36000
-- Cpu usage in percent
, Run Cpu ["-t", "<fn=2>\xf108</fn> cpu: <total>%","-H","50","--high","red"] 20
-- Ram used number and percent
, Run Memory ["-t", "<fn=2>\xf233</fn> mem: <used>M <usedratio>%"] 20
-- Disk space free
, Run DiskU [("/", "<fn=2>\xf0c7</fn> hdd: <free> free")] [] 60
-- Echos an "up arrow" icon in front of the uptime output.
, Run Com "echo" ["<fn=2>\xf0aa</fn>"] "uparrow" 3600
-- Uptime
, Run Uptime ["-t", "uptime: <days>:<hours>:<minutes>"] 360
-- Echos a "bell" icon in front of the pacman updates.
-- , Run Com "echo" ["<fn=2>\xf0f3</fn>"] "bell" 3600
-- Check for pacman updates (script found in .local/bin)
-- , Run Com ".local/bin/pacupdate" [] "pacupdate" 36000
-- Echos a "battery" icon in front of the pacman updates.
, Run Com "echo" ["<fn=2>\xf242</fn>"] "baticon" 3600
-- Battery
, Run BatteryP ["BAT0"] ["-t", "<acstatus><watts> <left>%"] 360
-- Time and date
, Run Date "<fn=2>\xf017</fn>%d.%m.%Y %H:%M " "date" 50
-- Script that dynamically adjusts xmobar padding depending on number of trayer icons.
, Run Com ".config/xmobar/trayer-padding-icon.sh" [] "trayerpad" 20
-- Prints out the left side items such as workspaces, layout, etc.
]
, sepChar = "%"
, alignSep = "}{"
, template = "%UnsafeXMonadLog% }{ <box type=Bottom width=2 mb=2 color=#b5bd68><fc=#b5bd68>%cpu%</fc></box> <box type=Bottom width=2 mb=2 color=#e6c547><fc=#e6c547>%memory%</fc></box> <box type=Bottom width=2 mb=2 color=#81a2be><fc=#81a2be>%disku%</fc></box> <box type=Bottom width=2 mb=2 color=#b294bb><fc=#b294bb>%uparrow% %uptime%</fc></box> <box type=Bottom width=2 mb=2 color=#ff3334><fc=#ff3334>%baticon% %battery%</fc></box> <box type=Bottom width=2 mb=2 color=#9ec400><fc=#9ec400>%date%</fc></box> %trayerpad%"

View file

@ -32,20 +32,27 @@ I use a number of applications and utilities in my workflow. I'm too lazy to lis
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
7. dmenu
8. rofi
9. alacritty
10. flameshot
11. dunst
12. aw-server, aw-watcher-afk, aw-watcher-window and aw-watcher-spotify
13. gocryptfs if you're using an encrypted directory, and lxqt-openssh-askpass
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 hidden directory in your \~. This makes using ~stow~ easier.
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
@ -109,4 +116,5 @@ These are the primary keybinds I use pretty much all the time:
- ~e~ inserts EST time.
- ~m~ inserts MDT time.
- ~M-d~ launches ~rofi~.
- ~M-p~ launches ~dmenu~.
- ~M-p~ launches ~dmenu~. (Except in Hyprland, I use this so rarely I have not
gotten around to this yet.)