Initial commit

This commit is contained in:
Patrick Wadström 2020-04-20 20:36:35 +02:00
commit ed92720d1e
8 changed files with 3219 additions and 0 deletions

192
.config/sway/config Normal file
View File

@ -0,0 +1,192 @@
# Sway SuperConfig
# Set Swedish layout
input * xkb_layout "se"
# Set modified to Windows Key
set $mod Mod4
# Setup VIM navigation
set $left h
set $down j
set $up k
set $right l
# Setup terminal
set $term termite
# Setup menu
set $menu albert toggle
# Default Wallpaper
output * bg /usr/share/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png fill
# Workspaces
set $ws1 1:C
# Assign wrkspaces for common apps
assign [class="^slack$"] $ws1
assign [class="^microsoft teams - preview$"] $ws1
for_window [class="^microsoft teams - preview$"] border none
# Key bindings
bindsym $mod+Return exec $term
bindsym $mod+Shift+q kill
bindsym $mod+Space exec $menu
bindsym $mod+Shift+c nop # suppress the keystroke (or it will type a capital C before reloading sway
bindsym --release $mod+Shift+c reload
bindsym $mod+Shift+e exec swaynag -t warning -m 'Do you want to exit?' -b 'Yes' 'swaymsg exit'
bindsym --release $mod+Escape exec makoctl dismiss
#
# Moving around:
#
# Move your focus around
bindsym $mod+$left focus left
bindsym $mod+$down focus down
bindsym $mod+$up focus up
bindsym $mod+$right focus right
# Move the focused window with the same, but add Shift
bindsym $mod+Shift+$left move left
bindsym $mod+Shift+$down move down
bindsym $mod+Shift+$up move up
bindsym $mod+Shift+$right move right
#
# Workspaces:
#
# Switch to workspace
bindsym $mod+1 workspace 1
bindsym $mod+2 workspace 2
bindsym $mod+3 workspace 3
bindsym $mod+4 workspace 4
bindsym $mod+5 workspace 5
bindsym $mod+6 workspace 6
bindsym $mod+7 workspace 7
bindsym $mod+8 workspace 8
bindsym $mod+9 workspace 9
bindsym $mod+0 workspace 10
# Move focused container to workspace
bindsym $mod+Shift+1 move container to workspace 1
bindsym $mod+Shift+2 move container to workspace 2
bindsym $mod+Shift+3 move container to workspace 3
bindsym $mod+Shift+4 move container to workspace 4
bindsym $mod+Shift+5 move container to workspace 5
bindsym $mod+Shift+6 move container to workspace 6
bindsym $mod+Shift+7 move container to workspace 7
bindsym $mod+Shift+8 move container to workspace 8
bindsym $mod+Shift+9 move container to workspace 9
bindsym $mod+Shift+0 move container to workspace 10
# Note: workspaces can have any name you want, not just numbers.
# We just use 1-10 as the default.
bindsym $mod+Mod1+$right move workspace to output right
bindsym $mod+Mod1+$left move workspace to output left
bindsym $mod+Mod1+$up move workspace to output up
bindsym $mod+Mod1+$down move workspace to output down
#
#
#
# Layout stuff:
#
# You can "split" the current object of your focus with
# $mod+b or $mod+v, for horizontal and vertical splits
# respectively.
bindsym $mod+b splith
bindsym $mod+v splitv
# Switch the current container between different layout styles
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split
# Make the current focus fullscreen
bindsym $mod+f fullscreen
# Toggle the current focus between tiling and floating mode
bindsym $mod+Shift+space floating toggle
# Swap focus between the tiling area and the floating area
#bindsym $mod+space focus mode_toggle
# Move focus to the parent container
bindsym $mod+a focus parent
#
# Scratchpad:
#
# Sway has a "scratchpad", which is a bag of holding for windows.
# You can send windows there and get them back later.
# Move the currently focused window to the scratchpad
bindsym $mod+Shift+minus move scratchpad
# Show the next scratchpad window or hide the focused scratchpad window.
# If there are multiple scratchpad windows, this command cycles through them.
bindsym $mod+minus scratchpad show
#
# Resizing containers:
#
mode "resize" {
# left will shrink the containers width
# right will grow the containers width
# up will shrink the containers height
# down will grow the containers height
bindsym $left resize shrink width 10px
bindsym $down resize grow height 10px
bindsym $up resize shrink height 10px
bindsym $right resize grow width 10px
# Ditto, with arrow keys
bindsym Left resize shrink width 10px
bindsym Down resize grow height 10px
bindsym Up resize shrink height 10px
bindsym Right resize grow width 10px
# Return to default mode
bindsym Return mode "default"
bindsym Escape mode "default"
}
bindsym $mod+r mode "resize"
#
# Status Bar:
#
# Read `man 5 sway-bar` for more information about this section.
#bar {
# position top
# When the status_command prints a new line to stdout, swaybar updates.
# The default just shows the current date and time.
# status_command while date +'%Y-%m-%d %l:%M:%S %p'; do sleep 1; done
# colors {
# statusline #ffffff
# background #323232
# inactive_workspace #32323200 #32323200 #5c5c5c
# }
#}
exec_always ~/.config/waybar/waybar.sh
#include /etc/sway/config.d/*
# Autostart
exec mako
exec albert
workspace 9
exec slack
exec teams
workspace 1
set $gnome-schema org.gnome.desktop.interface
exec_always {
gsettings set $gnome-schema gtk-theme 'Adwaita-dark'
gsettings set $gnome-schema icon-theme 'Adwaita'
gsettings set $gnome-schema cursor-theme 'Adwaita'
}

