From 928964f6d0649bc15aa70142fa4ee4864c046633 Mon Sep 17 00:00:00 2001 From: Ian Keane Date: Fri, 23 Aug 2024 01:14:15 -0400 Subject: [PATCH] Add dotfiles org tangle --- dotfiles.org | 141 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 141 insertions(+) create mode 100644 dotfiles.org diff --git a/dotfiles.org b/dotfiles.org new file mode 100644 index 0000000..32ce906 --- /dev/null +++ b/dotfiles.org @@ -0,0 +1,141 @@ +#+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 + +* Shell Environment +#+begin_src sh :tangle ~/.profile + alias k=kubectl + + export EDITOR=vim + export PATH="~/.dotfiles/scripts:$PATH" + export PATH="/usr/local/bin:$PATH" +#+end_src + +* Bluetooth +#+begin_src lua :tangle /sudo::/etc/wireplumber/bluetooth.lua.d/51-bluez-config.lua +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 ]" +} +#+end_src + +* Emacs Pinentry +#+begin_src txt :tangle ~/.gnupg/gpg-agent.conf +allow-emacs-pinentry +#+end_src + +* Wezterm +#+begin_src lua :tangle ~/.config/wezterm/wezterm.lua +local wezterm = require 'wezterm' +local config = {} + +-- config.color_scheme = 'OceanicNext (base16)' +-- config.color_scheme = 'Wzoreck (Gogh)' +-- config.color_scheme = 'Whimsy' +-- config.color_scheme = 'Grey-green +-- config.color_scheme = 'Gruvbox light, soft (base16)' +-- config.color_scheme = 'Obsidian' + +config.color_scheme = 'OceanicNext (base16)' + +config.font = wezterm.font 'DejaVuSansMono.tff' +config.font_size = 20 + +config.enable_tab_bar = false + +return config +#+end_src +* Fish +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 + +* Tmux +#+begin_src txt :tangle ~/.config/tmux/tmux.conf +# 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 + +* Helix + +#+begin_src toml :tangle ~/.config/helix/config.toml + theme = "base16_default" +#+end_src + +* 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 + +* TODO +- Better polybar config +- BSPWM / sxhkd / startup stuff / xinitrc +- Consider configuring flavours +- taskwarrior +- vit +- vimrc +- tmuxinator setup +- special popup for emacs, chat, gpt, etc