Initial commit for dotfiles

Setting up dotfiles with yadm
This commit is contained in:
Ben Vincent 2022-08-26 22:09:22 +09:30
commit 27e3b132a8
22 changed files with 1648 additions and 0 deletions

View File

@ -0,0 +1,80 @@
# SFMono Nerd Fonts
font:
normal:
family: SFMono Nerd Font
style: Regular
bold:
family: SFMono Nerd Font
style: Bold
italic:
family: SFMono Nerd Font
style: Italic
bold_italic:
family: SFMono Nerd Font
style: Bold Italic
size: 10
# Dracula theme for Alacritty
# https://draculatheme.com/alacritty
#
# Color palette
# https://spec.draculatheme.com
#
# Template
# https://github.com/alacritty/alacritty/blob/master/alacritty.yml
colors:
primary:
background: '#282a36'
foreground: '#f8f8f2'
bright_foreground: '#ffffff'
cursor:
text: CellBackground
cursor: CellForeground
vi_mode_cursor:
text: CellBackground
cursor: CellForeground
search:
matches:
foreground: '#44475a'
background: '#50fa7b'
focused_match:
foreground: '#44475a'
background: '#ffb86c'
footer_bar:
background: '#282a36'
foreground: '#f8f8f2'
hints:
start:
foreground: '#282a36'
background: '#f1fa8c'
end:
foreground: '#f1fa8c'
background: '#282a36'
line_indicator:
foreground: None
background: None
selection:
text: CellForeground
background: '#44475a'
normal:
black: '#21222c'
red: '#ff5555'
green: '#50fa7b'
yellow: '#f1fa8c'
blue: '#bd93f9'
magenta: '#ff79c6'
cyan: '#8be9fd'
white: '#f8f8f2'
bright:
black: '#6272a4'
red: '#ff6e6e'
green: '#69ff94'
yellow: '#ffffa5'
blue: '#d6acff'
magenta: '#ff92df'
cyan: '#a4ffff'
white: '#ffffff'

11
.config/bat/config Normal file
View File

@ -0,0 +1,11 @@
# Set the theme to "TwoDark"
--theme="TwoDark"
# Show line numbers, Git modifications and file header (but no grid)
--style="changes,header"
# Use italic text on the terminal (not supported on all terminals)
--italic-text=always
# Use C++ syntax for .ino files
--map-syntax "*.ino:C++"

321
.config/i3/config Normal file
View File

