initial commit

This commit is contained in:
Peter Harpending
2026-09-19 17:54:35 -07:00
commit 4f10754ec0
9 changed files with 767 additions and 0 deletions
+3
View File
@@ -0,0 +1,3 @@
vim/
*.swp
*.swo
+115
View File
@@ -0,0 +1,115 @@
# about
This is an "rsync repo tracked with git" for my dotfiles; see
"context" section at the end for more detail.
It essentially contains the minimal set of deviations from "Devuan
with LXDE" defaults that I require in order to not find the computer
to be an active hindrance to my productivity:
# new system config
## devuan
- SSH config:
- copy `id_rsa.pub` from laptop
- edit `/etc/ssh/sshd_config` to sane defaults
- in particular:
1. disable root login
2. disable password login
- sudo: add `pharpend` to `sudo` group:
# apt install sudo
# usermod -aG pharpend sudo
- firefox:
% sudo apt install firefox
- rsync firefox passwords
- add to firefox
- dotfiles:
% sudo apt install git
% mkdir ~/gho
% cd ~/gho
% git clone https://git.harpending.org/pharpend/dotfiles-ii.git
- tmux:
% sudo apt install tmux
% cp ~/gho/dotfiles-ii/tmux.conf ~/.tmux.conf
- zsh:
% sudo apt install zsh zsh-syntax-highlighting
% cp ~/gho/dotfiles-ii/zshrc ~/.zshrc
% chsh -s /usr/bin/zsh
- vim:
## freebsd
- copy `id_rsa.pub`
- enable ssh sysadmin:
# pw groupmod wheel -m pharpend
- basic shell utilities
# pkg install tmux zsh vim rsync git lynx tree bash
- basic graphical environment
# pkg install \
xorg i3 terminator rxvt-unicode dmenu \
liberation-fonts-ttf pulseaudio parcellite dunst \
nitrogen redshift firefox-esr fantasque-sans-mono \
emacs pcmanfm pavucontrol spectacle plasma6-spectacle \
scrot vlc viewnior gthumb \
linux-brave
chromium
iridium
- Erlang/zx
# pkg install \
erlang erlang-wx
# context
- I set up new machines pretty frequently
- This has endowed me with a strong preference for low-maintenance
operating systems with sane defaults
- The idea here is to have the "minimal" set of dotfiles where I can
clone this repo and just copy everything to its location on the new
machine
- I have found that the system of directly symlinking my dotfiles
from the git repo to the local machine is more trouble than it's
worth, due to high volume of per-machine diffs.
- e.g. laptop needs battery charge info in i3status bar config,
desktop machine doesn't; there's a million little things like that
that differ from one machine to another
- like i said, this is the set of things that despite my best efforts
- In the past I used Gentoo and Arch Linux and and and and...
- That was fun and fulfilling when I was 17 and I had no serious
responsibilities in my life.
- to be clear, the "I use Arch BTW" phase was an extremely valuable
period in which I learned the skills on which I now rely on a day
to day basis.
- However I'm now in my 30s, and, for better or for worse, I have
aged out of finding Arch Linux interesting.
- I just can't bring myself to care about the operating system for
its own sake any more.
- I have converged on "Devuan for everything" because it annoys me
the least
- In the past it was "Ubuntu for everything" but replacing the GNU
coreutils with the Rust coreutils (why?) was the straw that broke
the camel's back for me.
- I don't know why systemd or snaps weren't that straw
+22
View File
@@ -0,0 +1,22 @@
[global_config]
[keybindings]
[profiles]
[[default]]
background_color = "#1e1f28"
background_darkness = 0.95
cursor_blink = False
font = Fantasque Sans Mono 12
foreground_color = "#f8f8f2"
show_titlebar = False
scrollbar_position = hidden
palette = "#000000:#ff5555:#50fa7b:#f1fa8c:#bd93f9:#ff79c6:#8be9fd:#bbbbbb:#555555:#ff5555:#50fa7b:#f1fa8c:#bd93f9:#ff79c6:#8be9fd:#ffffff"
use_system_font = False
[layouts]
[[default]]
[[[window0]]]
type = Window
parent = ""
[[[child1]]]
type = Terminal
parent = window0
[plugins]
+22
View File
@@ -0,0 +1,22 @@
[global_config]
[keybindings]
[profiles]
[[default]]
background_color = "#ffffff"
background_darkness = 0.95
cursor_blink = False
font = Fantasque Sans Mono 12
foreground_color = "#000000"
show_titlebar = False
scrollbar_position = hidden
palette = "#000000:#aa0000:#00aa00:#aa5500:#0000aa:#aa00aa:#00aaaa:#aaaaaa:#555555:#ff5555:#55ff55:#ffff55:#5555ff:#ff55ff:#55ffff:#ffffff"
use_system_font = False
[layouts]
[[default]]
[[[window0]]]
type = Window
parent = ""
[[[child1]]]
type = Terminal
parent = window0
[plugins]
+286
View File
@@ -0,0 +1,286 @@
# This file has been auto-generated by i2-config-wizard(1).
# It will not be overwritten, so edit it as you like.
# Should you change your keyboard layout somewhen, delete
# this file and re-run i3-config-wizard(1).
#
# i3 config file (v4)
#
# Please see http://i3wm.org/docs/userguide.html for a complete reference!
set $mod Mod4
# Font for window titles. Will also be used by the bar unless a different font
# is used in the bar {} block below. ISO 10646 = Unicode
# font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
# The font above is very space-efficient, that is, it looks good, sharp and
# clear in small sizes. However, if you need a lot of unicode glyphs or
# right-to-left text rendering, you should instead use pango for rendering and
# chose a FreeType font, such as:
#font pango: Monospace 10
#font pango: Ubuntu Mono 11
#font pango: Terminus 12
#font pango: Liberation Mono 9
font pango: Liberation Mono 9
#font pango: JetBrains Mono 9
#font pango: Noto Sans Mono 10
#font pango: Roboto Mono 12
#font pango: Hack 10
#font pango: Fantasque Sans Mono 10
#font pango: Input Mono 10
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
# start a terminal
#bindsym $mod+Return exec urxvt
#bindsym $mod+Shift+Return exec terminator
bindsym $mod+Return exec terminator
bindsym $mod+Shift+Return exec urxvt
#bindsym $mod+Return exec konsole
#bindsym $mod+Return exec terminator
#bindsym $mod+Return exec xfce4-terminal
#bindsym $mod+Shift+Return exec urxvt
# kill focused window
bindsym $mod+n kill
# start dmenu (a program launcher)
bindsym $mod+q exec dmenu_run
# It will not be overwritten, so edit it as you like.
#
# Should you change your keyboard layout somewhen, delete
# this file and re-run i3-config-wizard(1).
#
# There also is the (new) i3-dmenu-desktop which only displays applications
# shipping a .desktop file. It is a wrapper around dmenu, so you need that
# installed.
# bindsym $mod+d exec --no-startup-id i3-dmenu-desktop
# change focus
bindsym $mod+h focus left
bindsym $mod+j focus down
bindsym $mod+k focus up
bindsym $mod+l focus right
# alternatively, you can use the cursor keys:
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+h move left
bindsym $mod+Shift+j move down
bindsym $mod+Shift+k move up
bindsym $mod+Shift+l move right
# alternatively, you can use the cursor keys:
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+semicolon split h
# split in vertical orientation
bindsym $mod+p split v
# change container layout (stacked, tabbed, toggle split)
bindsym $mod+d layout stacking
bindsym $mod+f layout tabbed
bindsym $mod+space layout toggle split
# toggle tiling / floating
bindsym $mod+Shift+space floating toggle
# focus the parent container
bindsym $mod+a focus parent
# switch to workspace
bindsym $mod+1 workspace 1
bindsym $mod+2 workspace 2
bindsym $mod+3 workspace 3
bindsym $mod+4 workspace 4
bindsym $mod+5 workspace 5
bindsym $mod+6 workspace 6
bindsym $mod+7 workspace 7
bindsym $mod+8 workspace 8
bindsym $mod+9 workspace 9
bindsym $mod+0 workspace 10
# move focused container to workspace
bindsym $mod+Shift+1 move container to workspace 1
bindsym $mod+Shift+2 move container to workspace 2
bindsym $mod+Shift+3 move container to workspace 3
bindsym $mod+Shift+4 move container to workspace 4
bindsym $mod+Shift+5 move container to workspace 5
bindsym $mod+Shift+6 move container to workspace 6
bindsym $mod+Shift+7 move container to workspace 7
bindsym $mod+Shift+8 move container to workspace 8
bindsym $mod+Shift+9 move container to workspace 9
bindsym $mod+Shift+0 move container to workspace 10
bindsym $mod+i workspace prev
bindsym $mod+o workspace next
bindsym $mod+Shift+i move container to workspace prev
bindsym $mod+Shift+o move container to workspace next
# Scratchpad stuff
bindsym $mod+bracketleft scratchpad show
bindsym $mod+bracketright move scratchpad
# reload the configuration file
bindsym $mod+Shift+s 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+f 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'"
exec setxkbmap us -option terminate:ctrl_alt_bksp,compose:ralt,ctrl:nocaps
#exec setxkbmap us -variant colemak -option terminate:ctrl_alt_bksp,compose:ralt,ctrl:nocaps
# Application keybindings
bindsym Control+$mod+m exec emacs
bindsym Control+$mod+c exec chromium-browser
bindsym $mod+c exec firefox
#bindsym $mod+s exec thunderbird
# bindsym $mod+c exec brave-browser
bindsym $mod+e exec pcmanfm
bindsym $mod+r exec pavucontrol
# Resize windows
bindsym Control+$mod+h resize shrink width 75 px
bindsym Control+$mod+j resize grow height 75 px
bindsym Control+$mod+k resize shrink height 75 px
bindsym Control+$mod+l resize grow width 75 px
bindsym Control+$mod+Left resize shrink width 75 px
bindsym Control+$mod+Down resize grow height 75 px
bindsym Control+$mod+Up resize shrink height 75 px
bindsym Control+$mod+Right resize grow width 75 px
#bindsym Print exec scrot -e 'mv $f ~/Pictures/screenshots/'
bindsym Print exec spectacle --background --fullscreen
bindsym $mod+Print exec spectacle --background --activewindow
bindsym $mod+Shift+Print exec spectacle --background --region
# bindsym XF86AudioMute exec amixer set Master toggle
# bindsym XF86AudioLowerVolume exec amixer set Master 8%-
# bindsym XF86AudioRaiseVolume exec amixer set Master 8%+
# bindsym $mod+F10 exec amixer set Master toggle
# bindsym $mod+F11 exec amixer set Master 8%-
# bindsym $mod+F12 exec amixer set Master 8%+
bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle
bindsym $mod+F10 exec pactl set-sink-mute @DEFAULT_SINK@ toggle
bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -5%
bindsym $mod+F11 exec pactl set-sink-volume @DEFAULT_SINK@ -5%
bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5%
bindsym $mod+F12 exec pactl set-sink-volume @DEFAULT_SINK@ +5%
bindsym $mod+F7 exec mpc prev
bindsym $mod+F8 exec mpc toggle
bindsym $mod+F9 exec mpc next
# bindsym Shift+XF86MonBrightnessDown exec xbacklight -dec 1
# bindsym Shift+XF86MonBrightnessUp exec xbacklight -inc 1
# bindsym XF86MonBrightnessDown exec xbacklight -dec 5
# bindsym XF86MonBrightnessUp exec xbacklight -inc 5
bindsym XF86MonBrightnessDown exec $HOME/bin/kb-light.py -
bindsym XF86MonBrightnessUp exec $HOME/bin/kb-light.py +
# Autostarted applications
# exec deluge
exec blueman-applet
#exec dropbox start -i
exec guake
exec synapse
exec nm-applet
exec parcellite
exec ncmpcpp pause
# exec xfce4-power-manager
# Non-panel things
exec dunst
#exec emacs26 --daemon
exec --no-startup-id $HOME/.local/bin/i3-battery-popup
exec mpd
exec nitrogen --restore
exec redshift -l '43:-123'
# OLD: Disables moving the cursor using touchpad
#exec synclient TouchpadOff=1
# OLD: Disables tapping the touchpad for click
#exec xinput --disable 11
exec --no-startup-id xinput disable "SynPS/2 Synaptics TouchPad"
# higher = faster
exec --no-startup-id xinput set-prop 'TPPS/2 IBM TrackPoint' 'libinput Accel Speed' 0.6
#exec xscreensaver
## Solarized
## BorderFrame Border Title NextWindowGoesHere
##---------------------------------------------------------------------------------
#client.focused #268bd2 #268bd2 #fdf6e3 #93a1a1
#client.focused #f336a2 #f336a2 #fdf6e3 #93a1a1
#client.focused_inactive #002b36 #002b36 #d0d0d0 #93a1a1
#client.unfocused #002b36 #002b36 #d0d0d0 #93a1a1
#client.urgent #dc322f #dc322f #fdf6e3 #cb4b16
## Monokai
## BorderFrame Border Title NextWindowGoesHere
##---------------------------------------------------------------------------------
#client.focused #b3fc29 #b3fc49 #222222 #aaaaaa
#client.focused_inactive #222222 #222222 #dddddd #aaaaaa
#client.unfocused #222222 #222222 #dddddd #aaaaaa
#client.urgent #ee0000 #ee0000 #ffffff #aaaaaa
# Blue
# BorderFrame Border Title NextWindowGoesHere
#---------------------------------------------------------------------------------
client.focused #55ffff #55ffff #413101 #ff3399
client.focused_inactive #00cccc #005555 #dddddd #cc0000
client.unfocused #222222 #222222 #dddddd #cbbb92
client.urgent #ee0000 #ee0000 #ffffff #cbbb92
focus_follows_mouse no
# change normal to pixel for elimination of title bars
for_window [class="^.*"] border pixel 2
new_window 1pixel
#start of bar section
bar {
output eDP-1
tray_output eDP-1
position top
status_command i3status
colors {
# bar background color
#background $bg
# text color used for blocks that do not have a color specified.
#statusline $yellow
# bdr bg fg
#focused_workspace #0a0a0a #0a0a0a #0a0a0a
#inactive_workspace #0a0a0a #0a0a0a #0a0a0a
#active_workspace #1aAaCa #0a0a0a #0a0a0a
#urgent_workspace #EaEa0a #EaEa0a #0a0a0a
}
}
bar {
output HDMI-2
tray_output eDP-1
position top
status_command cat
colors {
# bar background color
#background $bg
# text color used for blocks that do not have a color specified.
#statusline $yellow
## workspaces section
## border backgr. text
#focused_workspace $aqua $aqua $darkgray
#inactive_workspace $darkgray $darkgray $yellow
#active_workspace $darkgray $darkgray $yellow
#urgent_workspace $red $red $bg
}
}
+65
View File
@@ -0,0 +1,65 @@
# 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
markup = "pango"
}
order += "wireless _first_"
order += "ethernet _first_"
order += "battery all"
order += "load"
order += "memory"
order += "tztime local"
order += "tztime utc"
order += "tztime jst"
wireless _first_ {
format_up = "W: %quality"
format_down = "W: down"
}
ethernet _first_ {
format_up = "E: %speed"
format_down = "E: down"
}
battery all {
format = "%status %percentage %remaining"
low_threshold = 20
threshold_type = percentage
}
load {
format = "LOAD: %1min"
}
memory {
format = "MEM: %used"
threshold_degraded = "20%"
threshold_critical = "10%"
}
tztime local {
# format = "%Z: %Y-%m-%d <span foreground='#c4f'>%H:%M:%S</span>"
format = "%Z: %Y-%m-%d <span foreground='#e7f'>%H:%M:%S</span>"
}
tztime utc {
format = "%Z: %Y-%m-%d <span foreground='#fe9'>%H:%M:%S</span>"
timezone = "UTC"
}
tztime jst {
format = "%Z: %Y-%m-%d <span foreground='#f51'>%H:%M:%S</span>"
timezone = "Asia/Tokyo"
}
+3
View File
@@ -0,0 +1,3 @@
unbind C-b
set-option -g prefix C-q
bind C-q send-prefix
+110
View File
@@ -0,0 +1,110 @@
syntax on
execute pathogen#infect()
"""""""" dark mode
set background=dark
"colorscheme odyssey
highlight CursorLine cterm=none ctermbg=23
highlight CursorLineNr cterm=bold ctermbg=23
highlight CursorColumn cterm=none ctermbg=23
highlight ColorColumn cterm=none ctermbg=23
" light mode
"set background=light
"colorscheme shirotelin
""highlight CursorLine cterm=none ctermbg=7
""highlight CursorLineNr cterm=bold ctermbg=7
""highlight CursorColumn cterm=none ctermbg=7
""highlight ColorColumn cterm=none ctermbg=7
""highlight trailing whitespace, markers if line goes past screen, special
" marker for tab characters
set list
set listchars=trail:-,extends:>,precedes:<,tab:>-
" Line numbers, highlight current line
set number
set cursorline
set cursorcolumn
" Autoindentation
set autoindent
" Turn off line wrapping
set nowrap
set colorcolumn=+1
" Use 4 spaces instead of tabs
set shiftwidth =4
set tabstop =4
set expandtab
" uncomment for stupid backspace
"set softtabstop =4
" NERD tree
nnoremap <C-n> :NERDTreeToggle<Return>
" Show filename in mode line
set laststatus =2
"" Window switching commands
noremap <C-h> :wincmd h<Return>
noremap <C-j> :wincmd j<Return>
noremap <C-k> :wincmd k<Return>
noremap <C-l> :wincmd l<Return>
" highlight when searching
set hlsearch
" Uncomment the following to have Vim jump to the last position when
" reopening a file
if has("autocmd")
au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
endif
" tab navigation
" From https://vim.fandom.com/wiki/Using_tab_pages
cabbrev te tabedit
nnoremap <C-i> :tabp<Return>
nnoremap <C-o> :tabn<Return>
nnoremap <C-t> :tabedit .<Return>
nnoremap <C-x> :set number!<Return>
nnoremap <C-s> :set cursorline!<Return>:set cursorcolumn!<Return>
nnoremap <C-p> :set paste!<Return>
" read modelines
set modeline
" copy to system clipboard (from grok)
vnoremap <C-y> :w !xclip -sel clip<CR><CR>
" the practical effect of this augroup thing is that we avoid
" non-idempotency problems with autocmd (specifically the autocmd!
" inside, which resets all the settings in the group)
augroup foo
autocmd!
" overrides file type plugins that think they know what i want
" and i don't
" -t = don't do auto line wrapping in insert mode
" +q = do on gqq
" +n = handle numbered lists automagically
" +j = handle comment delimiters on J
" +c = autowrap in insert mode only in comments
autocmd FileType * setlocal formatoptions-=t formatoptions+=qnjc
autocmd FileType * setlocal textwidth=69
" markdown paragraph wrap
autocmd FileType * setlocal formatoptions+=tn
" python: pep8 says best textwidth is 80 chars but fuck pep8
" but only gently. we'll go with 79
autocmd FileType python setlocal textwidth=79
" xml turn off line wrapping
autocmd FileType xml setlocal formatoptions-=t
" Erlang handle comments beginning with %% | %%% etc
autocmd FileType erlang setlocal comments=:%%%%%,:%%%%,:%%%,:%%,:%
autocmd FileType erlang setlocal textwidth=55
autocmd FileType erlang setlocal formatoptions-=t
" handle numbered lists properly in markdown
"autocmd FileType markdown setlocal formatoptions+=n
" ignore all prior tabs=4spaces settings but only in makefiles
autocmd FileType make setlocal noexpandtab
augroup END
+141
View File
@@ -0,0 +1,141 @@
# Lines configured by zsh-newuser-install
HISTFILE=~/.histfile
HISTSIZE=10000
SAVEHIST=10000
bindkey -e
# End of lines configured by zsh-newuser-install
# The following lines were added by compinstall
zstyle :compinstall filename '~/.zshrc'
#autoload -U colors && colors
autoload -Uz compinit
compinit
# End of lines added by compinstall
#
# [[ -z "$TMUX" ]] && exec tmux
# My bash aliases
alias ls='ls -F -G'
alias l='ls -l'
alias la='l -a'
alias xv='vim -X'
genid () {
date | sha1sum | sed -e 's/^\([0-9a-z]\{7\}\).\+/\1/'
}
# thank you claude
chpwd() { ls }
ggit-branch () {
git branch &> /dev/null
if [[ $? -eq 0 ]]; then
br=$(git branch | \grep \* | sed "s/^\* //")
echo " ${br}"
fi
}
setopt prompt_subst
setopt auto_pushd
CONFIG="~/.config"
# [x/y git-branch] % ... pharpend@picklet
# [src/foo master] % pharpend@picklet
#PROMPT='%B[%b%F{cyan}%2~%f%F{red}$(ggit-branch)%f%B]%b %F{green}%#%f '
#RPROMPT='%F{red}%n%f%B@%b%F{magenta}%M%f'
ncolor() {
last_md5_digit=$(echo $1 | md5sum | awk '{print substr($1, length($1), 1)}')
# 6 colors
#colors='red green yellow blue magenta cyan'
# 1> [{N, N*(6/16)} || N <- lists:seq(0, 15)].
# [{0,0.0},
# {1,0.375},
# {2,0.75},
# {3,1.125},
# {4,1.5},
# {5,1.875},
# {6,2.25},
# {7,2.625},
# {8,3.0},
# {9,3.375},
# {10,3.75},
# {11,4.125},
# {12,4.5},
# {13,4.875},
# {14,5.25},
# {15,5.625}]
case $last_md5_digit in
0|1|2) echo 'red' ;;
3|4|5) echo 'green' ;;
6|7) echo 'yellow' ;;
#8|9|a) echo 'blue' ;;
#b|c|d) echo 'magenta' ;;
8|9) echo 'blue' ;;
a|b|c) echo 'magenta' ;;
*) echo 'cyan' ;;
esac
}
ecolor() {
for arg in $@; do
this_color=$(ncolor ${arg})
echo "%F{${this_color}}${arg}%f"
done
}
pcolor() {
for arg in $@; do
this_color=$(ncolor ${arg})
print -P "%F{${this_color}}${arg}%f"
done
}
ucolor() {
ecolor $(whoami)
}
hcolor() {
ecolor $(hostname)
}
#jusername
# [pharpend@picklet src/foo master] %
#PROMPT='%B[%b%F{red}%n%f%B@%b%F{magenta}%M%f %F{cyan}%2~%f%F{red}$(ggit-branch)%f%B]%b %F{green}%#%f '
#RPROMPT=''
# same but randomized colors for username/hostname
# [pharpend@picklet src/foo master] %
PROMPT='%B[%b$(ucolor)%B@%b$(hcolor) %F{cyan}%2~%f%F{red}$(ggit-branch)%f%B]%b %F{green}%#%f '
RPROMPT=''
# pharpend@picklet
#PROMPT='%B[%b%F{cyan}%2~%f%F{red}$(ggit-branch)%f%B]%b %F{green}%#%f '
# PROMPT='[%2~$(ggit-branch)] %# '
#RPROMPT=''
# RPROMPT='%n@%M'
REPORTTIME=3
## Erlang
##if [[ -d $HOME/.erts ]]; then; . "$HOME"/.erts/28.3/activate; fi
#. "$HOME"/.erts/28.3/activate
## opam configuration
#if [[ -d $HOME/.opam ]]; then
# test -r /home/pharpend/.opam/opam-init/init.zsh && . /home/pharpend/.opam/opam-init/init.zsh > /dev/null 2> /dev/null || true
#fi
# thank you lenovo
at () { echo -n '@' }
atln () { echo '@' }
ii () { echo -n '2' }
iiln () { echo '2' }
two () { echo -n '2' }
twoln () { echo '2' }
# syntax highlighting
source /usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh