31 Commits

Author SHA1 Message Date
7565c99f12 Update tmux configs
+ Update alias for resetting plasmashell
+ Plugins for tmux as submodules
+ Enable MMB to paste
2022-07-16 10:20:50 -04:00
41dc71d3a4 Update dotfiles
+ Add less options and flags for man pages
+ Adjust tmux copy behavior
+ Allow mouse wheel scrolling while viewing man pages
2022-04-11 23:29:43 -04:00
d0fb7ead04 Update tmux copy and selection behavior
+ Enable vim copy selection mode
+ Add various copy actions for middle, double, triple-click, etc.
+ Add instructions to README to install required tmux plugins
2022-02-06 11:51:47 -05:00
4cf23d7c58 Improve i3 configurations to work alongside Plasma
+ Add alias to restart plasmashell
+ Fix date display in conky for i3 sessions
+ Fix polybar height for better display with new font size
+ Add floating rules in i3 for Steam and Signal
+ Use i3 configuration to bind custom keys instead of xbindkeys
+ Relocate `.desktop` files to `.local/share/applications`
+ Symlink desktop files for startup applications to `.config/autostart`
2022-01-01 16:42:23 -05:00
142ce24675 Update dotfiles
+ Various improvements for XPS 9310 keybinds
+ Various improvements for XPS 9310 conky sysinfo overlay
+ Limit curl requests for web server status to refresh every 2mins
+ Update conky shortcuts overlay to show new shorts for i3 and vim
+ New darcula colorscheme for vim
+ Adjust i3 window attributes for new applications
+ Fix for vim storing yanked or deleted text to system clipboard
+ Relocate screenshots and backgrounds to subdirectories in ~/Pictures
+ Relocate all user scripts to ~/.local/bin/
+ Use symlinks for scripts in ~/.config/autostart-scripts
+ Relocate all user-created desktopfiles to ~/.local/share/applications
+ Use symlinks for desktopfiles in in ~/.config/autostart
+ Update paths in i3 config to use $HOME environment variable instead of
  absolute paths
2021-12-25 15:48:30 -05:00
a667db027f Update README 2021-12-21 13:48:17 -05:00
b00f64def5 Improve i3 configs
+ Use `pulsemixer` for audion volume control
+ Update polybar configs to not use sudo when running commands
+ Add Logout to polybar menu foor logging out of system user
+ Add brightness module to polybar to show backlight percentage 0-100
2021-12-21 00:30:23 -05:00
574cc7802a Merge kubuntu and ubuntu-i3 configs 2021-12-20 16:51:07 -05:00
4d7aa521dc Remove yakuake configurations
+ Migrate yakuake configs to a branch with a full DE
+ Update `.bash_aliases` to include `kapp-update` and `kapp-git`
+ Add conditional sourcing of untracked `.bash_secrets` file, if it exists
2021-12-18 20:57:56 -05:00
7877117d5b Update yakuake shortcuts and configuration 2021-09-23 11:03:50 -04:00
f4f1a9dbba Add configs for yakuake and ranger
+ Alias for using Python 3.9 and pip3.9
+ Adjust step-in and step-out vim keybinds
2021-09-23 10:14:42 -04:00
3a9b30b8c7 Add .vim/undodir for persistent undo / redo history
+ Add .vim/undodir/.gitignore to ignore all files within
+ Makes undodir available to vim for writing local history but does not track files with git
2021-03-07 20:34:46 +00:00
e11d0b1e20 Improve vimrc to include more information and settings
+ Add more binds, even if left default, for reference or quick adjusting
+ Adjust sourcerer.vim for ultra-black background
+ Set clang_complete to use snippets for code completion in C / C++
+ Set clang_complete binds jump-to declaration and jump-out to + and _ respectively
+ Add information to vimrc to allow adjusting clang options
+ Highlight column 80 on cpp and c files
+ Revert to unicode symbols by default, left powerline symbols commented out for now
2021-03-03 16:11:33 +00:00
b73166a724 Update .vimrc to include basic clang_complete binds
+ Listed even if the bind is kept default
2021-02-18 13:00:10 -05:00
21bc190261 Update submodules to latest commit 2021-02-18 10:21:42 -05:00
516e6c1992 Update README 2020-11-25 06:55:27 -05:00
a3308b64df Update README 2020-11-23 14:30:48 -05:00
b5cadab3f6 Merge branch 'master' into headless 2020-11-23 12:43:44 -05:00
5fe1fd7ae2 Change example to libclang-9-dev 2020-06-15 09:49:21 -04:00
6ef6f806d3 Reduce the scope of searching for libclang
+ Checks the /usr/ directory recursively

Add example path to more common libclang1
+ libclang-10-dev is not available on WSL
2020-06-15 09:33:46 -04:00
da17f5423f Remove find command from bash aliases
+ Fix for slow starting terminal sessions
+ Require user to configure clang path following commands in README
2020-06-15 09:19:25 -04:00
eaefbdc471 Update libclang setup to avoid slow starting sessions
+ Remove find from the LIBCLANG environment variable
+ Let the user run commands to set this variable up if needed, found in
the README

Change from echo to printf
2020-06-14 12:59:32 -04:00
d76289d1fe Remove sudo from LIBCLANG 2020-06-12 10:32:13 -04:00
2e3d2523f1 Update README for more detailed instructions
Add recommendation to headless branch for first-time setup
+ This branch provides the terminal tweaks I use
+ Does not modify desktop environment or window manager settings

Add an explanation for setting up clang_completion as it can sometimes
require some tweaking.
2020-06-11 14:53:01 -04:00
138ccc7e51 Make path to libclang universal, update vimrc
Added Ale plugin for running linters
+ Changed unicode error and warning symbols
+ Added keybind for moving to next / previous errors

Update vimrc to use environment variable /usr/lib/llvm-10/lib/libclang.so.1 for clang path
+ This is automatically adjusted to the system clang path via output of 'find / -name libclang.so.1'
+ Requires some derivative of libclang to be installed, along with clang

Add whitespace check function to vimrc
+ Removes whitespaces from every relative file saved with vim
+ list of files found within ~/.vimrc

Add Colorizer plugin keybind for toggling color highlights within vim

Add environment variables $EDITOR and $VISUAL and set both to point to vim

Add a script to fix a common issue in vbox displays
+ running fix-vbox.sh corrects unclickable portion of the screen
2020-06-11 14:00:01 -04:00
fd37b436b6 Update README to reflect new branch names 2020-05-11 06:34:03 -04:00
f32c1048d1 Remove unused files 2020-05-03 23:54:33 -04:00
adf0255224 README.md 2020-02-19 07:05:07 +00:00
6792c978dd Remove outdated info in README, screenshots 2020-02-19 06:37:29 +00:00
55adf58a00 Basic vim settings, plugins 2020-02-19 06:28:27 +00:00
d57c7b822e Initial commit for headless dotfiles 2020-02-19 06:22:36 +00:00
64 changed files with 1555 additions and 1280 deletions

View File

@@ -1,5 +1,18 @@
# Overrides for default .bashrc aliases and exports
# Aliases to use the correct python version
alias python3='python3.9'
alias pip3='python3.9 -m pip'
# Alias to restart plasmashell for Kubuntu Plasma session
alias kapp-plasmashell='sudo pkill plasmashell && sleep 1 && (plasmashell --replace &> /dev/null &)'
# Alias to clear swap
alias kapp-swap='sudo swapoff -a && sudo swapon -a'
# Alias to initialize github user
alias kapp-git='git config --global user.name "Shaun Reed" && git config --global user.email "shaunrd0@gmail.com"'
# Alias to update and upgrade with useful flags set
alias kapp-update='sudo apt update -y && sudo apt upgrade -y && sudo apt upgrade --fix-broken --fix-missing --auto-remove'
# 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'
@@ -11,31 +24,53 @@ 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$//'\'')"'
# Custom aliases / exports
alias python3='python3.9'
alias pip3='python3.9 -m pip'
alias kapp-git='git config --global user.name "Shaun Reed" && git config --global user.email "shaunrd0@gmail.com"'
alias kapp-update='sudo apt update -y && sudo apt upgrade -y && sudo apt upgrade --fix-broken --fix-missing --auto-remove'
#export FONT='xft:InconsolataNerdFont'
#export TERMINAL='urxvt -fn '$FONT' -e tmux -u'
export TERMINAL='urxvt -e tmux -u'
export EDITOR='/usr/bin/vim'
export VISUAL='/usr/bin/vim'
export PATH=$PATH":$HOME/.local/bin/i3scripts:/opt/"
export PATH=$PATH:/opt/:/home/kapper/.local/bin/
if command -v tmux &> /dev/null && [ -n "$PS1" ] && [[ ! "$TERM" =~ screen ]] && [[ ! "$TERM" =~ tmux ]] && [ -z "$TMUX" ]; then
exec tmux
fi
eval "$(dircolors ~/.dir_colors)"
export EDITOR="vim"
export VISUAL="vim"
export LS_COLORS="di=1;34:ln=31;47:so=32:pi=33:ex=1;32:bd=34;46:cd=34;43:su=30;41:sg=30;46:tw=30;42:ow=30;43"
export PATH=$PATH:/opt/:/home/kapper/.local/bin/:/home/kapper/.local/bin/i3scripts
# Example path for autocompletion using libclang-9-dev package, obtained by the following command
# find /usr/ -name libclang.so.1 2>/dev/null
export LIBCLANG="/usr/lib/llvm-10/lib/libclang.so.1"
# Source a top-secret alias file
if [ -f ~/.bash_secrets ]; then
. ~/.bash_secrets
fi
if command -v tmux &> /dev/null && [ -n "$PS1" ] && [[ ! "$TERM" =~ screen ]] && [[ ! "$TERM" =~ tmux ]] && [ -z "$TMUX" ]; then
exec tmux
fi
# Set the default terminal to use konsole, with Kapper profile
# + Execute tmux on start
export TERMINAL='konsole --profile Kapper -e tmux'
# Less colors for man pages
export PAGER=less
default=$(tput sgr0)
red=$(tput setaf 1)
green=$(tput setaf 2)
purple=$(tput setaf 5)
orange=$(tput setaf 9)
# Begin blinking
export LESS_TERMCAP_mb=$red
# Begin bold
export LESS_TERMCAP_md=$orange
# End mode
export LESS_TERMCAP_me=$default
# End standout-mode
export LESS_TERMCAP_se=$default
# Begin standout-mode - info box
export LESS_TERMCAP_so=$purple
# End underline
export LESS_TERMCAP_ue=$default
# Begin underline
export LESS_TERMCAP_us=$green
# Allow mouse wheel movement for less output (manpages, diffs)
export LESS='--mouse --wheel-lines 2'
# Set additional flags for less
# + -R for raw control characters
# + -w to highlight first unread line when jumping N>1 lines down
# + -#2 to shift 2 columns horizontally when right / left arrow is pressed
export LESS="$LESS -R -w -#2"

24
.bashrc
View File