@ -0,0 +1,321 @@
# This file has been auto-generated by i3-config-wizard(1).
# It will not be overwritten, so edit it as you like.
#
# Should you change your keyboard layout some time, delete
# this file and re-run i3-config-wizard(1).
#
# i3 config file (v4)
#
# Please see https://i3wm.org/docs/userguide.html for a complete reference!
set $mod Mod4
#set $term xfce4-terminal
set $term alacritty
set $termalt urxvt
set $web firefox
set $file ranger
set $lock slock
set $code codium
set $guieditor geany
set $calc /home/ben/.local/bin/bc-launcher
set $music /home/ben/.local/bin/ncmpcpp-launcher
# Font for window titles. Will also be used by the bar unless a different font
# is used in the bar {} block below.
font pango:monospace 8
# This font is widely installed, provides lots of unicode glyphs, right-to-left
# text rendering and scalability on retina/hidpi displays (thanks to pango).
#font pango:DejaVu Sans Mono 8
# The combination of xss-lock, nm-applet and pactl is a popular choice, so
# they are included here as an example. Modify as you see fit.
# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the
# screen before suspend. Use loginctl lock-session to lock your screen.
exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
# network manager applet: manage wifi, ethernet and vpns
exec --no-startup-id nm-applet
# bluetooth manager applet: manage bluetooth pairing and connections
#exec --no-startup-id blueman-applet
# udiskie: manage usb storage devices
exec --no-startup-id udiskie -a -n -t
# dunst: a notification daemon
exec --no-startup-id dunst
# Use pactl to adjust volume in PulseAudio.
set $refresh_i3status killall -SIGUSR1 i3status
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status
bindsym $mod+greater exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status
bindsym $mod+less exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status
# backlight brightness
bindsym XF86MonBrightnessDown exec brightnessctl set 5%- # decrease screen brightness
bindsym XF86MonBrightnessUp exec brightnessctl set +5% # increase screen brightness
bindsym $mod+F8 exec brightnessctl set 5-% # decrease screen brightness
bindsym $mod+F9 exec brightnessctl set +5% # increase screen brightness
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
# start a terminal
bindsym $mod+Return exec $term
bindsym $mod+Shift+Return exec $termalt
# start a web browser
bindsym $mod+F1 exec $web
# start a file manager
bindsym $mod+F2 exec $file
# start an ide
bindsym $mod+F3 exec $code
# start a gui notepad
bindsym $mod+F4 exec $guieditor
# kill focused window
bindsym $mod+Shift+q kill
# start rofi in drun mode (a program launcher)
bindsym $mod+d exec --no-startup-id "rofi -show drun -font \\"DejaVu 9\\" -run-shell-command '{terminal} -e \\" {cmd}; read -n 1 -s\\"'"
#bindsym $mod+shift+d exec selected=$(ls ~/rdp/ntschools/|rofi -dmenu -p "Run: ")&&zsh ~/rdp/ntschools/$selected
# A more modern dmenu replacement is rofi:
# bindcode $mod+40 exec "rofi -modi drun,run -show drun"
# There also is i3-dmenu-desktop which only displays applications shipping a
# .desktop file. It is a wrapper around dmenu, so you need that installed.
# bindcode $mod+40 exec --no-startup-id i3-dmenu-desktop
# change focus
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right
# move focused window
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
# split in horizontal orientation
bindsym $mod+h split v ;; exec $term
# split in vertical orientation
bindsym $mod+v split h ;; exec $term
# enter fullscreen mode for the focused container
bindsym $mod+f fullscreen toggle
# change container layout (stacked, tabbed, toggle split)
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split
# toggle tiling / floating
bindsym $mod+Shift+space floating toggle
# change focus between tiling / floating windows
bindsym $mod+space focus mode_toggle
# focus the parent container
bindsym $mod+a focus parent
# focus the child container
bindsym $mod+Shift+a focus child
# calculator scratchpad
bindsym $mod+c [title="calc-launcher"] scratchpad show; [title="calc-launcher"] move position center
for_window [title="calc-launcher"] floating enable
for_window [title="calc-launcher"] resize set 800 600
for_window [title="calc-launcher"] move scratchpad
for_window [title="calc-launcher"] border pixel 5
#exec --no-startup-id $term -T "calc-launcher" -e "$calc"
exec --no-startup-id $term -t "calc-launcher" -e "$calc"
# dropdown scratchpad
bindsym $mod+x [title="dropdown"] scratchpad show; [title="dropdown"] move position center
for_window [title="dropdown"] floating enable
for_window [title="dropdown"] resize set 1280 800
for_window [title="dropdown"] move scratchpad
for_window [title="dropdown"] border pixel 5
#exec --no-startup-id $term -T "dropdown"
exec --no-startup-id $term -t "dropdown"
# music scratchpad
bindsym $mod+m [title="music-launcher"] scratchpad show; [title="music-launcher"] move position center
for_window [title="music-launcher"] floating enable
for_window [title="music-launcher"] resize set 800 600
for_window [title="music-launcher"] move scratchpad
for_window [title="music-launcher"] border pixel 5
#exec --no-startup-id $term -T "music-launcher" -e "$music"
exec --no-startup-id $term -t "music-launcher" -e "$music"
# f5vpn scratchpad
bindsym $mod+F10 [title="F5 VPN"] scratchpad show; [title="F5 VPN"] move position center
for_window [title="F5 VPN"] floating enable
for_window [title="F5 VPN"] resize set 800 600
for_window [title="F5 VPN"] move scratchpad
for_window [title="F5 VPN"] border pixel 5
# restore scratchpads
#bindsym $mod+F11 exec --no-startup-id $term -T "music-launcher" -e "$music"
bindsym $mod+F11 exec --no-startup-id $term -t "music-launcher" -e "$music"
#bindsym $mod+F12 exec --no-startup-id $term -T "calc-launcher" -e "$calc"
bindsym $mod+F12 exec --no-startup-id $term -t "calc-launcher" -e "$calc"
# mpd/mpc commands
bindsym $mod+p exec mpc --host $HOME/.config/mpd/socket toggle
# Define names for default workspaces for which we configure key bindings later on.
# We use variables to avoid repeating the names in multiple places.
set $ws1 "1: shell"
set $ws2 "2: web"
set $ws3 "3: code"
set $ws4 "4: rdp"
set $ws5 "5: games"
set $ws6 "6"
set $ws7 "7"
set $ws8 "8"
set $ws9 "9"
set $ws10 "10"
# switch to workspace
bindsym $mod+1 workspace $ws1
bindsym $mod+2 workspace $ws2; layout tabbed
bindsym $mod+3 workspace $ws3
bindsym $mod+4 workspace $ws4; layout tabbed
bindsym $mod+5 workspace $ws5
bindsym $mod+6 workspace $ws6
bindsym $mod+7 workspace $ws7
bindsym $mod+8 workspace $ws8
bindsym $mod+9 workspace $ws9
bindsym $mod+0 workspace $ws10
# move focused container to workspace
bindsym $mod+Shift+1 move container to workspace $ws1
bindsym $mod+Shift+2 move container to workspace $ws2
bindsym $mod+Shift+3 move container to workspace $ws3
bindsym $mod+Shift+4 move container to workspace $ws4
bindsym $mod+Shift+5 move container to workspace $ws5
bindsym $mod+Shift+6 move container to workspace $ws6
bindsym $mod+Shift+7 move container to workspace $ws7
bindsym $mod+Shift+8 move container to workspace $ws8
bindsym $mod+Shift+9 move container to workspace $ws9
bindsym $mod+Shift+0 move container to workspace $ws10
# move focused workspace between monitors
bindsym $mod+Ctrl+greater move workspace to output right
bindsym $mod+Ctrl+less move workspace to output left
# print screen
bindsym --release Print exec "spectacle"
bindsym --release $mod+Print exec "maim -s $HOME/Pictures/screenshots/$(date +%Y-%m-%d_%H-%M-%S).png"
bindsym --release $mod+Shift+Print exec "maim -s | xclip -selection clipboard -t image/png"
bindsym --release $mod+Shift+s exec "maim -s | xclip -selection clipboard -t image/png"
bindsym --release $mod+Alt+Print exec "maim $HOME/Pictures/screenshots/$(date +%Y-%m-%d_%H-%M-%S).png"
#bindsym --release $mod+Alt+Print exec "maim -i $(xdotool getactivewindow) | xclip -selection clipboard -t image/png"
# lock screen
#bindsym $mod+l --release exec $lock
bindsym $mod+l --release exec betterlockscreen -l dim
# reload the configuration file
bindsym $mod+Shift+c reload
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
bindsym $mod+Shift+r restart
# exit i3 (logs you out of your X session)
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'"
# for_windows settings
for_window [class="urxvt"] border pixel 5
for_window [title="Mozilla Firefox"] move container to workspace $ws2
for_window [title="Chromium"] move container to workspace $ws2
for_window [class="VSCodium"] move container to workspace $ws3
for_window [title="Visual Studio Code"] move container to workspace $ws3
for_window [class="xfreerdp"] floating disable move container to workspace $ws4
for_window [class="Steam"] floating disable move container to workspace $ws5
for_window [title="Picture-in-Picture"] sticky enable
for_window [title="noVNC"] sticky enable floating enable
for_window [title="Proxmox Console"] sticky enable floating enable
for_window [title="feh"] sticky enable floating enable
# resize window (you can also use the mouse for that)
mode "resize" {
# These bindings trigger as soon as you enter the resize mode
# Pressing left will shrink the windows width.
# Pressing right will grow the windows width.
# Pressing up will shrink the windows height.
# Pressing down will grow the windows height.
bindsym j resize shrink width 10 px or 10 ppt
bindsym k resize grow height 10 px or 10 ppt
bindsym l resize shrink height 10 px or 10 ppt
bindsym semicolon resize grow width 10 px or 10 ppt
# same bindings, but for the arrow keys
bindsym Left resize shrink width 10 px or 10 ppt
bindsym Down resize grow height 10 px or 10 ppt
bindsym Up resize shrink height 10 px or 10 ppt
bindsym Right resize grow width 10 px or 10 ppt
# back to normal: Enter or Escape or $mod+r
bindsym Return mode "default"
bindsym Escape mode "default"
bindsym $mod+r mode "default"
}
bindsym $mod+r mode "resize"
# monitor-mode settings
mode "monitor-mode" {
# external-only (1), laptop-only (2) or both (3)
bindsym 1 exec ~/.local/bin/screen-external.sh
bindsym 2 exec ~/.local/bin/screen-laptop.sh
bindsym 3 exec ~/.local/bin/screen-dual.sh
# back to normal: Enter or Escape or $mod+r
bindsym Return mode "default"
bindsym Escape mode "default"
bindsym $mod+t mode "default"
}
bindsym $mod+t mode "monitor-mode"
# class border bground text indicator child_border
client.focused #6272A4 #6272A4 #F8F8F2 #6272A4 #6272A4
client.focused_inactive #44475A #44475A #F8F8F2 #44475A #44475A
client.unfocused #282A36 #282A36 #BFBFBF #282A36 #282A36
client.urgent #44475A #FF5555 #F8F8F2 #FF5555 #FF5555
client.placeholder #282A36 #282A36 #F8F8F2 #282A36 #282A36
client.background #F8F8F2
#exec_always --no-startup-id $HOME/.config/polybar/start
bar {
status_command i3status
colors {
background #282A36
statusline #F8F8F2
separator #44475A
focused_workspace #44475A #44475A #F8F8F2
active_workspace #282A36 #44475A #F8F8F2
inactive_workspace #282A36 #282A36 #BFBFBF
urgent_workspace #FF5555 #FF5555 #F8F8F2
binding_mode #FF5555 #FF5555 #F8F8F2
}
}