105
.config/termite/config Normal file
View File

@ -0,0 +1,105 @@
[options]
#allow_bold = true
#audible_bell = false
#bold_is_bright = true
#cell_height_scale = 1.0
#cell_width_scale = 1.0
#clickable_url = true
#dynamic_title = true
font = Hack 9
#fullscreen = true
#icon_name = terminal
#mouse_autohide = false
#scroll_on_output = false
#scroll_on_keystroke = true
# Length of the scrollback buffer, 0 disabled the scrollback buffer
# and setting it to a negative value means "infinite scrollback"
scrollback_lines = 10000
#search_wrap = true
#urgent_on_bell = true
#hyperlinks = false
# $BROWSER is used by default if set, with xdg-open as a fallback
#browser = xdg-open
# "system", "on" or "off"
#cursor_blink = system
# "block", "underline" or "ibeam"
#cursor_shape = block
# Hide links that are no longer valid in url select overlay mode
#filter_unmatched_urls = true
# Emit escape sequences for extra modified keys
#modify_other_keys = false
# set size hints for the window
#size_hints = false
# "off", "left" or "right"
#scrollbar = off
[colors]
[colors]
# Base16 Monokai
# Author: Wimer Hazenberg (http://www.monokai.nl)
foreground = #f8f8f2
foreground_bold = #f5f4f1
cursor = #f5f4f1
cursor_foreground = #272822
background = rgba(39, 40, 34)
# 16 color space
# Black, Gray, Silver, White
color0 = #272822
color8 = #75715e
color7 = #f8f8f2
color15 = #f9f8f5
# Red
color1 = #f92672
color9 = #f92672
# Green
color2 = #a6e22e
color10 = #a6e22e
# Yellow
color3 = #f4bf75
color11 = #f4bf75
# Blue
color4 = #66d9ef
color12 = #66d9ef
# Purple
color5 = #ae81ff
color13 = #ae81ff
# Teal
color6 = #a1efe4
color14 = #a1efe4
# Extra colors
color16 = #fd971f
color17 = #cc6633
color18 = #383830
color19 = #49483e
color20 = #a59f85
color21 = #f5f4f1
[hints]
#font = Monospace 12
#foreground = #dcdccc
#background = #3f3f3f
#active_foreground = #e68080
#active_background = #3f3f3f
#padding = 2
#border = #3f3f3f
#border_width = 0.5
#roundness = 2.0
# vim: ft=dosini cms=#%s

147
.config/waybar/config Normal file
View File

