#+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 * Terminal ** Shell Environment #+begin_src sh :tangle ~/.profile alias k=kubectl alias lg=lazygit alias ld=lazydocker export EDITOR=vim export BROWSER=firefox export PAGER=bat export SHELL=fish export TERMINAL=wezterm export PATH="~/.dotfiles/scripts:$PATH" export PATH="/usr/local/bin:$PATH" #+end_src ** TODO Autojump ** TODO Atuin ** 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 # Required for yazi set -g allow-passthrough on set -ga update-environment TERM set -ga update-environment TERM_PROGRAM # 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 ** TODO Tmuxinator * 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 'Deja Vu Sans Mono' config.font_size = 20 config.enable_tab_bar = false return config #+end_src * Text Editors ** Helix #+begin_src toml :tangle ~/.config/helix/config.toml theme = "base16_default" #+end_src ** Emacs Pinentry #+begin_src txt :tangle ~/.gnupg/gpg-agent.conf allow-emacs-pinentry #+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 * 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 * 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 = "%s\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 * 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 Desktop Environment - .fehbg - bspwm/sxhkd/initrc - polybar * TODO Media - mpv - video streaming - lf file selection - mpv plugins * TODO chat ** TODO weechat * TODO - Better polybar config - BSPWM / sxhkd / startup stuff / xinitrc - Consider configuring flavours - taskwarrior - vit - vimrc - tmuxinator setup - special popup for emacs, chat, gpt, etc - git / delta - firefox plugins settings - dunst alert once polybar battery widget shows low - mpd + radio? - sync calcurse and etar - polybar modules - brightness - bluetooth - polybar font colors - click battery to notify-send percentage - clock click to open calcurse - master chat notifications (click to open chat tdrop) - autorandr - dunstrc - ncmpcpp - scrobble - mpdscribble - internet radio - polybar - manage polybar w/ systemctl - make 'youtube' albums of songs I from there - explore mpd auto playlists