58
.config/i3status/config Normal file
View File

@ -0,0 +1,58 @@
# i3status configuration file.
# see "man i3status" for documentation.
# It is important that this file is edited as UTF-8.
# The following line should contain a sharp s:
# ß
# If the above line is not correctly displayed, fix your editor first!
general {
colors = true
interval = 5
output_format = "i3bar"
colors = true
color_good = "#50FA7B"
color_degraded = "#F1FA8C"
color_bad = "#FF5555"
}
order += "ipv6"
order += "wireless _first_"
order += "ethernet _first_"
order += "battery all"
order += "disk /"
order += "load"
order += "memory"
order += "tztime local"
wireless _first_ {
format_up = "W: (%quality at %essid) %ip"
format_down = "W: down"
}
ethernet _first_ {
format_up = "E: %ip (%speed)"
format_down = "E: down"
}
battery all {
format = "%status %percentage %remaining"
}
disk "/" {
format = "%avail"
}
load {
format = "%1min"
}
memory {
format = "%used | %available"
threshold_degraded = "1G"
format_degraded = "MEMORY < %available"
}
tztime local {
format = "%Y-%m-%d %H:%M:%S"
}

415
.config/mpd/mpd.conf Normal file
View File

@ -0,0 +1,415 @@
# An example configuration file for MPD.
# Read the user manual for documentation: http://www.musicpd.org/doc/user/
# Files and directories #######################################################
#
# This setting controls the top directory which MPD will search to discover the
# available audio files and add them to the daemon's online database. This
# setting defaults to the XDG directory, otherwise the music directory will be
# be disabled and audio files will only be accepted over ipc socket (using
# file:// protocol) or streaming files over an accepted protocol.
#
music_directory "~/Music"
#
# This setting sets the MPD internal playlist directory. The purpose of this
# directory is storage for playlists created by MPD. The server will use
# playlist files not created by the server but only if they are in the MPD
# format. This setting defaults to playlist saving being disabled.
#
playlist_directory "~/.config/mpd/playlists"
#
# This setting sets the location of the MPD database. This file is used to
# load the database at server start up and store the database while the
# server is not up. This setting defaults to disabled which will allow
# MPD to accept files over ipc socket (using file:// protocol) or streaming
# files over an accepted protocol.
#
db_file "~/.config/mpd/mpd.db"
#
# These settings are the locations for the daemon log files for the daemon.
# These logs are great for troubleshooting, depending on your log_level
# settings.
#
# The special value "syslog" makes MPD use the local syslog daemon. This
# setting defaults to logging to syslog.
#
log_file "~/.config/mpd/mpd.log"
#
# This setting sets the location of the file which stores the process ID
# for use of mpd --kill and some init scripts. This setting is disabled by
# default and the pid file will not be stored.
#
#pid_file "~/.mpd/pid"
#
# This setting sets the location of the file which contains information about
# most variables to get MPD back into the same general shape it was in before
# it was brought down. This setting is disabled by default and the server
# state will be reset on server start up.
#
state_file "~/.config/mpd/mpdstate"
#
# The location of the sticker database. This is a database which
# manages dynamic information attached to songs.
#
#sticker_file "~/.mpd/sticker.sql"
#
###############################################################################
# General music daemon options ################################################
#
# This setting specifies the user that MPD will run as. MPD should never run as
# root and you may use this setting to make MPD change its user ID after
# initialization. This setting is disabled by default and MPD is run as the
# current user.
#
user "ben"
#
# This setting specifies the group that MPD will run as. If not specified
# primary group of user specified with "user" setting will be used (if set).
# This is useful if MPD needs to be a member of group such as "audio" to
# have permission to use sound card.
#
#group "nogroup"
#
# This setting sets the address for the daemon to listen on. Careful attention
# should be paid if this is assigned to anything other than the default, any.
# This setting can deny access to control of the daemon. Not effective if
# systemd socket activiation is in use.
#
# For network
#bind_to_address "any"
#
# And for Unix Socket
bind_to_address "~/.config/mpd/socket"
#
# This setting is the TCP port that is desired for the daemon to get assigned
# to.
#
#port "6600"
#
# Suppress all messages below the given threshold. Use "verbose" for
# troubleshooting. Available setting arguments are "notice", "info", "verbose",
# "warning" and "error".
#
#log_level "notice"
#
# Setting "restore_paused" to "yes" puts MPD into pause mode instead
# of starting playback after startup.
#
#restore_paused "no"
#
# This setting enables MPD to create playlists in a format usable by other
# music players.
#
#save_absolute_paths_in_playlists "no"
#
# This setting defines a list of tag types that will be extracted during the
# audio file discovery process. The complete list of possible values can be
# found in the user manual.
#metadata_to_use "artist,album,title,track,name,genre,date,composer,performer,disc"
#
# This example just enables the "comment" tag without disabling all
# the other supported tags:
#metadata_to_use "+comment"
#
# This setting enables automatic update of MPD's database when files in
# music_directory are changed.
#
#auto_update "yes"
#
# Limit the depth of the directories being watched, 0 means only watch
# the music directory itself. There is no limit by default.
#
#auto_update_depth "3"
#
###############################################################################
# Symbolic link behavior ######################################################
#
# If this setting is set to "yes", MPD will discover audio files by following
# symbolic links outside of the configured music_directory.
#
#follow_outside_symlinks "yes"
#
# If this setting is set to "yes", MPD will discover audio files by following
# symbolic links inside of the configured music_directory.
#
#follow_inside_symlinks "yes"
#
###############################################################################
# Zeroconf / Avahi Service Discovery ##########################################
#
# If this setting is set to "yes", service information will be published with
# Zeroconf / Avahi.
#
#zeroconf_enabled "yes"
#
# The argument to this setting will be the Zeroconf / Avahi unique name for
# this MPD server on the network. %h will be replaced with the hostname.
#
#zeroconf_name "Music Player @ %h"
#
###############################################################################
# Permissions #################################################################
#
# If this setting is set, MPD will require password authorization. The password
# setting can be specified multiple times for different password profiles.
#
#password "password@read,add,control,admin"
#
# This setting specifies the permissions a user has who has not yet logged in.
#
#default_permissions "read,add,control,admin"
#
###############################################################################
# Database #######################################################################
#
# An example of a database section instead of the old 'db_file' setting.
# It enables mounting other storages into the music directory.
#
#database {
# plugin "simple"
# path "~/.local/share/mpd/db
# cache_directory "~/.local/share/mpd/cache"
#}
#
# An example of database config for a sattelite setup
#
#music_directory "/var/lib/mpd/music"
#database {
# plugin "proxy"
# host "other.mpd.host"
# port "6600"
#}
# Input #######################################################################
#
input {
plugin "curl"
# proxy "proxy.isp.com:8080"
# proxy_user "user"
# proxy_password "password"
}
#
###############################################################################
# Audio Output ################################################################
#
# MPD supports various audio output types, as well as playing through multiple
# audio outputs at the same time, through multiple audio_output settings
# blocks. Setting this block is optional, though the server will only attempt
# autodetection for one sound card.
#
# An example of an ALSA output:
#
#audio_output {
# type "alsa"
# name "My ALSA Device"
## device "hw:0,0" # optional
## mixer_type "hardware" # optional
## mixer_device "default" # optional
## mixer_control "PCM" # optional
## mixer_index "0" # optional
#}
#
# An example of an OSS output:
#
#audio_output {
# type "oss"
# name "My OSS Device"
## device "/dev/dsp" # optional
## mixer_type "hardware" # optional
## mixer_device "/dev/mixer" # optional
## mixer_control "PCM" # optional
#}
#
# An example of a shout output (for streaming to Icecast):
#
#audio_output {
# type "shout"
# encoder "vorbis" # optional
# name "My Shout Stream"
# host "localhost"
# port "8000"
# mount "/mpd.ogg"
# password "hackme"
# quality "5.0"
# bitrate "128"
# format "44100:16:1"
## protocol "icecast2" # optional
## user "source" # optional
## description "My Stream Description" # optional
## url "http://example.com" # optional
## genre "jazz" # optional
## public "no" # optional
## timeout "2" # optional
## mixer_type "software" # optional
#}
#
# An example of a recorder output:
#
#audio_output {
# type "recorder"
# name "My recorder"
# encoder "vorbis" # optional, vorbis or lame
# path "/var/lib/mpd/recorder/mpd.ogg"
## quality "5.0" # do not define if bitrate is defined
# bitrate "128" # do not define if quality is defined
# format "44100:16:1"
#}
#
# An example of a httpd output (built-in HTTP streaming server):
#
#audio_output {
# type "httpd"
# name "My HTTP Stream"
# encoder "vorbis" # optional, vorbis or lame
# port "8000"
# bind_to_address "0.0.0.0" # optional, IPv4 or IPv6
## quality "5.0" # do not define if bitrate is defined
# bitrate "128" # do not define if quality is defined
# format "44100:16:1"
# max_clients "0" # optional 0=no limit
#}
#
# An example of a pulseaudio output (streaming to a remote pulseaudio server)
#
audio_output {
type "pulse"
name "My Pulse Output"
## server "remote_server" # optional
## sink "remote_server_sink" # optional
## media_role "media_role" #optional
}
#
# An example of a winmm output (Windows multimedia API).
#
#audio_output {
# type "winmm"
# name "My WinMM output"
## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional
# or
## device "0" # optional
## mixer_type "hardware" # optional
#}
#
# An example of a wasapi output (Windows multimedia API).
#
#audio_output {
# type "wasapi"
# name "My WASAPI output"
## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional
# or
## device "0" # optional
## Exclusive mode blocks all other audio source, and get best audio quality without resampling.
## exclusive "no" # optional
## Enumerate all devices in log.
## enumerate "no" # optional
#}
#
# An example of an openal output.
#
#audio_output {
# type "openal"
# name "My OpenAL output"
## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional
#}
#
# An example of an sndio output.
#
#audio_output {
# type "sndio"
# name "sndio output"
# mixer_type "hardware"
#}
#
# An example of an OS X output:
#
#audio_output {
# type "osx"
# name "My OS X Device"
## device "Built-in Output" # optional
## channel_map "-1,-1,0,1" # optional
#}
#
## Example "pipe" output:
#
#audio_output {
# type "pipe"
# name "my pipe"
# command "aplay -f cd 2>/dev/null"
## Or if you're want to use AudioCompress
# command "AudioCompress -m | aplay -f cd 2>/dev/null"
## Or to send raw PCM stream through PCM:
# command "nc example.org 8765"
# format "44100:16:2"
#}
#
## An example of a null output (for no audio output):
#
#audio_output {
# type "null"
# name "My Null Output"
# mixer_type "none" # optional
#}
#
###############################################################################
# Normalization automatic volume adjustments ##################################
#
# This setting specifies the type of ReplayGain to use. This setting can have
# the argument "off", "album", "track" or "auto". "auto" is a special mode that
# chooses between "track" and "album" depending on the current state of
# random playback. If random playback is enabled then "track" mode is used.
# See <https://wiki.hydrogenaud.io/index.php?title=Replaygain> for
# more details about ReplayGain.
# This setting is off by default.
#
#replaygain "album"
#
# This setting sets the pre-amp used for files that have ReplayGain tags. By
# default this setting is disabled.
#
#replaygain_preamp "0"
#
# This setting sets the pre-amp used for files that do NOT have ReplayGain tags.
# By default this setting is disabled.
#
#replaygain_missing_preamp "0"
#
# This setting enables or disables ReplayGain limiting.
# MPD calculates actual amplification based on the ReplayGain tags
# and replaygain_preamp / replaygain_missing_preamp setting.
# If replaygain_limit is enabled MPD will never amplify audio signal
# above its original level. If replaygain_limit is disabled such amplification
# might occur. By default this setting is enabled.
#
#replaygain_limit "yes"
#
# This setting enables on-the-fly normalization volume adjustment. This will
# result in the volume of all playing audio to be adjusted so the output has
# equal "loudness". This setting is disabled by default.
#
#volume_normalization "no"
#
###############################################################################
# Character Encoding ##########################################################
#
# If file or directory names do not display correctly for your locale then you
# may need to modify this setting.
#
#filesystem_charset "UTF-8"
#
###############################################################################

