My Dotfiles And Cli Utilities
This is the current list of programs that I’m running both on my Ubuntu server and WSL2. For an updated version of the list I’ll be hosting on my GitHub repository.
neofetch
nnn file manager
~/.bashrc
# NNN settings
alias nnn="nnn -a -d"
NNN_PLUG="p:preview-tui;i:imgview;"
alias nnn-update-plugins="curl -Ls https://raw.githubusercontent.com/jarun/nnn/master/plugins/getplugs | bash"
export EDITOR="nvim"
neovim
~/.config/nvim/init.vim
set number
set hlsearch
set tabstop=4
set shiftwidth=4
set noexpandtab
set autoindent
syntax on
nnoremap o o<Esc>
nnoremap O O<Esc>
i3-gaps
- Ended up not required since the display is shared with the Windows Host
xorg
- Did not work out of the box
- Install VcXsrv on Windows Host
    - Disable access control
 
- Allow access to port 6000
- Also tried allowing wsl.exe(Microsoft Windows Subsystem for Linux Launcher),xlaunch.exethrough Windows Firewall.
- export DISPLAY=IPv4_of_Host:0.0
- Can test with xeyes
- Launch with xlaunchon Host.
~/.bashrc
# Connect to Host Display (replace *Host_IPv4*)
export DISPLAY="*Host_IPv4*:0.0"
kbd
- used for chvt
urxvt (rxvt-unicode)
- Create ~/.Xresourcesconfig file to config urxvt (same as xterm)
- Use xrdb ~/.Xresourcesafter configuring to reload and apply changes.
- Using Mutiny colorscheme by pyratebeard (https://gitlab.com/pyratebeard/dotfiles/-/tree/master)
- Struggled with getting fonts to work.
    - Installed tamzen on Windows Host.
- Had Tamzen-font in VcXsrv/fonts.
- Copied Tamzen-font/ttp file contents into VcXsrv/fonts/TTP.
 
- Unable to find or select tamzen font through xsetorxfontsel.
- Think what worked is the xft:tamzenline in~/.Xresources.
~/.bashrc
# Need to reload settings on start up for some reason
xrdb ~/.Xresources
~/.Xresources
! mutiny by pyratebeard (https://git.pyratebeard.net/?p=mutiny)
! |__ inspired by sourcerer by xero (https://sourcerer.xero.nu)
! special
*.foreground:   #bbbbbb
*.background:   #171717
*.cursorColor:  #bbbbbb
! black
*.color0:               #131313
*.color8:               #3d3a3b
! red
*.color1:               #883c43
*.color9:               #bb6767
! green
*.color2:               #899e3b
*.color10:              #d2d074
! yellow
*.color3:               #deb14f
*.color11:              #807b64
! blue
*.color4:               #6e6461
*.color12:              #909798
! magenta
*.color5:               #753747
*.color13:              #956c74
! cyan
*.color6:               #55776e
*.color14:              #71bb94
! white
*.color7:               #bbbbbb
*.color15:              #baba9e
! fonts
urxvt*font: xft:tamzen:pixelsize=18:antialias=false
urxvt*letterSpace: 0
urxvt*lineSpace: -1
! interface
urxvt*scrollBar: false
urxvt*cursorUnderline: false
urxvt*cursorBlink: true
! style
urxvt*fading: 10
urxvt*fadeColor: #1e1b1c
! clipboard
! changed from using urxvt-perls extensions to using xclip and native cp and paste
! link to urxvt-perls https://github.com/muennich/urxvt-perls
URxvt.perl-ext-common: default, clipboard, keyboard-select
URxvt.copyCommand: xclip -in -sel clip    
URxvt.pasteCommand: xclip -out -sel clip    
URxvt.keysym.Shift-Control-V: eval:paste_clipboard    
URxvt.keysym.Shift-Control-C: eval:selection_to_clipboard    
URxvt.iso14755: false    
URxvt.iso14755_52: false
tmux
- tmux list-sessionsto find existing sessions
- tmux attachto get to the sessions and kill them
- could also use killall tmuxortmux kill-server
- install tmux plugins manager (tpm) with git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
~/.bashrc
alias tpm-install="~/.tmux/plugins/tpm/bin/install_plugins"      
alias tpm-update="~/.tmux/plugins/tpm/bin/update_plugins all"    
alias tpm-remove="~/.tmux/plugins/tpm/bin/clean_plugins"
~/.tmux.conf
# Shameless ripoff of Pyratebeard's Mutiny configs (https://gitlab.com/pyratebeard/dotfiles/-/tree/master)
# pane switching    
unbind h    
unbind j    
unbind k    
unbind l    
bind h select-pane -L    
bind j select-pane -D    
bind k select-pane -U    
bind l select-pane -R    
    
# pane border    
set -g pane-border-style fg=black    
set -g pane-active-border-style fg=colour6    
    
# status bar    
set -g status-justify right    
set -g status-style bg=terminal    
set -g status-fg colour7    
set -g status-interval 5    
set -g status-right-length 100    
setw -g window-status-separator " "    
setw -g window-status-format "#[bg=colour241,fg=colour0] #I #[bg=colour241,fg=colour0]#W #[bg=colour0,fg=colour241]    ▓░"    
setw -g window-status-current-format "#[bg=colour14,fg=colour0] #I #[bg=colour14,fg=colour0]#W #[bg=colour0,fg=colo    ur14]▓░"    
set -g status-justify left    
set-option -g status-right '#[bg=colour0,fg=colour237]░▓#[bg=colour236,fg=colour15]#{bond_device}#{online_status}#[    bg=colour237,fg=colour243] %Y%m#[bg=colour237,fg=colour3]%d#[fg=default]-#[fg=colour10]%u #[fg=colour7]%H%M #[bg=wh    ite,fg=colour237]▓#[default]'
set-option -g status-left ''
# online and offline icon for tmux-online-status
set -g @online_icon "#[bg=colour237,fg=colour2]░▓█#[bg=colour2,fg=black]online#[bg=colour237,fg=colour2]█▓░#[default]"
set -g @offline_icon "#[bg=colour237,fg=colour1]░▓█#[bg=colour1,fg=white]offline#[bg=colour237,fg=colour1]█▓░#[default]"                           
# device names for tmux-bond-device
set -g @ethernet "#[bg=colour237,fg=colour7] hardwire #[default]"
set -g @wifi "#[bg=colour237,fg=colour7] airborne #[default]"
# tmux clock                      
set -g clock-mode-colour colour6
# plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-online-status'
set -g @plugin 'https://gitlab.com/pyratebeard/tmux-bond-device.git'
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run '~/.tmux/plugins/tpm/tpm'
mutt
jakym
- had been using this for a while now
- sudo apt-get install -y python3-dev libasound2-dev
- pip install simpleaudio
- had to manually install pip for some reason, thought it was bundled with python3.4 and greater.
    - sudo apt install pip
 
- pip install jakym
- Need to put in some work for WSL2 audio to work, probably with the pulse audio workaround.
rustup -> cargo
- (!!) Install with rustup instead, since rustup bundles rustc and cargo.
- else if you try to install rustup, it’ll warn you potential $PATH conflict/confusion.
~/.bashrc
export PATH="$PATH:/home/$USER/.cargo/bin"
macchina
- powered by rust and cargo
- cargo install macchina
- because neofetch can’t seem to load images properly (at least not some custom ascii)
~/.bashrc
alias macchina="macchina -t Helium -p -C Red --box-title \"[ Sean's Dirty Secrets ]\""
unzip
- doesn’t come preinstalled
- needed for nnn preview-tui to work
imv
- needed for nnn imgview to work
- need to go to plugin source to replace imvrtoimv
ruby
- needed for jekyll
- sudo apt install ruby-full(deb)
- official documentation of jekyll points to Brightbox Ruby NG for Ubuntu
    - hosted on ppa:brightbox/ruby-ng
- on Ubuntu the repo could be added through sudo apt-add-repository
 
- hosted on 
- on Kali however
    - the official Kali repo shipped with install is stored at /etc/apt/sources.list- format is <Archive> <Mirror> <Branch> <Component>
- currently on kali-rolling (default)
 
- format is 
- additional repositories should be stored under /etc/apt/sources.list.d/
- naming convention: repo-name.list
 
- the official Kali repo shipped with install is stored at 
- sudo gem update
jekyll
- sudo gem install jekyll bundler
- following the documentation on github pages, within the gemfilegithub-pages’ version is set to217- This will cause several version conflicts after running bundle updateorbundle install.
- Deleting gemfile.lockand runningbundle installthenbundle updateresolves the issue.
- run bundle update github-pageswith bundle orgem update github-pagesto update github-pages gem
 
- This will cause several version conflicts after running 
- test site locally with bundle exec jekyll serve(optional –livereload)
- jerkyll posts must be name in YEAR-MONTH-DAY-title.MARKUP
- could init new dir by:
    - jekyll new .or
- bundle init->- bundle add jekyll
 
- gem based themes have some directories (_assets, _includes, _layouts, _sass) stored inside the theme’s gem file.
    - use bundle info --path *theme-name*to find where those files are.
- writing your own layout files under the same name can override theme layouts.
 
- use 
By default JEKYLL_ENV is set to development. You can set the environment when running a command:
JEKYLL_ENV=production bundle exec jekyll serve
To only output the analytics script on development:
# JEKYLL_ENV is available on jekyll.environment
lsof
- got this because I forgot that I have a window running on tmux that was occupying a port
- run lsof -wni tcp:PORTto get PID
- run kill -9 PID
funsies
- curl -L rum.sh/ricebowl -o ricebowl- for testing and fun
 
- 
    cmatrix 
- 
    figlet 
- nms