@@ -1,14 +1,13 @@
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples
# If not running interactively, don't do anything
case $- in
*i*) ;;
*) return;;
esac
unset PROMPT_COMMAND
# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth
@@ -57,18 +56,10 @@ if [ -n "$force_color_prompt" ]; then
fi
fi
function _update_ps1() {
PS1=$(powerline-shell $?)
}
if [[ $TERM != linux && ! $PROMPT_COMMAND =~ _update_ps1 ]]; then
PROMPT_COMMAND="_update_ps1; $PROMPT_COMMAND"
fi
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\][\u@\h\[\033[00m\] \W\[\033[01;32m\]]\$\[\033[00m\]'
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}[\u@\h \W]\$ '
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt
@@ -93,8 +84,6 @@ if [ -x /usr/bin/dircolors ]; then
alias egrep='egrep --color=auto'
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'
@@ -105,9 +94,11 @@ 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$//'\'')"'
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$//'\'')"'
# Edit ~/.bash_aliases, instead of adding them here directly.
# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
if [ -f ~/.bash_aliases ]; then
@@ -124,3 +115,4 @@ if ! shopt -oq posix; then
. /etc/bash_completion
fi
fi
. "$HOME/.cargo/env"

View File

@@ -1,6 +0,0 @@
{
"terminal.integrated.fontFamily": "Inconsolata Nerd Font Mono",
"editor.tabCompletion": "on",
"editor.tabSize": 2,
"window.zoomLevel": -1
}

View File

@@ -1 +0,0 @@
{}

View File

@@ -0,0 +1 @@
../../.local/bin/mountdrive.sh

View File

@@ -1,15 +0,0 @@
[Desktop Entry]
Icon=/home/kapper/.local/share/JetBrains/Toolbox/toolbox.svg
Exec=/home/kapper/.local/share/JetBrains/Toolbox/bin/jetbrains-toolbox --minimize
Version=1.0
Type=Application
Categories=Development
Name=JetBrains Toolbox
StartupWMClass=jetbrains-toolbox
Terminal=false
MimeType=x-scheme-handler/jetbrains;
X-GNOME-Autostart-enabled=true
StartupNotify=false
X-GNOME-Autostart-Delay=10
X-MATE-Autostart-Delay=10
X-KDE-autostart-after=panel

View File

@@ -0,0 +1 @@
.local/share/applications/jetbrains-toolbox.desktop

View File

@@ -0,0 +1 @@
.local/share/applications/mullvad-vpn.desktop

View File

@@ -0,0 +1 @@
.local/share/applications/org.kde.yakuake.desktop

View File

@@ -1,76 +1,96 @@
conky.config = {
alignment = 'top_left',
background = true,
color2 = '2ECC71',
cpu_avg_samples = 2,
default_color = 'FFFFFF',
double_buffer = true,
font = 'Bitstream Vera Sans:size=8',
gap_x = 15,
gap_y = 40,
minimum_width = 200,
no_buffers = true,
own_window = true,
alignment = 'top_left',
background = true,
color2 = '2ECC71',
cpu_avg_samples = 2,
default_color = 'FFFFFF',
double_buffer = true,
font = 'Bitstream Vera Sans:size=10',
gap_x = 15,
gap_y = 15,
minimum_width = 200,
no_buffers = true,
own_window = true,
own_window_class = 'shortcuts_green',
own_window_type = 'override',
own_window_transparent = true,
update_interval = 10.0,
use_xft = true,
own_window_type = 'override',
own_window_transparent = true,
update_interval = 10.0,
use_xft = true,
}
conky.text = [[
#
# Date Display
${alignr}${color1}
# Month
${goto 20}${color}${voffset 0}${color}${font Bitstream Vera Sans:size=18}${time %b}\
# Date
${alignr}${color1}
${goto 20}${voffset 8}${color2}${font Bitstream Vera Sans:size=16}${time %A}$font\
${goto 140}${voffset -8}${color}${font Bitstream Vera Sans:size=38}${time %e}$font
${goto 20}${color}${voffset -30}${color}${font Bitstream Vera Sans:size=18}${time %b}$font\
${goto 60}${voffset -3} ${color}${font Bitstream Vera Sans:size=20}${time %Y}$font${color2}$hr
${goto 65}${voffset 0} ${color}${font Bitstream Vera Sans:size=16}${time %e}\
# Year
${goto 100}${voffset -5} ${color}${font Bitstream Vera Sans:size=20}${time %Y}
${goto 0}${voffset -20}$font${color2}$hr
# Day
${goto 20}${voffset 0}${color2}${font Bitstream Vera Sans:size=16}${time %A}
#
---------------Applications---------------
${color2}open new terminal - ${color}mod+Enter
${color2}open dropdown yakuake terminal - ${color}F4
${color2}Firefox - ${color}mod+Shift+f
$font${color}
${color2}mod key - ${color}Meta
${color2}lock session - ${color}mod+l
---------------Screenshots----------------
${color2}image clip tool - ${color}mod+Shift+p
---------------Vim Keybinds---------------
${color2}Toggle color highlighting - ${color}CTRL+c
${color2}Build make project in CWD - ${color}CTRL+m
${color2}Build cmake project in CWD - ${color}CTRL+b
${color2}Previous ALE Warning / Error - ${color}CTRL+k
${color2}Next ALE Warning / Error - ${color}CTRL+j
---------------Menus----------------------
${color2}audio devices - ${color}mod+Ctrl+a
${color2}bluetooth devices - ${color}mod+Ctrl+d
${color2}bmenu system settings - ${color}mod+Ctrl+b
${color2}dmenu app launcher - ${color}mod+d
${color2}morc_menu app menu - ${color}mod+z
${color2}power modes - ${color}mod+0
${color2}blur lock - ${color}mod+9
-----------------Commands-----------------
${color2}Window info - ${color}xprop
---------------Restart / Reload-----------
---------------Applications---------------
${color2}[konsole] Open new terminal - ${color}mod+Enter
${color2}[yakuake] Open dropdown terminal - ${color}mod+`
${color2}[firefox] Web Browser ${color}mod+Shift+f
${color2}kill conky - ${color}mod+o
${color2}start conky - ${color}mod+shift+o
${color2}kill compton - ${color}mod+t
${color2}start compton - ${color}mod+Shift+t
${color2}reload i3 - ${color}mod+Shift+c
${color2}restart i3 - ${color}mod+Shift+r
---------------Screenshots----------------
${color2}[scrot] image clip tool - ${color}mod+Shift+p
---------------Scratchpad-----------------
${color2}send to scratchpad - ${color}mod+Shift+minus
${color2}show scratchpad - ${color}mod+minus
---------------Menus----------------------
${color2}[pavucontrol] Audio devices ${color}mod+Ctrl+a
${color2}[blueman-manager] Bluetooth devices ${color}mod+Ctrl+d
${color2}[dmenu] App launcher - ${color}mod+d
${color2}[rofi] App launcher - ${color}mod+x
${color2}[rofi] Active window menu - ${color}mod+a
${color2}[rofi] Network / SSH menu - ${color}mod+z
${color2}bmenu system settings - ${color}mod+Ctrl+b
---------------Windows--------------------
${color2}modify gaps - ${color}mod+Shift+g
${color2}resize mode - ${color}mod+r
${color2}toggle split direction - ${color}mod+q
${color2}kill cursor selection - ${color}mod+Ctrl+q
${color2}kill active window - ${color}mod+Shift+q
---------------Restart / Reload-----------
${color2}kill conky - ${color}mod+o
${color2}start conky - ${color}mod+shift+o
${color2}kill polybar - ${color}mod+p
${color2}start polybar - ${color}mod+shift+p
${color2}kill compton - ${color}mod+t
${color2}start compton - ${color}mod+Shift+t
${color2}reload i3 - ${color}mod+Shift+c
${color2}restart i3 - ${color}mod+Shift+r
---------------Workspace--------------------
${color2}move to empty workspace - ${color}mod+Shift+z
${color2}switch to workspace 1-8 - ${color}mod+1-8
${color2}send to workspace 1-8 - ${color}mod+Ctrl+1-8
${color2}navigate workspaces - ${color}mod+Ctrl+arrowkeys
${color2}toggle floating - ${color}mod+Shift+Space
${color2}exit - ${color}mod+0
---------------Scratchpad-----------------
${color2}send to scratchpad - ${color}mod+Shift+minus
${color2}remove from scratchpad - ${color}mod+Shift+Space
${color2}show scratchpad - ${color}mod+minus
${color2}help - ${color}mod+Shift+h
${color2}mod key - ${color}<Alt>
---------------Windows--------------------
${color2}modify gaps - ${color}mod+Shift+g
${color2}resize mode - ${color}mod+r
${color2}toggle split direction - ${color}mod+q
${color2}kill cursor selection - ${color}mod+Ctrl+q
${color2}kill active window - ${color}mod+Shift+q
${color2}toggle floating - ${color}mod+Shift+Space
${color2}move floating window - ${color}mod+Click&Drag
${color2}resize floating window - ${color}mod+RightClick&Drag
---------------Workspace--------------------
${color2}move to empty workspace - ${color}mod+Shift+z
${color2}switch to workspace 1-9 - ${color}mod+1-9
${color2}navigate active workspaces - ${color}mod+Ctrl+arrowkeys
${color2}send active to workspace 1-9 - ${color}mod+Ctrl+1-9
${color2}move active to workspace 1-9 - ${color}mod+Ctrl+1-9
]]

View File

@@ -1,78 +1,85 @@
conky.config = {
alignment = 'top_right',
background = true,
color2 = '2ECC71',
cpu_avg_samples = 2,
default_color = 'FFFFFF',
alignment = 'top_right',
background = true,
color2 = '2ECC71',
cpu_avg_samples = 2,
default_color = 'FFFFFF',
double_buffer = true,
font = 'Bitstream Vera Sans:size=8',
gap_x = 15,
gap_y = -5,
minimum_width = 200,
no_buffers = true,
own_window = true,
own_window_type = 'override',
own_window_class = 'sysinfo_green',
font = 'Bitstream Vera Sans:size=10',
gap_x = 20,
gap_y = 10,
minimum_width = 200,
no_buffers = true,
own_window = true,
own_window_type = 'override',
own_window_class = 'sysinfo_green',
own_window_transparent = true,
update_interval = 5.0,
use_xft = true,
update_interval = 10.0,
use_xft = true,
temperature_unit = 'fahrenheit',
}
conky.text = [[
# Process list, load average
# 1m / 5m / 15m format for lad avg
${color2}${voffset 35}${alignr}${font Bitstream Vera Sans:size=10}Proccesses${color}
${color}${alignr}${font Bitstream Vera Sans:size=8}Load Average: $font$alignr${loadavg}
${color2}${voffset 35}${alignr}${font Bitstream Vera Sans:size=10}Proccesses${color}
${color}${alignr}${font Bitstream Vera Sans:size=8}Load Average: $font$alignr${loadavg}
#
# Process list CPU / RAM utilization table
${font}CPU${goto 170}RAM
${voffset 3}$font${color2}${top name 1}${goto 120}${color}${top cpu 1}%${goto 170}${color2}${top_mem name 1}${color}${alignr}${top_mem mem_res 1}${color}
${color2}${top name 2}${goto 120}${color}${top cpu 2}%${goto 170}${color2}${top_mem name 2}${color}${alignr}${top_mem mem_res 2}${color}
${voffset 3}$hr
${font}CPU${goto 170}RAM
${voffset 3}$font${color2}${top name 1}${goto 120}${color}${top cpu 1}%${goto 170}${color2}${top_mem name 1}${color}${alignr}${top_mem mem_res 1}${color}
${color2}${top name 2}${goto 120}${color}${top cpu 2}%${goto 170}${color2}${top_mem name 2}${color}${alignr}${top_mem mem_res 2}${color}
${voffset 3}$hr
#
# RAM Display
${color2}${voffset 4}${alignr}${font Bitstream Vera Sans:size=10}RAM ${color}
${goto 0}${color2}$alignc${memgraph 40,305}${color}
${voffset 4}${goto 0}${alignc}${color2}${membar 10, 305}
${color}${goto 10}${font}${memperc}%${alignr}${exec grep -w Active: /proc/meminfo | awk '{print $2 / 1024 }'}MiB /${memmax}
${voffset 3}${color}$hr
${color2}${voffset 4}${alignr}${font Bitstream Vera Sans:size=10}RAM ${color}
${goto 0}${color2}$alignc${memgraph 40,305}${color}
${voffset 4}${goto 0}${alignc}${color2}${membar 10, 305}
${color}${goto 10}${font}${memperc}%${alignr}${exec grep -w Active: /proc/meminfo | awk '{print $2 / 1024 }'}MiB /${memmax}
${voffset 3}${color}$hr
#
# CPU Display
${color2}${voffset 4}${alignr}${font Bitstream Vera Sans:size=10}CPU ${color}
${color2}${voffset 4}${alignr}${font Bitstream Vera Sans:size=10}CPU ${color}
# Chipset
${alignr}${font}${exec inxi |grep CPU | awk '{print $4" "$2" "$3" "$6}'}${exec lscpu |grep -w "Model name:"| awk '{print " - " $8}'}
${alignr}${font}${exec lscpu | grep -w "Model name:" | awk '{print $3 " " $4 " " $5 " " $6 " " $7 " " $8 " " $9}'}
# CPU Graph
${voffset 4}${goto 0}${alignc}${color2}${cpugraph 40, 305}
${voffset 4}${goto 0}${alignc}${color2}${cpugraph 40, 305}
# Percentage / GHz utilized
${voffset 0}${goto 10}${color}${font}${exec cat /sys/class/thermal/thermal_zone2/temp | awk '{print ( ( ( (9/5) * $1) / 1000) + 32) "°F" }'}${alignr}${cpu}% - ${freq_g}GHz
${voffset 0}${goto 10}${color}${font}${exec cat /sys/class/thermal/thermal_zone2/temp | awk '{print ( ( ( (9/5) * $1) / 1000) + 32) "°F" }'}${alignr}${cpu}% - ${freq_g}GHz
# CPU Core Graphs
${voffset 10}${color}${goto 10}${font Bitstream Vera Sans:size=8}${cpu cpu1}%${goto 43}${color2}${cpubar cpu1 12,110} ${goto 170}${color}${cpu cpu2}%${goto 203}${color2}${cpubar cpu2 12,110}
${voffset 10}${color}${goto 10}${font Bitstream Vera Sans:size=8}${cpu cpu3}%${goto 43}${color2}${cpubar cpu3 12,110} ${goto 170}${color}${cpu cpu4}%${goto 203}${color2}${cpubar cpu4 12,110}
${voffset 10}${color}${goto 10}${font Bitstream Vera Sans:size=8}${cpu cpu5}%${goto 43}${color2}${cpubar cpu5 12,110} ${goto 170}${color}${cpu cpu6}%${goto 203}${color2}${cpubar cpu6 12,110}
${voffset 10}${color}${goto 10}${font Bitstream Vera Sans:size=8}${cpu cpu7}%${goto 43}${color2}${cpubar cpu7 12,110} ${goto 170}${color}${cpu cpu8}%${goto 203}${color2}${cpubar cpu8 12,110}
${voffset 10}${color}${goto 10}${font Bitstream Vera Sans:size=8}${cpu cpu1}%${goto 43}${color2}${cpubar cpu1 12,110} ${goto 170}${color}${cpu cpu2}%${goto 203}${color2}${cpubar cpu2 12,110}
${voffset 10}${color}${goto 10}${font Bitstream Vera Sans:size=8}${cpu cpu3}%${goto 43}${color2}${cpubar cpu3 12,110} ${goto 170}${color}${cpu cpu4}%${goto 203}${color2}${cpubar cpu4 12,110}
${voffset 10}${color}${goto 10}${font Bitstream Vera Sans:size=8}${cpu cpu5}%${goto 43}${color2}${cpubar cpu5 12,110} ${goto 170}${color}${cpu cpu6}%${goto 203}${color2}${cpubar cpu6 12,110}
${voffset 10}${color}${goto 10}${font Bitstream Vera Sans:size=8}${cpu cpu7}%${goto 43}${color2}${cpubar cpu7 12,110} ${goto 170}${color}${cpu cpu8}%${goto 203}${color2}${cpubar cpu8 12,110}
${voffset 3}${color}$hr
${voffset 3}${color}$hr
#
# Network display
${color2}${font}${alignr}NETWORK${color}
${color}${voffset 4}${font}Interface: ${gw_iface} ${font}${alignr}Gateway IP: ${gw_ip}
${font}${alignr}${if_match "$wireless_essid"=="off/any"}Déconnecté${else}${wireless_essid}${endif}
${font}${goto 5}Down${alignr}Up
${goto 5}${color2}${downspeedgraph enp0s31f6 40,153}${goto 160}${upspeedgraph enp0s31f6 40,155}
${color2}${font}${alignr}NETWORK${color}
${color}${voffset 4}${font}Interface: ${gw_iface} ${font}${alignr}Gateway IP: ${gw_ip}
${font}${alignr}${if_match "$wireless_essid"=="off/any"}Déconnecté${else}${wireless_essid}${endif}
${font}${goto 5}Down${alignr}Up
${goto 10}${color2}${downspeedgraph wlp0s20f3 40,160}${goto 180}${upspeedgraph wlp0s20f3 40,160}
# Uncomment next line for wireless
# ${goto 5}${color}${downspeedf wlp3s0} Kb/s - ${totaldown wlp3s0}${goto 160}${upspeedf wlp3s0} Kb/s - ${totalup wlp3s0}
# ${goto 10}${color}${downspeedf wlp0s20f3} Kb/s - ${totaldown wlp0s20f3}${goto 180}${upspeedf wlp0s20f3} Kb/s - ${totalup wlp0s20f3}
# Ethernet network display
${goto 5}${color}${downspeedf enp0s31f6} Kb/s - ${totaldown enp0s31f6}${alignr}${upspeedf enp0s31f6} Kb/s - ${totalup enp0s31f6}
${voffset 4}${color}$hr
${goto 10}${color}${downspeedf wlp0s20f3} Kb/s - ${totaldown wlp0s20f3}${alignr}${upspeedf wlp0s20f3} Kb/s - ${totalup wlp0s20f3}
${voffset 4}${color}$hr
#
# HDDisk Display
${color2}${voffset 4}${alignr}${font Bitstream Vera Sans:size=10}DISKS${color}
${color2}${voffset 4}${alignr}${font Bitstream Vera Sans:size=10}DISKS${color}
#
# Root Filesystem Display
${voffset 2}${font}${goto 45} /dev/sda - /${font}${alignr}System: ${fs_used /} / ${fs_size /}
${color2}${diskiograph /dev/sda}${color}
${color2}${fs_bar 8 /}${color}
${voffset 2}${font}${goto 45} /dev/sda - /${font}${alignr}System: ${fs_used /} / ${fs_size /}
${color2}${diskiograph /dev/sda}${color}
${color2}${fs_bar 8 /}${color}
#
# Home Filesystem Display
#${voffset 6}${font}${goto 45}/dev/sda1 - /home/${font}${alignr}Data: ${fs_used /home/} / ${fs_size /home/}
@@ -80,29 +87,31 @@ ${color2}${fs_bar 8 /}${color}
#${color2}${fs_bar 8 /home/} ${color}
# Optinal drive display, specify path to check mount
#${if_mounted /run/media/thib/Data}${color}${font}${exec sudo hddtemp /dev/sdb -u F | awk '{print $NF}'}${alignr}${fs_used /run/media/thib/Data}/${fs_size /run/media/thib/Data}${else}${color}${font}${alignr}Unmounted${endif}
$hr
$hr
#
# Other information
${color2}${voffset 4}${alignr}${font Bitstream Vera Sans:size=10}OTHER${color}
${color2}${voffset 4}${alignr}${font Bitstream Vera Sans:size=10}OTHER${color}
# MOBO temp, uptime
${color}${voffset 4}${font}Motherboard: ${goto 120}${acpitemp}F°${alignr}Uptime: ${uptime_short}
${color}${voffset 4}${font}Motherboard: ${goto 120}${acpitemp}F°${alignr}Uptime: ${uptime_short}
# Domain status
# ${color}${voffset 4}${font}Knoats: ${alignc}${exec curl -Is https://knoats.com | grep HTTP | awk '{print $1 " - " $2}'}${alignr}${exec curl -o /dev/null -s -w %{time_total}\\n https://knoats.com}s
# ${font}Shaunreed: ${alignc}${exec curl -Is https://shaunreed.com | grep HTTP | awk '{print $1 " - " $2}'}${alignr}${exec curl -o /dev/null -s -w %{time_total}\\n https://shaunreed.com}s
# ${font}dv: ${alignc}${exec curl -Is https://kapp.ga | grep HTTP | awk '{print $1 " - " $2}'}${alignr}${exec curl -o /dev/null -s -w %{time_total}\\n https://kapp.ga}s
${color}${voffset 4}${font}Knoats: ${alignc}${execi 120 curl -Is https://knoats.com | grep HTTP | awk '{print $1 " - " $2}'}${alignr}${execi 120 curl -o /dev/null -s -w %{time_total}\\n https://knoats.com}s
${font}Shaunreed: ${alignc}${execi 120 curl -Is https://shaunreed.com | grep HTTP | awk '{print $1 " - " $2}'}${alignr}${execi 120 curl -o /dev/null -s -w %{time_total}\\n https://shaunreed.com}s
# ${font}dv: ${alignc}${execi 120 curl -Is https://kapp.ga | grep HTTP | awk '{print $1 " - " $2}'}${alignr}${execi 120 curl -o /dev/null -s -w %{time_total}\\n https://kapp.ga}s
#
${voffset 3}$hr
${voffset 3}$hr
#
#
# Things I don't use, but could in the future
# I don't need to track docker containers.. unless I can check remotes?
# ${font}Docker containers: ${goto 120}${exec docker ps -q $1 | wc -l}/${exec docker ps -a | grep -v -F 'Exited (0)' | grep -c -F 'Exited ('}
#
# Commented out, since I am using a desktop
# BATTERY
# $color${voffset 4}${alignr}${font Bitstream Vera Sans:size=10}BATTERY
# ${font}${voffset 3}${alignr}${battery_percent}%
# ${color2}${battery_bar}
# $color${alignr}${if_match "$battery_time"=="unknown"}Charging...${else}Remain Time: ${battery_time}${endif}
]]
#
# Battery Display
$color2${voffset 4}${alignr}${font Bitstream Vera Sans:size=10}BATTERY
$color${alignr}${if_match "$battery_time"=="unknown"}Charging...${else}Remain Time: ${battery_time}${endif}
${color2}${battery_bar}
${voffset 3}${alignr}${battery_percent}%
]]

View File

@@ -9,19 +9,36 @@
#
# Please see https://i3wm.org/docs/userguide.html for a complete reference!
#
# Startup scripts and commands for i3 sessions
exec --no-startup-id yakuake
exec --no-startup-id xbindkeys --poll-rc
exec --no-startup-id xautolock -time 10 -locker blurlock
exec_always --no-startup-id compton
# Run custom scripts to start polybar, conky, and feh background
exec --no-startup-id $HOME/.local/bin/i3scripts/start-konky
exec --no-startup-id $HOME/.local/bin/i3scripts/fehbg
exec_always --no-startup-id $HOME/.local/bin/i3scripts/start-polybar
#
# i3 settings
set $mod Mod4
# Mod1 = Alt
#set $mod Mod1
focus_follows_mouse no
for_window [class="yakuake"] floating enable
# Move to a new empty workspace
#bindsym $mod+Ctrl+Left exec --no-startup-id i3empty.py prev
bindsym $mod+Shift+z exec --no-startup-id $HOME/.local/bin/i3scripts/i3empty.py
# Keybinds for laptop media keys
bindsym XF86AudioMute exec "pactl set-sink-mute @DEFAULT_SINK@ toggle"
bindsym XF86AudioLowerVolume exec "pulsemixer --change-volume -5"
bindsym XF86AudioRaiseVolume exec "pulsemixer --change-volume +5 --max-volume 125"
bindsym XF86MonBrightnessUp exec "brightnessctl s +2.5%"
bindsym XF86MonBrightnessDown exec "brightnessctl s 2.5%-"
# Font for window titles. Will also be used by the bar unless a different font
# is used in the bar {} block below.
font pango:Inconsolata Nerd Font Mono 10
@@ -49,28 +66,19 @@ default_floating_border normal
# Hide borders
hide_edge_borders none
# start a terminal
# kill focused window
bindsym $mod+Shift+q kill
# start dmenu (a program launcher)
bindsym $mod+d exec dmenu_run
bindsym $mod+x exec rofi -show run
bindsym $mod+a exec rofi -show window
bindsym $mod+z exec rofi -show ssh
# There also is the (new) i3-dmenu-desktop which only displays applications
# shipping a .desktop file. It is a wrapper around dmenu, so you need that
# installed.
# bindsym $mod+d exec --no-startup-id i3-dmenu-desktop
# change focus
bindsym $mod+j focus left
bindsym $mod+k focus down
bindsym $mod+l focus up
bindsym $mod+semicolon focus right
#bindsym $mod+j focus left
#bindsym $mod+k focus down
#bindsym $mod+l focus up
#bindsym $mod+semicolon focus right
# alternatively, you can use the cursor keys:
bindsym $mod+Left focus left
@@ -92,7 +100,6 @@ bindsym $mod+Shift+Right move right
# split in horizontal orientation
# bindsym $mod+h split h
# split in vertical orientation
# bindsym $mod+v split v
@@ -104,89 +111,16 @@ bindsym $mod+f fullscreen toggle
# bindsym $mod+w layout tabbed
# bindsym $mod+e layout toggle split
# toggle tiling / floating
# bindsym $mod+Shift+space floating toggle
# change focus between tiling / floating windows
# bindsym $mod+space focus mode_toggle
# focus the parent container
#bindsym $mod+a focus parent
# focus the child container
#bindsym $mod+d focus child
# Define names for default workspaces for which we configure key bindings later on.
# We use variables to avoid repeating the names in multiple places.
set $ws1 "1"
set $ws2 "2"
set $ws3 "3"
set $ws4 "4"
set $ws5 "5"
set $ws6 "6"
set $ws7 "7"
set $ws8 "8"
set $ws9 "9"
set $ws10 "10"
# Custom named workspaces for keeping frequently used apps
# Numbers overwritten by Polybar i3 module config
set $ws99 99
set $ws98 98
set $ws97 97
set $ws96 96
set $ws95 95
set $ws94 94
# Custom named workspace keybinds
# To get keysymbols, run 'xmodmap -pke'
bindsym $mod+Ctrl+backslash move container to workspace $ws99
bindsym $mod+Ctrl+bracketright move container to workspace $ws98
bindsym $mod+Ctrl+apostrophe move container to workspace $ws97
bindsym $mod+Ctrl+slash move container to workspace $ws96
bindsym $mod+Ctrl+period move container to workspace $ws95
bindsym $mod+Ctrl+comma move container to workspace $ws94
# Move to workspace with focused container
bindsym $mod+Shift+backslash move container to workspace $ws99; workspace $ws99
bindsym $mod+Shift+bracketright move container to workspace $ws98; workspace $ws98
bindsym $mod+Shift+apostrophe move container to workspace $ws97; workspace $ws97
bindsym $mod+Shift+slash move container to workspace $ws96; workspace $ws96
bindsym $mod+Shift+period move container to workspace $ws95; workspace $ws95
bindsym $mod+Shift+comma move container to workspace $ws94; workspace $ws94
# Move to workspace
bindsym $mod+backslash workspace number $ws99
bindsym $mod+bracketright workspace number $ws98
bindsym $mod+apostrophe workspace number $ws97
bindsym $mod+slash workspace number $ws96
bindsym $mod+period workspace number $ws95
bindsym $mod+comma workspace number $ws94
# Switch to workspace
bindsym $mod+1 workspace $ws1
bindsym $mod+2 workspace $ws2
bindsym $mod+3 workspace $ws3
bindsym $mod+4 workspace $ws4
bindsym $mod+5 workspace $ws5
bindsym $mod+6 workspace $ws6
bindsym $mod+7 workspace $ws7
bindsym $mod+8 workspace $ws8
bindsym $mod+9 workspace $ws9
bindsym $mod+0 workspace $ws10
# move focused container to workspace
# bindsym $mod+Shift+1 move container to workspace $ws1
# bindsym $mod+Shift+2 move container to workspace $ws2
# bindsym $mod+Shift+3 move container to workspace $ws3
# bindsym $mod+Shift+4 move container to workspace $ws4
# bindsym $mod+Shift+5 move container to workspace $ws5
# bindsym $mod+Shift+6 move container to workspace $ws6
# bindsym $mod+Shift+7 move container to workspace $ws7
# bindsym $mod+Shift+8 move container to workspace $ws8
# bindsym $mod+Shift+9 move container to workspace $ws9
# bindsym $mod+Shift+0 move container to workspace $ws10
# Application keybinds
###########################################
# Passing -n to urxvt forces Xorg to default the WM_ICON_NAME to tmux
# Only this instance of urxvt will have that WM_ICON_NAME
@@ -200,6 +134,9 @@ bindsym $mod+0 workspace $ws10
# for_window [title="origin"] resize set width 1000
# for_window [title="origin"] move position center
# NOTE: To get these window class names, run `xprop` and click a window
for_window [class="yakuake"] floating enable
bindsym $mod+Ctrl+a exec "pavucontrol"
for_window [class="Pavucontrol"] floating enable
for_window [class="Pavucontrol"] resize set height 400
@@ -225,33 +162,27 @@ for_window [class="discord"] resize set height 600
for_window [class="discord"] resize set width 800
for_window [class="discord"] move position center
for_window [class="Wicd-client.py"] floating enable
for_window [class="Wicd-client.py"] resize set height 400
for_window [class="Wicd-client.py"] resize set width 600
for_window [class="Wicd-client.py"] move position center
# Bluetooth device settings
bindsym $mod+Ctrl+d exec "blueman-manager
for_window [class="Blueman-manager"] floating enable
for_window [class="Blueman-manager"] resize set height 400
for_window [class="Blueman-manager"] resize set width 600
for_window [class="Blueman-manager"] move position center
for_window [class="systemsettings"] floating enable
for_window [class="Steam"] floating enable
for_window [class="Signal"] floating enable
# reload the configuration file
bindsym $mod+Shift+c reload
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
bindsym $mod+Shift+r restart
# exit i3 (logs you out of your X session)
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'"
# start dmenu (a program launcher)
bindsym $mod+d exec dmenu_run
bindsym $mod+x exec rofi -show run
bindsym $mod+a exec rofi -show window
bindsym $mod+z exec rofi -show ssh
exec --no-startup-id yakuake
exec --no-startup-id xbindkeys --poll-rc
exec --no-startup-id $HOME/.local/bin/i3scripts/start_konky
exec --no-startup-id sh ~/.fehbg
exec --no-startup-id xautolock -time 10 -locker blurlock
exec --no-startup-id wicd-client -t
exec --no-startup-id xfce4-power-manager
exec --no-startup-id google-drive-ocamlfuse ~/gdrive
# Locks the screen now with i3locker
bindsym $mod+l exec i3lock -c 000000
# Application keybinds
###########################################
bindsym $mod+Return exec konsole -e tmux
# start a terminal
# Uses $TERMINAL environment setting
# bindsym $mod+Return exec terminal
@@ -260,26 +191,28 @@ bindsym $mod+t exec pkill compton
bindsym $mod+Shift+t exec compton
# Firefox
bindsym $mod+Shift+f exec firefox
# Bluetooth device settings
bindsym $mod+Ctrl+d exec blueman-manager
## Screenshot keybinds
###########################################
# Screenshot marquee tool
bindsym $mod+Shift+p --release exec --no-startup-id scrot -s
# Restart, reload, kill keybinds
###########################################
# reload the configuration file
bindsym $mod+Shift+c reload
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
bindsym $mod+Shift+r restart
# exit i3 (logs you out of your X session)
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'"
# Bind Mod+O to kill conky
bindsym $mod+o exec pkill conky
# Bind Mod+Shift+O to start conky
bindsym $mod+Shift+o exec $HOME/.local/bin/i3scripts/start_konky
bindsym $mod+Shift+o exec $HOME/.local/bin/i3scripts/start-konky
# Bind Mod+P kill polybars
bindsym $mod+p exec pkill -f polybar
# Bind Mod+Shift+P to start polybars
bindsym $mod+Shift+p exec /home/kapper/.config/polybar/start-polybar.sh
bindsym $mod+Shift+p exec $HOME/.local/bin/i3scripts/start-polybar
# Workspace keybinds
###########################################
@@ -288,6 +221,82 @@ bindsym $mod+Shift+p exec /home/kapper/.config/polybar/start-polybar.sh
bindsym $mod+u border none
bindsym $mod+y border pixel 1
bindsym $mod+n border normal
#navigate workspaces next / previous
bindsym $mod+Ctrl+Right workspace next
bindsym $mod+Ctrl+Left workspace prev
# workspace back and forth (with/without active container)
workspace_auto_back_and_forth yes
# Bind to swap to previous / last workspace
bindsym $mod+Tab workspace back_and_forth
# Define names for default workspaces for which we configure key bindings later on.
# We use variables to avoid repeating the names in multiple places.
set $ws1 "1"
set $ws2 "2"
set $ws3 "3"
set $ws4 "4"
set $ws5 "5"
set $ws6 "6"
set $ws7 "7"
set $ws8 "8"
set $ws9 "9"
set $ws10 "10"
# Custom named workspaces for keeping frequently used apps
# Numbers overwritten by Polybar i3 module config
set $ws99 99
set $ws98 98
set $ws97 97
set $ws96 96
set $ws95 95
set $ws94 94
# Switch to workspace
bindsym $mod+1 workspace $ws1
bindsym $mod+2 workspace $ws2
bindsym $mod+3 workspace $ws3
bindsym $mod+4 workspace $ws4
bindsym $mod+5 workspace $ws5
bindsym $mod+6 workspace $ws6
bindsym $mod+7 workspace $ws7
bindsym $mod+8 workspace $ws8
bindsym $mod+9 workspace $ws9
bindsym $mod+0 workspace $ws10
# Custom named workspace keybinds
# To get keysymbols, run 'xmodmap -pke'
bindsym $mod+Ctrl+backslash move container to workspace $ws99
bindsym $mod+Ctrl+bracketright move container to workspace $ws98
bindsym $mod+Ctrl+apostrophe move container to workspace $ws97
bindsym $mod+Ctrl+slash move container to workspace $ws96
bindsym $mod+Ctrl+period move container to workspace $ws95
bindsym $mod+Ctrl+comma move container to workspace $ws94
# Move to workspace with focused container
bindsym $mod+Shift+backslash move container to workspace $ws99; workspace $ws99
bindsym $mod+Shift+bracketright move container to workspace $ws98; workspace $ws98
bindsym $mod+Shift+apostrophe move container to workspace $ws97; workspace $ws97
bindsym $mod+Shift+slash move container to workspace $ws96; workspace $ws96
bindsym $mod+Shift+period move container to workspace $ws95; workspace $ws95
bindsym $mod+Shift+comma move container to workspace $ws94; workspace $ws94
# Move to workspace
bindsym $mod+backslash workspace number $ws99
bindsym $mod+bracketright workspace number $ws98
bindsym $mod+apostrophe workspace number $ws97
bindsym $mod+slash workspace number $ws96
bindsym $mod+period workspace number $ws95
bindsym $mod+comma workspace number $ws94
# move focused container to workspace
# bindsym $mod+Shift+1 move container to workspace $ws1
# bindsym $mod+Shift+2 move container to workspace $ws2
# bindsym $mod+Shift+3 move container to workspace $ws3
# bindsym $mod+Shift+4 move container to workspace $ws4
# bindsym $mod+Shift+5 move container to workspace $ws5
# bindsym $mod+Shift+6 move container to workspace $ws6
# bindsym $mod+Shift+7 move container to workspace $ws7
# bindsym $mod+Shift+8 move container to workspace $ws8
# bindsym $mod+Shift+9 move container to workspace $ws9
# bindsym $mod+Shift+0 move container to workspace $ws10
# Move focused container to workspace
bindsym $mod+Ctrl+1 move container to workspace $ws1
@@ -308,14 +317,6 @@ bindsym $mod+Shift+6 move container to workspace $ws6; workspace $ws6
bindsym $mod+Shift+7 move container to workspace $ws7; workspace $ws7
bindsym $mod+Shift+8 move container to workspace $ws8; workspace $ws8
#navigate workspaces next / previous
bindsym $mod+Ctrl+Right workspace next
bindsym $mod+Ctrl+Left workspace prev
# workspace back and forth (with/without active container)
workspace_auto_back_and_forth yes
# Bind to swap to previous / last workspace
bindsym $mod+Tab workspace back_and_forth
# Layout keybinds
###########################################
@@ -345,8 +346,6 @@ bindsym $mod+Shift+s sticky toggle
# focus the parent container
#bindsym $mod+a focus parent
# resize window (you can also use the mouse for that)
mode "resize" {
# These bindings trigger as soon as you enter the resize mode
@@ -374,9 +373,6 @@ mode "resize" {
bindsym $mod+r mode "resize"
# Use polybar installed
exec_always --no-startup-id /home/kapper/.config/polybar/start-polybar.sh
exec_always --no-startup-id compton
# Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)
#bar {

View File

@@ -1,18 +1,15 @@
[Desktop Entry]
DefaultProfile=Default Powerline.profile
DefaultProfile=Kapper.profile
[Favorite Profiles]
Favorites=Default Powerline.profile
Favorites=
[KonsoleWindow]
ShowMenuBarByDefault=false
[MainWindow]
Height 1200=1127
Height 1504=1431
Height 1200=1151
MenuBar=Disabled
State=AAAA/wAAAAD9AAAAAAAAB4AAAARnAAAABAAAAAQAAAAIAAAACPwAAAAA
State=AAAA/wAAAAD9AAAAAAAAA8AAAARvAAAABAAAAAQAAAAIAAAACPwAAAAA
ToolBarsMovable=Disabled
Width 1920=960
Width 2256=1128
Window-Maximized 1200x1920=true
Width 1920=1916

View File

@@ -1,4 +0,0 @@
[Default Applications]
x-scheme-handler/jetbrains=jetbrains-toolbox.desktop
x-scheme-handler/bitwarden=bitwarden_bitwarden.desktop

View File

@@ -1,7 +1,8 @@
[window]
width=1366
height=749
width=596
height=396
sinkInputType=0
sourceOutputType=1
sinkType=0
sourceType=0
showVolumeMeters=1

View File

@@ -27,14 +27,14 @@ padding-right = 5
module-margin = 2
; Type font
font-0 = NotoSans-Regular:size=8;0
font-0 = NotoSans-Regular:size=12;0
font-1 = Inconsolata Nerd Font:size=12;0
font-2 = Noto Sans Mono:size=8;0
font-2 = Noto Sans Mono:size=10;0
; Modules
modules-left = powermenu weather
modules-center = ki3
modules-right = volume date
modules-right = brightness volume date
; Set the cursor to display pointer / resize is interaction available
cursor-click = pointer
@@ -45,7 +45,7 @@ cursor-scroll = ns-resize
monitor = ${env:MONITOR}
bottom = true
width = 100%
height = 20
height = 30
; Use top bar colors
background = ${bar/top.background}
@@ -65,7 +65,7 @@ module-margin-right = 2
; Font settings, order matters
; Top font takes priority over following
;font-0 = Source Code Pro:size=10;0
font-0 = NotoSans-Regular:size=8;1
font-0 = NotoSans-Regular:size=12;1
font-1 = Inconsolata Nerd Font:size=12;3
font-2 = Noto Sans Mono:size=8;0
@@ -114,6 +114,14 @@ exec = ~/.local/bin/i3scripts/weathermap
interval = 600
;label-font = Font Awesome 5 Free Solid:size=40;0
; Brightness
;;;;;;;;;;;;;;;;;;;;;;;;;;
[module/brightness]
type = custom/script
exec = echo " $(brightnessctl -P g)%"
tail = true
; Type Speed
;;;;;;;;;;;;;;;;;;;;;;;;;;
[module/info-hackspeed]
@@ -325,20 +333,20 @@ format-padding = 0
format = <label-toggle> <menu>
label-open = " "
label-close = " "
menu-0-0 = " pkill poly "
menu-0-0 = " Restart i3 |"
menu-0-0-foreground = #fba922
menu-0-0-exec = pkill -f polybar
menu-0-1 = " i3 restart "
;menu-0-0-background = #141414
menu-0-0-exec = i3 restart
menu-0-1 = " Logout |"
menu-0-1-foreground = #fba922
;menu-0-1-background = #141414
menu-0-1-exec = i3 restart
menu-0-2 = " Reboot "
menu-0-1-exec = pkill -KILL -u kapper
menu-0-2 = " Reboot |"
menu-0-2-foreground = #fba922
menu-0-2-exec = sudo reboot
menu-0-3 = " Power off "
menu-0-2-exec = reboot
menu-0-3 = " Power off |"
menu-0-3-foreground = #fba922
menu-0-3-exec = sudo poweroff
menu-0-4 = " Lock "
menu-0-3-exec = poweroff
menu-0-4 = " Lock |"
menu-0-4-foreground = #fba922
menu-0-4-exec = i3lock -c 000000
@@ -445,8 +453,9 @@ label = RAM: %output%
[module/memory]
type = internal/memory
format = <label> <bar-used>
label = SWAP:%mb_swap_free% RAM: %mb_free%
bar-used-width = 15
;label = SWAP:%gb_swap_used% RAM: %gb_used%
label = RAM:
bar-used-width = 25
bar-used-foreground-0 = #aaff77
bar-used-foreground-1 = #fba922
bar-used-foreground-2 = #ff5555
@@ -459,7 +468,7 @@ bar-used-fill = 
bar-used-fill-font = 6
bar-used-empty = -
bar-used-empty-font = 6
bar-used-empty-foreground = #444444
bar-used-empty-foreground = #9a9999
; Battery Status

View File

@@ -0,0 +1 @@
../../.local/bin/i3scripts/start-polybar

View File

@@ -1,11 +0,0 @@
{
"segments": [
"virtual_env",
"ssh",
"cwd",
"hg",
"jobs",
"root"
],
"theme": "~/.config/powerline-shell/kapp.py"
}

View File

@@ -1,54 +0,0 @@
from powerline_shell.themes.default import DefaultColor
# 0 — black 8 — gray
# 1 — maroon 9 — red
# 2 — green 10 — lime
# 3 — olive 11 — yellow
# 4 — navy 12 — blue
# 5 — purple 13 — fuchsia
# 6 — teal 14 — aqua
# 7 — silver 15 — white
class Color(DefaultColor):
"""Basic theme which only uses colors in 0-15 range"""
USERNAME_FG = 0 # black
USERNAME_BG = 15 # white
USERNAME_ROOT_BG = 8 # gray
HOSTNAME_FG = 0 # black
HOSTNAME_BG = 2 # green
HOME_SPECIAL_DISPLAY = False
PATH_BG = 8 # gray
PATH_FG = 2 # silver
CWD_FG = 15 # white
SEPARATOR_FG = 2
READONLY_BG = 1 # maroon
READONLY_FG = 15 # white
REPO_CLEAN_BG = 15 # green
REPO_CLEAN_FG = 0 # black
REPO_DIRTY_BG = 3 # olive
REPO_DIRTY_FG = 15 # white
JOBS_FG = 15 # white
JOBS_BG = 8 # gray
CMD_PASSED_BG = 2 # green
CMD_PASSED_FG = 0 # black
CMD_FAILED_BG = 11 # yellow
CMD_FAILED_FG = 0 # black
SVN_CHANGES_BG = REPO_DIRTY_BG
SVN_CHANGES_FG = REPO_DIRTY_FG
VIRTUAL_ENV_BG = 2 # green
VIRTUAL_ENV_FG = 0 # black
AWS_PROFILE_FG = 14 # aqua
AWS_PROFILE_BG = 8 # gray
TIME_FG = 8 # gray
TIME_BG = 7 # silver

View File

@@ -1,322 +0,0 @@
#!/usr/bin/python
# coding=UTF-8
# These glyphs, and the mapping of file extensions to glyphs
# has been copied from the vimscript code that is present in
# https://github.com/ryanoasis/vim-devicons
import re;
import os;
# all those glyphs will show as weird squares if you don't have the correct patched font
# My advice is to use NerdFonts which can be found here:
# https://github.com/ryanoasis/nerd-fonts
file_node_extensions = {
'7z' : '',
'a' : '',
'ai' : '',
'apk' : '',
'asm' : '',
'asp' : '',
'aup' : '',
'avi' : '',
'bat' : '',
'bmp' : '',
'bz2' : '',
'c' : '',
'c++' : '',
'cab' : '',
'cbr' : '',
'cbz' : '',
'cc' : '',
'class' : '',
'clj' : '',
'cljc' : '',
'cljs' : '',
'cmake' : '',
'coffee' : '',
'conf' : '',
'cp' : '',
'cpio' : '',
'cpp' : '',
'cs' : '',
'css' : '',
'cue' : '',
'cvs' : '',
'cxx' : '',
'd' : '',
'dart' : '',
'db' : '',
'deb' : '',
'diff' : '',
'dll' : '',
'doc' : '',
'docx' : '',
'dump' : '',
'edn' : '',
'efi' : '',
'ejs' : '',
'elf' : '',
'elm' : '',
'epub' : '',
'erl' : '',
'ex' : '',
'exe' : '',
'exs' : '',
'eex' : '',
'f#' : '',
'fifo' : '|',
'fish' : '',
'flac' : '',
'flv' : '',
'fs' : '',
'fsi' : '',
'fsscript' : '',
'fsx' : '',
'gem' : '',
'gif' : '',
'go' : '',
'gz' : '',
'gzip' : '',
'h' : '',
'hbs' : '',
'hrl' : '',
'hs' : '',
'htaccess' : '',
'htpasswd' : '',
'htm' : '',
'html' : '',
'ico' : '',
'img' : '',
'ini' : '',
'iso' : '',
'jar' : '',
'java' : '',
'jl' : '',
'jpeg' : '',
'jpg' : '',
'js' : '',
'json' : '',
'jsx' : '',
'key' : '',
'less' : '',
'lha' : '',
'lhs' : '',
'log' : '',
'lua' : '',
'lzh' : '',
'lzma' : '',
'm4a' : '',
'm4v' : '',
'markdown' : '',
'md' : '',
'mkv' : '',
'ml' : 'λ',
'mli' : 'λ',
'mov' : '',
'mp3' : '',
'mp4' : '',
'mpeg' : '',
'mpg' : '',
'msi' : '',
'mustache' : '',
'o' : '',
'ogg' : '',
'pdf' : '',
'php' : '',
'pl' : '',
'pm' : '',
'png' : '',
'pub' : '',
'ppt' : '',
'pptx' : '',
'psb' : '',
'psd' : '',
'py' : '',
'pyc' : '',
'pyd' : '',
'pyo' : '',
'rar' : '',
'rb' : '',
'rc' : '',
'rlib' : '',
'rom' : '',
'rpm' : '',
'rs' : '',
'rss' : '',
'rtf' : '',
's' : '',
'so' : '',
'scala' : '',
'scss' : '',
'sh' : '',
'slim' : '',
'sln' : '',
'sql' : '',
'styl' : '',
'suo' : '',
't' : '',
'tar' : '',
'tgz' : '',
'ts' : '',
'twig' : '',
'vim' : '',
'vimrc' : '',
'wav' : '',
'webm' : '',
'xbps' : '',
'xhtml' : '',
'xls' : '',
'xlsx' : '',
'xml' : '',
'xul' : '',
'xz' : '',
'yaml' : '',
'yml' : '',
'zip' : '',
}
dir_node_exact_matches = {
# English
'.git' : '',
'Desktop' : '',
'Documents' : '',
'Downloads' : '',
'Dotfiles' : '',
'Dropbox' : '',
'Music' : '',
'Pictures' : '',
'Public' : '',
'Templates' : '',
'Videos' : '',
# Spanish
'Escritorio' : '',
'Documentos' : '',
'Descargas' : '',
'Música' : '',
'Imágenes' : '',
'Público' : '',
'Plantillas' : '',
'Vídeos' : '',
# French
'Bureau' : '',
'Documents' : '',
'Images' : '',
'Musique' : '',
'Publique' : '',
'Téléchargements' : '',
'Vidéos' : '',
# Portuguese
'Documentos' : '',
'Imagens' : '',
'Modelos' : '',
'Música' : '',
'Público' : '',
'Vídeos' : '',
'Área de trabalho' : '',
# Italian
'Documenti' : '',
'Immagini' : '',
'Modelli' : '',
'Musica' : '',
'Pubblici' : '',
'Scaricati' : '',
'Scrivania' : '',
'Video' : '',
# German
'Bilder' : '',
'Dokumente' : '',
'Musik' : '',
'Schreibtisch' : '',
'Vorlagen' : '',
'Öffentlich' : '',
# Hungarian
'Dokumentumok' : '',
'Képek' : '',
'Modelli' : '',
'Zene' : '',
'Letöltések' : '',
'Számítógép' : '',
'Videók' : '',
}
file_node_exact_matches = {
'.Xauthority' : '',
'.Xdefaults' : '',
'.Xresources' : '',
'.bash_aliases' : '',
'.bashprofile' : '',
'.bash_profile' : '',
'.bash_logout' : '',
'.bash_history' : '',
'.bashrc' : '',
'.dmrc' : '',
'.DS_Store' : '',
'.fasd' : '',
'.fehbg' : '',
'.gitconfig' : '',
'.gitattributes' : '',
'.gitignore' : '',
'.inputrc' : '',
'.jack-settings' : '',
'.mime.types' : '',
'.nvidia-settings-rc' : '',
'.pam_environment' : '',
'.profile' : '',
'.recently-used' : '',
'.selected_editor' : '',
'.vim' : '',
'.vimrc' : '',
'.viminfo' : '',
'.xinitrc' : '',
'.xinputrc' : '',
'config' : '',
'Dockerfile' : '',
'docker-compose.yml' : '',
'dropbox' : '',
'exact-match-case-sensitive-1.txt' : 'X1',
'exact-match-case-sensitive-2' : 'X2',
'favicon.ico' : '',
'a.out' : '',
'bspwmrc' : '',
'sxhkdrc' : '',
'Makefile' : '',
'Makefile.in' : '',
'Makefile.ac' : '',
'config.mk' : '',
'config.m4' : '',
'config.ac' : '',
'configure' : '',
'Rakefile' : '',
'gruntfile.coffee' : '',
'gruntfile.js' : '',
'gruntfile.ls' : '',
'gulpfile.coffee' : '',
'gulpfile.js' : '',
'gulpfile.ls' : '',
'ini' : '',
'ledger' : '',
'package.json' : '',
'package-lock.json' : '',
'.ncmpcpp' : '',
'playlists' : '',
'known_hosts' : '',
'authorized_keys' : '',
'license' : '',
'LICENSE.md' : '',
'LICENSE' : '',
'LICENSE.txt' : '',
'mimeapps.list' : '',
'node_modules' : '',
'procfile' : '',
'react.jsx' : '',
'README.rst' : '',
'README.md' : '',
'README.markdown' : '',
'README' : '',
'README.txt' : '',
'user-dirs.dirs' : '',
'webpack.config.js' : '',
}
def devicon(file):
if file.is_directory: return dir_node_exact_matches.get(file.relative_path, '')
return file_node_exact_matches.get(os.path.basename(file.relative_path), file_node_extensions.get(file.extension, ''))

View File

@@ -1,19 +0,0 @@
import ranger.api
from ranger.core.linemode import LinemodeBase
from .devicons import *
@ranger.api.register_linemode
class DevIconsLinemode(LinemodeBase):
name = "devicons"
uses_metadata = False
def filetitle(self, file, metadata):
return devicon(file) + ' ' + file.relative_path
@ranger.api.register_linemode
class DevIconsLinemodeFile(LinemodeBase):
name = "filename"
def filetitle(self, file, metadata):
return devicon(file) + ' ' + file.relative_path

View File

@@ -758,3 +758,7 @@ tmap <delete> eval -q fm.ui.taskview.task_remove()
tmap <C-l> redraw_window
tmap <ESC> taskview_close
copytmap <ESC> q Q w <C-c>
# Ranger devicons plugic
default_linemode devicons

View File

@@ -1,27 +0,0 @@
[Alsa]
card=default
logarithmic_scale=false
[Notification]
show_notification=true
notification_type=0
[StatusIcon]
stepsize=5
onclick=xterm -e 'alsamixer'
theme=Default
use_panel_specific_icons=false
reverse_scroll_direction=false
lmb_slider=false
mmb_mute=false
use_horizontal_slider=false
show_sound_level=false
use_transparent_background=false
[Hotkeys]
up_enabled=false
down_enabled=false
mute_enabled=false
up=XF86AudioRaiseVolume
down=XF86AudioLowerVolume
mute=XF86AudioMute

View File

@@ -1,39 +1,42 @@
[Desktop Entry]
DefaultProfile=Default Powerline.profile
DefaultProfile=Kapper.profile
[Dialogs]
FirstRun=false
[Favorite Profiles]
Favorites=Default Powerline.profile
Favorites=Kapper.profile
[KFileDialog Settings]
Recent Files[$e]=yakuake.shortcuts,file:$HOME/.config/yakuake.shortcuts
Recent URLs[$e]=file:$HOME/.config/
detailViewIconSize=0
[Shortcuts]
close-active-terminal=Ctrl+Shift+R
close-session=Ctrl+Shift+W
decrease-window-height=Alt+Shift+Up
decrease-window-width=Alt+Shift+Left
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
increase-window-height=Alt+Shift+Down
increase-window-width=Alt+Shift+Right
move-session-left=Ctrl+Shift+Left
move-session-right=Ctrl+Shift+Right
new-session=Ctrl+Shift+T
next-session=Shift+Right
next-terminal=Ctrl+Shift+Down
previous-session=Shift+Left
previous-terminal=Ctrl+Shift+Up
rename-session=Ctrl+Alt+S
split-left-right=Ctrl+(
split-top-bottom=Ctrl+)
toggle-session-monitor-activity=Ctrl+Shift+A
toggle-session-monitor-silence=Ctrl+Shift+I
toggle-window-state=none
view-full-screen=Ctrl+Shift+F11
[Window]
Height=40
Width=80
close-session=none
edit-profile=none
help_about_app=none
help_about_kde=none
help_report_bug=none
keep-open=none
manage-profiles=none
new-session-quad=none
new-session-two-horizontal=none
new-session-two-vertical=none
next-terminal=Ctrl+Tab; Shift+Tab
options_configure_keybinding=none
options_configure_notifications=none
previous-terminal=Ctrl+Shift+Tab
rename-session=none
switch-to-session-1=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-prevent-closing=none
toggle-window-state=Meta+z

2
.fehbg
View File

@@ -1,2 +0,0 @@
#!/bin/sh
feh --no-fehbg --bg-tile '/home/kapper/screens/use_your_illusion.png'

21
.gitmodules vendored
View File

@@ -1,6 +1,3 @@
[submodule ".config/powerline-shell/powerline-shell"]
path = .config/powerline-shell/powerline-shell
url = https://github.com/b-ryan/powerline-shell
[submodule ".vim/bundle/clang_complete"]
path = .vim/bundle/clang_complete
url = https://github.com/xavierd/clang_complete
@@ -22,13 +19,21 @@
[submodule ".vim/bundle/vim-signify"]
path = .vim/bundle/vim-signify
url = https://github.com/mhinz/vim-signify
[submodule ".tmux/plugins/tpm"]
path = .tmux/plugins/tpm
url = https://github.com/tmux-plugins/tpm
[submodule ".vim/bundle/ale"]
path = .vim/bundle/ale
url = https://github.com/dense-analysis/ale.git
url = https://github.com/dense-analysis/ale
[submodule ".config/ranger/plugins/ranger_devicons"]
path = .config/ranger/plugins/ranger_devicons
url = https://github.com/alexanderjeurissen/ranger_devicons
[submodule ".config/powerline-shell/powerline-shell"]
path = .config/powerline-shell/powerline-shell
url = https://github.com/b-ryan/powerline-shell
[submodule ".tmux/plugins/tpm"]
path = .tmux/plugins/tpm
url = https://github.com/tmux-plugins/tpm
[submodule ".tmux/plugins/tmux-yank"]
path = .tmux/plugins/tmux-yank
url = https://github.com/tmux-plugins/tmux-yank
[submodule ".tmux/plugins/tmux-better-mouse-mode"]
path = .tmux/plugins/tmux-better-mouse-mode
url = https://github.com/NHDaly/tmux-better-mouse-mode

5
.local/bin/fix-vbox.sh Executable file
View File

@@ -0,0 +1,5 @@
# A fix for a common issue found in virtual box
# https://forums.linuxmint.com/viewtopic.php?t=247850
# https://askubuntu.com/questions/1014172/virtualbox-unresponsive-area-on-desktop
#################################################################################
ps aux www |grep 'VBoxClient --draganddrop' | awk '{print $2}' | xargs kill

2
.local/bin/i3scripts/fehbg Executable file
View File

@@ -0,0 +1,2 @@
#!/bin/sh
feh --no-fehbg --bg-tile '/home/kapper/Pictures/backgrounds/use_your_illusion.png'

5
.local/bin/i3scripts/fix-vbox Executable file
View File

@@ -0,0 +1,5 @@
# A fix for a common issue found in virtual box
# https://forums.linuxmint.com/viewtopic.php?t=247850
# https://askubuntu.com/questions/1014172/virtualbox-unresponsive-area-on-desktop
#################################################################################
ps aux www |grep 'VBoxClient --draganddrop' | awk '{print $2}' | xargs kill

2
.local/bin/mountdrive.sh Executable file
View File

@@ -0,0 +1,2 @@
#!/bin/bash
google-drive-ocamlfuse /home/kapper/GDrive/

View File

@@ -0,0 +1,15 @@
[Desktop Entry]
Icon=/home/kapper/.local/share/JetBrains/Toolbox/toolbox.svg
Exec=/home/kapper/.local/share/JetBrains/Toolbox/bin/jetbrains-toolbox --minimize
Version=1.0
Type=Application
Categories=Development
Name=JetBrains Toolbox
StartupWMClass=jetbrains-toolbox
Terminal=false
MimeType=x-scheme-handler/jetbrains;
X-GNOME-Autostart-enabled=true
StartupNotify=false
X-GNOME-Autostart-Delay=10
X-MATE-Autostart-Delay=10
X-KDE-autostart-after=panel

View File

@@ -0,0 +1,21 @@
[Desktop Entry]
Categories=Network;
Comment[en_US]=Mullvad VPN client
Comment=Mullvad VPN client
Exec="/opt/Mullvad VPN/mullvad-vpn" %U
GenericName[en_US]=
GenericName=
Icon=mullvad-vpn
MimeType=
Name[en_US]=Mullvad VPN
Name=Mullvad VPN
Path=
StartupNotify=true
StartupWMClass=Mullvad VPN
Terminal=false
TerminalOptions=
Type=Application
X-DBUS-ServiceName=
X-DBUS-StartupType=
X-KDE-SubstituteUID=false
X-KDE-Username=

View File

@@ -0,0 +1,180 @@
[Desktop Entry]
Categories=Qt;KDE;System;TerminalEmulator;
Comment[en_US]=A drop-down terminal emulator based on KDE Konsole technology.
Comment=A drop-down terminal emulator based on KDE Konsole technology.
Comment[ar]=محاكي طرفيّة منسدل مبنيّ على تقنيّة طرفيّة كدي.
Comment[ast]=Un emulador de terminal estenderexable basáu na teunoloxía de KDE Konsole.
Comment[bg]=Падащ терминален емулатор с меню, базиран на конзолната технология на KDE.
Comment[bs]=Padajući simulator terminala baziran na KDE konzolnoj tehnologiji.
Comment[ca@valencia]=Un emulador de terminal desplegable basat en la tecnologia del Konsole del KDE.
Comment[ca]=Un emulador de terminal desplegable basat en la tecnologia del Konsole del KDE.
Comment[cs]=Vysouvací emulátor terminálu založený na KDE programu Konsole.
Comment[da]=En terminal som ruller ned fra oven baseret på KDE's Konsole-teknologi.
Comment[de]=Ein Aufklapp-Terminalemulator basierend auf der KDE-Konsole.
Comment[el]=Μία εφαρμογή τερματικού καθοδικής κύλισης βασισμένη στην τεχνολογία KDE Konsole.
Comment[en_GB]=A drop-down terminal emulator based on KDE Konsole technology.
Comment[es]=Un emulador de terminal desplegable basado en la tecnología de KDE Konsole.
Comment[et]=Lahtikeriv terminaliemulaator, mille aluseks on KDE Konsooli tehnoloogia.
Comment[eu]=KDE Konsole teknologian oinarritzen den goitik-behera zabaltzen den terminal emulatzaile bat.
Comment[fi]=KDE:n Konsoleen pohjautuva alas putoava pääte.
Comment[fr]=Un émulateur de terminal à liste déroulante reposant sur la technologie de l'application Konsole de KDE.
Comment[ga]=Aithriseoir teirminéil anuas bunaithe ar theicneolaíocht Konsole KDE.
Comment[gl]=Un emulador despregábel de terminal baseado en Konsole.
Comment[hi]=ड्रॉपडाउन टर्मिनल एमुलेटर जो कि केडीई कंसोल तकनॉलाजी पर आधारित है
Comment[hne]=ड्रापडाउन टर्मिनल एमुलेटर जऊन कि केडीई कंसोल तकनालाजी मं आधार से हे
Comment[hr]=Spuštajući emulator terminala baziran na KDE-ovoj Konsole tehnologiji.
Comment[hu]=A KDE Konsole-ra épülő legördülő terminálemulátor
Comment[id]=Sebuah emulator terminal bentangturun berdasarkan teknologi Konsole KDE.
Comment[it]=Un emulatore di terminale a discesa basato sulla tecnologia di KDE Konsole.
Comment[ja]=KDE Konsole のテクノロジーに基づくドロップダウン式のターミナルエミュレータ
Comment[km]=កម្មវិធី​ត្រាប់​ស្ថានីយ​ធ្លាក់​ចុះ​ដែល​មាន​មូលដ្ឋាន​លើ​បច្ចេក​វិទ្យា​កុងសូល​របស់ KDE 
Comment[ko]=KDE Konsole을 기반으로 한 드롭 다운 방식 터미널 에뮬레이터.
Comment[lt]=Nusileidžiantis terminalo emuliatorius paremtas KDE Konsole technologija.
Comment[lv]=Izkrītošs termināļa emulators, kurš bāzēts uz KDE Konsole tehnoloģijas.
Comment[ml]=കെഡി‌ഈയുടെ കണ്‍സോള്‍ സാങ്കേതികത്വം അടിസ്ഥാനമാക്കിയ ഇറങ്ങിവരുന്ന ടെര്‍മിനല്‍ എമുലേറ്റര്‍
Comment[mr]=केडीई कंसोल तंत्रज्ञानावर आधारित खाली येणारा टर्मिनल एम्युलेटर.
Comment[nb]=En terminalemulator basert på KDEs Konsole-teknologi.
Comment[nds]=En Konsool-Emulater, de sik utklappen lett, op KDE-Konsole opbuut.
Comment[nl]=Een uitvouwbare terminalemulator, gebaseerd op de technologie van KDE Konsole.
Comment[nn]=Ein rullegardinbasert terminalemulator basert på KDE Konsoll-teknologien
Comment[pa]=ਕੇਡੀਈ ਕਨਸੋਲ ਤਕਨਾਲੋਜੀ ਉੱਤੇ ਅਧਾਰਿਤ ਲਟਕਦਾ ਟਰਮੀਨਲ ਰੂਪ ਹੈ।
Comment[pl]=Emulator rozwijanego terminala oparty o technologię KDE Konsole.
Comment[pt]=Um emulador de terminal, baseado na tecnologia do Konsole do KDE.
Comment[pt_BR]=Um emulador de terminal baseado na tecnologia do Konsole do KDE.
Comment[ro]=Un emulator de terminal bazat pe tehnologia Konsole din KDE.
Comment[ru]=Эмулятор терминала в стиле Quake, основанный на технологии KDE Konsole.
Comment[sk]=Rozbaľovací emulátor terminálu založený na technológii KDE Konsole.
Comment[sr@ijekavian]=Падајући емулатор терминала заснован на КДЕ‑овој Конзоли.
Comment[sr@ijekavianlatin]=Padajući emulator terminala zasnovan na KDEovoj Konsoli.
Comment[sr@latin]=Padajući emulator terminala zasnovan na KDEovoj Konsoli.
Comment[sr]=Падајући емулатор терминала заснован на КДЕ‑овој Конзоли.
Comment[sv]=En nerfällbar terminalemulator baserad på teknologi från KDE:s Terminal.
Comment[th]=โปรแกรมจำลองเทอร์มินัลแบบหย่อนลง อิงพื้นฐานเทคโนโลยีคอนโซล K
Comment[tr]=KDE Konsole teknolojisi üzerine kurulu, yukarıdan aşağıılabilen bir uçbirim öykünücüsü.
Comment[uk]=Спадний замінник термінала, заснований на технології KDE Konsole.
Comment[x-test]=xxA drop-down terminal emulator based on KDE Konsole technology.xx
Comment[zh_CN]=一个基于 KDE Konsole 技术的拉幕式终端仿真器。
Comment[zh_TW]=下拉式終端模擬器,基於 KDE Konsole 的技術。
Exec=yakuake
GenericName[en_US]=Drop-down Terminal
GenericName=Drop-down Terminal
GenericName[ar]=طرفيّة منسدلة
GenericName[ast]=Terminal estenderexable
GenericName[bg]=Падащ терминал
GenericName[bs]=Padajući terminal
GenericName[ca@valencia]=Terminal desplegable
GenericName[ca]=Terminal desplegable
GenericName[cs]=Vysouvací terminál
GenericName[da]=Terminal der ruller ned
GenericName[de]=Aufklapp-Terminal
GenericName[el]=Τερματικό καθοδικής κύλισης
GenericName[en_GB]=Drop-down Terminal
GenericName[es]=Terminal de menú desplegable
GenericName[et]=Lahtikeriv terminal
GenericName[eu]=Goitik-behera zabaltzen den terminala
GenericName[fi]=Alas putoava pääte
GenericName[fr]=Terminal avec liste déroulante
GenericName[gl]=Terminal despregábel
GenericName[hi]=ड्रॉपडाउन टर्मिनल
GenericName[hr]=Spuštajući terminal
GenericName[hu]=Legördülő terminál
GenericName[id]=Terminal Longsor
GenericName[it]=Terminale a discesa
GenericName[ja]=ドロップダウン式ターミナル
GenericName[km]=ស្ថានីយ​ទម្លាក់​ចុះ
GenericName[ko]=위에서 내려오는 터미널
GenericName[lt]=Išskleidžiamasis terminalas
GenericName[mr]=खाली येणारा टर्मिनल
GenericName[nb]=Nedtrekksterminal
GenericName[nds]=Utklapp-Konsool
GenericName[nl]=Uitvouwbare terminalemulator
GenericName[nn]=Nedtrekksterminal
GenericName[pa]=ਲਟਕਦਾ ਟਰਮੀਨਲ
GenericName[pl]=Rozwijany terminal
GenericName[pt]=Terminal Deslizante
GenericName[pt_BR]=Terminal suspenso
GenericName[ro]=Terminal derulant
GenericName[ru]=Выпадающий терминал
GenericName[sk]=Rozbaľovací terminál
GenericName[sr@ijekavian]=Падајући терминал
GenericName[sr@ijekavianlatin]=Padajući terminal
GenericName[sr@latin]=Padajući terminal
GenericName[sr]=Падајући терминал
GenericName[sv]=Rullgardinsterminal
GenericName[th]=เทอร์มินัลแบบหย่อนลง
GenericName[tr]=Yukarıdan Açılan Uçbirim
GenericName[uk]=Спадний термінал
GenericName[x-test]=xxDrop-down Terminalxx
GenericName[zh_CN]=拉幕式终端
GenericName[zh_TW]=下拉式終端機
Icon=yakuake
MimeType=
Name[en_US]=Yakuake
Name=Yakuake
Name[ar]=ياكواكي
Name[ast]=Yakuake
Name[be]=Yakuake
Name[bg]=Yakuake
Name[bs]=Yakuake
Name[ca@valencia]=Yakuake
Name[ca]=Yakuake
Name[cs]=Yakuake
Name[da]=Yakuake
Name[de]=Yakuake
Name[el]=Yakuake
Name[en_GB]=Yakuake
Name[eo]=Yakuake
Name[es]=Yakuake
Name[et]=Yakuake
Name[eu]=Yakuake
Name[fi]=Yakuake
Name[fr]=Yakuake
Name[ga]=Yakuake
Name[gl]=Yakuake
Name[hi]=याकुआके
Name[hne]=याकुआके
Name[hr]=Yakuake
Name[hu]=Yakuake
Name[ia]=Yakuake
Name[id]=Yakuake
Name[it]=Yakuake
Name[ja]=Yakuake
Name[km]=Yakuake
Name[ko]=Yakuake
Name[lt]=Yakuake
Name[lv]=Yakuake
Name[ml]=യാക്വാകെ
Name[mr]=याकुआके
Name[nb]=Yakuake
Name[nds]=Yakuake
Name[nl]=Yakuake
Name[nn]=Yakuake
Name[pa]=ਯਾਕੁਕੀ
Name[pl]=Yakuake
Name[pt]=Yakuake
Name[pt_BR]=Yakuake
Name[ro]=Yakuake
Name[ru]=Yakuake
Name[sk]=Yakuake
Name[sr@ijekavian]=Јакуаке
Name[sr@ijekavianlatin]=Yakuake
Name[sr@latin]=Yakuake
Name[sr]=Јакуаке
Name[sv]=Yakuake
Name[th]=Yakuake
Name[tr]=Yakuake
Name[ug]=Yakuake
Name[uk]=Yakuake
Name[x-test]=xxYakuakexx
Name[zh_CN]=Yakuake
Name[zh_TW]=Yakuake
Path=
StartupNotify=false
Terminal=false
TerminalOptions=
Type=Application
X-DBUS-ServiceName=org.kde.yakuake
X-DBUS-StartupType=unique
X-KDE-StartupNotify=false
X-KDE-SubstituteUID=false
X-KDE-Username=

View File

@@ -1,8 +0,0 @@
[Appearance]
ColorScheme=GreenOnBlack
Font=Inconsolata Nerd Font Mono [PfEd],9,-1,5,57,0,0,0,0,0,Medium
[General]
Icon=yakuake
Name=Default Powerline
Parent=FALLBACK/

View File

@@ -0,0 +1,23 @@
[Appearance]
ColorScheme=Linux
Font=Hack,10,-1,5,50,0,0,0,0,0
[General]
Command=/bin/bash
DimWhenInactive=false
Icon=yakuake
Name=Kapper
Parent=FALLBACK/
TerminalCenter=false
TerminalMargin=5
[Interaction Options]
AutoCopySelectedText=true
CopyTextAsHTML=false
MiddleClickPasteMode=1
TrimTrailingSpacesInSelectedText=true
[Scrolling]
HistoryMode=2
ScrollBarPosition=2
ScrollFullPage=1

View File

@@ -20,7 +20,28 @@
#+ 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"
# remap shortcut prefix from 'C-b' to 'C-z'
unbind C-b

View File

@@ -1,10 +0,0 @@
language: bash
before_script:
- curl -L "https://github.com/tmux/tmux/releases/download/2.2/tmux-2.2.tar.gz" | tar zx
- cd tmux-2.2; ./configure && make; cd ..
- curl -L "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/shunit2/shunit2-2.1.6.tgz" | tar zx
script:
- bash tests/*.sh

View File

@@ -1,21 +0,0 @@
The MIT License (MIT)
Copyright (c) 2015 Nathan Daly
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@@ -1,103 +0,0 @@
# Tmux Better Mouse Mode
A tmux plugin to better manage the mouse.
Provides options to control mouse behavior in tmux, so it will behave exactly how you want:
- Emulate mouse-support for full-screen programs like `less` that don't provide built in mouse support.
- Exit `copy-mode` and return to your prompt by scrolling back all the way down to the bottom.
- Adjust your scrolling speed.
- And more!
Finally, `tmux` version 2.1 introduced backwards-incompatible changes to the mouse behavior, and this plugin restores the old mouse behavior. `tmux` version 2.2 mostly restores the 2.0 mouse behavior, but this plugin improves tmux mouse mode beyond those changes and provides you with more control.
### Requirements
This plugin is intended for `tmux` version 2.1 and higher. It does not work for 2.0 or below.
NOTE: This plugin provides options to *change* the mouse-mode behavior, but does not enable mouse-mode.
To enable mouse-mode in tmux 2.1+, put the following line in your `~/.tmux.conf`:
set-option -g mouse on
### Key bindings
This plugin will overwrite the values for `WheelUpPane` and `WheelDownPane` in tmux in order to configure mouse scrolling.
To see your current setting for these variables, check the output of `tmux list-keys -T root`.
### Installation with [Tmux Plugin Manager](https://github.com/tmux-plugins/tpm) (recommended)
1. Add this plugin to the list of TPM plugins in `.tmux.conf`:
set -g @plugin 'nhdaly/tmux-better-mouse-mode'
1. Press `prefix` + <kbd>I</kbd> or run `$TMUX_PLUGIN_MANAGER_PATH/tpm/scripts/install_plugins.sh` to fetch the plugin and source it. You should now be able to
use the plugin.
1. To enable mouse-mode in tmux 2.1+, put the following line in your `.tmux.conf`:
set-option -g mouse on
### Manual Installation
1. Clone the repo:
$ git clone https://github.com/nhdaly/tmux-better-mouse-mode ~/clone/path
1. Add this line to the bottom of `.tmux.conf`:
run-shell ~/clone/path/scroll_copy_mode.tmux
1. Reload TMUX environment:
# type this in terminal
$ tmux source-file ~/.tmux.conf
You should now be able to use the plugin.
### Configuration
Set these options in `.tmux.conf`. For example, `set -g @scroll-down-exit-copy-mode "off"` to disable scrolling down exits copy-mode.
- `scroll-down-exit-copy-mode` - When enabled, the pane exits `copy-mode` when scrolling hits the bottom of the scroll-back history.
- "on" (default) - Scrolling can exit `copy-mode`.
- "off" - Scrolling to bottom will stay in `copy-mode`.
- `scroll-without-changing-pane` - When enabled, scrolling the mouse will not select the moused-over pane, allowing you to scroll a window just to read previous output and then keep typing in the current pane. Enabling this feature is a change from `tmux 2.0` settings, but may be an improvement.
- "on" - Scroll events are sent to moused-over pane.
- "off" (default) - Scroll events stay in currently selected pane.
- `scroll-in-moused-over-pane` - When enabled, scrolling with your mouse over a pane will perform the scroll in that pane, instead of the currently selected one. If `scroll-without-changing-pane` is set to `"off"`, this will also select the moused-over pane.
- "on" (default) - Scroll events select and scroll the moused-over pane.
- "off" - Scroll events are ingored unless the mouse is over the currently selected pane.
- `scroll-speed-num-lines-per-scroll` - Sets the number of lines to scroll per mouse wheel scroll event. The default option is 3, which was the scroll speed in `tmux 2.0`. Larger numbers scroll faster. To slow down scrolling to slower than one line per wheel click, set the value to a decimal between 0.0 and 1.0. With a decimal value, only that fraction of wheel events will take effect. The value must be > 0. Examples:
- "3" (default) - Scroll three lines per every mouse wheel click.
- "1" - One line per mouse wheel scroll click (smoothest).
- "0.5" - Scroll one line only on every other mouse wheel scroll click.
- "0.25" - Scroll one line only on every fourth mouse wheel scroll click.
- `emulate-scroll-for-no-mouse-alternate-buffer` - When enabled, tmux will emulate scrolling for "full-screen", alternate buffer programs, such as `less`, `man`, or `vi` that don't themselves already support mouse interactions. It will not enter `copy-mode` and will not scroll through pane output history, but will instead send `<up-arrow>` (<kbd>&uparrow;</kbd>) and `<down-arrow>`(<kbd>&downarrow;</kbd>) keys to the application. The scroll speed is also set by `@scroll-speed-num-lines-per-scroll` above.
This option defaults to "off", which matches the behavior in `tmux 2.0`. Note, though, that this default behavior may be undesirable since the pane history gets munged when entering a full-screen alternate buffer program. It's a pretty great option is all I'm saying.
- "on" - <kbd>&uparrow;</kbd> and <kbd>&downarrow;</kbd> keys are passed to the alternate buffer program on scroll events.
- "off" (default) - Scroll event causes scrollback in pane output.
### Contributions
[@nhdaly](https://github.com/nhdaly)
[@corv89](https://github.com/corv89)
[@pallxk ](https://github.com/pallxk )
[@hughdavenport](https://github.com/hughdavenport)
[@giddie](https://github.com/giddie)
[@pochemuto](https://github.com/pochemuto)
[@zeorin](https://github.com/zeorin)
[@alcesleo](https://github.com/alcesleo)
[@iamjamestl](https://github.com/iamjamestl)
### Inspiration
Inspired by David Verhasselt's in depth article on Tmux 2.1's changes to Mouse support and scrolling:
http://www.davidverhasselt.com/better-mouse-scrolling-in-tmux/
### License
[MIT](LICENSE.md)

View File

@@ -1,22 +0,0 @@
#!/usr/bin/env bash
num_scrolls_to_scroll=$1
get_count_cmd=`tmux show-environment -g __scroll_copy_mode__slow_scroll_count`
eval $get_count_cmd
# Save the current count so we can use it in the return statement at the end.
CURRENT_COUNT=$__scroll_copy_mode__slow_scroll_count
# Now increment and loop around if we've finished the scroll cycle.
__scroll_copy_mode__slow_scroll_count=$(( (__scroll_copy_mode__slow_scroll_count + 1) % num_scrolls_to_scroll))
# Store the new value in tmux.
tmux set-environment -g __scroll_copy_mode__slow_scroll_count $__scroll_copy_mode__slow_scroll_count
# Return true if this is the first scroll for this scroll-cycle, and false if we haven't hit the end of the cycle.
[ $CURRENT_COUNT -eq 0 ]

View File

@@ -1,15 +0,0 @@
get_tmux_option() {
local option="$1"
local default_value="$2"
local option_value=$(tmux show-option -gqv "$option")
if [ -z "$option_value" ]; then
echo "$default_value"
else
echo "$option_value"
fi
}
get_tmux_version() {
tmux -V | cut -d " " -f 2
}

View File

@@ -1,100 +0,0 @@
#!/usr/bin/env bash
CURRENT_DIR="$( dirname "$0" )"
. "$CURRENT_DIR/scripts/helpers.sh"
scroll_down_exit_copy_mode_option="@scroll-down-exit-copy-mode"
scroll_in_moused_over_pane_option="@scroll-in-moused-over-pane"
scroll_without_changing_pane_option="@scroll-without-changing-pane"
scroll_speed_num_lines_per_scroll_option="@scroll-speed-num-lines-per-scroll"
deprecated_prevent_scroll_for_fullscreen_alternate_buffer_option="@prevent-scroll-for-fullscreen-alternate-buffer"
emulate_scroll_for_no_mouse_alternate_buffer_option="@emulate-scroll-for-no-mouse-alternate-buffer"
get_repeated_scroll_cmd() {
local scroll_speed_num_lines_per_scroll=$(get_tmux_option "$scroll_speed_num_lines_per_scroll_option" "3")
local cmd=""
if echo - | awk "{ if ($scroll_speed_num_lines_per_scroll >= 1) { exit 0 } else { exit 1 } }" ; then # Positive whole number speed (round down).
for ((i = 1; i <= scroll_speed_num_lines_per_scroll; i++)); do
cmd=$cmd"send-keys $1 ; "
done
elif echo - | awk "{ if ($scroll_speed_num_lines_per_scroll > 0) { exit 0 } else { exit 1 } }" ; then # Positive decimal between 0 and 1 (treat as percent).
# Skip enough scrolls so that we scroll only on the specified percent of scrolls.
local num_scrolls_to_scroll=`echo - | awk "{print int( 1/$scroll_speed_num_lines_per_scroll ) }"`
tmux set-environment __scroll_copy_mode__slow_scroll_count 0;
cmd="if -t = \\\"$CURRENT_DIR/only_scroll_sometimes.sh $num_scrolls_to_scroll\\\" \\\"send-keys $1\\\" \\\"\\\"";
fi
echo "$cmd"
}
better_mouse_mode_main() {
local scroll_down_to_exit=$(get_tmux_option "$scroll_down_exit_copy_mode_option" "on")
local scroll_in_moused_over_pane=$(get_tmux_option "$scroll_in_moused_over_pane_option" "on")
local scroll_without_changing_pane=$(get_tmux_option "$scroll_without_changing_pane_option" "off")
local deprecated_prevent_scroll_for_fullscreen_alternate_buffer=$(get_tmux_option "$deprecated_prevent_scroll_for_fullscreen_alternate_buffer_option" "off")
local emulate_scroll_for_no_mouse_alternate_buffer=$(get_tmux_option "$emulate_scroll_for_no_mouse_alternate_buffer_option" "$deprecated_prevent_scroll_for_fullscreen_alternate_buffer")
local enter_copy_mode_cmd="copy-mode"
local select_moused_over_pane_cmd=""
local check_for_fullscreen_alternate_buffer=""
if [ "$scroll_down_to_exit" = 'on' ] ; then
enter_copy_mode_cmd="copy-mode -e"
fi
if [ "$scroll_in_moused_over_pane" = 'on' ] ; then
select_moused_over_pane_cmd="select-pane -t= ;"
fi
if [ "$scroll_without_changing_pane" = 'on' ] ; then
enter_copy_mode_cmd="$enter_copy_mode_cmd -t="
select_moused_over_pane_cmd=""
fi
if [ "$emulate_scroll_for_no_mouse_alternate_buffer" = 'on' ] ; then
check_for_fullscreen_alternate_buffer="#{alternate_on}"
fi
# Start copy mode when scrolling up and exit when scrolling down to bottom.
# The "#{mouse_any_flag}" check just sends scrolls to any program running that
# has mouse support (like vim).
# NOTE: the successive levels of quoting commands gets a little confusing
# here. Tmux uses quoting to denote levels of the if-blocks below. The
# pattern used here for consistency is " \" ' \\\" \\\" ' \" " -- that is,
# " for top-level quotes, \" for the next level in, ' for the third level,
# and \\\" for the fourth (note that the fourth comes from inside get_repeated_scroll_cmd).
tmux bind-key -n WheelUpPane \
if -Ft= "#{mouse_any_flag}" \
"send-keys -M" \
" \
if -Ft= '$check_for_fullscreen_alternate_buffer' \
\"$(get_repeated_scroll_cmd "-t= up")\" \
\" \
$select_moused_over_pane_cmd \
if -Ft= '#{pane_in_mode}' \
'$(get_repeated_scroll_cmd -M)' \
'$enter_copy_mode_cmd ; $(get_repeated_scroll_cmd -M)' \
\" \
"
# Enable sending scroll-downs to the moused-over-pane.
# NOTE: the quoting pattern used here and in the above command for
# consistency is " \" ' \\\" \\\" ' \" " -- that is, " for top-level quotes,
# \" for the next level in, ' for the third level, and \\\" for the fourth
# (note that the fourth comes from inside get_repeated_scroll_cmd).
tmux bind-key -n WheelDownPane \
if -Ft= "#{mouse_any_flag}" \
"send-keys -M" \
" \
if -Ft= \"$check_for_fullscreen_alternate_buffer\" \
\"$(get_repeated_scroll_cmd "-t= down")\" \
\"$select_moused_over_pane_cmd $(get_repeated_scroll_cmd -M)\" \
"
# For tmux 2.4+ you have to set the mouse wheel options seperately for copy-mode than from root.
local tmux_version=$(get_tmux_version)
if echo - | awk "{ if ($tmux_version >= 2.4) { exit 0 } else { exit 1 } }" ; then # Use copy-mode tables to set scroll speed.
local scroll_speed_num_lines_per_scroll=$(get_tmux_option "$scroll_speed_num_lines_per_scroll_option" "3")
tmux bind-key -Tcopy-mode WheelUpPane send -N"$scroll_speed_num_lines_per_scroll" -X scroll-up
tmux bind-key -Tcopy-mode WheelDownPane send -N"$scroll_speed_num_lines_per_scroll" -X scroll-down
tmux bind-key -Tcopy-mode-vi WheelUpPane send -N"$scroll_speed_num_lines_per_scroll" -X scroll-up
tmux bind-key -Tcopy-mode-vi WheelDownPane send -N"$scroll_speed_num_lines_per_scroll" -X scroll-down
fi
}
better_mouse_mode_main

View File

@@ -1,74 +0,0 @@
#!/usr/bin/env bash
# Setup
#tmux() {
# # Forward the "getter" calls to actual tmux, but change the setters to just
# # echo, so we can test what its setting.
# if [[ "$1" == "show-option" ]] ; then
# tmux-2.2/tmux "$@"
# else
# echo "$@"
# fi
#}
tmux() {
tmux-2.2/tmux "$@"
}
export -f tmux
# ------ Unit Tests -----------------------
testBasicBindKeysAreCalled() {
bash scroll_copy_mode.tmux
assertNotNull "`tmux list-keys -T root | grep 'WheelUpPane'`"
assertNotNull "`tmux list-keys -T root | grep 'WheelDownPane'`"
}
checkScrollSpeedSetCorrectly() {
testSpeed="$1"
expectedValue="$2"
tmux set -g @scroll-speed-num-lines-per-scroll $testSpeed
bash scroll_copy_mode.tmux
# Make sure send-keys shows up correct number of times in up and down scroll bindings.
assertEquals 'number of `send-keys` per scroll up not equal to user setting' $expectedValue `tmux list-keys -T root | grep 'WheelUpPane' | grep -o "'send-keys[^']*'" | head -n 1 | grep -o 'send-keys' | wc -l`
assertEquals 'number of `send-keys` per scroll down not equal to user setting' $expectedValue `tmux list-keys -T root | grep 'WheelDownPane' | grep -o "'send-keys[^']*'" | head -n 1 | grep -o 'send-keys' | wc -l`
}
testValidIntegerScrollSpeeds() {
checkScrollSpeedSetCorrectly 1 1
checkScrollSpeedSetCorrectly 2 2
checkScrollSpeedSetCorrectly 10 10
checkScrollSpeedSetCorrectly 0 0
checkScrollSpeedSetCorrectly 2.5 2
}
testInvalidIntegerScrollSpeeds() {
checkScrollSpeedSetCorrectly "-1" 0
checkScrollSpeedSetCorrectly "-10" 0
checkScrollSpeedSetCorrectly "-0.1" 0
}
checkFractionalScrollSpeedSetCorrectly() {
testSpeed="$1"
expectedNumScrollsBeforeScroll="$2"
tmux set -g @scroll-speed-num-lines-per-scroll $testSpeed
bash scroll_copy_mode.tmux
assertNotNull "`tmux list-keys -T root | grep 'WheelUpPane' | grep \"only_scroll_sometimes.sh $expectedNumScrollsBeforeScroll\"`"
assertNotNull "`tmux list-keys -T root | grep 'WheelDownPane' | grep \"only_scroll_sometimes.sh $expectedNumScrollsBeforeScroll\"`"
assertNotNull "`tmux show-environment __scroll_copy_mode__slow_scroll_count`"
}
testValidFractionalScrollSpeeds() {
checkFractionalScrollSpeedSetCorrectly 0.5 2
checkFractionalScrollSpeedSetCorrectly 0.25 4
checkFractionalScrollSpeedSetCorrectly 0.33 3
}
# --------- Run tests command -------------
. shunit2-2.1.6/src/shunit2

621
.vim/colors/darcula.vim Normal file
View File

@@ -0,0 +1,621 @@
" This Source Code Form is subject to the terms of the Mozilla Public
" License, v. 2.0. If a copy of the MPL was not distributed with this
" file, You can obtain one at https://mozilla.org/MPL/2.0/.
if exists("g:darcula")
finish
endif
let g:darcula = 1
highlight clear
if exists("syntax_on")
syntax reset
endif
let g:colors_name='darcula'
let s:p={
\ 'null': ['NONE', 'NONE'],
\ 'bg': ['#2B2B2B', 235],
\ 'fg': ['#A9B7C6', 145],
\ 'cursor': ['#BBBBBB', 250],
\ 'identifierUnderCaret': ['#344134', 237],
\ 'identifierUnderCaretWrite': ['#40332B', 58],
\ 'gutter': ['#313335', 236],
\ 'selection': ['#214283', 24],
\ 'cursorLine': ['#323232', 236],
\ 'cursorLineNr': ['#A4A3A3', 248],
\ 'errorMsg': ['#CC666E', 174],
\ 'error': ['#BC3F3C', 131],
\ 'warning': ['#A9B7C6', 145],
\ 'muted': ['#606060', 241],
\ 'link': ['#287BDE', 32],
\ 'stdOutput': ['#BBBBBB', 250],
\ 'lineNumber': ['#606366', 241],
\ 'matchBraceFg': ['#FFEF28', 220],
\ 'matchBraceBg': ['#3B514D', 59],
\ 'todo': ['#A8C023', 142],
\ 'search': ['#32593D', 23],
\ 'incSearch': ['#155221', 22],
\ 'foldedFg': ['#8C8C8C', 245],
\ 'foldedBg': ['#3A3A3A', 237],
\ 'constant': ['#9876AA', 103],
\ 'keyword': ['#CC7832', 172],
\ 'comment': ['#808080', 244],
\ 'docComment': ['#629755', 65],
\ 'string': ['#6A8759', 101],
\ 'number': ['#6897BB', 103],
\ 'delimiter': ['#CC7832', 172],
\ 'specialComment': ['#8A653B', 95],
\ 'function': ['#FFC66D', 216],
\ 'diffAdd': ['#294436', 23],
\ 'diffText': ['#385570', 60],
\ 'diffDelete': ['#484A4A', 239],
\ 'diffChange': ['#303C47', 23],
\ 'addStripe': ['#384C38', 66],
\ 'stripeWhiteSpace': ['#4C4638', 59],
\ 'changeStripe': ['#374752', 60],
\ 'deleteStripe': ['#656E76', 242],
\ 'typo': ['#659C6B', 72],
\ 'metaData': ['#BBB529', 142],
\ 'macroName': ['#908B25', 100],
\ 'cDataStructure': ['#B5B6E3', 146],
\ 'cStructField': ['#9373A5', 103],
\ 'debug': ['#666D75', 102],
\ 'codeError': ['#532B2E', 52],
\ 'codeWarning': ['#52503A', 59],
\ 'errorStripe': ['#9E2927', 124],
\ 'warnStripe': ['#BE9117', 136],
\ 'infoStripe': ['#756D56', 101],
\ 'hintStripe': ['#6c7176', 242],
\ 'typeDef': ['#B9BCD1', 146],
\ 'menu': ['#46484A', 238],
\ 'menuFg': ['#BBBBBB', 250],
\ 'menuSel': ['#113A5C', 23],
\ 'menuSBar': ['#616263', 241],
\ 'tag': ['#E8BF6A', 180],
\ 'entity': ['#6D9CBE', 109],
\ 'htmlAttribute': ['#BABABA', 250],
\ 'htmlString': ['#A5C261', 143],
\ 'tsObject': ['#507874', 66],
\ 'statusLine': ['#3C3F41', 237],
\ 'statusLineFg': ['#BBBBBB', 250],
\ 'statusLineNC': ['#787878', 243],
\ 'tabLineSel': ['#4E5254', 239],
\ 'shCommand': ['#C57633', 137],
\ 'templateLanguage': ['#232525', 235],
\ 'rustMacro': ['#4EADE5', 74],
\ 'rustLifetime': ['#20999D', 37],
\ 'duplicateFromServer': ['#5E5339', 59],
\ 'hintBg': ['#3B3B3B', 237],
\ 'hintFg': ['#787878', 243],
\ 'wrapGuide': ['#2F2F2F', 236],
\ 'UIBorder': ['#616161', 241],
\ 'UISelection': ['#0D293E', 17],
\ 'ANSIBlack': ['#FFFFFF', 231],
\ 'ANSIRed': ['#FF6B68', 210],
\ 'ANSIGreen': ['#A8C023', 142],
\ 'ANSIYellow': ['#D6BF55', 179],
\ 'ANSIBlue': ['#5394EC', 68],
\ 'ANSIMagenta': ['#AE8ABE', 139],
\ 'ANSICyan': ['#299999', 37],
\ 'ANSIGray': ['#999999', 247],
\ 'ANSIDarkGray': ['#555555', 240],
\ 'ANSIBrightRed': ['#FF8785', 210],
\ 'ANSIBrightGreen': ['#A8C023', 142],
\ 'ANSIBrightYellow': ['#FFFF00', 226],
\ 'ANSIBrightBlue': ['#7EAEF1', 110],
\ 'ANSIBrightMagenta': ['#FF99FF', 219],
\ 'ANSIBrightCyan': ['#6CDADA', 116],
\ 'ANSIWhite': ['#1F1F1F', 234],
\ 'UIBlue': ['#3592C4', 67],
\ 'UIGreen': ['#499C54', 71],
\ 'UIRed': ['#C75450', 131],
\ 'UIBrown': ['#93896C', 102]
\ }
" expose the palette
let darcula#palette=s:p
" helper function
function s:Hi(group, fg, ...)
" arguments: group, fg, bg, style
if a:0 >= 1
let bg=a:1
else
let bg=s:p.null
endif
if a:0 >= 2 && strlen(a:2)
let style=a:2
else
let style='NONE'
endif
let hiList = [
\ 'hi', a:group,
\ 'ctermfg=' . a:fg[1],
\ 'guifg=' . a:fg[0],
\ 'ctermbg=' . bg[1],
\ 'guibg=' . bg[0],
\ 'cterm=' . style,
\ 'gui=' . style
\ ]
execute join(hiList)
endfunction
" expose that function
function darcula#Hi(group, fg, ...)
if a:0 >= 2
call s:Hi(a:group, a:fg, a:1, a:2)
elseif a:0 == 1
call s:Hi(a:group, a:fg, a:1)
else
call s:Hi(a:group, a:fg)
endif
endfunction
call s:Hi('Normal', s:p.fg, s:p.bg)
call s:Hi('ColorColumn', s:p.null, s:p.wrapGuide)
call s:Hi('Conceal', s:p.muted, s:p.bg)
call s:Hi('Cursor', s:p.cursor)
hi! link lCursor Cursor
hi! link CursorIM Cursor
hi! link CursorColumn CursorLine
call s:Hi('CursorLine', s:p.null, s:p.cursorLine, 'NONE')
call s:Hi('DiffAdd', s:p.null, s:p.diffAdd)
call s:Hi('DiffChange', s:p.null, s:p.diffChange)
call s:Hi('DiffDelete', s:p.null, s:p.diffDelete)
call s:Hi('DiffText', s:p.null, s:p.diffText)
hi! link Directory NormalFg
hi! link EndOfBuffer NonText
call s:Hi('ErrorMsg', s:p.errorMsg)
call s:Hi('Error', s:p.error)
call s:Hi('VertSplit', s:p.muted)
call s:Hi('Folded', s:p.foldedFg, s:p.foldedBg)
hi! link FoldColumn Folded
call s:Hi('SignColumn', s:p.null, s:p.gutter)
call s:Hi('LineNr', s:p.lineNumber, s:p.gutter)
hi! link LineNrAbove LineNr
hi! link LineNrBelow LineNr
call s:Hi('CursorLineNr', s:p.cursorLineNr, s:p.cursorLine)
call s:Hi('MatchParen', s:p.matchBraceFg, s:p.matchBraceBg, 'bold')
call s:Hi('ModeMsg', s:p.stdOutput)
hi! link MoreMsg NormalFg
call s:Hi('NonText', s:p.muted)
call s:Hi('Pmenu', s:p.menuFg, s:p.menu)
call s:Hi('PmenuSel', s:p.menuFg, s:p.menuSel)
call s:Hi('PmenuSbar', s:p.menu, s:p.menu)
call s:Hi('PmenuThumb', s:p.menuSBar, s:p.menuSBar)
hi! link Question NormalFg
hi! link QuickFixLine NormalFg
call s:Hi('Search', s:p.null, s:p.search)
call s:Hi('IncSearch', s:p.null, s:p.incSearch)
hi! link SpecialKey NonText
call s:Hi('SpellBad', s:p.typo, s:p.null, 'underline')
hi! link SpellCap SpellBad
hi! link SpellLocal SpellBad
hi! link SpellRare SpellBad
call s:Hi('StatusLine', s:p.statusLineFg, s:p.statusLine)
call s:Hi('StatusLineNC', s:p.statusLineNC, s:p.statusLine)
hi! link StatusLineTerm StatusLine
hi! link StatusLineTermNC StatusLineNC
call s:Hi('TabLine', s:p.statusLineFg, s:p.statusLine)
call s:Hi('TabLineFill', s:p.statusLine, s:p.statusLine)
call s:Hi('TabLineSel', s:p.fg, s:p.tabLineSel)
call s:Hi('Terminal', s:p.stdOutput, s:p.bg)
hi! link Title Special
call s:Hi('Visual', s:p.null, s:p.selection)
hi! link VisualNOS Visual
call s:Hi('WarningMsg', s:p.warning)
hi! link WildMenu PmenuSel
call s:Hi('Comment', s:p.comment)
hi! link Identifier NormalFg
hi! link Type Keyword
call s:Hi('Typedef', s:p.typeDef)
call s:Hi('Todo', s:p.todo, s:p.null, 'italic')
hi! link Special PreProc
call s:Hi('Constant', s:p.constant, s:p.null, 'italic')
call s:Hi('String', s:p.string)
hi! link Character String
call s:Hi('Number', s:p.number)
call s:Hi('Delimiter', s:p.delimiter)
call s:Hi('SpecialComment', s:p.specialComment, s:p.null, 'italic')
hi! link Statement Keyword
call s:Hi('Keyword', s:p.keyword)
call s:Hi('Underlined', s:p.fg, s:p.null, 'underline')
call s:Hi('PreProc', s:p.metaData)
hi! link Tag Keyword
call s:Hi('Debug', s:p.debug, s:p.null, 'italic')
call s:Hi('Function', s:p.function)
" helper groups
call s:Hi('docComment', s:p.docComment, s:p.null, 'italic')
call s:Hi('NormalFg', s:p.fg)
call s:Hi('GitAddStripe', s:p.addStripe, s:p.addStripe)
call s:Hi('GitChangeStripe', s:p.changeStripe, s:p.changeStripe)
call s:Hi('GitDeleteStripe', s:p.deleteStripe, s:p.gutter)
call s:Hi('CodeError', s:p.null, s:p.codeError)
call s:Hi('CodeWarning', s:p.null, s:p.codeWarning)
call s:Hi('CodeInfo', s:p.null, s:p.infoStripe)
call s:Hi('CodeHint', s:p.hintFg, s:p.hintBg)
call s:Hi('ErrorSign', s:p.errorStripe, s:p.gutter)
call s:Hi('WarningSign', s:p.warnStripe, s:p.gutter)
call s:Hi('InfoSign', s:p.infoStripe, s:p.gutter)
call s:Hi('HintSign', s:p.hintStripe, s:p.gutter)
call s:Hi('IdentifierUnderCaret', s:p.null, s:p.identifierUnderCaret)
call s:Hi('IdentifierUnderCaretWrite', s:p.null, s:p.identifierUnderCaretWrite)
call s:Hi('InstanceField', s:p.constant)
call s:Hi('UIDialog', s:p.fg, s:p.statusLine)
call s:Hi('UIBorder', s:p.UIBorder, s:p.statusLine)
call s:Hi('UISelection', s:p.null, s:p.UISelection)
" neovim
if has('nvim')
" the following code snippet fix an issue with CursorLine hi group
" see https://github.com/neovim/neovim/issues/9019
if has('termguicolors') && &termguicolors
hi CursorLine ctermfg=white
else
hi CursorLine guifg=white
endif
hi! link NormalFloat Pmenu
hi! link NormalNC NormalFg
hi! link MsgArea NormalFg
hi! link MsgSeparator StatusLine
hi! link QuickFixLine NormalFg
hi! link Substitute Search
" TermCursor
" TermCursorNC
hi! link Whitespace NonText
hi! link healthSuccess IncSearch
call s:Hi('NvimInternalError', s:p.error, s:p.error)
call s:Hi('RedrawDebugClear', s:p.fg, s:p.duplicateFromServer)
call s:Hi('RedrawDebugComposed', s:p.fg, s:p.search)
call s:Hi('RedrawDebugRecompose', s:p.fg, s:p.codeError)
" Terminal colors
let g:terminal_color_0 = s:p.ANSIBlack[0]
let g:terminal_color_1 = s:p.ANSIRed[0]
let g:terminal_color_2 = s:p.ANSIGreen[0]
let g:terminal_color_3 = s:p.ANSIYellow[0]
let g:terminal_color_4 = s:p.ANSIBlue[0]
let g:terminal_color_5 = s:p.ANSIMagenta[0]
let g:terminal_color_6 = s:p.ANSICyan[0]
let g:terminal_color_7 = s:p.ANSIGray[0]
let g:terminal_color_8 = s:p.ANSIDarkGray[0]
let g:terminal_color_9 = s:p.ANSIBrightRed[0]
let g:terminal_color_10 = s:p.ANSIBrightGreen[0]
let g:terminal_color_11 = s:p.ANSIBrightYellow[0]
let g:terminal_color_12 = s:p.ANSIBrightBlue[0]
let g:terminal_color_13 = s:p.ANSIBrightMagenta[0]
let g:terminal_color_14 = s:p.ANSIBrightCyan[0]
let g:terminal_color_15 = s:p.ANSIWhite[0]
" nvim-treesitter
hi! link TSAnnotation PreProc
hi! link TSAttribute PreProc
hi! link TSBoolean Keyword
hi! link TSCharacter Character
hi! link TSComment Comment
hi! link TSConstructor Function
hi! link TSConditional Keyword
hi! link TSConstant Constant
hi! link TSConstBuiltin Keyword
hi! link TSConstMacro cMacroName
hi! link TSError codeError
hi! link TSException Keyword
hi! link TSField InstanceField
hi! link TSFloat Number
hi! link TSFunction Function
hi! link TSFuncBuiltin Normal
hi! link TSFuncMacro cMacroName
hi! link TSInclude Keyword
hi! link TSKeyword Keyword
hi! link TSKeywordFunction Keyword
hi! link TSLabel Normal
hi! link TSMethod Function
hi! link TSNamespace cDataStructure
hi! link TSNone Normal
hi! link TSNumber Number
hi! link TSOperator Normal
hi! link TSParameter Normal
hi! link TSParameterReference Normal
hi! link TSProperty TSField
hi! link TSPunctDelimiter Normal
hi! link TSPunctBracket Normal
hi! link TSPunctSpecial Keyword
hi! link TSRepeat Keyword
hi! link TSString String
hi! link TSStringRegex Number
hi! link TSStringEscape Keyword
hi! link TSTag htmlTag
hi! link TSTagDelimiter htmlTag
hi! link TSText Normal
call s:Hi('TSStrong', s:p.fg, s:p.null, 'bold')
call s:Hi('TSEmphasis', s:p.fg, s:p.null, 'italic')
call s:Hi('TSUnderline', s:p.fg, s:p.null, 'underline')
call s:Hi('TSStrike', s:p.fg, s:p.null, 'strikethrough')
call s:Hi('TSTitle', s:p.fg, s:p.null, 'bold,underline')
hi! link TSLiteral Normal
hi! link TSURI markdownLinkText
hi! link TSNote CodeInfo
hi! link TSWarning CodeWarning
hi! link TSDanger CodeError
hi! link TSType Normal
hi! link TSTypeBuiltin Keyword
hi! link TSVariable Normal
hi! link TSVariableBuiltin Keyword
" LSP
hi! link LspDiagnosticsDefaultError CodeError
hi! link LspDiagnosticsDefaultWarning CodeWarning
hi! link LspDiagnosticsDefaultInformation CodeInfo
hi! link LspDiagnosticsDefaultHint CodeHint
hi! link LspDiagnosticsSignError ErrorSign
hi! link LspDiagnosticsSignWarning WarningSign
hi! link LspDiagnosticsSignInformation InfoSign
hi! link LspDiagnosticsSignHint HintSign
hi! link LspReferenceText IdentifierUnderCaret
hi! link LspReferenceRead IdentifierUnderCaret
hi! link LspReferenceWrite IdentifierUnderCaretWrite
hi! link LspDiagnosticsUnderlineError CodeError
hi! link LspDiagnosticsUnderlineWarning CodeWarning
hi! link LspDiagnosticsUnderlineInformation CodeInfo
hi! link LspDiagnosticsUnderlineHint CodeHint
hi! link LspDiagnosticsFloatingError NormalFloat
hi! link LspDiagnosticsFloatingWarning NormalFloat
hi! link LspDiagnosticsFloatingInformation NormalFloat
hi! link LspDiagnosticsFloatingHint NormalFloat
endif
" Vim terminal colors (for :terminal)
if !has('nvim')
let g:terminal_ansi_colors=[
\ s:p.ANSIBlack[0],
\ s:p.ANSIRed[0],
\ s:p.ANSIGreen[0],
\ s:p.ANSIYellow[0],
\ s:p.ANSIBlue[0],
\ s:p.ANSIMagenta[0],
\ s:p.ANSICyan[0],
\ s:p.ANSIGray[0],
\ s:p.ANSIDarkGray[0],
\ s:p.ANSIBrightRed[0],
\ s:p.ANSIBrightGreen[0],
\ s:p.ANSIBrightYellow[0],
\ s:p.ANSIBrightBlue[0],
\ s:p.ANSIBrightMagenta[0],
\ s:p.ANSIBrightCyan[0],
\ s:p.ANSIWhite[0]
\ ]
endif
" C/C++
call s:Hi('cMacroName', s:p.macroName)
hi! link cConstant cMacroName
hi! link cPreInclude String
hi! link cPreProcRegion NormalFg
hi! link cUserLabel NormalFg
hi! link cDataStructureKeyword Keyword
call s:Hi('cDataStructure', s:p.cDataStructure)
hi! link cFunction Function
hi! link cppDestructor cFunction
hi! link cSemicolon Keyword
hi! link cComma Keyword
call s:Hi('cppAfterColon', s:p.cStructField)
hi! link cppBeforeColon cDataStructure
call s:Hi('cStructField', s:p.cStructField)
hi! link cppNullptr Keyword
hi! link cppTemplate Keyword
hi! link cTypedef Keyword
hi! link cppTypeName Keyword
hi! link cSpecial Keyword
hi! link cEnum Keyword
call s:Hi('cSomeMacro', s:p.macroName)
" Rust
call s:Hi('rustDeriveTrait', s:p.metaData)
hi! link rustQuestionMark Keyword
hi! link rustComma Keyword
hi! link rustSemicolon Keyword
hi! link rustOperator NormalFg
call s:Hi('rustCommentLineDoc', s:p.docComment, s:p.null, 'italic')
call s:Hi('rustMacro', s:p.rustMacro)
hi! link rustAssert rustMacro
hi! link rustPanic rustMacro
hi! link rustEscape Keyword
hi! link rustSigil NormalFg
hi! link rustSelf Keyword
call s:Hi('rustLifetime', s:p.rustLifetime, s:p.null, 'italic')
call s:Hi('rustTypeParameter', s:p.rustLifetime)
hi! link rustEnumVariant Constant
hi! link rustModPath NormalFg
hi! link rustModPathSep NormalFg
hi! link rustAs Keyword
hi! link rustConst Constant
hi! link rustVarField InstanceField
" Vim
hi! link vimOption Constant
hi! link vimFunction Function
hi! link vimContinue NonText
hi! link vimParenSep NormalFg
hi! link vimBracket PreProc
hi! link vimOper NormalFg
hi! link vimSep NormalFg
hi! link vimCommentString Comment
" JavaScript
hi! link jsNoise Keyword
hi! link JsImport Keyword
hi! link JsFrom Keyword
hi! link JsOperator NormalFg
hi! link jsArrowFunction NormalFg
hi! link jsFuncArgCommas Delimiter
hi! link jsObjectKey InstanceField
hi! link jsTernaryIfOperator NormalFg
hi! link jsObjectSeparator Keyword
hi! link jsSpreadOperator NormalFg
hi! link jsModuleComma Keyword
hi! link jsClassDefinition NormalFg
hi! link jsSuper Keyword
hi! link jsThis Keyword
hi! link jsObjectProp InstanceField
hi! link jsDestructuringNoise Keyword
hi! link jsClassProperty Function
hi! link jsBooleanTrue Keyword
hi! link jsBooleanFalse Keyword
hi! link jsObjectShorthandProp NormalFg
hi! link jsObjectColon NormalFg
hi! link jsExport Keyword
hi! link jsModuleAs Keyword
" TypeScript
hi! link typescriptBraces NormalFg
hi! link typescriptDocComment docComment
hi! link typescriptDocParam docComment
hi! link typescriptParens NormalFg
hi! link typescriptOpSymbols InstanceField
hi! link typescriptRegexpString Number
hi! link typescriptSpecial Keyword
hi! link typescriptLogicSymbols InstanceField
hi! link typescriptExceptions Keyword
call s:Hi('typescriptDocTags', s:p.docComment, s:p.null, 'bold,italic,underline')
call s:Hi('typescriptGlobalObjects', s:p.tsObject)
" JSON
hi! link jsonBraces NormalFg
hi! link jsonKeyword InstanceField
hi! link jsonNoise Keyword
hi! link jsonKeywordMatch Keyword
hi! link jsonBoolean Keyword
hi! link jsonNull Keyword
hi! link jsonEscape Keyword
hi! link jsonStringMatch String
" XML
call s:Hi('xmlTagName', s:p.tag)
hi! link xmlEndTag xmlTagName
hi! link xmlAttrib NormalFg
hi! link xmlProcessingDelim xmlTagName
hi! link xmlDocTypeKeyword xmlTagName
hi! link xmlComment Comment
hi! link xmlCommentStart xmlComment
hi! link xmlCommentPart xmlComment
call s:Hi('xmlEntity', s:p.entity)
hi! link xmlEntityPunct xmlEntity
hi! link xmlCdata NormalFg
hi! link xmlCdataCdata xmlCdata
hi! link xmlCdataStart xmlCdata
hi! link xmlCdataEnd xmlCdata
hi! link xmlNamespace InstanceField
hi! link xmlAttribPunct NormalFg
hi! link xmlEqual xmlString
" GraphQL
hi! link graphqlTaggedTemplate NormalFg
" YAML
hi! link yamlDocumentStart NormalFg
hi! link yamlDocumentEnd NormalFg
hi! link yamlComment docComment
hi! link yamlBlockMappingKey Keyword
hi! link yamlKeyValueDelimiter NormalFg
hi! link yamlInteger NormalFg
hi! link yamlFloat NormalFg
hi! link yamlBlockCollectionItemStart NormalFg
call s:Hi('yamlAnchor', s:p.tag)
hi! link yamlAlias yamlAnchor
hi! link yamlBool NormalFg
hi! link yamlNodeTag NormalFg
hi! link yamlNull NormalFg
" Markdown
hi! link markdownH1 Constant
hi! link markdownH2 markdownH1
hi! link markdownH3 markdownH1
hi! link markdownH4 markdownH1
hi! link markdownH5 markdownH1
hi! link markdownH6 markdownH1
hi! link markdownHeadingRule markdownH1
hi! link markdownHeadingDelimiter markdownH1
call s:Hi('markdownAutomaticLink', s:p.link, s:p.null, 'underline')
hi! link markdownBlockquote String
hi! link markdownBoldDelimiter Keyword
hi! link markdownBold NormalFg
hi! link markdownItalicDelimiter Keyword
hi! link markdownItalic NormalFg
hi! link markdownCode Comment
hi! link markdownCodeDelimiter markdownCode
hi! link markdownCodeBlock markdownCode
call s:Hi('markdownLinkText', s:p.link, s:p.null, 'underline')
hi! link markdownLinkTextDelimiter markdownLinkText
hi! link markdownUrlDelimiter markdownLinkText
call s:Hi('markdownUrl', s:p.function, s:p.null, 'italic')
hi! link markdownIdDelimiter Keyword
hi! link markdownLinkDelimiter Keyword
hi! link markdownIdDeclaration Keyword
hi! link markdownLinkDelimiter NormalFg
hi! link markdownUrlTitleDelimiter Comment
hi! link markdownRule Comment
" HTML
let html_no_rendering=1
call s:Hi('htmlTag', s:p.tag)
hi! link htmlTagName htmlTag
hi! link htmlEndTag htmlTag
call s:Hi('htmlArg', s:p.htmlAttribute)
call s:Hi('htmlString', s:p.htmlString)
hi! link htmlValue htmlString
hi! link htmlComment Comment
hi! link htmlCommentError Comment
hi! link htmlCommentPart Comment
call s:Hi('htmlSpecialChar', s:p.entity)
hi! link htmlSpecialTagName htmlTag
" CSS
hi! link cssAtKeyword Keyword
hi! link cssBraces NormalFg
hi! link cssAttributeSelector htmlTag
hi! link cssSelectorOp NormalFg
hi! link cssClassName htmlTag
hi! link cssNoise Keyword
hi! link cssAttrComma Keyword
hi! link cssFunctionComma Keyword
hi! link cssMediaComma Keyword
hi! link cssComment Comment
hi! link cssClassNameDot NormalFg
call s:Hi('cssFunctionName', s:p.tag)
call s:Hi('cssColor', s:p.number)
call s:Hi('cssIdentifier', s:p.tag)
call s:Hi('cssPseudoClassId', s:p.tag)
call s:Hi('cssImportant', s:p.keyword, s:p.null, 'bold')
call s:Hi('cssProp', s:p.htmlAttribute)
call s:Hi('cssAttr', s:p.htmlString)
call s:Hi('cssAttrRegion', s:p.htmlString)
call s:Hi('cssURL', s:p.link)
" Shell Script
call s:Hi('sheBang', s:p.fg, s:p.null, 'bold')
hi! link shRange NormalFg
hi! link shFunctionKey Keyword
call s:Hi('shStatement', s:p.shCommand)
hi! link bashStatement shStatement
hi! link shDerefVar NormalFg
hi! link shQuote String
call s:Hi('shHereDoc', s:p.null, s:p.templateLanguage)
call s:Hi('shRedir', s:p.fg, s:p.null, 'bold')
hi! link shDerefSimple NormalFg
hi! link shCommandSubBQ InstanceField
hi! link shOption NormalFg
hi! link shCmdSubRegion shStatement
hi! link shCommandSub NormalFg
hi! link shLoop Keyword
hi! link shCommandSub Keyword
hi! link shSet shStatement
hi! link shFunctionTwo shStatement
hi! link shCtrlSeq String
hi! link shSpecial String
hi! link shCommandSub NormalFg
hi! link shDerefSpecial NormalFg
hi! link shOperator NormalFg
" help
hi! link helpHyperTextJump Number

4
.vim/undodir/.gitignore vendored Normal file
View File

@@ -0,0 +1,4 @@
# Ignore everything in this directory
*
# Don't ignore this file
!.gitignore

88
.vimrc
View File

@@ -3,6 +3,36 @@
" General Vim Settings
" Highlight the column cursor is on
" May slow screen redraw time, so off by default
""set cursorcolumn
" Keep the bottom / top of the page n lines from the cursor
set scrolloff=5
" Persistant undo
" :help undo-persistence
set undodir=~/.vim/undodir
set undofile
" Combine vim clipboard with global clipboard buffer
" Allows using y and p to copy into CTRL-C buffer, vice versa
" :help clipboard
" :help registers
""set clipboard=unnamed
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 column 80 in c and cpp files
autocmd FileType cpp,c set colorcolumn=80
" Define function in vim to remove whitespace
fun! TrimWhitespace()
let l:save = winsaveview()
@@ -33,19 +63,25 @@ 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
""colorscheme darcula
" Enable Syntax Highlighting in Vim
syntax on
" 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 <C-e> <C-w> " Modify and remove leading quotation
" :help mappings
" CPP Compile
""autocmd FileType cpp nmap <buffer> <F5> :w<bar>!g++ -o %:r % && ./%:r<CR>
@@ -54,7 +90,12 @@ set backspace=indent,eol,start
" default Ctrl-W conflict - closes browser tabs
nnoremap <C-e> <C-w>
nnoremap <C-b> :!make -C build/
" Build and run keybinds
"" nnoremap <C-b> :!make -C build/
nnoremap <C-b> :!cmake -S . -B ./build/ && cmake --build ./build
nnoremap <C-d> :!./build/scrap
nnoremap <C-m> :!make -C build/
" Vim Plugin Settings
@@ -65,7 +106,7 @@ filetype plugin indent on
" Set Vim Airline theme
" base16 soda base16_pop laederon night_owl kalisi* ayu_mirage* raven
let g:airline_theme='kalisi'
"let g:airline_theme='kalisi'
" Gitgutter installed for + - diffs in gutters within repo files
@@ -74,8 +115,11 @@ let g:airline_theme='kalisi'
let g:ale_hover_to_preview = 1
" Hover detail info in balloons
""let g:ale_set_balloons = 1
let g:ale_sign_error = ''
let g:ale_sign_warning = ''
""let g:ale_sign_error = 'X'
""let g:ale_sign_warning = '?'
let g:ale_sign_error = '🗙'
let g:ale_sign_warning = '⚠'
""let g:ale_sign_warning = ''
highlight ALEWarningSign ctermbg=Yellow
highlight ALEWarningSign ctermfg=Black
highlight ALEWarning ctermbg=DarkYellow
@@ -112,7 +156,7 @@ let g:clang_library_path='/usr/lib/llvm-8/lib/'
" Colorizer plugin settings
" See :h colorizer in Vim for more info
""let g:colorizer_colornames = 0 " Don't color literal names, like red, green, etc
let g:colorizer_auto_color = 1
let g:colorizer_auto_color = 0
""let g:colorizer_skip_comments = 1
""let g:colorizer_auto_filetype ='css,html,vim'
nnoremap <C-c> :ColorToggle<CR>
@@ -152,3 +196,33 @@ let g:airline_symbols.branch = ''
let g:airline_symbols.readonly = ''
let g:airline_symbols.linenr = ''
" Clang completeion settings
" If this is set, clang_complete will not be loaded at all
""let g:clang_complete_loaded=1
" Required clang library path
let g:clang_library_path=$LIBCLANG
" Clang user option settings examples
""let g:clang_user_options='-std=c++11 stdlib=libc++'
""let g:clang_user_options='-include malloc.h'
" The algo used to sort results (priority, alpha, none)
let g:clang_sort_algo="priority"
let g:clang_close_preview=1
let g:clang_jumpto_declaration_in_preview_key="\\"
let g:clang_jumpto_declaration_key="]"
let g:clang_jumpto_back_key="["
" Whether or not clang should complete preprocessor patterns
let g:clang_complete_macros=1
" Whether or not clang should complete programming paterns (for, while, etc)
let g:clang_complete_patterns=1
" Following two lines allow clang to complete patterns using snippets
let g:clang_snippets=1
" Which completion engine to use (clang_complete, ultisnips, snipmate)
let g:clang_snippets_engine='clang_complete'
" Should clang use placeholders for insertion within snippets
" This allows parameters, typenames, etc to be inserted
" Use <TAB> in normal mode to move to next param
let g:clang_trailing_placeholder=1

View File

@@ -1,64 +1,75 @@
# For the benefit of emacs users: -*- shell-script -*-
###########################
# xbindkeys configuration #
###########################
#
# Version: 0.1.3
# Version: 1.8.6
#
# If you edit this, do not forget to uncomment any lines that you change.
# If you edit this file, do not forget to uncomment any lines
# that you change.
# The pound(#) symbol may be used anywhere for comments.
#
# To specify a key, you can use 'xbindkeys --key' or
# 'xbindkeys --multikey' and put one of the two lines in this file.
#
# The format of a command line is:
# "command to start"
# associated key
#
#
# A list of keys is in /usr/include/X11/keysym.h and in
# /usr/include/X11/keysymdef.h
# The XK_ is not needed.
# /usr/include/X11/keysymdef.h
# The XK_ is not needed.
#
# List of modifier (on my keyboard):
# Control, Shift, Mod1 (Alt), Mod2 (NumLock),
# Mod3 (CapsLock), Mod4, Mod5 (Scroll).
# List of modifier:
# Release, Control, Shift, Mod1 (Alt), Mod2 (NumLock),
# Mod3 (CapsLock), Mod4, Mod5 (Scroll).
#
# Another way to specifie a key is to use 'xev' and set the
# keycode with c:nnn or the modifier with m:nnn where nnn is
# the keycode or the state returned by xev
#
# This file is created by xbindkey_config
# The structure is :
# # Remark
# "command"
# m:xxx + c:xxx
# Shift+...
# The release modifier is not a standard X modifier, but you can
# use it if you want to catch release events instead of press events
# By defaults, xbindkeys does not pay attention with the modifiers
# NumLock, CapsLock and ScrollLock.
# Uncomment the lines above if you want to pay attention to them.
#keystate_numlock = enable
#keystate_scrolllock = enable
#keystate_capslock = enable
#keystate_scrolllock= enable
# SETUP INSTRUCTIONS:
# Run `xbindkeys --key` and press a key to get the output
# Place the output under the correspondng action to trigger for that key press
# Useful for configuring media keys for laptops; They all differ
# These settings are for a Dell XPS 13 9310
# Examples of commands:
#Volume Up
"pactl set-sink-volume @DEFAULT_SINK@ +10%"
m:0x0 + c:123
XF86AudioRaiseVolume
"xbindkeys_show"
control+shift + q
#Volume Down
"pactl set-sink-volume @DEFAULT_SINK@ -10%"
m:0x0 + c:122
XF86AudioLowerVolume
# Disables middle-mouse button
# + If this doesn't work, try to remove '+ Release'
#"echo -n | xsel -n -i; pkill xbindkeys; xdotool click 2; xbindkeys"
# b:2 + Release
#Toggle Audio
"pactl set-sink-mute @DEFAULT_SINK@ toggle"
m:0x0 + c:121
XF86AudioMute
# set directly keycode (here control + f with my keyboard)
#"xterm"
# c:41 + m:0x4
#Brightness Up
"brightnessctl s +2.5%"
m:0x0 + c:233
XF86MonBrightnessUp
# specify a mouse button
#"xterm"
# control + b:2
#Brightness Down
"brightnessctl s 2.5%-"
m:0x0 + c:232
XF86MonBrightnessDown
#"xterm -geom 50x20+20+20"
# Shift+Mod2+alt + s
#
## set directly keycode (here control+alt+mod2 + f with my keyboard)
#"xterm"
# alt + c:0x29 + m:4 + mod2
#
## Control+Shift+a release event starts rxvt
#"rxvt"
# release+control+shift + a
#
## Control + mouse button 2 release event starts rxvt
#"rxvt"
# Control + b:2 + Release
# End of xbindkeys configuration
##################################
# End of xbindkeys configuration #
##################################

View File

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

View File

Before

Width:  |  Height:  |  Size: 414 KiB

After

Width:  |  Height:  |  Size: 414 KiB

109
README.md
View File

@@ -4,9 +4,11 @@ Be sure to clone recursively if you want to grab updated plugins / submodules in
These configs were created and tested on Kubuntu 20.04 using i3-gaps, and should only be used on similar systems. Any Ubuntu derivative is probably fine, especially if you're already familiar with i3. If you get stuck in a terminal with no internet, check out [Linux Admin/Getting Started](https://knoats.com/link/62#bkmrk-connecting-to-wifi).
#### Install Dependencies and Dotfiles
First, grab some packages used for status bar and desktop overlay
```bash
sudo apt install conky golang-go inxi python3 python3-pip jq tmux xbindkeys
sudo apt install conky golang-go inxi python3 python3-pip jq tmux xbindkeys xautolock pulsemixer xsel
sudo pip3 install powerline-shell
go get -u github.com/arl/gitmux
```
@@ -27,56 +29,22 @@ sudo ./configure && sudo make install
sudo usermod -aG video <YOUR_USERNAME>
```
Optionally, you can modify the following keybinds in `.xbindkeysrc`. I wrote some addiitonal comments in the file and also you can check out [Linux Admin/i3](https://knoats.com/books/linux-admin/page/i3#bkmrk-xkeybinds) for more help if needed.
```
# SETUP INSTRUCTIONS:
# Run `xbindkeys --key` and press a key to get the output
# Place the output under the correspondng action to trigger for that key press
# Useful for configuring media keys for laptops; They all differ
# These settings are for a Dell XPS 13 9310
#Volume Up
"pactl set-sink-volume @DEFAULT_SINK@ +10%"
m:0x0 + c:123
XF86AudioRaiseVolume
#Volume Down
"pactl set-sink-volume @DEFAULT_SINK@ -10%"
m:0x0 + c:122
XF86AudioLowerVolume
#Toggle Audio
"pactl set-sink-mute @DEFAULT_SINK@ toggle"
m:0x0 + c:121
XF86AudioMute
#Brightness Up
"brightnessctl s +2.5%"
m:0x0 + c:233
XF86MonBrightnessUp
#Brightness Down
"brightnessctl s 2.5%-"
m:0x0 + c:232
XF86MonBrightnessDown
```
Then install i3-gaps from speed-ricer PPA
```bash
sudo add-apt-repository ppa:kgilmer/speed-rice
sudo add-apt-repository ppa:kgilmer/speed-ricer
sudo apt install i3-gaps
```
Last, install these dotfiles to configure all of these applications by cloning repository into home directory and running `stow .` -
```bash
git clone -b ubuntu-i3 --recursive https://github.com/shaunrd0/dot ~/dot
git clone -b kubuntu-i3 --recursive https://github.com/shaunrd0/dot ~/dot
cd ~/dot/
stow .
```
If you'd rather clone elsewhere you can
```bash
git clone -b ubuntu-i3 --recursive https://github.com/shaunrd0/dot /path/to/dot
git clone -b kubuntu-i3 --recursive https://github.com/shaunrd0/dot /path/to/dot
cd /path/to/dot/
stow -t ~ .
```
@@ -87,7 +55,36 @@ cd ~/dot/
git submodule update --init
```
To configure tap to click on laptop touchpads, run the following commands
*After* the dotfiles have been installed using `stow`, you should run `tpm` to ensure tmux plugins are all installed according to the `tmux.conf` settings provided. Assuming you don't want to face errors for dependencies related to tmux shortcuts defined in `.tmux.conf`, this is a required step to configure these dotfiles. Alternatively, you could provide your own `.tmux.conf` that does not use plugins to avoid this step, or just use the default `.tmux.conf` instead.
```bash
~/.tmux/plugins/tpm/bin/install_plugins
```
![desktop](Pictures/screenshots/dtop-code.png)
#### Additional Configuration
`stow --adopt .` can be used to install conflicting files, but doing so will result in the loss of your local configurations. If you want to keep them, back up the conflicting files output in the error message before running this command.
**Installation of clang for clang completion**
If you don't want clang completion, just remove the plugin directory from `~/.vim/bundle/`.
If you don't remove clang completion and skip the following steps, vim will show errors when opening source code files. This is because these configurations use clang completion for so urce code auto completion and drop-down menus within vim.
Note that the `printf` command may take some time to finish, since it is searching your syst em for a needed file.
```bash
sudo apt install clang
printf "export LIBCLANG=\""$(find /usr/ -name libclang.so.1 2>/dev/null)"\"\n\n" >> .bash_al iases
echo "let g:clang_library_path=\$LIBCLANG" >> ~/.vimrc
source ~/.bashrc
```
**To configure tap to click on laptop touchpads**, run the following commands
```bash
sudo mkdir /etc/X11/xorg.conf.d
sudoedit /etc/X11/xorg.conf.d/90-touchpad.conf
@@ -103,7 +100,37 @@ Section "InputClass"
EndSection
```
`stow --adopt .` can be used to install conflicting files, but doing so will result in the loss of your local configurations. If you want to keep them, back up the conflicting files output in the error message before running this command.
**Optionally, you can also modify the following keybinds in `.xbindkeysrc`.** I wrote some addiitonal comments in the file and also you can check out [Linux Admin/i3](https://knoats.com/books/linux-admin/page/i3#bkmrk-xkeybinds) for more help if needed.
```
# SETUP INSTRUCTIONS:
# Run `xbindkeys --key` and press a key to get the output
# Place the output under the correspondng action to trigger for that key press
# Useful for configuring media keys for laptops; They all differ
# These settings are for a Dell XPS 13 9310
![desktop](screens/dtop-code.png)
#Volume Up
"pactl set-sink-volume @DEFAULT_SINK@ +10%"
m:0x0 + c:123
XF86AudioRaiseVolume
#Volume Down
"pactl set-sink-volume @DEFAULT_SINK@ -10%"
m:0x0 + c:122
XF86AudioLowerVolume
#Toggle Audio
"pactl set-sink-mute @DEFAULT_SINK@ toggle"
m:0x0 + c:121
XF86AudioMute
#Brightness Up
"brightnessctl s +2.5%"
m:0x0 + c:233
XF86MonBrightnessUp
#Brightness Down
"brightnessctl s 2.5%-"
m:0x0 + c:232
XF86MonBrightnessDown
```