diff --git a/README.md b/README.md index b066834..9494746 100644 --- a/README.md +++ b/README.md @@ -8,9 +8,13 @@ This project contains my dotfiles and scripts for daily usage. In addition to th - alacritty - xmobar - dunst + - nnn + - bash + - dircolours - neovim - git - git delta - lazygit - scripts - `compiledoc` - compile a markdown or latex file into pdf using pandoc and tectonic + - `open_editor_in_new_shell` - used by nnn to open a file in `$EDITOR` in a new `$TERMINAL` diff --git a/roles/scripts/files/open_editor_in_new_shell b/roles/scripts/files/open_editor_in_new_shell new file mode 100644 index 0000000..33f427b --- /dev/null +++ b/roles/scripts/files/open_editor_in_new_shell @@ -0,0 +1,3 @@ +#!/usr/bin/env sh + +$TERMINAL -e $EDITOR $1 & diff --git a/roles/scripts/tasks/main.yml b/roles/scripts/tasks/main.yml index 9cc93a2..ee86142 100644 --- a/roles/scripts/tasks/main.yml +++ b/roles/scripts/tasks/main.yml @@ -24,4 +24,5 @@ with_items: - { src: compiledoc, dest: ~/.local/bin/compiledoc } - { src: inline_code.tex, dest: ~/.local/bin/inline_code.tex } + - { src: open_editor_in_new_shell, dest: ~/.local/bin/open_editor_in_new_shell } tags: pc diff --git a/roles/xmonad/files/bashrc_t460p b/roles/xmonad/files/bashrc_t460p new file mode 100644 index 0000000..dd7dd14 --- /dev/null +++ b/roles/xmonad/files/bashrc_t460p @@ -0,0 +1,78 @@ +# ~/.bashrc + +# colouring terminal +export PS1='\[\033[38;5;174m\]\u\[\033[38;5;187m\]@\h\[\033[00m\]:\[\033[38;5;174m\] \w \[\033[00m\]\$ ' + +# colouring ls +eval $(dircolors -b $HOME/.config/dircolours) + +# set vi mode for bash +set -o vi + +# aliases +alias ls='ls --color' +alias la='ls -lah' + +alias gf='git fetch' +alias gd='git diff' +alias gl='git log' +alias gpl='git pull' +alias gps='git push' +alias ga='git add' +alias gst='git status' +alias gck='git checkout' +alias gcm='git commit' +alias gcl='git clone' +alias gb='git branch' +alias gr='git reset' +alias grm='git rm' + +# starting ssh-agent +if [ -z "$SSH_AUTH_SOCK" ] ; then + eval `ssh-agent -s` 2>&1 >/dev/null +fi + +# nnn config +export NNN_OPTS="eE" +export NNN_COLORS='#a744b322' +export NNN_FCOLORS='dfdfdf6c0000df42bbbaba5f' +export NNN_TRASH=1 +export NNN_ARCHIVE="\\.(7z|a|ace|alz|arc|arj|bz|bz2|cab|cpio|deb|gz|jar|lha|lz|lzh|lzma|lzo|rar|rpm|rz|t7z|tar|tbz|tbz2|tgz|tlz|txz|tZ|tzo|war|xpi|xz|Z|zip)$" +export NNN_BMS='b:~/bilder;d:~/downloads;D:~/dokumente;v:~/videos;m:~/music;c:~/.config' +export NNN_PLUG='m:nmount' + +# nnn cd on quit +n () +{ + # Block nesting of nnn in subshells + if [ -n $NNNLVL ] && [ "${NNNLVL:-0}" -ge 1 ]; then + echo "nnn is already running" + return + fi + + NNN_TMPFILE="${XDG_CONFIG_HOME:-$HOME/.config}/nnn/.lastd" + + nnn "$@" + + if [ -f "$NNN_TMPFILE" ]; then + . "$NNN_TMPFILE" + rm -f "$NNN_TMPFILE" > /dev/null + fi +} + +# vimwiki +vw () { + if [[ $# == 0 ]] + then + git -C ~/.local/share/vimwiki pull + nvim ~/.local/share/vimwiki/index.md + git -C ~/.local/share/vimwiki add ~/.local/share/vimwiki/* + git -C ~/.local/share/vimwiki commit -m "autosync-$(date +%FT%T)" + git -C ~/.local/share/vimwiki push + elif [[ $1 == 'g' ]] + then + git -C ~/.local/share/vimwiki ${@:2} + else + echo 'Usage: vw [g] [args ...]' + fi +} diff --git a/roles/xmonad/files/dircolours b/roles/xmonad/files/dircolours new file mode 100644 index 0000000..6031e21 --- /dev/null +++ b/roles/xmonad/files/dircolours @@ -0,0 +1,268 @@ +# Zenburn color theme for the color GNU ls utility. +# Ivaylo Kuzev , 2014 - 2015 + +# Term Section +TERM Eterm +TERM ansi +TERM color-xterm +TERM con132x25 +TERM con132x30 +TERM con132x43 +TERM con132x60 +TERM con80x25 +TERM con80x28 +TERM con80x30 +TERM con80x43 +TERM con80x50 +TERM con80x60 +TERM cons25 +TERM console +TERM cygwin +TERM dtterm +TERM eterm-color +TERM gnome +TERM gnome-256color +TERM jfbterm +TERM konsole +TERM kterm +TERM linux +TERM linux-c +TERM mach-color +TERM mlterm +TERM putty +TERM rxvt +TERM rxvt-256color +TERM rxvt-cygwin +TERM rxvt-cygwin-native +TERM rxvt-unicode +TERM rxvt-unicode256 +TERM rxvt-unicode-256color +TERM screen +TERM screen-256color +TERM screen-256color-bce +TERM screen-bce +TERM screen-w +TERM screen.linux +TERM st +TERM st-meta +TERM st-256color +TERM st-meta-256color +TERM vt100 +TERM xterm +TERM xterm-16color +TERM xterm-256color +TERM xterm-88color +TERM xterm-color +TERM xterm-debian +TERM xterm-termite + +## Documentation +# +# Attribute codes: +# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed +# Text color codes: +# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white +# Background color codes: +# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white +# +# Text 256 color coding: +# 38;5;COLOR_NUMBER +# Background 256 color coding: +# 48;5;COLOR_NUMBER + +# block device driver: +BLK 48;5;108;38;5;223;01 +# file with capability: +CAPABILITY 01;38;5;95 +# character device driver: +CHR 48;5;108;38;5;223;01 +# directory: +DIR 48;5;237;01;38;5;223 +# door: +DOOR 48;5;237;38;5;180;01 +# This is for files with execute permission: +EXEC 01;38;5;108 +# pipe: +FIFO 48;5;237;38;5;180;01 +# regular file: +#FILE 00 +# symbolic link: +LINK 48;5;237;38;5;223 +# normal (nonfilename) text: +#NORMAL 00 +# orphaned symbolic link: +ORPHAN 48;5;237;38;5;187 +# directory that is other-writable (o+w) and not sticky: +OTHER_WRITABLE 48;5;237;38;5;180 +# file that is setuid (u+s): +SETUID 48;5;237;38;5;66 +# file that is setgid (g+s): +SETGID 48;5;237;38;5;66 +# socket: +SOCK 48;5;237;38;5;180;01 +# directory with the sticky bit set (+t) and not other-writable: +STICKY 48;5;180;38;5;234 +# dir that is sticky and other-writable (+t,o+w): +STICKY_OTHER_WRITABLE 48;5;180;38;5;234 + +# archives +.7z 01;38;5;174 +.arj 01;38;5;174 +.bz2 01;38;5;174 +.bz 01;38;5;174 +.gz 01;38;5;174 +.rar 01;38;5;174 +.tar 01;38;5;174 +.tgz 01;38;5;174 +.tbz 01;38;5;174 +.tbz2 01;38;5;174 +.xz 01;38;5;174 +.zip 01;38;5;174 + +# packaged apps +.apk 01;38;5;95 +.deb 01;38;5;174 +.jad 01;38;5;95 +.jar 01;38;5;95 +.rpm 01;38;5;174 + +# images|graphics +.bmp 00;38;5;109 +.gif 00;38;5;109 +.ico 00;38;5;109 +.jpg 00;38;5;109 +.JPG 00;38;5;109 +.jpeg 00;38;5;109 +.png 00;38;5;109 +.svg 00;38;5;109 +.xbm 00;38;5;109 +.xpm 00;38;5;109 + +# audio formats +.aac 00;38;5;116 +.au 00;38;5;116 +.flac 00;38;5;116 +.mid 00;38;5;116 +.midi 00;38;5;116 +.mka 00;38;5;116 +.mp3 00;38;5;116 +.mpc 00;38;5;116 +.ogg 00;38;5;116 +.ra 00;38;5;116 +.wav 00;38;5;116 + +# video formats +.mov 00;38;5;66 +.mpg 00;38;5;66 +.mpeg 00;38;5;66 +.m2v 00;38;5;66 +.mkv 00;38;5;66 +.ogm 00;38;5;66 +.mp4 00;38;5;66 +.m4v 00;38;5;66 +.mp4v 00;38;5;66 +.vob 00;38;5;66 +.qt 00;38;5;66 +.nuv 00;38;5;66 +.wmv 00;38;5;66 +.asf 00;38;5;66 +.rm 00;38;5;66 +.rmvb 01;38;5;66 +.flc 00;38;5;66 +.avi 00;38;5;66 +.fli 00;38;5;66 +.flv 00;38;5;66 +.gl 00;38;5;66 +.m2ts 00;38;5;66 +.divx 00;38;5;66 +.webm 00;38;5;66 + +# shell +.awk 00;38;5;151 +.bash 00;38;5;151 +.bat 00;38;5;151 +.BAT 00;38;5;151 +.sed 00;38;5;151 +.sh 00;38;5;151 +.zsh 00;38;5;151 + +# build +*CMakeLists.txt 00;38;5;187 +.cabal 00;38;5;187 +*Makefile 00;38;5;187 +.mk 00;38;5;187 +.make 00;38;5;187 + +# source files +.c 01;38;5;187 +.h 01;38;5;187 +.s 01;38;5;187 +.cs 01;38;5;187 +.java 01;38;5;187 +.scala 01;38;5;187 +.hs 01;38;5;187 +.py 01;38;5;187 +.rb 01;38;5;187 +.php 01;38;5;187 +.pl 01;38;5;187 +.vim 01;38;5;187 +.js 01;38;5;187 +.coffee 01;38;5;187 +.go 01;38;5;187 +.lisp 01;38;5;187 +.scm 01;38;5;187 + +# documents +.txt 04;38;5;188 +.tex 04;38;5;188 +.html 04;38;5;188 +.xhtml 04;38;5;188 +.xml 04;38;5;188 +.md 04;38;5;188 +.mkd 04;38;5;188 +.markdown 04;38;5;188 +.org 04;38;5;188 +.pandoc 04;38;5;188 +.pdc 04;38;5;188 +.pdf 04;38;5;188 + +# Files of special interest +*rc 04;38;5;180 +.conf 04;38;5;180 +*Dockerfile 04;38;5;180 + +# meta +*README 04;38;5;187 +*LICENSE 04;38;5;187 +*AUTHORS 04;38;5;187 + +# version control +.gitignore 00;38;5;248 +.gitmodules 00;38;5;248 + +# logs and backups +.log 00;38;5;234 +.bak 00;38;5;234 +.aux 00;38;5;234 +.toc 00;38;5;234 +*~ 00;38;5;234 +*# 00;38;5;234 +.swp 00;38;5;234 +.tmp 00;38;5;234 +.temp 00;38;5;234 +.o 00;38;5;234 +.pyc 00;38;5;234 +.class 00;38;5;234 +.cache 00;38;5;234 + +# pacman files +.pacnew 48;5;95;38;5;108 +.pacsave 48;5;95;38;5;108 +.pacorig 48;5;95;38;5;108 +*PKGBUILD 00;38;5;110 + +# rpm files +.rpmsave 48;5;95;38;5;108 +.rpmorig 48;5;95;38;5;108 +.rpmnew 48;5;95;38;5;108 +.spec 00;38;5;110 diff --git a/roles/xmonad/files/profile_t460p b/roles/xmonad/files/profile_t460p new file mode 100644 index 0000000..cd19a61 --- /dev/null +++ b/roles/xmonad/files/profile_t460p @@ -0,0 +1,60 @@ +# first read by bash on login + +# colour scheme for terminal +export TERM=xterm-256color + +# colour scheme for gtk applications +export GTK_THEME=Adwaita:dark + +# default programs +export EDITOR="nvim" +export TERMINAL="alacritty" +export VISUAL="open_editor_in_new_shell" +export READER="zathura" +export BROWSER="firefox" + +# environment variables +export XDG_CONFIG_HOME="$HOME/.config" +export XDG_CACHE_HOME="$HOME/.cache" +export XDG_DATA_HOME="$HOME/.local/share" +export XDG_RUNTIME_DIR="/run/user/1000" + +export GNUPGHOME="$XDG_DATA_HOME/gnupg" +export WINEPREFIX="$XDG_DATA_HOME/wine" +export LESSHISTFILE=- +#export XAUTHORITY="$XDG_RUNTIME_DIR/Xauthority" +export XINITRC="$XDG_CONFIG_HOME/X11/xinitrc" +export XSERVERRC="$XDG_CONFIG_HOME/X11/xserverrc" +export HISTFILE="$XDG_DATA_HOME/bash/history" +export WGETRC="$XDG_CONFIG_HOME/wget/wgetrc" +export KDEHOME="$XDG_CONFIG_HOME/kde4" +export ANDROID_SDK_ROOT="$XDG_CONFIG_HOME/android" +export ADB_VENDOR_KEY="$XDG_CONFIG_HOME/android" +export SQLITE_HISTORY="$XDG_DATA_HOME/sqlite_history" +export ASPELL_CONF="per-conf $XDG_CONFIG_HOME/aspell/aspell.conf; personal $XDG_CONFIG_HOME/aspell/de.pws; repl $XDG_CONFIG_HOME/aspell/de.prepl" +export NPM_CONFIG_USERCONFIG="$XDG_CONFIG_HOME/npm/npmrc" +export TS3_CONFIG_DIR="$XDG_CONFIG_HOME/ts3client" +export XMONAD_CONFIG_HOME="$XDG_CONFIG_HOME/xmonad" +export XMONAD_DATA_HOME="$XDG_DATA_HOME/xmonad" +export XMONAD_CACHE_HOME="$XDG_CACHE_HOME/xmonad" +export RUSTUP_HOME="$XDG_DATA_HOME/rustup" +export CARGO_HOME="$XDG_DATA_HOME/cargo" +export PASSWORD_STORE_DIR="$XDG_DATA_HOME/pass" +export DVDCSS_CACHE="$XDG_DATA_HOME/dvdcss" +export DOTNET_CLI_TELEMETRY_OPTOUT=1 +export ANSIBLE_HOME="$XDG_CONFIG_HOME/ansible" +export ANSIBLE_CONFIG="$XDG_CONFIG_HOME/ansible.cfg" +export ANSIBLE_GALAXY_CACHE_DIR="$XDG_CACHE_HOME/ansible/galaxy_cache" +export AZURE_CONFIG_DIR="$XDG_DATA_HOME/azure" +export NUGET_PACKAGES="$XDG_CACHE_HOME/NuGetPackages" + +# if running bash +if [ -n "$BASH_VERSION" ]; then + # include .bashrc if it exists + if [ -f "$HOME/.bashrc" ]; then + . "$HOME/.bashrc" + fi +fi + +# add private bin and its subdirectories to the $PATH +export PATH="$PATH:$XDG_DATA_HOME/cargo/bin:~/.dotnet/tools:$(du "$HOME/.local/bin" | cut -f2 | grep -v git | paste -s -d ':')" diff --git a/roles/xmonad/tasks/main.yml b/roles/xmonad/tasks/main.yml index 763cbb1..10567d0 100644 --- a/roles/xmonad/tasks/main.yml +++ b/roles/xmonad/tasks/main.yml @@ -11,6 +11,11 @@ - cmus - lightdm - lightdm-gtk-greeter + - nnn + - tar + - zip + - unzip + - unrar state: present become: true tags: pc @@ -53,6 +58,13 @@ mode: '0644' tags: pc +- name: Copy over dircolours + ansible.builtin.copy: + src: dircolours + dest: ~/.config/dircolours + mode: '0644' + tags: pc + - name: Copy over cmus config ansible.builtin.copy: src: "{{ item }}" @@ -61,6 +73,28 @@ with_fileglob: "cmus/*" tags: pc +- name: Create nnn config directory + ansible.builtin.file: + path: "~/.config/nnn" + state: directory + mode: '0755' + tags: pc + +- name: Clone nnn repository into temp + ansible.builtin.git: + repo: https://github.com/jarun/nnn.git + force: true + dest: /tmp/nnn + tags: pc + +- name: Move nnn plugins into right place + ansible.builtin.copy: + remote_src: true + src: /tmp/nnn/plugins + dest: ~/.config/nnn/plugins + mode: '0755' + tags: pc + - name: Copy over T460p config files ansible.builtin.copy: src: "{{ item.src }}" @@ -69,6 +103,8 @@ with_items: - { src: xmonad_t460p.hs, dest: ~/.config/xmonad/xmonad.hs } - { src: xmobarrc_t460p, dest: ~/.config/xmobar/xmobarrc } + - { src: bashrc_t460p, dest: ~/.bashrc } + - { src: profile_t460p, dest: ~/.profile } tags: t460p - name: Copy over qwerty config files