@ -0,0 +1,147 @@
{
// "layer": "top", // Waybar at top layer
// "position": "bottom", // Waybar position (top|bottom|left|right)
"height": 26, // Waybar height (to be removed for auto height)
// "width": 1280, // Waybar width
// Choose the order of the modules
"modules-left": ["sway/workspaces", "sway/mode"],
"modules-center": ["sway/window"],
"modules-right": ["idle_inhibitor", "pulseaudio", "network", "cpu", "memory", "temperature", "backlight", "battery", "battery#bat2", "clock", "tray"],
// Modules configuration
// "sway/workspaces": {
// "disable-scroll": true,
// "all-outputs": true,
// "format": "{name}: {icon}",
// "format-icons": {
// "1": "",
// "2": "",
// "3": "",
// "4": "",
// "5": "",
// "urgent": "",
// "focused": "",
// "default": ""
// }
// },
"sway/mode": {
"format": "<span style=\"italic\">{}</span>"
},
"mpd": {
"format": "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) ",
"format-disconnected": "Disconnected ",
"format-stopped": "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped ",
"unknown-tag": "N/A",
"interval": 2,
"consume-icons": {
"on": " "
},
"random-icons": {
"off": "<span color=\"#f53c3c\"></span> ",
"on": " "
},
"repeat-icons": {
"on": " "
},
"single-icons": {
"on": "1 "
},
"state-icons": {
"paused": "",
"playing": ""
},
"tooltip-format": "MPD (connected)",
"tooltip-format-disconnected": "MPD (disconnected)"
},
"idle_inhibitor": {
"format": "{icon}",
"format-icons": {
"activated": "",
"deactivated": ""
}
},
"tray": {
// "icon-size": 21,
"spacing": 10
},
"clock": {
// "timezone": "America/New_York",
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
"format-alt": "{:%Y-%m-%d}"
},
"cpu": {
"format": "{usage}% ",
"tooltip": false
},
"memory": {
"format": "{}% "
},
"temperature": {
// "thermal-zone": 2,
// "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input",
"critical-threshold": 80,
// "format-critical": "{temperatureC}°C {icon}",
"format": "{temperatureC}°C {icon}",
"format-icons": ["", "", ""]
},
"backlight": {
// "device": "acpi_video1",
"format": "{percent}% {icon}",
"format-icons": ["", ""]
},
"battery": {
"states": {
// "good": 95,
"warning": 30,
"critical": 15
},
"format": "{capacity}% {icon}",
"format-charging": "{capacity}% ",
"format-plugged": "{capacity}% ",
"format-alt": "{time} {icon}",
// "format-good": "", // An empty format will hide the module
// "format-full": "",
"format-icons": ["", "", "", "", ""]
},
"battery#bat2": {
"bat": "BAT2"
},
"network": {
// "interface": "wlp2*", // (Optional) To force the use of this interface
"format-wifi": "{essid} ({signalStrength}%) ",
"format-ethernet": "{ifname}: {ipaddr}/{cidr} ",
"format-linked": "{ifname} (No IP) ",
"format-disconnected": "Disconnected ⚠",
"format-alt": "{ifname}: {ipaddr}/{cidr}"
},
"pulseaudio": {
// "scroll-step": 1, // %, can be a float
"format": "{volume}% {icon} {format_source}",
"format-bluetooth": "{volume}% {icon} {format_source}",
"format-bluetooth-muted": " {icon} {format_source}",
"format-muted": " {format_source}",
"format-source": "{volume}% ",
"format-source-muted": "",
"format-icons": {
"headphone": "",
"hands-free": "",
"headset": "",
"phone": "",
"portable": "",
"car": "",
"default": ["", "", ""]
},
"on-click": "pavucontrol"
},
"custom/media": {
"format": "{icon} {}",
"return-type": "json",
"max-length": 40,
"format-icons": {
"spotify": "",
"default": "🎜"
},
"escape": true,
"exec": "$HOME/.config/waybar/mediaplayer.py 2> /dev/null" // Script in resources folder
// "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name
}
}

5
.config/waybar/waybar.sh Executable file
View File

@ -0,0 +1,5 @@
killall -q waybar
while pgrep -x waybar >/dev/null; do sleep 1; done
waybar

26
.tmux.conf Normal file
View File

@ -0,0 +1,26 @@
set-option -g prefix C-d
unbind-key C-a
bind-key C-g send-prefix
set -g base-index 1
bind-key R source-file ~/.tmux.conf \; display-message "tmux.conf reloaded."
setw -g mode-keys vi
setw -g mouse on
set-option -g default-terminal screen-256color
bind-key v split-window -h -c "#{pane_current_path}"
bind-key s split-window -v -c "#{pane_current_path}"
bind-key h select-pane -L
bind-key j select-pane -D
bind-key k select-pane -U
bind-key l select-pane -R
bind-key H resize-pane -L 10
bind-key J resize-pane -D 10
bind-key K resize-pane -U 10
bind-key L resize-pane -R 10
setw -g monitor-activity on
set -g visual-activity on
set -g focus-events on

2597
.vim/autoload/plug.vim Normal file

File diff suppressed because it is too large Load Diff

65
.vimrc Normal file
View File