8
.config/ncmpcpp/config Normal file
View File

@ -0,0 +1,8 @@
# Connect to MPD running on specified host/unix socket. When HOST starts with a '/', it is assumed to be a unix socket. Note: MPD_HOST environment variable overrides this setting.
mpd_host = $HOME/.config/mpd/socket
# Connect to MPD on the specified port. Note: MPD_PORT environment variable overrides this setting.
#mpd_port = PORT
# Search for files in specified directory. This is needed for tag editor to work.
mpd_music_dir = $HOME/Music

157
.config/nvim/init.lua Normal file
View File

@ -0,0 +1,157 @@
--[[ init.lua ]]
-- LEADER
-- These keybindings need to be defined before the first /
-- is called; otherwise, it will default to "\"
vim.g.mapleader = "\\"
vim.g.localleader = "\\"
-- IMPORTS
require('vars') -- Variables
require('opts') -- Options
require('keys') -- Keymaps
require('auto') -- Automaps
require('plug') -- Plugins
-- nvim-tree
require("nvim-tree").setup({
sort_by = "case_sensitive",
view = {
adaptive_size = true,
mappings = {
list = {
{ key = "u", action = "dir_up" },
},
},
},
renderer = {
group_empty = true,
},
filters = {
dotfiles = true,
custom = { "^.git$" },
},
})
-- mason
require("mason").setup()
-- lspconfig
require('lspconfig')['pyright'].setup {
on_attach = on_attach,
flags = lsp_flags,
}
require('lspconfig')['ansiblels'].setup{}
require('lspconfig')['bashls'].setup{}
require('lspconfig')['sumneko_lua'].setup{
settings = {
Lua = {
diagnostics = {
globals = { 'vim', 'on_attach', 'lsp_flags'}
}
}
}
}
require('lspconfig')['yamlls'].setup{
settings = {
yaml = {
customTags = { '!vault'}
}
}
}
require('lspconfig')['intelephense'].setup{}
require('lspconfig')['grammarly'].setup{}
require('lspconfig')['terraformls'].setup{}
-- Completion Plugin Setup
local cmp = require'cmp'
cmp.setup({
-- Enable LSP snippets
snippet = {
expand = function(args)
vim.fn["vsnip#anonymous"](args.body)
end,
},
mapping = {
['<C-p>'] = cmp.mapping.select_prev_item(),
['<C-n>'] = cmp.mapping.select_next_item(),
-- Add tab support
['<S-Tab>'] = cmp.mapping.select_prev_item(),
['<Tab>'] = cmp.mapping.select_next_item(),
['<C-S-f>'] = cmp.mapping.scroll_docs(-4),
['<C-f>'] = cmp.mapping.scroll_docs(4),
['<C-Space>'] = cmp.mapping.complete(),
['<C-e>'] = cmp.mapping.close(),
['<CR>'] = cmp.mapping.confirm({
behavior = cmp.ConfirmBehavior.Insert,
select = true,
})
},
-- Installed sources:
sources = {
{ name = 'path' }, -- file paths
{ name = 'nvim_lsp', keyword_length = 3 }, -- from language server
{ name = 'nvim_lsp_signature_help'}, -- display function signatures with current parameter emphasized
{ name = 'nvim_lua', keyword_length = 2}, -- complete neovim's Lua runtime API such vim.lsp.*
{ name = 'buffer', keyword_length = 2 }, -- source current buffer
{ name = 'vsnip', keyword_length = 2 }, -- nvim-cmp source for vim-vsnip
{ name = 'calc'}, -- source for math calculation
},
window = {
completion = cmp.config.window.bordered(),
documentation = cmp.config.window.bordered(),
},
formatting = {
fields = {'menu', 'abbr', 'kind'},
format = function(entry, item)
local menu_icon ={
nvim_lsp = 'λ',
vsnip = '',
buffer = 'Ω',
path = '🖫',
}
item.menu = menu_icon[entry.source.name]
return item
end,
},
})
-- treesitter
require('nvim-treesitter.configs').setup {
ensure_installed = { "lua", "toml", "python", "bash", "yaml" },
auto_install = true,
highlight = {
enable = true,
additional_vim_regex_highlighting=false,
},
ident = { enable = true },
rainbow = {
enable = true,
extended_mode = true,
max_file_lines = nil,
}
}
-- fterm
require'FTerm'.setup({
auto_close = true,
border = 'double',
dimensions = {
height = 0.7,
width = 0.7,
},
})
-- autopairs
require('nvim-autopairs').setup{} -- Add this line
-- lualine
require('lualine').setup {
options = {
theme = 'onedark',
icons_enabled = true,
}
}
-- onedark
require('onedark').load()

