dotfiles/dotfiles.org

465 lines
12 KiB
Org Mode
Raw Normal View History

2024-08-23 01:14:15 -04:00
#+PROPERTY: header-args :mkdirp yes
#+title:Dotfiles Configuration
* Configurations
This file contains all configurations across all my machines. Well, most of them anyway.
#+TOC: headlines 2
2024-08-26 16:03:08 -04:00
* Terminal
** Shell Environment
2024-08-23 01:14:15 -04:00
#+begin_src sh :tangle ~/.profile
alias k=kubectl
2024-09-18 18:57:59 -04:00
alias lg=lazygit
alias ld=lazydocker
2024-08-23 01:14:15 -04:00
export EDITOR=vim
2024-08-26 16:03:08 -04:00
export BROWSER=firefox
2024-09-18 18:57:59 -04:00
export PAGER=bat
export SHELL=fish
2024-08-26 16:03:08 -04:00
export TERMINAL=wezterm
2024-08-23 01:14:15 -04:00
export PATH="~/.dotfiles/scripts:$PATH"
export PATH="/usr/local/bin:$PATH"
#+end_src
2024-09-18 22:29:13 -04:00
** Git
- TODO: re-evaliate merge conflictstyle
#+begin_src ini :tangle ~/.gitconfig
[user]
name = Ian Keane
email = ian@keane.sh
[alias]
find-file = "!for branch in `git for-each-ref --format=\"%(refname)\" refs/heads`; do echo \"${branch}:\"; git ls-tree -r --name-only $branch | nl -bn -w3 | grep \"$1\"; done; :"
[core]
pager = delta
[interactive]
diffFilter = delta --color-only
[delta]
navigate = true
side-by-side = true
line-numbers-left-format = ""
line-numbers-right-format = "│ "
[merge]
conflictstyle = diff3
[diff]
colorMoved = default
#+end_src
2024-08-23 01:14:15 -04:00
2024-08-26 16:03:08 -04:00
** TODO Autojump
** TODO Atuin
** Fish
2024-08-23 01:14:15 -04:00
OMF must be installed separately (nix package for this is broken)
- =curl https://raw.githubusercontent.com/oh-my-fish/oh-my-fish/master/bin/install | fish=
- =omf install pie=
- remove fortune line from .local/share/omf/themes/pie/fish_greeting.fish
#+begin_src fish :tangle ~/.config/fish/config.fish
fish_vi_key_bindings
omf theme pie
#+end_src
#+begin_src fish :tangle ~/.config/fish/functions/fish_mode_prompt.fish
function fish_mode_prompt
end
#+end_src
2024-08-26 16:03:08 -04:00
** Tmux
2024-08-23 01:14:15 -04:00
#+begin_src txt :tangle ~/.config/tmux/tmux.conf
# Required for yazi
set -g allow-passthrough on
set -ga update-environment TERM
set -ga update-environment TERM_PROGRAM
2024-08-23 01:14:15 -04:00
# set-option -g default-shell /usr/bin/fish
# set -g default-terminal "screen-256color"
# # set-window-option -g mode-keys vi
# set-window-option -g automatic-rename on
set-window-option -g mode-keys vi
# Blank space between status and bottom of window
set -Fg 'status-format[1]' '#{status-format[0]}'
set -g 'status-format[0]' '#[bg=black] '
set -g status 2
# Smart pane switching with awareness of Vim splits.
# See: https://github.com/christoomey/vim-tmux-navigator
# Adapted to avoid fzf conflicts
is_vim="ps -o state= -o comm= -t '#{pane_tty}' \
| grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'"
multiple_panes="[ $(tmux list-panes | wc -l) -gt 1 ]"
bind-key -n 'C-h' if-shell "$is_vim && $multiple_panes" 'send-keys C-h' 'select-pane -L'
bind-key -n 'C-j' if-shell "$is_vim && $multiple_panes" 'send-keys C-j' 'select-pane -D'
bind-key -n 'C-k' if-shell "$is_vim && $multiple_panes" 'send-keys C-k' 'select-pane -U'
bind-key -n 'C-l' if-shell "$is_vim && $multiple_panes" 'send-keys C-l' 'select-pane -R'
# bind-key -n C-\ if-shell "$is_vim" "send-keys C-\\" "select-pane -l"
bind a resize-pane -Z
# Shift arrow to switch windows
bind -n C-S-Space previous-window
bind -n C-Space next-window
# Remove escape delay
set -g escape-time 0
# Enable mouse scroll
set -g mouse on
set-option -g status-right-length 140
set-option -g status-right "#(curl 'wttr.in/?format=%%c%%t%%20')|#[bg=default] %a %l:%M %p#[default]#(curl 'wttr.in/?format=%%20%%m%%20(%%M)%') |#(sugar --tmux)#[bg=default]"
set-option -g status-left-length 140
set-option -g status-left " Session: #[bold,fg=green,bg=black] #S #[fg=black,bg=green] "
set-option -g status-justify centre
set-option -g window-status-current-format '#[bold,fg=green,bg=black] #{window_name} '
set-option -g window-status-format '#{window_name}'
#+end_src
2024-08-26 16:03:08 -04:00
** TODO Tmuxinator
* Wezterm
#+begin_src lua :tangle ~/.config/wezterm/wezterm.lua
2024-09-18 22:34:19 -04:00
local wezterm = require 'wezterm'
local config = {}
2024-08-26 16:03:08 -04:00
2024-09-18 22:34:19 -04:00
config.color_scheme = 'OceanicNext (base16)'
config.font = wezterm.font 'Deja Vu Sans Mono'
config.font_size = 20
config.enable_tab_bar = false
2024-08-23 01:14:15 -04:00
2024-09-18 22:34:19 -04:00
return config
2024-08-26 16:03:08 -04:00
#+end_src
* Text Editors
** Helix
2024-08-23 01:14:15 -04:00
#+begin_src toml :tangle ~/.config/helix/config.toml
theme = "base16_default"
#+end_src
2024-08-26 16:03:08 -04:00
** Emacs Pinentry
#+begin_src txt :tangle ~/.gnupg/gpg-agent.conf
allow-emacs-pinentry
#+end_src
2024-09-18 22:02:09 -04:00
* Audio
** mpd
#+begin_src ini :tangle ~/.config/mpd/mpd.conf
db_file "~/.config/mpd/database"
log_file "~/.config/mpd/log"
music_directory "/mnt/media/music"
playlist_directory "~/.config/mpd/playlists"
pid_file "~/.config/mpd/pid"
state_file "~/.config/mpd/state"
sticker_file "~/.config/mpd/sticker.sql"
auto_update "yes"
bind_to_address "127.0.0.1"
restore_paused "yes"
max_output_buffer_size "16384"
audio_output {
type "alsa"
name "alsa for audio soundcard"
# mixer_type "software"
}
audio_output {
type "fifo"
name "toggle_visualizer"
path "/tmp/mpd.fifo"
format "44100:16:2"
}
audio_output {
type "pulse"
name "PulseAudio Output"
#server "localhost" # optional
#sink "alsa_output" # optional
}
audio_output {
type "alsa"
name "MPD"
device "pulse"
mixer_control "Master"
}
#+end_src
** Bluetooth
- TODO: evaluate if this can be done differently in nixos
2024-08-26 16:03:08 -04:00
#+begin_src lua :tangle /sudo::/etc/wireplumber/bluetooth.lua.d/51-bluez-config.lua
2024-09-18 22:34:19 -04:00
bluez_monitor.properties = {
["bluez5.enable-sbc-xq"] = true,
["bluez5.enable-msbc"] = true,
["bluez5.enable-hw-volume"] = true,
["bluez5.headset-roles"] = "[ hsp_hs hsp_ag hfp_hf hfp_ag ]"
}
2024-08-26 16:03:08 -04:00
#+end_src
* Xorg Config
- Tangle to =/etc/X11/xorg.conf.d/00-keyboard.conf= for non-nixos
#+begin_src txt :tangle no
Section "InputClass"
Identifier "keyboard-catchall"
MatchIsKeyboard "on"
Option "XkbLayout" "us,ru,ara"
Option "XkbOptions" "grp:alt_shift_toggle,ctrl:nocaps,altwin:swap_alt_win"
EndSection
#+end_src
2024-09-18 21:56:39 -04:00
** Non-Nix Xorg
*** Laptop Only
- Avoid unintentional touchpad activation
- TODO: Tangle to /etc/X11/xorg.conf.d/10-synaptics.conf for non-nix
#+begin_src
Section "InputClass"
Identifier "touchpad catchall"
Driver "synaptics"
MatchIsTouchpad "on"
MatchDevicePath "/dev/input/event*"
Option "MaxTapTime" "0"
EndSection
#+end_src
* Tasks
** Taskwarrior
- TODO: evaluate if taskwarrior 3 has different settings
- TODO: clean up categories
2024-09-18 22:34:19 -04:00
- TODO: configure aws bucket for task warrior
#+begin_src ini :tangle ~/.config/task/taskrc
data.location=~/.local/share/task
hooks.location=~/.config/task/hooks
include dark-yellow-green.theme
color.project.unraid=yellow
color.project.workflow=green
color.project.home=color5 # purple
color.project.renovation=blue
color.project.aws=color6 # ???
report.list.columns=id,depends.indicator,priority,project,recur.indicator,description.count
report.list.labels=ID,D,P,Project,R,Description
#+end_src
** Vit
- TODO: Compare to mac for custom keybindings
#+begin_src ini :tangle ~/.config/vit/
[taskwarrior]
taskrc = ~/.config/task/taskrc
[vit]
default_keybindings = vi
theme = default
confirmation = False
[report]
row_striping = False
[color]
enabled = True
#+end_src
2024-08-26 16:03:08 -04:00
* Dunst
#+begin_src ini :tangle ~/.config/dunst/dunstrc
[global]
monitor = 0
follow = none
width = 300
height = 300
origin = top-right
offset = 10x50
scale = 0
notification_limit = 0
progress_bar = true
progress_bar_height = 10
progress_bar_frame_width = 1
progress_bar_min_width = 150
progress_bar_max_width = 300
indicate_hidden = yes
transparency = 0
separator_height = 2
padding = 8
horizontal_padding = 8
text_icon_padding = 0
frame_width = 3
gap_size = 0
sort = yes
font = Monospace 12
line_height = 0
markup = full
# The format of the message. Possible variables are:
# %a appname
# %s summary
# %b body
# %i iconname (including its path)
# %I iconname (without its path)
# %p progress value if set ([ 0%] to [100%]) or nothing
# %n progress value if set without any extra characters
# %% Literal %
# Markup is allowed
format = "<b>%s</b>\n%b"
alignment = left
vertical_alignment = center
show_age_threshold = 60
ellipsize = middle
ignore_newline = no
stack_duplicates = true
hide_duplicate_count = false
show_indicators = yes
sticky_history = yes
history_length = 20
dmenu = /usr/bin/dmenu -p dunst:
browser = /usr/bin/xdg-open
always_run_script = true
title = Dunst
class = Dunst
corner_radius = 0
ignore_dbusclose = false
force_xinerama = false
mouse_left_click = close_current
mouse_middle_click = do_action, close_current
mouse_right_click = close_all
[experimental]
per_monitor_dpi = false
#+end_src
2024-09-18 22:25:39 -04:00
* Databases
#+begin_src ini :tangle ~/.config/pgcli/config
[main]
smart_completion = True
wider_completion_menu = False
multi_line = False
multi_line_mode = psql
destructive_warning = True
expand = False
auto_expand = False
generate_aliases = False
log_file = default
keyword_casing = auto
casing_file = default
generate_casing_file = False
case_column_headers = True
history_file = default
# "CRITICAL", "ERROR", "WARNING", "INFO" "DEBUG", "NONE"
log_level = INFO
# table_order and alphabetic
asterisk_column_order = table_order
qualify_columns = if_more_than_one_table
search_path_filter = False
timing = True
show_bottom_toolbar = True
# Recommended: psql, fancy_grid or grid.
table_format = psql
syntax_style = default
vi = True
on_error = STOP
row_limit = 1000
less_chatty = False
prompt = '\u@\h:\d> '
min_num_menu_lines = 4
multiline_continuation_char = ''
null_string = '<null>'
enable_pager = True
keyring = True
[colors]
completion-menu.completion.current = 'bg:#ffffff #000000'
completion-menu.completion = 'bg:#008888 #ffffff'
completion-menu.meta.completion.current = 'bg:#44aaaa #000000'
completion-menu.meta.completion = 'bg:#448888 #ffffff'
completion-menu.multi-column-meta = 'bg:#aaffff #000000'
scrollbar.arrow = 'bg:#003333'
scrollbar = 'bg:#00aaaa'
selected = '#ffffff bg:#6666aa'
search = '#ffffff bg:#4444aa'
search.current = '#ffffff bg:#44aa44'
bottom-toolbar = 'bg:#222222 #aaaaaa'
bottom-toolbar.off = 'bg:#222222 #888888'
bottom-toolbar.on = 'bg:#222222 #ffffff'
search-toolbar = 'noinherit bold'
search-toolbar.text = 'nobold'
system-toolbar = 'noinherit bold'
arg-toolbar = 'noinherit bold'
arg-toolbar.text = 'nobold'
bottom-toolbar.transaction.valid = 'bg:#222222 #00ff5f bold'
bottom-toolbar.transaction.failed = 'bg:#222222 #ff005f bold'
literal.string = '#ba2121'
literal.number = '#666666'
keyword = 'bold #008000'
# style classes for colored table output
output.header = "#00ff5f bold"
output.odd-row = ""
output.even-row = ""
output.null = "#808080"
#+end_src
2024-08-23 01:14:15 -04:00
* Special Exceptions
** Tdrop
- Must be installed from the repo, doesn't work from nix repos
- Must be moved to /usr/local/bin and given same permissions that come from make install
2024-08-26 16:03:08 -04:00
* TODO Desktop Environment
- .fehbg
- bspwm/sxhkd/initrc
- polybar
* TODO Media
- mpv
- video streaming
- lf file selection
- mpv plugins
* TODO chat
** TODO weechat
2024-08-23 01:14:15 -04:00
* TODO
- Better polybar config
- BSPWM / sxhkd / startup stuff / xinitrc
- Consider configuring flavours
- taskwarrior
- vit
- vimrc
- tmuxinator setup
- special popup for emacs, chat, gpt, etc
2024-08-26 16:03:08 -04:00
- git / delta
- firefox plugins settings
- dunst alert once polybar battery widget shows low
- mpd + radio?
- sync calcurse and etar
- polybar modules
2024-09-18 18:58:42 -04:00
- brightness
- bluetooth
2024-08-26 16:03:08 -04:00
- polybar font colors
- click battery to notify-send percentage
- clock click to open calcurse
- master chat notifications (click to open chat tdrop)
- autorandr
- dunstrc
2024-09-18 18:58:42 -04:00
- ncmpcpp
- scrobble
- mpdscribble
- internet radio
- polybar
- manage polybar w/ systemctl
- make 'youtube' albums of songs I from there
- explore mpd auto playlists