diff --git a/install.sh b/install.sh index ab4b552..35552f2 100755 --- a/install.sh +++ b/install.sh @@ -7,15 +7,22 @@ DOTFILES=( zprofile zshrc plan + ssh/config ) +CPP_PROGS=( + filteruntil +) + +CXX="${CXX:-g++}" + echo "Setting up oh-my-zsh" rm -rf ~/.oh-my-zsh git clone https://github.com/ohmyzsh/ohmyzsh.git ~/.oh-my-zsh echo "Downloading zsh theme" mkdir -p ~/.oh-my-zsh/custom/themes/ -wget -xqO ~/.oh-my-zsh/custom/themes/aphrodite.zsh-theme https://github.com/win0err/aphrodite-terminal-theme/raw/6f8733782e7e31676897dd9fb036fa7e057553c6/aphrodite.zsh-theme +curl --create-dirs -Lo ~/.oh-my-zsh/custom/themes/aphrodite.zsh-theme https://github.com/win0err/aphrodite-terminal-theme/raw/master/aphrodite.zsh-theme for f in ${DOTFILES} do @@ -26,6 +33,12 @@ do done mkdir -p ~/bin +for f in ${CPP_PROGS} +do + echo "Installing $f" + $CXX -std=c++23 -O3 "$(pwd)/src/$f.cpp" -o "$HOME/bin/$f" +done + for f in bin/* do FILENAME=$(echo $f | awk -F'/' '{print $2}') diff --git a/oh-my-zsh b/oh-my-zsh deleted file mode 160000 index 67cc59b..0000000 --- a/oh-my-zsh +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 67cc59b4258a13232cddfddd75f44d8ca2b80172 diff --git a/src/filteruntil.cpp b/src/filteruntil.cpp new file mode 100644 index 0000000..3473061 --- /dev/null +++ b/src/filteruntil.cpp @@ -0,0 +1,21 @@ +#include + +int main(int argc, char **argv) { + if(argc != 2) { + std::cerr << "usage: " << argv[0] << " " << std::endl; + return 1; + } + + std::string pattern(argv[1]); + std::string line; + + while(std::getline(std::cin, line)) { + if(line.find(pattern) != std::string::npos) { + break; + } + } + + while(std::getline(std::cin, line)) { + std::cout << line << std::endl; + } +} diff --git a/ssh/config b/ssh/config new file mode 100644 index 0000000..9861ded --- /dev/null +++ b/ssh/config @@ -0,0 +1,9 @@ +Host git.tends.to + User git + Port 7920 + +Host silicon helium deuterium + User nsood + +Host argon + User tends diff --git a/vimrc b/vimrc index 3ea9764..f29f619 100644 --- a/vimrc +++ b/vimrc @@ -3,3 +3,4 @@ set autoindent set tabstop=4 " makes it so that yanks/deletes go into middle click keyboard set clipboard=unnamed +set backspace=indent,eol,start diff --git a/zprofile b/zprofile index fc043a8..e01fdf6 100644 --- a/zprofile +++ b/zprofile @@ -7,6 +7,11 @@ fi # fix for firefox using xwayland instead of wayland native if [ "$XDG_SESSION_TYPE" = "wayland" ]; then export MOZ_ENABLE_WAYLAND=1 + export GDK_BACKEND=wayland fi +# make AUR packages not compress, since they immediately get +# decompressed anyway +export PKGEXT=".pkg.tar" + export TENDS_TO=42 diff --git a/zshrc b/zshrc index 8dac141..016161d 100644 --- a/zshrc +++ b/zshrc @@ -1,109 +1,19 @@ # PATH changes are in .zshenv -alias sudo='sudo --preserve-env=PATH env ' -alias lntexheader='ln -s ~/coursenotes/nsdheader.sty $(pwd)' # Path to your oh-my-zsh installation. export ZSH="$HOME/.oh-my-zsh" -# 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 # Aphrodite theme: https://github.com/win0err/aphrodite-terminal-theme ZSH_THEME="aphrodite" -# 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" +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. +# oh-my-zsh plugins plugins=() 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" - -[[ ! -r /home/nsood/.opam/opam-init/init.zsh ]] || source /home/nsood/.opam/opam-init/init.zsh > /dev/null 2> /dev/null - exp() { cd "$@" && ls } @@ -112,6 +22,9 @@ cdmk() { mkdir -p "$@" && cd "$@" } +# use gvim -v as vim if vim does not exist +# on Fedora, vim is compiled without copy-paste support, +# but gvim is compiled with if which gvim &>/dev/null && ! which vim &>/dev/null; then alias vim='gvim -v' export EDITOR='gvim -v' @@ -119,6 +32,16 @@ else export EDITOR=vim fi +# bat config +if which bat &> /dev/null; then + # tell it to use 8-bit terminal colors + export BAT_THEME="ansi" + + # tell man to use it as the pager + export MANPAGER="sh -c 'col -bx | bat -l man -p'" + export MANROFFOPT="-c" +fi + alias ':q'=exit alias open=xdg-open -alias neofetch=hyfetch +alias lntexheader='ln -s ~/coursenotes/nsdheader.sty $(pwd)'