View File

@ -0,0 +1,9 @@
--[[ auto.lua ]]
-- run PackerInstall when plugins file saved
vim.cmd([[
augroup packer_user_config
autocmd!
autocmd BufWritePost plug.lua source <afile> | PackerInstall
augroup end
]])

49
.config/nvim/lua/keys.lua Normal file
View File

@ -0,0 +1,49 @@
--[[ keys.lua ]]
--
-- This function takes in four parameters:
--
-- mode: the mode you want the key bind to apply to (e.g., insert mode, normal mode, command mode, visual mode).
-- sequence: the sequence of keys to press.
-- command: the command you want the keypresses to execute.
-- options: an optional Lua table of options to configure (e.g., silent or noremap).
local map = vim.api.nvim_set_keymap
-- remap the key used to leave insert mode
map('i', 'jk', '', {})
-- movement mappings
map('', '<C-t><up>', 'tabr<cr>', {})
map('', '<C-t><down>', 'tabl<cr>', {})
map('', '<C-t><left>', 'tabp<cr>', {})
map('', '<C-t><right>', 'tabn<cr>', {})
-- swap between split windows
map('n', '<A-Up>', ':wincmd k<CR>', {})
map('n', '<A-Down>', ':wincmd j<CR>', {})
map('n', '<A-Left>', ':wincmd h<CR>', {})
map('n', '<A-Right>', ':wincmd l<CR>', {})
-- rewrite tabs to spaces
map('' ,'<F2>' ,'%retab!' , {})
-- press 'enter' after searching to clear highlighting until the next search
map('n', '<CR>', ':noh<CR><CR>', {noremap = true})
-- copy/paste between vim instances
map('v' ,'<leader>y' ,':w! ~/.cache/nvim/vitmp<CR>' , {})
map('n' ,'<leader>p' ,':r ~/.cache/nvim/vitmp<CR>' , {})
-- save as sudo
map('c', 'w!!', ':w !sudo tee > /dev/null %', {})
-- quickly edit/reload this configuration file
map('n', 'gev', ':e $MYVIMRC<CR>', {noremap = true})
map('n', 'gsv', ':so $MYVIMRC<CR>', {noremap = true})
-- plugin mappings
map('', '<C-n>', ':NvimTreeToggle<CR>', {})
map('n', 'l', ':IndentLinesToggle<CR>', {})
map('n', 't', ':TagbarToggle<CR>', {})
map('n', 'ff', [[:Telescope find_files]], {})
map('n', 'T', ':lua require("FTerm").toggle()<CR>', {})

104
.config/nvim/lua/opts.lua Normal file
View File

@ -0,0 +1,104 @@
--[[ opts.lua ]]
-- vim.o: maps to vim.api.nvim_set_option; equivalent to :set.
-- vim.go: maps to vim.api.nvim_set_option; equivalent to :setglobal.
-- vim.bo; maps to vim.api.nvim_buf_set_option; equivalent to :setlocal for buffer options.
-- vim.wo: maps to vim.api.nvim_win_set_option; equivalent to :setlocal for window options.
local opt = vim.opt
local optg = vim.go
local optb = vim.bo
local optw = vim.wo
local cmd = vim.api.nvim_command
-- [[ Context ]]
-- opt.colorcolumn = '80' -- str: Show col for max line length
opt.number = true -- bool: Show line numbers
opt.relativenumber = false -- bool: Show relative line numbers
opt.scrolloff = 4 -- int: Min num lines of context
opt.signcolumn = "yes" -- str: Show the sign column
opt.cursorline = true -- bool: highlight current line
opt.cursorcolumn = true -- boot: highlight current column
-- [[ Filetypes ]]
opt.encoding = 'utf8' -- str: String encoding to use
opt.fileencoding = 'utf8' -- str: File encoding to use
-- [[ Theme ]]
opt.syntax = "ON" -- str: Allow syntax highlighting
opt.termguicolors = true -- bool: If term supports ui color then enable
cmd('colorscheme onedark') -- cmd: Set the colorscheme
-- [[ Search ]]
opt.ignorecase = true -- bool: Ignore case in search patterns
opt.smartcase = true -- bool: Override ignorecase if search contains capitals
opt.incsearch = true -- bool: Use incremental search
opt.hlsearch = true -- bool: Highlight search matches
-- [[ Whitespace ]]
opt.expandtab = true -- bool: Use spaces instead of tabs
opt.shiftwidth = 2 -- num: Size of an indent
opt.softtabstop = 2 -- num: Number of spaces tabs count for in insert mode
opt.tabstop = 2 -- num: Number of spaces tabs count for
opt.autoindent = true -- bool: enable auto-indent
opt.foldmethod = "indent"
opt.foldlevel = 99
-- [[ Splits ]]
opt.splitright = true -- bool: Place new window to right of current one
opt.splitbelow = true -- bool: Place new window below the current one
-- [[ Other ]]
opt.ruler = true
opt.complete = 'i'
opt.laststatus = 2 -- num: show status line
opt.autoindent = true -- bool: enable auto-indent
opt.backspace = "indent,eol,start" -- str: backspace through anything in insert mode
opt.wildmenu = true
opt.maxmempattern = 5000 -- num: increase memory used for pattern matching
opt.modelines = 5
-- highlighting
vim.cmd[[highlight Search ctermbg=LightYellow]]
vim.cmd[[highlight Search ctermfg=Red]]
vim.cmd[[highlight BadWhitespace ctermbg=red guibg=darkred]]
--Set completeopt to have a better completion experience
-- :help completeopt
-- menuone: popup even when there's only one match
-- noinsert: Do not insert text until a selection is made
-- noselect: Do not select, force to select one from the menu
-- shortness: avoid showing extra messages when using completion
-- updatetime: set updatetime for CursorHold
opt.completeopt = {'menuone', 'noselect', 'noinsert'}
opt.shortmess = vim.opt.shortmess + { c = true}
vim.api.nvim_set_option('updatetime', 300)
-- Fixed column for diagnostics to appear
-- Show autodiagnostic popup on cursor hover_range
-- Goto previous / next diagnostic warning / error
-- Show inlay_hints more frequently
vim.cmd([[
set signcolumn=yes
autocmd CursorHold * lua vim.diagnostic.open_float(nil, { focusable = false })
]])
-- configure fterm
vim.api.nvim_create_user_command('FTermOpen', require('FTerm').open, { bang = true })
vim.api.nvim_create_user_command('FTermClose', require('FTerm').close, { bang = true })
vim.api.nvim_create_user_command('FTermExit', require('FTerm').exit, { bang = true })
vim.api.nvim_create_user_command('FTermToggle', require('FTerm').toggle, { bang = true })
local fterm = require("FTerm")
local gitui = fterm:new({
ft = 'fterm_gitui',
cmd = "gitui",
dimensions = {
height = 0.9,
width = 0.9
}
})
-- Use this to toggle gitui in a floating terminal
vim.keymap.set('n', '<A-g>', function()
gitui:toggle()
end)

62
.config/nvim/lua/plug.lua Normal file
View File

@ -0,0 +1,62 @@
--[[ plug.lua ]]
return require('packer').startup(function(use)
-- Packer can manage itself
use 'wbthomason/packer.nvim'
-- nvim-tree
use {'kyazdani42/nvim-tree.lua',
requires = {
'kyazdani42/nvim-web-devicons',
},
tag = 'nightly'
}
-- mason
use 'williamboman/mason.nvim'
use 'williamboman/mason-lspconfig.nvim'
use 'neovim/nvim-lspconfig'
-- treesitter
use 'nvim-treesitter/nvim-treesitter'
-- Completion framework:
use 'hrsh7th/nvim-cmp'
-- LSP completion source:
use 'hrsh7th/cmp-nvim-lsp'
-- Useful completion sources:
use 'hrsh7th/cmp-nvim-lua'
use 'hrsh7th/cmp-nvim-lsp-signature-help'
use 'hrsh7th/cmp-vsnip'
use 'hrsh7th/cmp-path'
use 'hrsh7th/cmp-buffer'
use 'hrsh7th/vim-vsnip'
-- telescope
use {
'nvim-telescope/telescope.nvim', -- fuzzy finder
requires = { {'nvim-lua/plenary.nvim'} }
}
-- quality-addons
use { 'majutsushi/tagbar' } -- code structure
use { 'Yggdroot/indentLine' } -- see indentation
use { 'tpope/vim-fugitive' } -- git integration
use { 'junegunn/gv.vim' } -- commit history
use { 'windwp/nvim-autopairs' } -- auto close brackets, etc.
use { 'numToStr/FTerm.nvim' } -- floating terminal
-- theme
use { 'mhinz/vim-startify' } -- start screen
use { 'DanilaMihailov/beacon.nvim' } -- cursor jump
use {
'nvim-lualine/lualine.nvim', -- statusline
requires = {'kyazdani42/nvim-web-devicons',
opt = true}
}
use { 'navarasu/onedark.nvim' }
end)

View File

