From c7a300cd589e5c7ddddb541a00dbd411db5d3954 Mon Sep 17 00:00:00 2001 From: Shaun Reed Date: Sat, 14 Feb 2026 01:58:02 +0000 Subject: [PATCH] Update configs. (#4) --- .bash_aliases | 38 +- .../plasma-org.kde.plasma.desktop-appletsrc | 486 ++++++++++++++++++ .config/yakuake.shortcuts | 54 ++ .config/yakuakerc | 52 ++ .gitignore | 1 + .inputrc | 2 + .stow-local-ignore | 7 + .tmux.conf | 45 +- .tmux/.tmux-gui.conf | 7 - .vim/.netrwhist | 5 - .vim/backup/.gitignore | 4 + .vim/swap/.gitignore | 4 + .vimrc | 79 +-- Dockerfile | 4 +- README.md | 40 +- setup.sh | 6 + 16 files changed, 708 insertions(+), 126 deletions(-) create mode 100644 .config/plasma-org.kde.plasma.desktop-appletsrc create mode 100644 .config/yakuake.shortcuts create mode 100644 .config/yakuakerc create mode 100644 .inputrc create mode 100644 .stow-local-ignore delete mode 100644 .vim/.netrwhist create mode 100644 .vim/backup/.gitignore create mode 100644 .vim/swap/.gitignore create mode 100755 setup.sh diff --git a/.bash_aliases b/.bash_aliases index c94a378..dbaae94 100644 --- a/.bash_aliases +++ b/.bash_aliases @@ -1,34 +1,31 @@ -# For Rust stuff, uncomment this line -#. "$HOME/.cargo/env" +# Source rust things if they exist +if [ -f ~/.cargo/env ]; then + . ~/.cargo/env +fi alias ,git='git config --global user.name "Shaun Reed" && git config --global user.email "shaunrd0@gmail.com"' +# Some aliases don't make sense in the docker image, like shortcuts to fix plasmashell. if [ -f /.dockerenv ]; then - export DOT_PACKAGES='git stow vim tmux ranger clang wget curl' + export DOT_PACKAGES='git stow vim tmux ranger clang wget curl golang-go' alias ,update='apt update -y && apt upgrade -y && apt upgrade --fix-broken --fix-missing --auto-remove' - alias ,init='apt update -y && apt install $DOT_PACKAGES -y' + alias ,init='apt update -y && apt install -y $DOT_PACKAGES' alias ,swap='swapoff -a && swapon -a' else - export DOT_PACKAGES='git stow vim xsel xclip tmux ranger clang yakuake wget curl' + export DOT_PACKAGES='git stow vim vim-gtk3 xsel xclip tmux ranger clang yakuake wget curl golang-go' alias ,update='sudo apt update -y && sudo apt upgrade -y && sudo apt upgrade --fix-broken --fix-missing --auto-remove' - alias ,init='sudo apt update -y && sudo apt install $DOT_PACKAGES' + alias ,init='sudo apt update -y && sudo apt install -y $DOT_PACKAGES' # Clear kscreen cached settings alias ,kscreen='rm -rf ~/.local/share/kscreen/*' # Restart plasmashell - alias ,plasmashell='sudo pkill plasmashell && plasmashell --replace &> /dev/null &' + alias ,plasmashell='plasmashell --replace &> /dev/null &' alias ,swap='sudo swapoff -a && sudo swapon -a' alias ,vbox="ps aux www |grep 'VBoxClient --draganddrop' | awk '{print $2}' | xargs kill" + alias ,assistant="nohup $HOME/Qt/6.9.0/gcc_64/bin/assistant > /dev/null 2>&1 &" fi -# Alias / export customizations - # colored GCC warnings and errors #export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01' -# some more ls aliases -alias ll='ls -alF' -alias la='ls -A' -alias l='ls -CF' - # Add an "alert" alias for long running commands. Use like so: # sleep 10; alert alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"' @@ -47,7 +44,9 @@ if [ -e ~/.bash_secrets ]; then fi if command -v tmux &> /dev/null && [ -n "$PS1" ] && [[ ! "$TERM" =~ screen ]] && [[ ! "$TERM" =~ tmux ]] && [ -z "$TMUX" ]; then - exec tmux + if ! pstree -s $$ | grep -wq code; then + exec tmux >/dev/null 2>&1 + fi fi # Set the default terminal to use konsole, with kapper profile @@ -103,3 +102,12 @@ if ! [ command -v conda &>/dev/null ] && [ -e ~/Code/Clones/mambaforge/bin/conda source ~/.bashrc fi +# For shared systems where history is not desired. +# ln -sf /dev/null ~/.bash_history +# HISTFILE=/dev/null + +# Avoid duplicates in bash history. +HISTCONTROL=ignoredups:erasedups +# When the shell exits, append to the history file instead of overwriting it. +shopt -s histappend + diff --git a/.config/plasma-org.kde.plasma.desktop-appletsrc b/.config/plasma-org.kde.plasma.desktop-appletsrc new file mode 100644 index 0000000..34188ec --- /dev/null +++ b/.config/plasma-org.kde.plasma.desktop-appletsrc @@ -0,0 +1,486 @@ +[ActionPlugins][0] +RightButton;NoModifier=org.kde.contextmenu +wheel:Vertical;NoModifier=org.kde.switchdesktop + +[ActionPlugins][1] +RightButton;NoModifier=org.kde.contextmenu + +[Containments][1][Configuration] +PreloadWeight=42 + +[Containments][2] +activityId= +formfactor=2 +immutability=1 +lastScreen=0 +location=4 +plugin=org.kde.panel +wallpaperplugin=org.kde.image + +[Containments][2][Applets][20][Configuration] +PreloadWeight=77 + +[Containments][2][Applets][21] +immutability=1 +plugin=org.kde.plasma.minimizeall + +[Containments][2][Applets][21][Configuration] +PreloadWeight=42 + +[Containments][2][Applets][25] +immutability=1 +plugin=org.kde.plasma.activitypager + +[Containments][2][Applets][25][Configuration] +PreloadWeight=18 + +[Containments][2][Applets][25][Configuration][ConfigDialog] +DialogHeight=600 +DialogWidth=800 + +[Containments][2][Applets][25][Configuration][General] +showWindowIcons=true + +[Containments][2][Applets][26][Configuration] +PreloadWeight=42 + +[Containments][2][Applets][26][Configuration][SensorColors] +network/all/download=61,174,233 +network/all/upload=233,120,61 + +[Containments][2][Applets][27] +immutability=1 +plugin=org.kde.plasma.systemmonitor + +[Containments][2][Applets][27][Configuration] +CurrentPreset=org.kde.plasma.systemmonitor +PreloadWeight=46 + +[Containments][2][Applets][27][Configuration][Appearance] +chartFace=org.kde.ksysguard.piechart +title=CPU + +[Containments][2][Applets][27][Configuration][ConfigDialog] +DialogHeight=600 +DialogWidth=800 + +[Containments][2][Applets][27][Configuration][SensorColors] +cpu/all/usage=61,233,79 + +[Containments][2][Applets][27][Configuration][Sensors] +highPrioritySensorIds=["cpu/all/usage"] +lowPrioritySensorIds=["cpu/all/system","cpu/all/user","cpu/all/wait","cpu/loadaverages/loadaverage1","cpu/loadaverages/loadaverage15","cpu/loadaverages/loadaverage5"] +totalSensors=["cpu/all/usage"] + +[Containments][2][Applets][28] +immutability=1 +plugin=org.kde.plasma.systemmonitor + +[Containments][2][Applets][28][Configuration] +CurrentPreset=org.kde.plasma.systemmonitor +PreloadWeight=26 + +[Containments][2][Applets][28][Configuration][Appearance] +chartFace=org.kde.ksysguard.piechart +title=SWAP + +[Containments][2][Applets][28][Configuration][ConfigDialog] +DialogHeight=600 +DialogWidth=800 + +[Containments][2][Applets][28][Configuration][SensorColors] +memory/swap/freePercent=0,0,0 +memory/swap/usedPercent=170,0,0 + +[Containments][2][Applets][28][Configuration][Sensors] +highPrioritySensorIds=["memory/swap/usedPercent"] +lowPrioritySensorIds=["memory/swap/freePercent"] +totalSensors=["memory/swap/usedPercent","memory/swap/freePercent"] + +[Containments][2][Applets][29] +immutability=1 +plugin=org.kde.plasma.systemmonitor + +[Containments][2][Applets][29][Configuration] +CurrentPreset=org.kde.plasma.systemmonitor +PreloadWeight=31 + +[Containments][2][Applets][29][Configuration][Appearance] +chartFace=org.kde.ksysguard.piechart +title=RAM + +[Containments][2][Applets][29][Configuration][ConfigDialog] +DialogHeight=600 +DialogWidth=800 + +[Containments][2][Applets][29][Configuration][SensorColors] +memory/physical/freePercent=0,0,0 +memory/physical/usedPercent=170,0,0 + +[Containments][2][Applets][29][Configuration][Sensors] +highPrioritySensorIds=["memory/physical/usedPercent"] +lowPrioritySensorIds=["memory/physical/freePercent"] +totalSensors=["memory/physical/usedPercent","memory/physical/freePercent"] + +[Containments][2][Applets][3] +immutability=1 +plugin=org.kde.plasma.kickoff + +[Containments][2][Applets][3][Configuration] +PreloadWeight=92 +popupHeight=556 +popupWidth=701 + +[Containments][2][Applets][3][Configuration][Configuration/General] +showAppsByName=true + +[Containments][2][Applets][3][Configuration][General] +favorites=preferred://browser,org.kde.discover.desktop,org.kde.kontact.desktop,org.kde.kate.desktop,libreoffice-startcenter.desktop,org.kde.dolphin.desktop,org.kde.plasma-systemmonitor.desktop,systemsettings.desktop,org.kde.konsole.desktop +favoritesPortedToKAstats=true + +[Containments][2][Applets][3][Configuration][Shortcuts] +global=Alt+F1 + +[Containments][2][Applets][3][Shortcuts] +global=Alt+F1 + +[Containments][2][Applets][30] +immutability=1 +plugin=org.kde.plasma.systemmonitor + +[Containments][2][Applets][30][Configuration] +CurrentPreset=org.kde.plasma.systemmonitor +PreloadWeight=46 + +[Containments][2][Applets][30][Configuration][Appearance] +chartFace=org.kde.ksysguard.linechart +title=Network speed + +[Containments][2][Applets][30][Configuration][SensorColors] +network/all/download=61,174,233 +network/all/upload=233,120,61 + +[Containments][2][Applets][30][Configuration][Sensors] +highPrioritySensorIds=["network/all/download","network/all/upload"] + +[Containments][2][Applets][31][Configuration] +PreloadWeight=26 + +[Containments][2][Applets][36] +immutability=1 +plugin=org.kde.plasma.eventcalendar + +[Containments][2][Applets][36][Configuration] +PreloadWeight=100 + +[Containments][2][Applets][36][Configuration][ConfigDialog] +DialogHeight=600 +DialogWidth=800 + +[Containments][2][Applets][36][Configuration][General] +v71Migration=true +v72Migration=true + +[Containments][2][Applets][36][Configuration][Google Calendar] +calendarList=W10= +tasklistList=W10= + +[Containments][2][Applets][36][Configuration][Weather] +openWeatherMapCityId=5149222 +weatherUnits=imperial + +[Containments][2][Applets][39] +immutability=1 +plugin=org.kde.weatherWidget-2 + +[Containments][2][Applets][39][Configuration] +PreloadWeight=100 + +[Containments][2][Applets][39][Configuration][ConfigDialog] +DialogHeight=600 +DialogWidth=800 + +[Containments][2][Applets][39][Configuration][General] +firstRun=false +places=[{"providerId":"owm","placeIdentifier":"5149222","placeAlias":"Canton, OH","timezoneID":0}] + +[Containments][2][Applets][39][Configuration][Units] +pressureType=inHg +temperatureType=fahrenheit +windSpeedType=mph + +[Containments][2][Applets][4][Configuration] +PreloadWeight=42 + +[Containments][2][Applets][5] +immutability=1 +plugin=org.kde.plasma.icontasks + +[Containments][2][Applets][5][Configuration] +PreloadWeight=42 + +[Containments][2][Applets][5][Configuration][ConfigDialog] +DialogHeight=600 +DialogWidth=800 + +[Containments][2][Applets][5][Configuration][General] +launchers=preferred://filemanager +sortingStrategy=4 + +[Containments][2][Applets][6] +immutability=1 +plugin=org.kde.plasma.marginsseparator + +[Containments][2][Applets][6][Configuration] +PreloadWeight=42 + +[Containments][2][Applets][61] +immutability=1 +plugin=org.kde.plasma.digitalclock + +[Containments][2][Applets][61][Configuration] +PreloadWeight=100 +popupHeight=500 +popupWidth=900 + +[Containments][2][Applets][61][Configuration][Appearance] +selectedTimeZones=America/Los_Angeles,Local,UTC+00:00,Europe/Paris,Europe/Madrid,Europe/Athens +showDate=false +showWeekNumbers=true + +[Containments][2][Applets][61][Configuration][ConfigDialog] +DialogHeight=540 +DialogWidth=720 + +[Containments][2][Applets][7] +immutability=1 +plugin=org.kde.plasma.systemtray + +[Containments][2][Applets][7][Configuration] +PreloadWeight=92 +SystrayContainmentId=8 + +[Containments][2][ConfigDialog] +DialogHeight=91 +DialogWidth=1920 + +[Containments][2][Configuration] +PreloadWeight=42 + +[Containments][2][General] +AppletOrder=3;29;28;27;30;5;25;61;6;7;21 + +[Containments][22][Configuration] +PreloadWeight=42 + +[Containments][27][Configuration] +PreloadWeight=42 + +[Containments][28][Configuration] +PreloadWeight=42 + +[Containments][29][Configuration] +PreloadWeight=42 + +[Containments][30][Configuration] +PreloadWeight=42 + +[Containments][32][Configuration] +PreloadWeight=34 + +[Containments][33][Configuration] +PreloadWeight=34 + +[Containments][34][Configuration] +PreloadWeight=42 + +[Containments][35][Configuration] +PreloadWeight=42 + +[Containments][36][Configuration] +PreloadWeight=42 + +[Containments][37][Configuration] +PreloadWeight=42 + +[Containments][38][Configuration] +PreloadWeight=42 + +[Containments][39][Configuration] +PreloadWeight=42 + +[Containments][40][Configuration] +PreloadWeight=42 + +[Containments][42][Configuration] +PreloadWeight=42 + +[Containments][71] +ItemGeometries-3840x2160= +ItemGeometriesHorizontal= +activityId=335a53bf-d117-46d8-a166-621281cf7411 +formfactor=0 +immutability=1 +lastScreen=0 +location=0 +plugin=org.kde.plasma.folder +wallpaperplugin=org.kde.image + +[Containments][72] +activityId=335a53bf-d117-46d8-a166-621281cf7411 +formfactor=0 +immutability=1 +lastScreen=1 +location=0 +plugin=org.kde.plasma.folder +wallpaperplugin=org.kde.image + +[Containments][8] +activityId= +formfactor=2 +immutability=1 +lastScreen=0 +location=4 +plugin=org.kde.plasma.private.systemtray +popupHeight=480 +popupWidth=480 +wallpaperplugin=org.kde.image + +[Containments][8][Applets][10] +immutability=1 +plugin=org.kde.kdeconnect + +[Containments][8][Applets][10][Configuration] +PreloadWeight=42 + +[Containments][8][Applets][11] +immutability=1 +plugin=org.kde.plasma.clipboard + +[Containments][8][Applets][11][Configuration] +PreloadWeight=92 + +[Containments][8][Applets][12] +immutability=1 +plugin=org.kde.plasma.volume + +[Containments][8][Applets][12][Configuration] +PreloadWeight=42 + +[Containments][8][Applets][12][Configuration][ConfigDialog] +DialogHeight=600 +DialogWidth=800 + +[Containments][8][Applets][12][Configuration][General] +currentTab=streams +migrated=true + +[Containments][8][Applets][13] +immutability=1 +plugin=org.kde.plasma.keyboardindicator + +[Containments][8][Applets][13][Configuration] +PreloadWeight=42 + +[Containments][8][Applets][14] +immutability=1 +plugin=org.kde.plasma.devicenotifier + +[Containments][8][Applets][14][Configuration] +PreloadWeight=42 + +[Containments][8][Applets][15] +immutability=1 +plugin=org.kde.plasma.nightcolorcontrol + +[Containments][8][Applets][15][Configuration] +PreloadWeight=87 + +[Containments][8][Applets][16] +immutability=1 +plugin=org.kde.plasma.manage-inputmethod + +[Containments][8][Applets][16][Configuration] +PreloadWeight=42 + +[Containments][8][Applets][17] +immutability=1 +plugin=org.kde.plasma.vault + +[Containments][8][Applets][17][Configuration] +PreloadWeight=42 + +[Containments][8][Applets][18] +immutability=1 +plugin=org.kde.plasma.keyboardlayout + +[Containments][8][Applets][18][Configuration] +PreloadWeight=52 + +[Containments][8][Applets][19] +immutability=1 +plugin=org.kde.plasma.printmanager + +[Containments][8][Applets][19][Configuration] +PreloadWeight=92 + +[Containments][8][Applets][22] +immutability=1 +plugin=org.kde.plasma.battery + +[Containments][8][Applets][22][Configuration] +PreloadWeight=42 + +[Containments][8][Applets][22][Shortcuts] +global= + +[Containments][8][Applets][23] +immutability=1 +plugin=org.kde.plasma.networkmanagement + +[Containments][8][Applets][23][Configuration] +PreloadWeight=47 + +[Containments][8][Applets][24] +immutability=1 +plugin=org.kde.plasma.bluetooth + +[Containments][8][Applets][24][Configuration] +PreloadWeight=18 + +[Containments][8][Applets][25][Configuration] +PreloadWeight=54 + +[Containments][8][Applets][35] +immutability=1 +plugin=org.kde.plasma.mediacontroller + +[Containments][8][Applets][35][Configuration] +PreloadWeight=0 + +[Containments][8][Applets][65] +immutability=1 +plugin=org.kde.kscreen + +[Containments][8][Applets][9] +immutability=1 +plugin=org.kde.plasma.notifications + +[Containments][8][Applets][9][Configuration] +PreloadWeight=42 + +[Containments][8][ConfigDialog] +DialogHeight=600 +DialogWidth=800 + +[Containments][8][Configuration] +PreloadWeight=42 + +[Containments][8][General] +extraItems=org.kde.plasma.battery,org.kde.plasma.notifications,org.kde.plasma.clipboard,org.kde.plasma.mediacontroller,org.kde.kupapplet,org.kde.plasma.volume,org.kde.plasma.keyboardindicator,org.kde.plasma.devicenotifier,org.kde.plasma.bluetooth,org.kde.plasma.networkmanagement,org.kde.plasma.nightcolorcontrol,org.kde.plasma.manage-inputmethod,org.kde.plasma.vault,org.kde.plasma.keyboardlayout,org.kde.plasma.printmanager,org.kde.kscreen,org.kde.kdeconnect +knownItems=org.kde.plasma.battery,org.kde.plasma.notifications,org.kde.plasma.clipboard,org.kde.plasma.mediacontroller,org.kde.kupapplet,org.kde.plasma.volume,org.kde.plasma.keyboardindicator,org.kde.plasma.devicenotifier,org.kde.plasma.bluetooth,org.kde.plasma.networkmanagement,org.kde.plasma.nightcolorcontrol,org.kde.plasma.manage-inputmethod,org.kde.plasma.vault,org.kde.plasma.keyboardlayout,org.kde.plasma.printmanager,org.kde.kscreen,org.kde.kdeconnect +shownItems=org.kde.plasma.battery + +[ScreenMapping] +itemsOnDisabledScreens= +screenMapping=desktop:/goals.md,0,335a53bf-d117-46d8-a166-621281cf7411,desktop:/kilroy.md,0,335a53bf-d117-46d8-a166-621281cf7411 diff --git a/.config/yakuake.shortcuts b/.config/yakuake.shortcuts new file mode 100644 index 0000000..efe54d9 --- /dev/null +++ b/.config/yakuake.shortcuts @@ -0,0 +1,54 @@ +[Global Shortcuts] +toggle-window-state=Meta+` + +[Shortcuts] +close-active-terminal=Ctrl+Shift+R +close-session=none +decrease-window-height=Alt+Shift+Up +decrease-window-width=Alt+Shift+Left +edit-profile=none +file_quit=Ctrl+Shift+Q +grow-terminal-bottom=Ctrl+Alt+Down +grow-terminal-left=Ctrl+Alt+Left +grow-terminal-right=Ctrl+Alt+Right +grow-terminal-top=Ctrl+Alt+Up +help_about_app=none +help_about_kde=none +help_report_bug=none +help_whats_this=Shift+F1 +increase-window-height=Alt+Shift+Down +increase-window-width=Alt+Shift+Right +keep-open=none +manage-profiles=none +move-session-left=Ctrl+Shift+Left +move-session-right=Ctrl+Shift+Right +new-session=Ctrl+Shift+T +new-session-quad=none +new-session-two-horizontal=none +new-session-two-vertical=none +next-session=Shift+Right +next-terminal=Ctrl+Tab; Shift+Tab +options_configure=Ctrl+Shift+, +options_configure_keybinding=none +options_configure_notifications=none +previous-session=Shift+Left +previous-terminal=Ctrl+Shift+Tab +rename-session=none +split-left-right=Ctrl+( +split-top-bottom=Ctrl+) +switch-to-session-1=none +switch-to-session-12=none +switch-to-session-2=none +switch-to-session-3=none +switch-to-session-4=none +switch-to-session-5=none +switch-to-session-6=none +switch-to-session-7=none +switch-to-session-8=none +switch-to-session-9=none +toggle-session-keyboard-input=none +toggle-session-monitor-activity=Ctrl+Shift+A +toggle-session-monitor-silence=Ctrl+Shift+I +toggle-session-prevent-closing=none +toggle-window-state=none +view-full-screen=Ctrl+Shift+F11 \ No newline at end of file diff --git a/.config/yakuakerc b/.config/yakuakerc new file mode 100644 index 0000000..12b814d --- /dev/null +++ b/.config/yakuakerc @@ -0,0 +1,52 @@ +[Animation] +AutoOpen=false +Frames=17 +PollInterval=500 +UseVMAssist=true + +[Appearance] +BackgroundColor=#000000 +BackgroundColorOpacity=0.4 +Blur=false +KeyboardInputBlockIndicatorColor=#FF0000 +KeyboardInputBlockIndicatorDuration=250 +Skin=default +SkinInstallWithKns=false +TerminalHighlightDuration=250 +Translucency=false + +[Behavior] +FocusFollowMouse=false +OpenAfterStart=false +RememberFullscreen=false + +[Desktop Entry] +DefaultProfile= + +[Dialogs] +ConfirmQuit=true +FirstRun=false + +[Favorite Profiles] +Favorites= + +[KFileDialog Settings] +detailViewIconSize=0 + +[PrintOptions] +PrinterFriendly=true +ScaleOutput=true + +[Window] +DynamicTabTitles=false +Height=60 +KeepAbove=true +KeepOpen=true +KeepOpenAfterLastSessionCloses=false +Position=50 +Screen=0 +ShowOnAllDesktops=true +ShowSystrayIcon=true +ShowTabBar=true +ShowTitleBar=true +ToggleToFocus=false \ No newline at end of file diff --git a/.gitignore b/.gitignore index 304b2cf..d9cea87 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .bash_secrets +.vim/.netrwhist .idea/ .config/Code/Backups/* .config/Code/*Cache*/* diff --git a/.inputrc b/.inputrc new file mode 100644 index 0000000..8638ed5 --- /dev/null +++ b/.inputrc @@ -0,0 +1,2 @@ +"\e[A": history-search-backward +"\e[B": history-search-forward diff --git a/.stow-local-ignore b/.stow-local-ignore new file mode 100644 index 0000000..94a514a --- /dev/null +++ b/.stow-local-ignore @@ -0,0 +1,7 @@ +.git +.gitmodules +.gitignore +README.md +setup.sh +Dockerfile +VimScreenshot.png diff --git a/.tmux.conf b/.tmux.conf index 7c978fa..b59ea93 100644 --- a/.tmux.conf +++ b/.tmux.conf @@ -1,44 +1,26 @@ ############################################################################### ## Author: Shaun Reed | Contact: shaunrd0@gmail.com | URL: www.shaunreed.com ## ## ## -## A custom tmux multiplexer config / layout created for Manjaro i3 ## -##+ Inspired by vim-powerline: https://github.com/Lokaltog/powerline ## +## A custom tmux multiplexer config / layout created for KDE ## ## ## -## This config created and tested with Powerline Consolas ## -##+ https://github.com/Lokaltog/powerline-fonts ## -##+ Some symbols may require Font Awesome 5 Free Solid ## +## This config was tested with SauceCodePro Nerd Font Mono, Regular ## +## See: dot/.local/share/fonts/ ## +## https://github.com/ryanoasis/nerd-fonts ## ## ## ############################################################################### -# .tmux.conf -# # If symbols or powerline layout fail to appear... -#+ Check your terminal emulator font settings include these fonts -#+ Check that required fonts are installed +# + Check your terminal emulator font settings include these fonts +# + Check that required fonts are installed # # Note: The use of 256colours in this file allows for portable color definitions between platforms and applications -#+ Changing to a different color interpretation may result in some apps displaying colors differently than others -#+ Vim plugin 'Colorizer' does not reflect the actual 256colour values -#+ See https://jonasjacek.github.io/colors/ for a full list of 256colours +# + Changing to a different color interpretation may result in some apps displaying colors differently than others +# + Vim plugin 'Colorizer' does not reflect the actual 256colour values +# + See https://jonasjacek.github.io/colors/ for a full list of 256colours # Settings for terminal text selection / copy options # + Source: https://www.seanh.cc/2020/12/27/copy-and-paste-in-tmux/ # + Depends: https://github.com/tmux-plugins/tmux-yank#linux set -g mouse on -# These bindings are for X Windows only. If you're using a different -# window system you have to replace the `xsel` commands with something -# else. See https://github.com/tmux/tmux/wiki/Clipboard#available-tools -bind -T copy-mode DoubleClick1Pane select-pane \; send -X select-word \; send -X copy-pipe-no-clear "xsel -i" -bind -T copy-mode-vi DoubleClick1Pane select-pane \; send -X select-word \; send -X copy-pipe-no-clear "xsel -i" -bind -n DoubleClick1Pane select-pane \; copy-mode -M \; send -X select-word \; send -X copy-pipe-no-clear "xsel -i" -bind -T copy-mode TripleClick1Pane select-pane \; send -X select-line \; send -X copy-pipe-no-clear "xsel -i" -bind -T copy-mode-vi TripleClick1Pane select-pane \; send -X select-line \; send -X copy-pipe-no-clear "xsel -i" -bind -n TripleClick1Pane select-pane \; copy-mode -M \; send -X select-line \; send -X copy-pipe-no-clear "xsel -i" -bind -n MouseDown2Pane run "tmux set-buffer -b primary_selection \"$(xsel -o)\"; tmux paste-buffer -b primary_selection; tmux delete-buffer -b primary_selection" -#set -g @plugin 'tmux-plugins/tpm' -#set -g @plugin 'tmux-plugins/tmux-yank' -#set -g @yank_action 'copy-pipe-no-clear' -#bind -T copy-mode C-c send -X copy-pipe-no-clear "xsel -i --clipboard" -#bind -T copy-mode-vi C-c send -X copy-pipe-no-clear "xsel -i --clipboard" set-option -s set-clipboard external bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xclip -selection clipboard -i" @@ -72,10 +54,10 @@ set -g status-style fg=colour240,bg=colour233 set -g status-left-style bg=colour233,fg=colour243 set -g status-left-length 40 -# Note: Powerline font requires alternate of bold on right side +# Note: SauceCodePro font requires alternate of bold on right side # + Corrects gap on right of character that reveals BG color # Note: No bold required, no BG reveal produced by symbol gaps on left side -# + Font: Sauce Code Pro (NERD patch) +# + Font: SauceCodePro (NERD patch, Regular) # Right side of status bar set -g status-right-style bg=colour233,fg=colour243 @@ -88,11 +70,6 @@ set -g window-status-current-format "#($HOME/go/bin/gitmux -cfg $HOME/.gitmux.co #set -g window-status-current-format "#[fg=colour255,bg=colour233]#[fg=colour100,nobold] #(whoami)@#H #[fg=colour255,bg=colour233,nobold]" run-shell "bash ~/.tmux/tmux-conf.sh" -# Check if we are running xorg -#set -g status-left "#[fg=colour233,bg=colour100,bold] #S #[fg=colour100,bg=colour240,nobold]#[fg=colour233,bg=colour240] #(whoami) #[fg=colour240,bg=colour235]#[fg=colour240,bg=colour235] #(hostname) #[fg=colour235,bg=colour233]#[fg=colour240,bg=colour233]" -#set -g status-right "#[fg=colour235,bg=colour233,bold]#[fg=colour240,bg=colour235,nobold] %H:%M:%S #[fg=colour240,bg=colour235,bold]#[fg=colour233,bg=colour240,nobold] %d-%b-%y #[fg=colour100,bg=colour240,bold]#[fg=colour233,bg=colour100,bold] #(cd #{pane_current_path}; basename `git rev-parse --show-toplevel`) " - - # Current window status set -g window-status-current-style bg=colour233,fg=colour100 # Window with activity status diff --git a/.tmux/.tmux-gui.conf b/.tmux/.tmux-gui.conf index afc9062..140b750 100644 --- a/.tmux/.tmux-gui.conf +++ b/.tmux/.tmux-gui.conf @@ -8,16 +8,9 @@ set -g mouse on # These bindings are for X Windows only. If you're using a different # window system you have to replace the `xsel` commands with something # else. See https://github.com/tmux/tmux/wiki/Clipboard#available-tools -bind -T copy-mode DoubleClick1Pane select-pane \; send -X select-word \; send -X copy-pipe-no-clear "xsel -i" -bind -T copy-mode-vi DoubleClick1Pane select-pane \; send -X select-word \; send -X copy-pipe-no-clear "xsel -i" -bind -n DoubleClick1Pane select-pane \; copy-mode -M \; send -X select-word \; send -X copy-pipe-no-clear "xsel -i" -bind -T copy-mode TripleClick1Pane select-pane \; send -X select-line \; send -X copy-pipe-no-clear "xsel -i" -bind -T copy-mode-vi TripleClick1Pane select-pane \; send -X select-line \; send -X copy-pipe-no-clear "xsel -i" -bind -n TripleClick1Pane select-pane \; copy-mode -M \; send -X select-line \; send -X copy-pipe-no-clear "xsel -i" bind -n MouseDown2Pane run "tmux set-buffer -b primary_selection \"$(xsel -o)\"; tmux paste-buffer -b primary_selection; tmux delete-buffer -b primary_selection" # List of plugins and their settings -set -g @plugin 'tmux-plugins/tpm' set -g @plugin 'nhdaly/tmux-better-mouse-mode' set -g @scroll-speed-num-lines-per-scroll 2 set -g @plugin 'tmux-plugins/tpm' diff --git a/.vim/.netrwhist b/.vim/.netrwhist deleted file mode 100644 index 50dea27..0000000 --- a/.vim/.netrwhist +++ /dev/null @@ -1,5 +0,0 @@ -let g:netrw_dirhistmax =10 -let g:netrw_dirhistcnt =3 -let g:netrw_dirhist_3='/home/kapper/.ssh' -let g:netrw_dirhist_2='/home/kapper' -let g:netrw_dirhist_1='/home/kapper/dot/vim/.vim/bundle/vim-airline-themes' diff --git a/.vim/backup/.gitignore b/.vim/backup/.gitignore new file mode 100644 index 0000000..89b1c15 --- /dev/null +++ b/.vim/backup/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Don't ignore this file +!.gitignore diff --git a/.vim/swap/.gitignore b/.vim/swap/.gitignore new file mode 100644 index 0000000..89b1c15 --- /dev/null +++ b/.vim/swap/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Don't ignore this file +!.gitignore diff --git a/.vimrc b/.vimrc index 04e7251..bd23f8b 100644 --- a/.vimrc +++ b/.vimrc @@ -1,7 +1,12 @@ " Single-quote is a comment written to be read " Double-quotes are commented out code and can be removed or added +" " General Vim Settings + +" Fix plugin compatibility issues +set nocp + let is_docker = filereadable(expand('/.dockerenv')) let has_sauce = filereadable(expand('~/.local/share/fonts/sauce-code-pro.otf')) let is_xorg = exists("$DISPLAY") @@ -13,9 +18,14 @@ let is_xorg = exists("$DISPLAY") " Keep the bottom / top of the page n lines from the cursor set scrolloff=5 +" set paths for swap, backup, and undo files +" :help directory +set directory=~/.vim/swap//,~/tmp/,/var/tmp/,/tmp/,. +" :help backupdir +set backupdir=~/.vim/backup//,~/tmp/,/var/tmp/,/tmp/,. " Persistant undo " :help undo-persistence -set undodir=~/.vim/undodir +set undodir=~/.vim/undodir//,~/tmp/,/var/tmp/,/tmp/,. set undofile " Combine vim clipboard with global clipboard buffer @@ -26,29 +36,7 @@ set clipboard+=unnamedplus " Allows true colors in vim (> 8 bit colors) " :help termguicolors -"set termguicolors - -" Custom formatting based on filetype -" :help autocmd -"" autocmd FileType yaml set tabstop=2 shiftwidth=2 - -" Highlight characters past column N in source files based on file type -autocmd FileType cpp,c match ErrorMsg '\%>80v.\+' -autocmd FileType cs match ErrorMsg '\%>120v.\+' - -" Define function in vim to remove whitespace -fun! TrimWhitespace() - let l:save = winsaveview() - keeppatterns %s/\s\+$//e - call winrestview(l:save) -endfun -"Call this on every attempt to save a file of types defined below.. -autocmd BufWritePre *.cpp,*.h,*.c,*.php,*.cs,*.yml,*.txt,*.md :call TrimWhitespace() -""autocmd BufWritePre *.cpp,*.h,*.c,*.php :%s/\s\+$//ge - -" Set terminal title when opening file -"" autocmd BufEnter * let &titlestring = ' ' . expand("%:t") -"" set title +""set termguicolors " Set tabwidth=2, adjust Vim shiftwidth to the same set tabstop=2 shiftwidth=2 @@ -64,23 +52,15 @@ set mouse=a set number -" Use Powerline symbols -""let g:airline_powerline_fonts = 1 - " Enable Syntax Highlighting in Vim syntax on " Use Sourcerer color scheme by Xero colorscheme sourcerer -" Fix plugin compatibility issues -set nocp " Allow backspace to remove all types of characters set backspace=indent,eol,start -" Set terminal title when opening file -"" autocmd BufEnter * let &titlestring = ' ' . expand("%:t") -"" set title - +" " Custom Vim Keybindings " nnoremap " Modify and remove leading quotation @@ -95,6 +75,34 @@ nnoremap "nnoremap :!cmake -S . -B ./build/ && cmake --build ./build "nnoremap :!./build/scrap +" Define function in vim to remove whitespace +fun! TrimWhitespace() + let l:save = winsaveview() + keeppatterns %s/\s\+$//e + " Restore window view to retain cursor position + call winrestview(l:save) +endfun + +" :help autocmd +augroup DotAutoCmd + autocmd! + " Set custom options based on filetype + autocmd FileType yaml set tabstop=2 shiftwidth=2 + + " Highlight characters past column N in source files based on file type + autocmd FileType cpp,c,cc,rust match ErrorMsg '\%>80v.\+' + autocmd FileType cs match ErrorMsg '\%>120v.\+' + + "Call this on every attempt to save a file of types defined below.. + autocmd BufWritePre * call TrimWhitespace() + + " Set terminal title when opening file + "" autocmd BufEnter * let &titlestring = ' ' . expand("%:t") + "" set title +augroup END + + +" " Vim Plugin Settings " set rtp+=/path/to/rtp/that/included/pathogen/vim " if needed @@ -133,7 +141,7 @@ nmap (ale_next_wrap) "let g:colorizer_colornames = 0 " Don't color literal names, like red, green, etc let g:colorizer_auto_color = 0 ""let g:colorizer_skip_comments = 1 -""let g:colorizer_auto_filetype ='css,html,vim' +let g:colorizer_auto_filetype ='css,html,qml' nnoremap :ColorToggle " Symbols important to vim / terminal layouts @@ -178,7 +186,7 @@ elseif is_xorg let g:airline_symbols.notexists = 'Ɇ' let g:airline_symbols.whitespace = 'Ξ' else - " unicode symbols + " no symbols let g:airline_left_sep = '' let g:airline_left_sep = '' let g:airline_right_sep = '' @@ -201,6 +209,7 @@ else let g:airline_symbols.whitespace = '' endif +" " Clang completeion settings " If this is set, clang_complete will not be loaded at all diff --git a/Dockerfile b/Dockerfile index 8d5750f..114e9b3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,8 +3,8 @@ FROM ubuntu:latest COPY . /dot ENV TERM=xterm-256color # Install additional packages we need -RUN apt update -y && apt upgrade -y -RUN apt install -y git stow vim tmux ranger clang wget curl golang-go +RUN bash -c '. /dot/.bash_aliases && apt update -y && apt install -y $DOT_PACKAGES fontconfig' +RUN apt upgrade -y RUN go install github.com/arl/gitmux@latest # Update submodules for plugins RUN cd /dot && git submodule update --init && cp .gitmux.conf.docker .gitmux.conf diff --git a/README.md b/README.md index b65a668..7481961 100644 --- a/README.md +++ b/README.md @@ -1,39 +1,23 @@ -Dotfiles configurations for headless Ubuntu 22.04 linux environments. Be sure to clone recursively if you want to grab updated plugins / submodules included. For example, using Pathogen with Vim to manage plugins requires that the plugin to be installed are cloned to the `~/.vim/bundle/` directory. Cloning recursively allows git to clone these same nested repositories/submodules within this directory so Pathogen can handle running the Vim plugins. +## Dotfiles + +Dotfiles configurations for headless Kubuntu linux environments. Be sure to clone recursively if you want to grab updated plugins / submodules included. For example, using Pathogen with Vim to manage plugins requires that the plugin to be installed are cloned to the `~/.vim/bundle/` directory. Cloning recursively allows git to clone these same nested repositories/submodules within this directory so Pathogen can handle running the Vim plugins. Once installed, editing source code in vim supports features displayed in the screenshot below ![Vim screenshot](VimScreenshot.png) -### Install Dotfiles +### Install -Easiest installation is to clone repository into home directory - +If you don't install `vim-gtk3`, vim will not have access to your system clipboard, and your copy and paste buffers will not stay in sync. + +Installation instructions - ```bash -sudo apt install git stow vim xsel xclip tmux ranger clang yakuake wget curl -git clone --recursive https://github.com/shaunrd0/dot ~/dot -cd ~/dot/ -stow --adopt . -``` - -If you'd rather clone elsewhere - - -```bash -git clone --recursive https://github.com/shaunrd0/dot /path/to/dot -cd /path/to/dot/ -stow --adopt -t ~ . -``` - -**Warning:** `--adopt` is used to link conflicting files, but doing so could result in the loss of some configs within your local copy of the repository and on your local system. -After running `stow --adopt .`, be sure to check `git status` is clean. -If a file has been modified, discard the local changes to be up-to-date with `origin/master` and it will be restored on your system as well, since the files are now linked. **Your conflicting local system configurations will be lost** unless you back them up manually. - -We could run the following commands to restore changed files -```bash -git checkout -- .vimrc -# Or, to step through each change interactively using git.. -git checkout -p -# Or restore the current directory -git restore . +git clone --recursive https://github.com/shaunrd0/dot +cd dot/ +./setup.sh +mv ~/.bashrc ~/.bashrc.backup +stow . -t ~ ``` If you forget to clone recursively diff --git a/setup.sh b/setup.sh new file mode 100755 index 0000000..9d7f067 --- /dev/null +++ b/setup.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +git submodule update --init +# Use alias for installing packages so we don't maintain several dependency lists. +. .bash_aliases +,init +go install github.com/arl/gitmux@latest