diff --git a/roles/nvim/files/init_pc.lua b/roles/nvim/files/init_pc.lua index b3570c6..6a626c4 100644 --- a/roles/nvim/files/init_pc.lua +++ b/roles/nvim/files/init_pc.lua @@ -158,8 +158,7 @@ end local capabilities = require("cmp_nvim_lsp").default_capabilities() -local servers = { 'rust_analyzer', 'texlab', 'pyright', 'tsserver', 'ccls', 'html', 'yamlls', 'ansiblels', 'csharp_ls', - 'hls' } +local servers = { 'rust_analyzer', 'texlab', 'pyright', 'tsserver', 'ccls', 'html', 'yamlls', 'ansiblels', 'csharp_ls', 'hls', 'cssls', 'eslint' } for _, server in ipairs(servers) do lsp[server].setup { on_attach = on_attach, diff --git a/roles/nvim/tasks/main.yml b/roles/nvim/tasks/main.yml index d08a690..2d7fddb 100644 --- a/roles/nvim/tasks/main.yml +++ b/roles/nvim/tasks/main.yml @@ -7,6 +7,7 @@ - git - xclip state: present + become: true tags: [always, setup] - name: Create a config directory if it doesn't exist diff --git a/roles/scripts/files/run_in_bash b/roles/scripts/files/run_in_bash new file mode 100644 index 0000000..8c96916 --- /dev/null +++ b/roles/scripts/files/run_in_bash @@ -0,0 +1,5 @@ +#! /usr/bin/env bash + +source /home/max/.bashrc +cd /home/max +$1 $2 diff --git a/roles/scripts/tasks/main.yml b/roles/scripts/tasks/main.yml index 56dfd4e..2a9e7a4 100644 --- a/roles/scripts/tasks/main.yml +++ b/roles/scripts/tasks/main.yml @@ -9,7 +9,7 @@ - xdotool state: present become: true - tags: pc + tags: [pc, setup] - name: Create a local bin directory if it doesn't exist ansible.builtin.file: @@ -28,4 +28,5 @@ - { src: inline_code.tex, dest: ~/.local/bin/inline_code.tex } - { src: open_editor_in_new_shell, dest: ~/.local/bin/open_editor_in_new_shell } - { src: dmenu_screenshot, dest: ~/.local/bin/dmenu_screenshot } + - { src: run_in_bash, dest: ~/.local/bin/run_in_bash } tags: pc diff --git a/roles/xmonad/files/bashrc_qwerty b/roles/xmonad/files/bashrc_qwerty new file mode 100644 index 0000000..dd1b6e9 --- /dev/null +++ b/roles/xmonad/files/bashrc_qwerty @@ -0,0 +1,90 @@ +# ~/.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' + +alias lg='lazygit' + +# starting ssh-agent +if [ -z "$SSH_AUTH_SOCK" ] ; then + eval `ssh-agent -s` 2>&1 >/dev/null +fi + +# nnn config +export NNN_OPTS="eEr" +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;B:~/ba;m:~/musik;s:~/.steam/steam;h:/run/media/max/hdd;c:~/.config;M:/mnt/' +export NNN_PLUG='k:kdeconnect;t:opennewterm;i:imgview;m:nmount;p:preview-tui' + +# 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 + + # The default behaviour is to cd on quit (nnn checks if NNN_TMPFILE is set) + # To cd on quit only on ^G, remove the "export" as in: + # NNN_TMPFILE="${XDG_CONFIG_HOME:-$HOME/.config}/nnn/.lastd" + # NOTE: NNN_TMPFILE is fixed, should not be modified + NNN_TMPFILE="${XDG_CONFIG_HOME:-$HOME/.config}/nnn/.lastd" + + # Unmask ^Q (, ^V etc.) (if required, see `stty -a`) to Quit nnn + # stty start undef + # stty stop undef + # stty lwrap undef + # stty lnext undef + + nnn "$@" + + if [ -f "$NNN_TMPFILE" ]; then + . "$NNN_TMPFILE" + rm -f "$NNN_TMPFILE" > /dev/null + fi +} + +# vimwiki +vw () { + if [[ $# == 0 ]] + then + git -C ~/dokumente/wiki pull + nvim ~/dokumente/wiki/index.md + git -C ~/dokumente/wiki add -A + git -C ~/dokumente/wiki commit -m "autosync-$(date +%FT%T)" + git -C ~/dokumente/wiki push + elif [[ $1 == 'g' ]] + then + git -C ~/dokumente/wiki ${@:2} + else + echo 'Usage: vw [g] [args ...]' + fi +} diff --git a/roles/xmonad/files/profile_qwerty b/roles/xmonad/files/profile_qwerty new file mode 100644 index 0000000..8bc16c9 --- /dev/null +++ b/roles/xmonad/files/profile_qwerty @@ -0,0 +1,61 @@ +# 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 VISUAL="open_editor_in_new_shell" +export TERMINAL="alacritty" +export READER="zathura" +export BROWSER="librewolf" + +# 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 _JAVA_OPTIONS=-Djava.util.prefs.userRoot="$XDG_CONFIG_HOME/java" +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:$(du "$HOME/.local/bin" | cut -f2 | grep -v git | paste -s -d ':')" diff --git a/roles/xmonad/files/redshiftrc b/roles/xmonad/files/redshiftrc new file mode 100644 index 0000000..fdff5b5 --- /dev/null +++ b/roles/xmonad/files/redshiftrc @@ -0,0 +1,11 @@ +[redshift] +temp-day=5700 +temp-night=3000 +brightness-day=1.0 +brightness-night=0.6 +adjustment-method=randr +location-provider=manual + +[manual] +lat=51.4 +lon=12.4 diff --git a/roles/xmonad/files/xmobarrc_qwerty b/roles/xmonad/files/xmobarrc_qwerty index edd6c22..cf9c216 100644 --- a/roles/xmonad/files/xmobarrc_qwerty +++ b/roles/xmonad/files/xmobarrc_qwerty @@ -7,7 +7,7 @@ Config { font = "Iosevka Normal 11" , lowerOnStart = True , commands = [Run DynNetwork ["-t", ": ↓ | ↑ kbps"] 10 , Run Date "%a, %d.%m.%Y - %H:%M" "date" 10 - , Run Alsa "default" "Master" ["-t", "Vol: %"] + , Run Com "pamixer" ["--get-volume-human"] "vol" 1 , Run Kbd [("de", "de"), ("de(dsb_qwertz)", "dsb"), ("ru(phonetic)", "ru")] , Run Memory ["-t", "RAM: %"] 10 , Run MultiCpu ["-t", "CPU: %"] 10 @@ -16,5 +16,5 @@ Config { font = "Iosevka Normal 11" ] , sepChar = "%" , alignSep = "}{" - , template = " | %StdinReader% }{ %dynnetwork% | %multicpu% | %memory% | %uname% | %kbd% | %alsa:default:Master% | %date% | " + , template = " | %StdinReader% }{ %dynnetwork% | %multicpu% | %memory% | %uname% | %kbd% | Vol: %vol% | %date% | " } diff --git a/roles/xmonad/files/xmonad_qwerty.hs b/roles/xmonad/files/xmonad_qwerty.hs index 0ac563c..1f10382 100644 --- a/roles/xmonad/files/xmonad_qwerty.hs +++ b/roles/xmonad/files/xmonad_qwerty.hs @@ -48,12 +48,11 @@ darkGrey = "#262626" -- scratchpads myScratchpads :: [NamedScratchpad] myScratchpads = - [ NS "cmus" "st -n cmus -e cmus" (resource =? "cmus") (customFloating $ W.RationalRect (1/6) (1/6) (4/6) (4/6)) - , NS "nnn" "st -t nnn -e nnnwrapper" (title =? "nnn") (customFloating $ W.RationalRect (1/4) (1/6) (2/4) (4/6)) - , NS "neomutt" "st -t neomutt -e neomutt -f posteo-Inbox" (title =? "neomutt") (customFloating $ W.RationalRect (1/10) (1/10) (8/10) (8/10)) - , NS "vimwiki" "st -t vimwiki -e vwwrapper" (title =? "vimwiki") (customFloating $ W.RationalRect (1/6) (1/6) (2/3) (2/3)) + [ NS "cmus" "alacritty -n cmus -e cmus" (resource =? "cmus") (customFloating $ W.RationalRect (1/6) (1/6) (4/6) (4/6)) + , NS "nnn" "alacritty -t nnn -e run_in_bash n" (title =? "nnn") (customFloating $ W.RationalRect (1/4) (1/6) (2/4) (4/6)) + , NS "neomutt" "alacritty -t neomutt -e neomutt -f posteo-Inbox" (title =? "neomutt") (customFloating $ W.RationalRect (1/10) (1/10) (8/10) (8/10)) + , NS "vimwiki" "alacritty -t vimwiki -e run_in_bash vw" (title =? "vimwiki") (customFloating $ W.RationalRect (1/6) (1/6) (2/3) (2/3)) , NS "keepassxc" "keepassxc ~/dokumente/Database.kdbx" (title =? "Database.kdbx - KeePassXC" <||> title =? "Database.kdbx [Gesperrt] - KeePassXC") defaultFloating - , NS "discord" "firejail discord" (title *!? "Discord") (customFloating $ W.RationalRect (1/10) (1/10) (8/10) (8/10)) , NS "qalculate" "qalculate-gtk" (title =? "Qalculate!") (customFloating $ W.RationalRect (3/6) (1/6) (1/6) (1/6)) , NS "pavucontrol" "pavucontrol" (title =? "Lautstärkeregler") (customFloating $ W.RationalRect (1/6) (1/6) (2/3) (2/3)) ] @@ -72,6 +71,8 @@ topicItems = , TI "game" "~" (switchToLayout "Full") , TI "micro" "~/projekte/microcontroller" (switchToLayout "Programming" *> spawnShell *> spawnEditor) , TI "aoc" "~/projekte/aoc" (switchToLayout "Programming" *> spawnShell *> spawnEditor) + , TI "brass" "~/projekte/brass" (switchToLayout "Programming" *> spawnShell *> spawnEditor) + , TI "infra" "~/projekte/infrastruktuuri" (switchToLayout "Programming" *> spawnShell *> spawnEditor) ] myTopicConfig :: TopicConfig @@ -156,14 +157,13 @@ myAdditionalKeys = -- dmenu prompts , ("M-", spawn "dmenu_run") - , ("M-p s", spawn "dmenu_scrreenshot") + , ("M-p s", spawn "dmenu_screenshot") , ("M-p k", spawn "dm-kill") -- scratchpads , ("M-s c", namedScratchpadAction myScratchpads "cmus") , ("M-s m", namedScratchpadAction myScratchpads "neomutt") , ("M-s v", namedScratchpadAction myScratchpads "vimwiki") - , ("M-s d", namedScratchpadAction myScratchpads "discord") , ("M-S-a", namedScratchpadAction myScratchpads "keepassxc") , ("M-n", namedScratchpadAction myScratchpads "nnn") @@ -182,11 +182,10 @@ myAdditionalKeys = , ("M-S-f", withFocused $ windows . W.sink) -- media keys - , ("", spawn "amixer sset Master toggle") - , ("", spawn "amixer sset Master 5%- unmute") - , ("", spawn "amixer sset Master 5%+ unmute") - , ("", spawn "amixer sset Capture toggle") - , ("M-S-m", spawn "amixer sset Capture toggle") + , ("", spawn "pamixer -t") + , ("", spawn "pamixer -d 5") + , ("", spawn "pamixer -i 5") + , ("", spawn "pamixer --default-source -t") -- lock screen , ("M-S-l", spawn "slock") diff --git a/roles/xmonad/tasks/main.yml b/roles/xmonad/tasks/main.yml index 655ddfd..2d0ab5f 100644 --- a/roles/xmonad/tasks/main.yml +++ b/roles/xmonad/tasks/main.yml @@ -12,6 +12,7 @@ - lightdm - lightdm-gtk-greeter - nnn + - trash-cli - tar - zip - unzip @@ -67,6 +68,7 @@ - ~/.config/xmobar - ~/.config/dunst - ~/.config/cmus + - ~/.config/redshift tags: [pc, setup] - name: Copy over alacritty config @@ -98,6 +100,13 @@ with_fileglob: "cmus/*" tags: pc +- name: Copy over redshiftrc + ansible.builtin.copy: + src: redshiftrc + dest: ~/.config/redshift/redshiftrc + mode: '0644' + tags: pc + - name: Create nnn config directory ansible.builtin.file: path: "~/.config/nnn" @@ -115,8 +124,8 @@ - name: Move nnn plugins into right place ansible.builtin.copy: remote_src: true - src: /tmp/nnn/plugins - dest: ~/.config/nnn/plugins + src: /tmp/nnn/plugins/ + dest: ~/.config/nnn/plugins/ mode: '0755' tags: [pc, setup] @@ -140,6 +149,8 @@ with_items: - { src: xmonad_qwerty.hs, dest: ~/.config/xmonad/xmonad.hs } - { src: xmobarrc_qwerty, dest: ~/.config/xmobar/xmobarrc } + - { src: bashrc_qwerty, dest: ~/.bashrc } + - { src: profile_qwerty, dest: ~/.profile } tags: qwerty - name: Enable Lightdm