@ -0,0 +1,9 @@
--[[ vars.lua ]]
local g = vim.g
g.t_co = 256
g.background = "dark"
-- Update the packpath
local packer_path = vim.fn.stdpath('config') .. '/site'
vim.o.packpath = vim.o.packpath .. ',' .. packer_path

@ -0,0 +1 @@
Subproject commit 3a9f9801f683946b9f1047d8f4bf9946c29e927d

1
.config/ohmyzsh Submodule

@ -0,0 +1 @@
Subproject commit 18e7e5d0339f3491a6c0324e2443415309b56173

84
.config/shell/aliases Normal file
View File

@ -0,0 +1,84 @@
# vim: set filetype=zsh
alias dos2unix='sed "s/$//"'
alias tmux='tmux -2'
# list command
if command -v exa >/dev/null 2>&1; then
alias ls='exa'
else
alias ls='ls --color=auto'
fi
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
alias ll='\ls -lh'
alias lla='\ls -lha'
alias lt='\ls --color=auto -lhFart'
if command -v lsd >/dev/null 2>&1; then
alias ls='lsd'
alias ll='lsd -l'
alias lla='lsd -la'
fi
# editor
if command -v vim >/dev/null 2>&1; then
alias vi='vim'
fi
if command -v nvim >/dev/null 2>&1; then
alias vim='nvim'
alias vi='nvim'
fi
alias purevim='vim -u NONE'
# tmux
if [[ -n $TMUX ]]; then
alias fzf='fzf-tmux'
fi
# ansible
alias restart-bind='cd ~/src/ansible-playbooks-prod; ansible-playbook -i inventory.yaml restart-bind.yml'
alias update-bind='cd ~/src/ansible-playbooks-prod; ansible-playbook -i inventory.yaml site-setup.yml -l proddns01 -t bind'
alias update-squid='cd ~/src/ansible-playbooks-prod; ansible-playbook -i inventory.yaml site-setup.yml -l prodinf02 -t squid'
alias update-certbot='cd ~/src/ansible-playbooks-prod; ansible-playbook -i inventory.yaml site-setup.yml -l prodinf01 -t certbot'
alias update-haproxy='cd ~/src/ansible-playbooks-prod; ansible-playbook -i inventory.yaml site-setup.yml -l prodhlb -t haproxy'
alias update-firewalls='cd ~/src/ansible-playbooks-prod; ansible-playbook -i inventory.yaml site-setup.yml -t firewall'
alias run-envpatching='cd ~/src/ansible-playbooks-prod; ansible-playbook -i inventory.yaml update-hosts.yml'
alias run-envreboot='cd ~/src/ansible-playbooks-prod; ansible-playbook -i inventory.yaml restart-hosts.yml'
# configs
alias zshconfig="$EDITOR ~/.zshrc"
alias i3config="$EDITOR ~/.config/i3/config"
alias sshconfig="$EDITOR ~/.ssh/config"
alias edithosts="sudoedit /etc/hosts"
alias vimrc="cd ~/.config/nvim/; $EDITOR"
# fix commands
alias ipcalc='~/.local/bin/ipcalc -n'
alias mpv="mpv -hwdec=vdpau"
alias ifstat="/usr/bin/ifstat"
alias snapper="sudo /usr/bin/snapper"
alias ap="~/.local/bin/ansible-playbook"
# LVM
alias lvs='sudo lvs'
alias vgs='sudo vgs'
alias pvs='sudo pvs'
alias lvcreate='sudo lvcreate'
alias lvresize='sudo lvresize'
# BTRFS
alias snapshot_home="sudo btrfs subvol snapshot /mnt/btrfsroot/home /.snaps/home@$(date '+%Y-%m-%d_%H-%M-%S')"
alias snapshot_rootfs="sudo btrfs subvol snapshot /mnt/btrfsroot/rootfs /.snaps/rootfs@$(date '+%Y-%m-%d_%H-%M-%S')"
# youtube-dl
alias soundcloud-dl='youtube-dlc --extract-audio --audio-format vorbis --audio-quality 2'
alias ytdl-playlist='youtube-dlc --ignore-errors --extract-audio --audio-format vorbis --format bestaudio --audio-quality 160K --output "%(title)s.%(ext)s" --yes-playlist'
# python web server
alias websvr='python3 -m http.server 8000'
# powershell
alias powershell='pwsh'

50
.config/shell/common Normal file
View File