@ -0,0 +1,65 @@
" Specify a directory for plugins
" - For Neovim: stdpath('data') . '/plugged'
" - Avoid using standard Vim directory names like 'plugin'
call plug#begin('~/.vim/plugged')
" Make sure you use single quotes
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'
Plug 'sickill/vim-monokai'
Plug 'airblade/vim-gitgutter'
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
Plug 'junegunn/fzf.vim'
" Initialize plugin system
call plug#end()
" Coloring
syntax enable
colorscheme monokai
" Airline
let g:airline#extensions#tabline#enabled = 1
" -- Buffer/Window Workflow
" Allow hidden buffers
set hidden
" Line numbers
set number
" Marker line at col 80
set cc=80
" Stop mouse from selecting numbers
set mouse=a
" Show tab characters
set list
set listchars=tab:>-
" Space-indentiation please
set expandtab
set shiftwidth=4
set tabstop=4
" Smartcase search
set smartcase
" Ripgrep FZF
function! RipgrepFzf(query, fullscreen)
let command_fmt = 'rg --column --line-number --no-heading --color=always --smart-case %s || true'
let initial_command = printf(command_fmt, shellescape(a:query))
let reload_command = printf(command_fmt, '{q}')
let spec = {'options': ['--phony', '--query', a:query, '--bind', 'change:reload:'.reload_command]}
call fzf#vim#grep(initial_command, 1, fzf#vim#with_preview(spec), a:fullscreen)
endfunction
command! -nargs=* -bang RG call RipgrepFzf(<q-args>, <bang>0)
nnoremap <C-p> :Files<Cr>
" Tabs
nnoremap <Tab> :tabnext<CR>
nnoremap <S-Tab> :tabprevious<CR>

82
.zshrc Normal file
View File

@ -0,0 +1,82 @@
autoload -Uz promptinit && promptinit
autoload -Uz compinit && compinit
autoload -Uz colors && colors
zmodload -i zsh/complist
zstyle ':completion:*' accept-exact "*(N)"
zstyle ':completion:*' use-cache on
zstyle ':completion:*' cache-path ~/.zsh/compcache
bindkey -v
bindkey '^?' backward-delete-char
bindkey '^R' history-incremental-search-backward
# PROMPT
function parse_git_dirty() {
STATUS=$(command git status --porcelain --untracked-files=no | tail -n1)
if [[ -n $STATUS ]]; then
echo "%{$fg[red]%}✗"
else
echo "%{$fg[green]%}✔"
fi
}
function git_prompt() {
isgit=$(command git rev-parse --is-inside-work-tree 2>/dev/null)
if [[ $isgit == "true" ]]; then
ref=$(command git symbolic-ref HEAD -q --short)
echo "%{$fg[cyan]%}$ref $(parse_git_dirty)%{$reset_color%}"
fi
}
setopt promptsubst
GIT='$(git_prompt)'
PROMPT="%(?, ,%{$fg[red]%}FAIL%{$reset_color%}
)
%{$fg[green]%}[%*]%{$reset_color%} %m %{$fg[yellow]%}%~%{$reset_color%} $GIT
%_ $ "
# Autocomplete menu
bindkey -M menuselect '^o' accept-and-infer-next-history
zstyle ':completion:*:*:*:*:*' menu select
# Case insensitive autocomplete
zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' 'r:|=*' 'l:|=* r:|=*'
zstyle ':completion:*' list-colors ''
zstyle ':completion:*:cd:*' tag-order local-directories directory-stack path-directories
expand-or-complete-with-dots() {
[[ -n "$terminfo[rmam]" && -n "$terminfo[smam]" ]] && echoti rmam
print -Pn "%{%F{red}......%f%}"
[[ -n "$terminfo[rmam]" && -n "$terminfo[smam]" ]] && echoti smam
zle expand-or-complete
zle redisplay
}
zle -N expand-or-complete-with-dots
bindkey '^I' expand-or-complete-with-dots
HISTFILE=~/.zsh_history
HISTSIZE=10000
SAVEHIST=10000
setopt extendedglob
export EDITOR='vim'
alias pacman='sudo pacman --color always'
alias ls='ls --color=auto'
alias iptables='sudo iptables'
alias dotfiles='/usr/bin/git --git-dir=$HOME/.dotfiles.git --work-tree=$HOME'
# PAZI
if command -v pazi &>/dev/null; then
eval "$(pazi init zsh)"
fi
# Ensure our build toolchain is in the path!
export PATH="/opt/gcc-arm-none-eabi-7-2018-q2-update/bin:$PATH"
# Add gems to path
export PATH="$HOME/.gem/ruby/2.7.0/bin:$PATH"
# Enable ccache
export PATH="/usr/lib/ccache/bin/:$PATH"