commit 6d43aec25cf401a593da8af4330487cf4a591cfc Author: D4VID Date: Fri Dec 15 13:50:27 2023 +0100 eos setup with lunarvim diff --git a/README.md b/README.md new file mode 100644 index 0000000..39b23ab --- /dev/null +++ b/README.md @@ -0,0 +1,6 @@ +# dotfiles + +`git clone https://gitea.d4vid.xyz/D4VID/dotfiles.git ~/.dotfiles` + +## using 'stow' +[DONT DO THAT WITH YOUR DOTFILES (DO THIS)](https://youtu.be/tkUllCAGs3c) diff --git a/bash/.bashrc b/bash/.bashrc new file mode 100644 index 0000000..81c5bbb --- /dev/null +++ b/bash/.bashrc @@ -0,0 +1,22 @@ +# +# ~/.bashrc +# + +# If not running interactively, don't do anything +[[ $- != *i* ]] && return + +PS1='\n\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\n\$ ' + +stty -ixon # Disable Ctrl-s and Ctrl-q +HISTSIZE=1000 + +if [ -f ~/.shell_aliases ]; then + source ~/.shell_aliases +fi + +export PATH=$PATH:$HOME/.cargo/bin +export PATH=$PATH:$HOME/.pub-cache/bin + +#source "$HOME/.cargo/env" + +tmux diff --git a/eos-setup.sh b/eos-setup.sh new file mode 100755 index 0000000..e165023 --- /dev/null +++ b/eos-setup.sh @@ -0,0 +1,31 @@ +#!/usr/bin/env bash + +# main packages +yay -Sy vim neovim tmux zsh plasma-wayland-session plasma-systemmonitor gparted gimp htop libreoffice-fresh wireshark-qt chromium stow exa thefuck xclip --needed + +# extra packages +yay -Sy dotnet-runtime dotnet-sdk aspnet-runtime grub-customizer xournalpp rustup cargo lazygit --needed + +# autorotation on tablet +yay -Sy iio-sensor-proxy --needed + +# AUR packages +yay -Sy pazi spotify tty-clock tuxy-git members --needed + + +# oh my zsh +sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" && +git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting && +git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions + + +# LunarVim +yay -Sy python-pynvim +LV_BRANCH='release-1.3/neovim-0.9' bash <(curl -s https://raw.githubusercontent.com/LunarVim/LunarVim/release-1.3/neovim-0.9/utils/installer/install.sh) + + +# dotfiles +rm ~/.bashrc; stow --no-folding bash +rm ~/.tmux.conf; stow --no-folding tmux +rm ~/.zshrc; stow --no-folding zsh +stow --no-folding lvim diff --git a/lvim/.config/lvim/config.lua b/lvim/.config/lvim/config.lua new file mode 100644 index 0000000..861b756 --- /dev/null +++ b/lvim/.config/lvim/config.lua @@ -0,0 +1,25 @@ +-- Read the docs: https://www.lunarvim.org/docs/configuration +-- Video Tutorials: https://www.youtube.com/watch?v=sFA9kX-Ud_c&list=PLhoH5vyxr6QqGu0i7tt_XoVK9v-KvZ3m6 +-- Forum: https://www.reddit.com/r/lunarvim/ +-- Discord: https://discord.com/invite/Xb9B4Ny + +vim.opt.shiftwidth = 4 -- the number of spaces inserted for each indentation +vim.opt.tabstop = 4 -- insert 4 spaces for a tab +vim.opt.softtabstop = 4 -- insert 4 spaces for a tab +vim.opt.relativenumber = true -- relative line numbers +vim.opt.wrap = true -- wrap lines +vim.opt.smartcase = true +vim.opt.mouse = "" + + +lvim.plugins = { + { "octol/vim-cpp-enhanced-highlight" } +} + + +-- add `svls` to `skipped_servers` list +vim.list_extend(lvim.lsp.automatic_configuration.skipped_servers, { "svls" }) +-- remove `svlangserver` from `skipped_servers` list +lvim.lsp.automatic_configuration.skipped_servers = vim.tbl_filter(function(server) + return server ~= "svlangserver" +end, lvim.lsp.automatic_configuration.skipped_servers) diff --git a/tmux/.tmux.conf b/tmux/.tmux.conf new file mode 100644 index 0000000..347a058 --- /dev/null +++ b/tmux/.tmux.conf @@ -0,0 +1,46 @@ +# Send prefix +set-option -g prefix C-a +unbind-key C-a +bind-key C-a send-prefix + +# Use Alt-arrow keys to switch panes +bind -n M-h select-pane -L +bind -n M-l select-pane -R +bind -n M-k select-pane -U +bind -n M-j select-pane -D + +# prefix + j/k to switch windows +bind-key j previous-window +bind-key k next-window + +# Mouse mode +setw -g mouse off + +# set vim-like keybidings in buffer mode +setw -g mode-keys vi + +# fix escape key delay in vim +set -s escape-time 0 + +set -g history-limit 20000 +set -g default-terminal screen-256color +set-option -g default-shell /usr/bin/zsh +set-option -g focus-events on + +set-option -sa terminal-overrides ',xterm-256color:RGB' + +# Set easier window split keys +bind-key h split-window -v -c "#{pane_current_path}" +bind-key v split-window -h -c "#{pane_current_path}" + +bind-key c new-window -c "#{pane_current_path}" + +# Easy config reload +bind-key r source-file ~/.tmux.conf \; display-message "~/.tmux.conf reloaded." + +# yank to clipboard +bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'xclip -in -selection clipboard' + +# Start window and pane indexes from 1 and not 0 +set -g base-index 1 +setw -g pane-base-index 1 diff --git a/zsh/.config/shell_aliases b/zsh/.config/shell_aliases new file mode 100644 index 0000000..7101ea4 --- /dev/null +++ b/zsh/.config/shell_aliases @@ -0,0 +1,42 @@ +# color +alias ls='ls --color=auto --group-directories-first' +alias grep='grep --color=auto' +alias ip='ip -color=auto' + +#alias la='ls -lahF' +alias xclip='xclip -selection clipboard' +alias xpaste='xclip -o -selection clipboard' +alias more='less' +alias ..='cd ..' +alias cp='cp -iv' +alias mv='mv -iv' +alias rm='rm -v' +alias free='free -m' + +#alias ccat="highlight --out-format=ansi" +alias p="nocorrect sudo pacman" +alias sc="sudo systemctl" +alias psg="nocorrect ps aux | grep" +#alias suod='sudo' + +# git +alias g='git' +alias gst='git status' +alias gdiff='git diff' +alias gl='git pull' +alias gp='git push' +alias gc='git commit -v' +alias gca='git commit -v -a' +alias gcm='git commit -m' +alias gcam='git commit -a -m' +alias gco='git checkout' +alias gb='git branch' +alias ga='git add' + + +alias batman="MANPAGER=\"sh -c 'col -bx | bat -l man -p'\" man" +alias la='exa -laag --group-directories-first' + +alias nvimconf='nvim ~/.config/nvim/init.vim' +alias udb='sudo updatedb' +alias wettr='curl https://wttr.in/Prague' diff --git a/zsh/.zshrc b/zsh/.zshrc new file mode 100644 index 0000000..3ab0a70 --- /dev/null +++ b/zsh/.zshrc @@ -0,0 +1,185 @@ +# If you come from bash you might have to change your $PATH. +# export PATH=$HOME/bin:/usr/local/bin:$PATH + +# Path to your oh-my-zsh installation. +export ZSH="/home/david/.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 +ZSH_THEME="intheloop" +#gentoo - jako bash +#essembeh - jako bash +#dpoggi - jako bash, ale barevnejsi +#kennethreitz - pwd na prave strane +#bira - $ na nove radce pod pwd +#rkj - old tech style +#intheloop - $ na nove radce, mezera mezi prikazy + +# 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=21 + +# 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. +# 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 zsh-autosuggestions zsh-syntax-highlighting fzf-zsh-plugin) + +source $ZSH/oh-my-zsh.sh + +# User configuration + +#ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=#666666,underline" +ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=8" + +# 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" +# + +bindkey '^ ' autosuggest-accept # accept suggestion with ctrl-space + +export EDITOR='nvim' +export TERM=screen-256color +export PATH=$PATH:/home/david/.local/bin:/home/david/.dotnet/tools + +if [ -f ~/.config/shell_aliases ]; then + source ~/.config/shell_aliases +fi + +setopt GLOBdots + +eval $(thefuck --alias) + +if command -v pazi &>/dev/null; then + eval "$(pazi init zsh)" # or 'bash' +fi +alias zf='z --pipe="fzf"' + +# Command time +function preexec() { + timer=$(($(date +%s%0N)/1000000)) +} + +function precmd() { + if [ $timer ]; then + now=$(($(date +%s%0N)/1000000)) + elapsed=$(($now-$timer)) + + ms=$(($elapsed % 1000)) + sec=$(($elapsed/1000 % 60)) + min=$(($elapsed/60000 % 60)) + hour=$(($elapsed/3600000)) + + if [ "$elapsed" -le 1000 ]; then + export RPROMPT="%F{cyan} $(printf "%d ms" $ms) %{$reset_color%}" + elif [ "$elapsed" -gt 1000 ] && [ "$elapsed" -le 60000 ]; then + export RPROMPT="%F{cyan} $(printf "%d.%03d s" $sec $ms) %{$reset_color%}" + elif [ "$elapsed" -gt 60000 ] && [ "$elapsed" -le 3600000 ]; then + export RPROMPT="%F{yellow} $(printf "%d min. %d s" $min $sec) %{$reset_color%}" + else + export RPROMPT="%F{red} $(printf "%d hours %d min. %d s" $hour $min $sec) %{$reset_color%}" + fi + + unset timer + fi +} + + +# +# # ex - archive extractor +# # usage: ex +ex () +{ + if [ -f $1 ] ; then + case $1 in + *.tar.bz2) tar xjvf $1 ;; + *.tar.gz) tar xzvf $1 ;; + *.bz2) bunzip2 $1 ;; + *.rar) unrar x $1 ;; + *.gz) gunzip $1 ;; + *.tar) tar xvf $1 ;; + *.tbz2) tar xjvf $1 ;; + *.tgz) tar xzvf $1 ;; + *.zip) unzip $1 ;; + *.Z) uncompress $1;; + *.7z) 7z x $1 ;; + *) echo "'$1' cannot be extracted via ex()" ;; + esac + else + echo "'$1' is not a valid file" + fi +} +