@ -0,0 +1,50 @@
# vim: set filetype=zsh
# Set pager
export PAGER='less'
# Preferred editor for local and remote sessions
if [[ -n $SSH_CONNECTION ]]; then
export EDITOR='nvim'
else
export EDITOR='nvim'
fi
# Ansible Settings
export ANSIBLE_NOCOWS=1
export ANSIBLE_VAULT_PASSWORD_FILE=$HOME/.local/bin/ansible-vault-pass-client
# set MPD host
export MPD_HOST="$HOME/.config/mpd/socket"
# pass passwordstore
PASSWORD_STORE_DIR=$HOME/.config/password-store
PASSWORD_STORE_KEY=$HOME/.config/password-store/.gpg-id
# unzip to directory of same name, minus .zip
unzipd () {
zipfile="$1"
zipdir=${1%.zip}
unzip -d "$zipdir" "$zipfile"
}
zshreload () {
source ~/.zshrc
}
winget () {
wget $1 --header="User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.122 Safari/537.36"
}
myip () {curl https://ipinfo.io/ip}
removespaces () {
mv "$1" `echo $1 | tr ' ' '_'`
}
pdf () {xpdf $1 &}
# download youtube playlist to create batchfile
# $1 is the playlist
ytpl-export () {yt-dlp -j --flat-playlist "$1" | jq -r '.id' | sed 's_^_https://youtu.be/_'}

0
.config/yadm/config Normal file
View File

61
.gitconfig Normal file
View File

@ -0,0 +1,61 @@
# vim: set sw=2 sts=2 ts=2 noexpandtab :
[color]
ui = auto
branch = auto
diff = auto
grep = auto
interactive = auto
status = auto
[user]
email = ben@unkin.net
name = Ben Vincent
[core]
autocrlf = false
excludesfile = ~/.config/git/global_ignore
whitespace = blank-at-eol,blank-at-eof,space-before-tab
[init]
defaultBranch = master
[push]
default = simple
[rerere]
enabled = true
autoupdate = true
[rebase]
# Automatically stash before a rebase and unstash afterwards.
autoStash = true
[commit]
# Show diff when preparing commit message
verbose = true
template = ~/.config/git/gitmessage
###
### Github specific
###
[github]
user = neoloc
# read from given uri
# push to writable one
# http://bit.ly/g9c9Y2
#
[url "http://github.com/"]
insteadOf = "gh:"
[url "git@github.com:"]
pushInsteadOf = "https://github.com/"
pushInsteadOf = "http://github.com/"
pushInsteadOf = "gh:"
[credential]
helper = store
[pack]
threads = 2

9
.gitmodules vendored Normal file
View File

@ -0,0 +1,9 @@
[submodule ".config/nvim/site/pack/packer/start/packer.nvim"]
path = .config/nvim/site/pack/packer/start/packer.nvim
url = https://github.com/wbthomason/packer.nvim
[submodule ".password-store"]
path = .password-store
url = https://git.unkin.net/unkinben/pass.git
[submodule ".config/ohmyzsh"]
path = .config/ohmyzsh
url = https://github.com/ohmyzsh/ohmyzsh.git

BIN
.local/share/yadm/archive Normal file

Binary file not shown.

1
.password-store Symbolic link
View File

@ -0,0 +1 @@
/home/ben/.config/password-store

158
.zshrc Normal file
View File

@ -0,0 +1,158 @@
# If you come from bash you might have to change your $PATH.
export PATH=$HOME/.local/bin:$HOME/.cargo/bin:$PATH
# set term
export TERM=xterm-256color
# Path to your oh-my-zsh installation.
export ZSH="/home/$(whoami)/.config/ohmyzsh"
# Set name of the theme to load --- if set to "random", it will
# load a random theme each time oh-my-zsh is loaded, in which case,
# to know which specific one was loaded, run: echo $RANDOM_THEME
# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
ZSH_THEME="fishy"
# Set list of themes to pick from when loading at random
# Setting this variable when ZSH_THEME=random will cause zsh to load
# a theme from this variable instead of looking in $ZSH/themes/
# If set to an empty array, this variable will have no effect.
# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" )
# Uncomment the following line to use case-sensitive completion.
# CASE_SENSITIVE="true"
# Uncomment the following line to use hyphen-insensitive completion.
# Case-sensitive completion must be off. _ and - will be interchangeable.
# HYPHEN_INSENSITIVE="true"
# Uncomment the following line to disable bi-weekly auto-update checks.
# DISABLE_AUTO_UPDATE="true"
# Uncomment the following line to automatically update without prompting.
DISABLE_UPDATE_PROMPT="true"
# Uncomment the following line to change how often to auto-update (in days).
export UPDATE_ZSH_DAYS=13
# Uncomment the following line if pasting URLs and other text is messed up.
# DISABLE_MAGIC_FUNCTIONS="true"
# Uncomment the following line to disable colors in ls.
# DISABLE_LS_COLORS="true"
# Uncomment the following line to disable auto-setting terminal title.
# DISABLE_AUTO_TITLE="true"
# Uncomment the following line to enable command auto-correction.
# ENABLE_CORRECTION="true"
# Uncomment the following line to display red dots whilst waiting for completion.
# Caution: this setting can cause issues with multiline prompts (zsh 5.7.1 and newer seem to work)
# See https://github.com/ohmyzsh/ohmyzsh/issues/5765
# COMPLETION_WAITING_DOTS="true"
# Uncomment the following line if you want to disable marking untracked files
# under VCS as dirty. This makes repository status check for large repositories
# much, much faster.
# DISABLE_UNTRACKED_FILES_DIRTY="true"
# Uncomment the following line if you want to change the command execution time
# stamp shown in the history command output.
# You can set one of the optional three formats:
# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
# or set a custom format using the strftime function format specifications,
# see 'man strftime' for details.
# HIST_STAMPS="mm/dd/yyyy"
# Would you like to use another custom folder than $ZSH/custom?
# ZSH_CUSTOM=/path/to/new-custom-folder
# Which plugins would you like to load?
# Standard plugins can be found in $ZSH/plugins/
# Custom plugins may be added to $ZSH_CUSTOM/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
plugins=(git dnf nmap pass rsync tmux poetry)
source $ZSH/oh-my-zsh.sh
# User configuration
# export MANPATH="/usr/local/man:$MANPATH"
# You may need to manually set your language environment
# export LANG=en_US.UTF-8
# Preferred editor for local and remote sessions
# if [[ -n $SSH_CONNECTION ]]; then
# export EDITOR='vim'
# else
# export EDITOR='mvim'
# fi
# Compilation flags
# export ARCHFLAGS="-arch x86_64"
# Set personal aliases, overriding those provided by oh-my-zsh libs,
# plugins, and themes. Aliases can be placed here, though oh-my-zsh
# users are encouraged to define aliases within the ZSH_CUSTOM folder.
# For a full list of active aliases, run `alias`.
#
# Example aliases
# alias zshconfig="mate ~/.zshrc"
# alias ohmyzsh="mate ~/.oh-my-zsh"
HIST_STAMPS="yyyy-mm-dd"
SAVEHIST=10000 # Number of entries
HISTSIZE=10000
HISTFILE=~/.zsh_history # Where the history is stored
setopt APPEND_HISTORY # Don't erase history
setopt EXTENDED_HISTORY # Add additional data to history like timestamp
setopt INC_APPEND_HISTORY # Add immediately
setopt HIST_FIND_NO_DUPS # Don't show duplicates in search
setopt HIST_IGNORE_SPACE # Don't preserve spaces. You may want to turn it off
setopt NO_HIST_BEEP # Don't beep
setopt SHARE_HISTORY # Share history between session/terminals
# set fpath
fpath=(~/.zsh/completion $fpath)
# load the OMZ config
source $ZSH/oh-my-zsh.sh
# User configuration
# export MANPATH="/usr/local/man:$MANPATH"
# passes the unexpanded glob to the app if it doesnt match (the 'bash ' way of doing things with rsync/scp)
setopt nonomatch
# You may need to manually set your language environment
export LANG=en_AU.UTF-8
# set XDG_ vars
export XDG_CONFIG_HOME="$HOME/.config"
export XDG_RUNTIME_DIR=/run/user/$(id -u $(whoami))
# load ssh-agent
eval $(systemctl --user show-environment | grep SSH_AUTH_SOCK)
export SSH_AUTH_SOCK
# gpg-agent
#GPG_TTY=$(tty)
#export GPG_TTY
# Compilation flags
# export ARCHFLAGS="-arch x86_64"
# ssh
# export SSH_KEY_PATH="~/.ssh/rsa_id"
# Set personal aliases, overriding those provided by oh-my-zsh libs,
# plugins, and themes. Aliases can be placed here, though oh-my-zsh
# users are encouraged to define aliases within the ZSH_CUSTOM folder.
# For a full list of active aliases, run `alias`.
# load shell settings
test -r $XDG_CONFIG_HOME/shell/common && source $XDG_CONFIG_HOME/shell/common
test -r $XDG_CONFIG_HOME/shell/aliases && source $XDG_CONFIG_HOME/shell/aliases