make repo my own

This commit is contained in:
Ioannis Angelakopoulos 2019-01-06 18:43:33 +02:00
parent 5a8369755f
commit a600c5f75b
43 changed files with 915 additions and 2682 deletions

View File

@ -15,7 +15,32 @@
*.color13: #d3869b *.color13: #d3869b
*.color14: #8ec07c *.color14: #8ec07c
*.color15: #ebdbb2 *.color15: #ebdbb2
!! base16 Tomorrow Night theme
!! https://github.com/honza/base16-st
!!*.color0: #1d1f21
!!*.color1: #cc6666
!!*.color2: #b5bd68
!!*.color3: #f0c674
!!*.color4: #81a2be
!!*.color5: #b294bb
!!*.color6: #8abeb7
!!*.color7: #c5c8c6
!!*.color8: #969896
!!*.color9: #de935f
!!*.color10: #282a2e
!!*.color11: #373b41
!!*.color12: #b4b7b4
!!*.color13: #e0e0e0
!!*.color14: #a3685a
!!*.color15: #ebdbb2
!! Transparency (0-255): !! Transparency (0-255):
*.alpha: 230 !!*.alpha: 230
!! My custom entry
!!*.alpha: 235
!! Set a default font and font size as below: !! Set a default font and font size as below:
!! *.font: Monospace-14; !! *.font: Monospace-14;
!! My custom entry
!!*.font: Source Code Pro for Powerline:pixelsize=16:antialias=true:autohint=true;
*.font: SauceCodePro Nerd Font Mono:pixelsize=15:antialias=true:autohint=true;

View File

@ -1,6 +1,6 @@
#!/bin/bash #!/bin/bash
stty -ixon # Disable ctrl-s and ctrl-q. stty -ixon # Disable ctrl-s and ctrl-q.
shopt -s autocd #Allows you to cd into directory merely by typing the directory name. #shopt -s autocd #Allows you to cd into directory merely by typing the directory name.
HISTSIZE= HISTFILESIZE= # Infinite history. HISTSIZE= HISTFILESIZE= # Infinite history.
export PS1="\[$(tput bold)\]\[$(tput setaf 1)\][\[$(tput setaf 3)\]\u\[$(tput setaf 2)\]@\[$(tput setaf 4)\]\h \[$(tput setaf 5)\]\W\[$(tput setaf 1)\]]\[$(tput setaf 7)\]\\$ \[$(tput sgr0)\]" export PS1="\[$(tput bold)\]\[$(tput setaf 1)\][\[$(tput setaf 3)\]\u\[$(tput setaf 2)\]@\[$(tput setaf 4)\]\h \[$(tput setaf 5)\]\W\[$(tput setaf 1)\]]\[$(tput setaf 7)\]\\$ \[$(tput sgr0)\]"
@ -28,6 +28,7 @@ alias ref="shortcuts >/dev/null ; source ~/.bashrc" # Refresh shortcuts manually
alias mpv="mpv --input-ipc-server=/tmp/mpvsoc$(date +%s)" alias mpv="mpv --input-ipc-server=/tmp/mpvsoc$(date +%s)"
alias x="sxiv -ft *" alias x="sxiv -ft *"
alias lp="pacman -Qett --color=always | less" alias lp="pacman -Qett --color=always | less"
alias bw="wal -i ~/.config/wall.png" # Rerun pywal
# Adding color # Adding color
alias ls='ls -hN --color=auto --group-directories-first' alias ls='ls -hN --color=auto --group-directories-first'

View File

@ -5,6 +5,7 @@ cfz ~/.zshrc
cfv ~/.vimrc cfv ~/.vimrc
cfr ~/.config/ranger/rc.conf cfr ~/.config/ranger/rc.conf
cfi ~/.config/i3/config cfi ~/.config/i3/config
cfib ~/.config/i3blocks/config
cfq ~/.config/qutebrowser/config.py cfq ~/.config/qutebrowser/config.py
cfm ~/.config/mutt/muttrc cfm ~/.config/mutt/muttrc
cft ~/.config/termite/config cft ~/.config/termite/config

View File

@ -20,8 +20,8 @@
# #---Basic Definitions---# # # #---Basic Definitions---# #
# Needed for i3-gaps # Needed for i3-gaps
for_window [class="^.*"] border pixel 2 for_window [class="^.*"] border pixel 2
gaps inner 15 gaps inner 10
gaps outer 15 gaps outer 10
set $term --no-startup-id $TERMINAL set $term --no-startup-id $TERMINAL
set $mod Mod4 set $mod Mod4
set $stoprec --no-startup-id dmenurecord kill set $stoprec --no-startup-id dmenurecord kill
@ -45,7 +45,8 @@ for_window [instance="dropdown_*"] move position center
# #---Starting External Scripts---# # # #---Starting External Scripts---# #
# Setting the background: # Setting the background:
exec --no-startup-id feh --bg-scale ~/.config/wall.png # exec --no-startup-id feh --bg-scale ~/.config/wall.png
exec --no-startup-id feh --bg-scale ~/Dropbox/Infrastructure/Desktop-Backgrounds/fluorescence.jpg
# Starts dunst for notifications: # Starts dunst for notifications:
exec --no-startup-id dunst exec --no-startup-id dunst
# Composite manager: # Composite manager:
@ -88,10 +89,15 @@ client.urgent $darkred $darkred $black $darkred $darkred
client.background $black client.background $black
bar { bar {
font pango:mono 10 # font pango:mono 10
# font pango:Source Code Pro for Powerline,Font Awesome 5 Free-Regular-400,Font Awesome 5 Free-Solid-900 8
# font pango:SauceCodePro Nerd Font,Font Awesome 5 Free-Regular-400,Font Awesome 5 Free-Solid-900 8
font pango:SauceCodePro Nerd Font,Font Awesome 5 Free 8
# font pango:Inconsolata for Powerline 9
colors { colors {
background $darkblack background $darkblack
statusline $darkwhite statusline $darkwhite
# statusline $white
separator $cyan separator $cyan
focused_workspace $blue $darkblue $darkblack focused_workspace $blue $darkblue $darkblack
active_workspace $blue $blue $darkwhite active_workspace $blue $blue $darkwhite
@ -121,7 +127,7 @@ bindsym $mod+grave exec --no-startup-id dmenuunicode
##bindsym $mod+asciitilde ##bindsym $mod+asciitilde
#STOP/HIDE EVERYTHING: #STOP/HIDE EVERYTHING:
bindsym $mod+Shift+Delete exec --no-startup-id lmc truemute ; exec --no-startup-id lmc pause ; exec --no-startup-id pauseallmpv; workspace 0; exec $term -e htop ; exec $term -e $FILE bindsym $mod+Shift+Delete exec --no-startup-id lmc truemute ; exec --no-startup-id lmc pause ; exec --no-startup-id pauseallmpv; workspace 0; exec $term -e htop ; exec $term -e $FILE
# Show selection: # Show selection:
bindsym $mod+Insert exec --no-startup-id showclip bindsym $mod+Insert exec --no-startup-id showclip
@ -141,7 +147,7 @@ bindsym $mod+r exec $term -e ranger
bindsym $mod+Shift+r exec --no-startup-id winresize bindsym $mod+Shift+r exec --no-startup-id winresize
bindsym $mod+t split toggle bindsym $mod+t split toggle
bindsym $mod+Shift+t gaps inner current set 15; gaps outer current set 15 bindsym $mod+Shift+t gaps inner current set 10; gaps outer current set 10
bindsym $mod+y exec $term -e calcurse bindsym $mod+y exec $term -e calcurse
bindsym $mod+Shift+y exec --no-startup-id i3resize left bindsym $mod+Shift+y exec --no-startup-id i3resize left
@ -361,10 +367,13 @@ bindsym XF86MyComputer exec $term -e $FILE
##bindsym XF86Back exec ##bindsym XF86Back exec
##bindsym XF86Forward exec ##bindsym XF86Forward exec
bindsym XF86Eject exec --no-startup-id dmenuumount bindsym XF86Eject exec --no-startup-id dmenuumount
bindsym XF86AudioNext exec --no-startup-id lmc next # bindsym XF86AudioNext exec --no-startup-id lmc next
bindsym XF86AudioPlay exec --no-startup-id lmc toggle # bindsym XF86AudioPlay exec --no-startup-id lmc toggle
bindsym XF86AudioPrev exec --no-startup-id lmc prev # bindsym XF86AudioPrev exec --no-startup-id lmc prev
bindsym XF86AudioStop exec --no-startup-id lmc toggle # bindsym XF86AudioStop exec --no-startup-id lmc toggle
bindsym XF86AudioNext exec --no-startup-id playerctl next
bindsym XF86AudioPlay exec --no-startup-id playerctl play-pause
bindsym XF86AudioPrev exec --no-startup-id playerctl previous
##bindsym XF86AudioRecord ##bindsym XF86AudioRecord
bindsym XF86AudioRewind exec --no-startup-id lmc back 10 bindsym XF86AudioRewind exec --no-startup-id lmc back 10
bindsym XF86AudioForward exec --no-startup-id lmc forward 10 bindsym XF86AudioForward exec --no-startup-id lmc forward 10
@ -415,3 +424,9 @@ bindsym XF86Documents exec $term -e $FILE ~/Documents
bindsym XF86WLAN exec $netrefresh bindsym XF86WLAN exec $netrefresh
exec --no-startup-id lukescripts exec --no-startup-id lukescripts
# My entries
# Dropbox Start
exec --no-startup-id dropbox start
# Clipboard History manager
exec --no-startup-id clipit

View File

@ -3,7 +3,7 @@ separator_block_width=15
markup=pango markup=pango
[record] [record]
command=cat /tmp/recordingicon command=cat ~/.recordingicon
interval=once interval=once
signal=9 signal=9
@ -26,22 +26,33 @@ signal=8
interval=20 interval=20
signal=7 signal=7
[weather] #[weather]
interval=3600 #interval=3600
signal=5 #signal=5
[mailbox] [mailbox]
label=📬 label=📬
interval=180 interval=180
signal=12 signal=12
#[bandwidth]
#instance=wlp3s0
#interval=5
#[openvpn]
#interval=20
[bandwidth3]
interval=persist
markup=pango
#[memory] #[memory]
#interval=30 #interval=30
#label=🧠 #label=
#[cpu] #cpu]
#interval=15 #interval=15
#label=💻 #label=
[volume] [volume]
interval=once interval=once
@ -55,16 +66,21 @@ signal=10
#interval=60 #interval=60
#command=disk /home 🏠 #command=disk /home 🏠
[battery] [internet]
command=battery BAT0 interval=20
interval=5 #interval=10
[clock] [clock]
label=📅 label=
interval=30 interval=30
[internet] [kbdd_layout]
interval=10 interval=persist
[help] [battery]
interval=once command=battery BAT0
interval=10
#interval=5
#[help]
#interval=once

View File

@ -1,4 +1,4 @@
http://lukesmith.xyz/rss.xml http://lukesmith.xyz/rss.xml
https://notrelated.libsyn.com/rss
https://www.youtube.com/feeds/videos.xml?channel_id=UC2eYFnH61tmytImy1mTYvhA "~Luke Smith (YouTube)" https://www.youtube.com/feeds/videos.xml?channel_id=UC2eYFnH61tmytImy1mTYvhA "~Luke Smith (YouTube)"
https://www.archlinux.org/feeds/news/ "tech" https://www.archlinux.org/feeds/news/ "tech"
https://www.macsparky.com/blog?format=rss

View File

View File

@ -0,0 +1,232 @@
#!/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' : '',
'ai' : '',
'apk' : '',
'avi' : '',
'bat' : '',
'bmp' : '',
'bz2' : '',
'c' : '',
'c++' : '',
'cab' : '',
'cbr' : '',
'cbz' : '',
'cc' : '',
'clj' : '',
'cljc' : '',
'cljs' : '',
'coffee' : '',
'conf' : '',
'cp' : '',
'cpio' : '',
'cpp' : '',
'css' : '',
'cxx' : '',
'd' : '',
'dart' : '',
'db' : '',
'deb' : '',
'diff' : '',
'dump' : '',
'edn' : '',
'ejs' : '',
'epub' : '',
'erl' : '',
'exe' : '',
'f#' : '',
'fish' : '',
'flac' : '',
'flv' : '',
'fs' : '',
'fsi' : '',
'fsscript' : '',
'fsx' : '',
'gem' : '',
'gif' : '',
'go' : '',
'gz' : '',
'gzip' : '',
'hbs' : '',
'hrl' : '',
'hs' : '',
'htm' : '',
'html' : '',
'ico' : '',
'ini' : '',
'java' : '',
'jl' : '',
'jpeg' : '',
'jpg' : '',
'js' : '',
'json' : '',
'jsx' : '',
'less' : '',
'lha' : '',
'lhs' : '',
'log' : '',
'lua' : '',
'lzh' : '',
'lzma' : '',
'markdown' : '',
'md' : '',
'mkv' : '',
'ml' : 'λ',
'mli' : 'λ',
'mov' : '',
'mp3' : '',
'mp4' : '',
'mpeg' : '',
'mpg' : '',
'mustache' : '',
'ogg' : '',
'pdf' : '',
'php' : '',
'pl' : '',
'pm' : '',
'png' : '',
'psb' : '',
'psd' : '',
'py' : '',
'pyc' : '',
'pyd' : '',
'pyo' : '',
'rar' : '',
'rb' : '',
'rc' : '',
'rlib' : '',
'rpm' : '',
'rs' : '',
'rss' : '',
'scala' : '',
'scss' : '',
'sh' : '',
'slim' : '',
'sln' : '',
'sql' : '',
'styl' : '',
'suo' : '',
't' : '',
'tar' : '',
'tgz' : '',
'ts' : '',
'twig' : '',
'vim' : '',
'vimrc' : '',
'wav' : '',
'webm' : '',
'xml' : '',
'xul' : '',
'xz' : '',
'yml' : '',
'zip' : '',
}
dir_node_exact_matches = {
# English
'.git' : '',
'Desktop' : '',
'Documents' : '',
'Downloads' : '',
'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' : '',
}
file_node_exact_matches = {
'.Xdefaults' : '',
'.Xresources' : '',
'.bashprofile' : '',
'.bashrc' : '',
'.dmrc' : '',
'.ds_store' : '',
'.fasd' : '',
'.gitconfig' : '',
'.gitignore' : '',
'.jack-settings' : '',
'.mime.types' : '',
'.nvidia-settings-rc' : '',
'.pam_environment' : '',
'.profile' : '',
'.recently-used' : '',
'.selected_editor' : '',
'.vimrc' : '',
'.xinputrc' : '',
'config' : '',
'dropbox' : '',
'exact-match-case-sensitive-1.txt' : 'X1',
'exact-match-case-sensitive-2' : 'X2',
'favicon.ico' : '',
'gruntfile.coffee' : '',
'gruntfile.js' : '',
'gruntfile.ls' : '',
'gulpfile.coffee' : '',
'gulpfile.js' : '',
'gulpfile.ls' : '',
'ini' : '',
'ledger' : '',
'license' : '',
'mimeapps.list' : '',
'node_modules' : '',
'procfile' : '',
'react.jsx' : '',
'user-dirs.dirs' : '',
}
def devicon(file):
if file.is_directory: return dir_node_exact_matches.get(file.relative_path, '')
return file_node_exact_matches.get(file.relative_path, file_node_extensions.get(file.extension, ''))

View File

@ -0,0 +1,19 @@
import ranger.api
from ranger.core.linemode import LinemodeBase
from plugins.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

@ -518,3 +518,6 @@ map yta console shell youtube-dl -xic%space
# Source shortcuts # Source shortcuts
source ~/.config/ranger/shortcuts.conf source ~/.config/ranger/shortcuts.conf
# a plugin that adds file glyphs / icon support to Ranger:
# https://github.com/alexanderjeurissen/ranger_devicons
default_linemode devicons

View File

@ -0,0 +1,59 @@
map gh cd ~/
map th tab_new ~/
map mh shell mv -v %s ~/
map Yh shell cp -rv %s ~/
map gd cd ~/Documents
map td tab_new ~/Documents
map md shell mv -v %s ~/Documents
map Yd shell cp -rv %s ~/Documents
map gD cd ~/Downloads
map tD tab_new ~/Downloads
map mD shell mv -v %s ~/Downloads
map YD shell cp -rv %s ~/Downloads
map gm cd ~/Music
map tm tab_new ~/Music
map mm shell mv -v %s ~/Music
map Ym shell cp -rv %s ~/Music
map gpp cd ~/Pictures
map tpp tab_new ~/Pictures
map mpp shell mv -v %s ~/Pictures
map Ypp shell cp -rv %s ~/Pictures
map gvv cd ~/Videos
map tvv tab_new ~/Videos
map mvv shell mv -v %s ~/Videos
map Yvv shell cp -rv %s ~/Videos
map gcf cd ~/.config
map tcf tab_new ~/.config
map mcf shell mv -v %s ~/.config
map Ycf shell cp -rv %s ~/.config
map gsc cd ~/.scripts
map tsc tab_new ~/.scripts
map msc shell mv -v %s ~/.scripts
map Ysc shell cp -rv %s ~/.scripts
map gmn cd /mnt
map tmn tab_new /mnt
map mmn shell mv -v %s /mnt
map Ymn shell cp -rv %s /mnt
map bf shell $EDITOR ~/.bmfiles
map bd shell $EDITOR ~/.bmdirs
map cfb shell $EDITOR ~/.bashrc
map cfz shell $EDITOR ~/.zshrc
map cfv shell $EDITOR ~/.vimrc
map cfr shell $EDITOR ~/.config/ranger/rc.conf
map cfi shell $EDITOR ~/.config/i3/config
map cfib shell $EDITOR ~/.config/i3blocks/config
map cfq shell $EDITOR ~/.config/qutebrowser/config.py
map cfm shell $EDITOR ~/.config/mutt/muttrc
map cft shell $EDITOR ~/.config/termite/config
map eb shell $EDITOR ~/Documents/LaTeX/uni.bib
map cv shell $EDITOR ~/Documents/LaTeX/cv.tex
map cfp shell $EDITOR ~/.config/polybar/config
map cfd shell $EDITOR ~/.Xdefaults
map cfu shell $EDITOR ~/.config/newsboat/urls
map cfn shell $EDITOR ~/.config/newsboat/config
map cfA shell $EDITOR ~/.asoundrc
map cfmb shell $EDITOR ~/.config/ncmpcpp/bindings
map cfmc shell $EDITOR ~/.config/ncmpcpp/config
map cfmpd shell $EDITOR ~/.config/mpd/mpd.conf
map cfM shell $EDITOR ~/.config/mpd/mpd.conf
map er shell $EDITOR ~/.referbib

104
.gitignore vendored Normal file
View File

@ -0,0 +1,104 @@
vmware
nokia
Nextcloud
mnt
Media
iso
IdeaProjects
Dropbox
Downloads
Development
AndroidStudioProjects
Android
.zsh*
.z
.zcompdump-think-5.6.2
.weatherreport
.w3m
.vscode-oss
.vnc
.vmware
.virtualenvs
.ssh
.spacemacs*
.shortcuts
.python_history*
.putty
.pub-cache
.profile.orig
.pki
.pip
.pacupgrnum
.oh-my-zsh
.npm
.ncmpcpp
.mysql
.mozilla
.local/share/*
!.local/share/applications/
.lesshst
.java
.gtk-bookmarks
.gtkrc-2.0
.gnupg*
.gradle
.gitkraken
.gitignore_global
.gitconfig
.flutter
.fltk
.fehbg
.fasd
.emacs.d
.emulator_console_auth_token
.esd_auth
.dart
.dartServer
.dotfiles
.dropbox
.cert
.cache
.bashrc.bak
.bash_logout
.bash_history
.ansible_galaxy
.ansible
.android
.AndroidStudio3.2
.IntelliJIdea2018.3
.Xauthority
.viminfo
.config/Android\ Open\ Source\ Project/
.config/autostart
.config/clipit
.config/Code\ -\ OSS/
.config/configstore
.config/dconf
.config/gconf
.config/GitKraken
.config/google-chrome
.config/gwakeonlan
.config/htop
.config/libvirt
.config/menus
.config/Nextcloud
.config/nitrogen
.config/procps
.config/pulse
.config/spotify
.config/VirtualBox
.config/wal
.config/yay
.config/youtube-viewer
.config/gtk-3.0/bookmarks
.config/mpd/database
.config/mpd/log
.config/mpd/pid
.config/mpd/state
.config/mpd/sticker.sql
.config/filezilla/
.config/vifm
.calcurse/apts
.calcurse/notes
.calcurse/todo
.calcurse/.calcurse.pid

3
.gitmodules vendored Normal file
View File

@ -0,0 +1,3 @@
[submodule ".i3blocks-contrib"]
path = .i3blocks-contrib
url = git@github.com:vivien/i3blocks-contrib.git

1
.i3blocks-contrib Submodule

@ -0,0 +1 @@
Subproject commit 345a83876c08550c1d795ce9cdbf0d33226d6949

View File

@ -0,0 +1,10 @@
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Terminal=false
Type=Application
Name=Docs
Exec=/opt/google/chrome/google-chrome --profile-directory=Default --app-id=aohghmighlieiainnegkcijnfilokake
Icon=chrome-aohghmighlieiainnegkcijnfilokake-Default
NoDisplay=true
StartupWMClass=crx_aohghmighlieiainnegkcijnfilokake

View File

@ -0,0 +1,10 @@
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Terminal=false
Type=Application
Name=Google Drive
Exec=/opt/google/chrome/google-chrome --profile-directory=Default --app-id=apdfllckaahabafndbhieahigkjlhalf
Icon=chrome-apdfllckaahabafndbhieahigkjlhalf-Default
NoDisplay=true
StartupWMClass=crx_apdfllckaahabafndbhieahigkjlhalf

View File

@ -0,0 +1,10 @@
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Terminal=false
Type=Application
Name=YouTube
Exec=/opt/google/chrome/google-chrome --profile-directory=Default --app-id=blpcfgokakmgnkcojhhkbfbldkacnbeo
Icon=chrome-blpcfgokakmgnkcojhhkbfbldkacnbeo-Default
NoDisplay=true
StartupWMClass=crx_blpcfgokakmgnkcojhhkbfbldkacnbeo

View File

@ -0,0 +1,9 @@
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Terminal=false
Type=Application
Name=Postman
Exec=/opt/google/chrome/google-chrome --profile-directory=Default --app-id=fhbjgbiflinjbdggehcddcbncdddomop
Icon=chrome-fhbjgbiflinjbdggehcddcbncdddomop-Default
StartupWMClass=crx_fhbjgbiflinjbdggehcddcbncdddomop

View File

@ -0,0 +1,9 @@
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Terminal=false
Type=Application
Name=Authy
Exec=/opt/google/chrome/google-chrome --profile-directory=Default --app-id=gaedmjdfmmahhbjefcbgaolhhanlaolb
Icon=chrome-gaedmjdfmmahhbjefcbgaolhhanlaolb-Default
StartupWMClass=crx_gaedmjdfmmahhbjefcbgaolhhanlaolb

View File

@ -0,0 +1,9 @@
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Terminal=false
Type=Application
Name=Chrome Remote Desktop
Exec=/opt/google/chrome/google-chrome --profile-directory=Default --app-id=gbchcmhmhahfdphkhkmpfmihenigjmpp
Icon=chrome-gbchcmhmhahfdphkhkmpfmihenigjmpp-Default
StartupWMClass=crx_gbchcmhmhahfdphkhkmpfmihenigjmpp

View File

@ -0,0 +1,9 @@
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Terminal=false
Type=Application
Name=Google Keep - notes and lists
Exec=/opt/google/chrome/google-chrome --profile-directory=Default --app-id=hmjkmjkepdijhoojdojkdfohbdgmmhki
Icon=chrome-hmjkmjkepdijhoojdojkdfohbdgmmhki-Default
StartupWMClass=crx_hmjkmjkepdijhoojdojkdfohbdgmmhki

View File

@ -0,0 +1,9 @@
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Terminal=false
Type=Application
Name=Google Hangouts
Exec=/opt/google/chrome/google-chrome --profile-directory=Default --app-id=knipolnnllmklapflnccelgolnpehhpl
Icon=chrome-knipolnnllmklapflnccelgolnpehhpl-Default
StartupWMClass=crx_knipolnnllmklapflnccelgolnpehhpl

View File

@ -0,0 +1,9 @@
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Terminal=false
Type=Application
Name=Wunderlist for Chrome
Exec=/opt/google/chrome/google-chrome --profile-directory=Default --app-id=ojcflmmmcfpacggndoaaflkmcoblhnbh
Icon=chrome-ojcflmmmcfpacggndoaaflkmcoblhnbh-Default
StartupWMClass=crx_ojcflmmmcfpacggndoaaflkmcoblhnbh

View File

@ -0,0 +1,10 @@
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Terminal=false
Type=Application
Name=Gmail
Exec=/opt/google/chrome/google-chrome --profile-directory=Default --app-id=pjkljhegncpnkpknbcohdijeoejaedia
Icon=chrome-pjkljhegncpnkpknbcohdijeoejaedia-Default
NoDisplay=true
StartupWMClass=crx_pjkljhegncpnkpknbcohdijeoejaedia

View File

View File

@ -5,13 +5,14 @@
export PATH="$PATH:$(du "$HOME/.scripts/" | cut -f2 | tr '\n' ':')" export PATH="$PATH:$(du "$HOME/.scripts/" | cut -f2 | tr '\n' ':')"
export EDITOR="vim" export EDITOR="vim"
export TERMINAL="st" export TERMINAL="st"
export BROWSER="firefox" export BROWSER="google-chrome-stable"
export READER="zathura" export READER="zathura"
export FILE="ranger" export FILE="ranger"
export BIB="$HOME/Documents/LaTeX/uni.bib" export BIB="$HOME/Documents/LaTeX/uni.bib"
export REFER="$HOME/.referbib" export REFER="$HOME/.referbib"
export SUDO_ASKPASS="$HOME/.scripts/tools/dmenupass" # export PIX="$HOME/.scripts/pix"
export PIX="$HOME/.pix/" export PIX="$HOME/.pix/"
export SUDO_ASKPASS="$HOME/.scripts/tools/dmenupass"
# less/man colors # less/man colors
export LESS=-R export LESS=-R
@ -25,7 +26,8 @@ export LESS_TERMCAP_ue=$'\E[0m' # reset underline
[ ! -f ~/.shortcuts ] && shortcuts >/dev/null 2>&1 [ ! -f ~/.shortcuts ] && shortcuts >/dev/null 2>&1
echo "$0" | grep "bash$" >/dev/null && [ -f ~/.bashrc ] && source "$HOME/.bashrc" [ -f ~/.bashrc ] && source "$HOME/.bashrc"
# echo "$0" | grep "bash$" >/dev/null && [ -f ~/.bashrc ] && source "$HOME/.bashrc"
# Start graphical server if i3 not already running. # Start graphical server if i3 not already running.
[ "$(tty)" = "/dev/tty1" ] && ! pgrep -x i3 >/dev/null && exec startx [ "$(tty)" = "/dev/tty1" ] && ! pgrep -x i3 >/dev/null && exec startx

112
.scripts/statusbar/bandwidth Executable file
View File

@ -0,0 +1,112 @@
#!/bin/bash
# Copyright (C) 2012 Stefan Breunig <stefan+measure-net-speed@mathphys.fsk.uni-heidelberg.de>
# Copyright (C) 2014 kaueraal
# Copyright (C) 2015 Thiago Perrotta <perrotta dot thiago at poli dot ufrj dot br>
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# Get custom IN and OUT labels if provided by command line arguments
while [[ $# -gt 1 ]]; do
key="$1"
case "$key" in
-i|--inlabel)
INLABEL="$2"
shift;;
-o|--outlabel)
OUTLABEL="$2"
shift;;
esac
shift
done
[[ -z $INLABEL ]] && INLABEL="IN "
[[ -z $OUTLABEL ]] && OUTLABEL="OUT "
# Use the provided interface, otherwise the device used for the default route.
if [[ -z $INTERFACE ]] && [[ -n $BLOCK_INSTANCE ]]; then
INTERFACE=$BLOCK_INSTANCE
elif [[ -z $INTERFACE ]]; then
INTERFACE=$(ip route | awk '/^default/ { print $5 ; exit }')
fi
# Exit if there is no default route
[[ -z "$INTERFACE" ]] && exit
# Issue #36 compliant.
if ! [ -e "/sys/class/net/${INTERFACE}/operstate" ] || \
(! [ "$TREAT_UNKNOWN_AS_UP" = "1" ] &&
! [ "`cat /sys/class/net/${INTERFACE}/operstate`" = "up" ])
then
echo "$INTERFACE down"
echo "$INTERFACE down"
echo "#FF0000"
exit 0
fi
# path to store the old results in
path="/dev/shm/$(basename $0)-${INTERFACE}"
# grabbing data for each adapter.
read rx < "/sys/class/net/${INTERFACE}/statistics/rx_bytes"
read tx < "/sys/class/net/${INTERFACE}/statistics/tx_bytes"
# get time
time=$(date +%s)
# write current data if file does not exist. Do not exit, this will cause
# problems if this file is sourced instead of executed as another process.
if ! [[ -f "${path}" ]]; then
echo "${time} ${rx} ${tx}" > "${path}"
chmod 0666 "${path}"
fi
# read previous state and update data storage
read old < "${path}"
echo "${time} ${rx} ${tx}" > "${path}"
# parse old data and calc time passed
old=(${old//;/ })
time_diff=$(( $time - ${old[0]} ))
# sanity check: has a positive amount of time passed
[[ "${time_diff}" -gt 0 ]] || exit
# calc bytes transferred, and their rate in byte/s
rx_diff=$(( $rx - ${old[1]} ))
tx_diff=$(( $tx - ${old[2]} ))
rx_rate=$(( $rx_diff / $time_diff ))
tx_rate=$(( $tx_diff / $time_diff ))
# shift by 10 bytes to get KiB/s. If the value is larger than
# 1024^2 = 1048576, then display MiB/s instead
# incoming
echo -n "$INLABEL"
rx_kib=$(( $rx_rate >> 10 ))
if hash bc 2>/dev/null && [[ "$rx_rate" -gt 1048576 ]]; then
printf '%sM' "`echo "scale=1; $rx_kib / 1024" | bc`"
else
echo -n "${rx_kib}K"
fi
echo -n " "
# outgoing
echo -n "$OUTLABEL"
tx_kib=$(( $tx_rate >> 10 ))
if hash bc 2>/dev/null && [[ "$tx_rate" -gt 1048576 ]]; then
printf '%sM' "`echo "scale=1; $tx_kib / 1024" | bc`"
else
echo -n "${tx_kib}K"
fi

104
.scripts/statusbar/bandwidth3 Executable file
View File

@ -0,0 +1,104 @@
#!/usr/bin/env bash
#
# Copyright (C) 2015 James Murphy
# Licensed under the terms of the GNU GPL v2 only.
#
# i3blocks blocklet script to monitor bandwidth usage
iface="${BLOCK_INSTANCE}"
iface="${IFACE:-$iface}"
dt="${DT:-3}"
unit="${UNIT:-MB}"
LABEL=" "
printf_command="${PRINTF_COMMAND:-"printf \"${LABEL}%-5.1f/%5.1f %s/s\\n\", rx, wx, unit;"}"
function default_interface {
ip route | awk '/^default via/ {print $5; exit}'
}
function check_proc_net_dev {
if [ ! -f "/proc/net/dev" ]; then
echo "/proc/net/dev not found"
exit 1
fi
}
function list_interfaces {
check_proc_net_dev
echo "Interfaces in /proc/net/dev:"
grep -o "^[^:]\\+:" /proc/net/dev | tr -d " :"
}
while getopts i:t:u:p:lh opt; do
case "$opt" in
i) iface="$OPTARG" ;;
t) dt="$OPTARG" ;;
u) unit="$OPTARG" ;;
p) printf_command="$OPTARG" ;;
l) list_interfaces && exit 0 ;;
h) printf \
"Usage: bandwidth3 [-i interface] [-t time] [-u unit] [-p printf_command] [-l] [-h]
Options:
-i\tNetwork interface to measure. Default determined using \`ip route\`.
-t\tTime interval in seconds between measurements. Default: 3
-u\tUnits to measure bytes in. Default: Mb
\tAllowed units: Kb, KB, Mb, MB, Gb, GB, Tb, TB
\tUnits may have optional it/its/yte/ytes on the end, e.g. Mbits, KByte
-p\tAwk command to be called after a measurement is made.
\tDefault: printf \"<span font='FontAwesome'> </span>%%-5.1f/%%5.1f %%s/s\\\\n\", rx, wx, unit;
\tExposed variables: rx, wx, tx, unit, iface
-l\tList available interfaces in /proc/net/dev
-h\tShow this help text
" && exit 0;;
esac
done
check_proc_net_dev
iface="${iface:-$(default_interface)}"
while [ -z "$iface" ]; do
echo No default interface
sleep "$dt"
iface=$(default_interface)
done
case "$unit" in
Kb|Kbit|Kbits) bytes_per_unit=$((1024 / 8));;
KB|KByte|KBytes) bytes_per_unit=$((1024));;
Mb|Mbit|Mbits) bytes_per_unit=$((1024 * 1024 / 8));;
MB|MByte|MBytes) bytes_per_unit=$((1024 * 1024));;
Gb|Gbit|Gbits) bytes_per_unit=$((1024 * 1024 * 1024 / 8));;
GB|GByte|GBytes) bytes_per_unit=$((1024 * 1024 * 1024));;
Tb|Tbit|Tbits) bytes_per_unit=$((1024 * 1024 * 1024 * 1024 / 8));;
TB|TByte|TBytes) bytes_per_unit=$((1024 * 1024 * 1024 * 1024));;
*) echo Bad unit "$unit" && exit 1;;
esac
scalar=$((bytes_per_unit * dt))
init_line=$(cat /proc/net/dev | grep "^[ ]*$iface:")
if [ -z "$init_line" ]; then
echo Interface not found in /proc/net/dev: "$iface"
exit 1
fi
init_received=$(awk '{print $2}' <<< $init_line)
init_sent=$(awk '{print $10}' <<< $init_line)
(while true; do cat /proc/net/dev; sleep "$dt"; done) |\
stdbuf -oL grep "^[ ]*$iface:" |\
awk -v scalar="$scalar" -v unit="$unit" -v iface="$iface" '
BEGIN{old_received='"$init_received"';old_sent='"$init_sent"'}
{
received=$2
sent=$10
rx=(received-old_received)/scalar;
wx=(sent-old_sent)/scalar;
tx=rx+wr;
old_received=received;
old_sent=sent;
if(rx >= 0 && wx >= 0){
'"$printf_command"';
fflush(stdout);
}
}
'

View File

@ -11,8 +11,8 @@ case $BLOCK_BUTTON in
" ;; " ;;
esac esac
[ "$(cat /sys/class/net/w*/operstate)" = 'down' ] && wifiicon="📡" [ "$(cat /sys/class/net/w*/operstate)" = 'down' ] && wifiicon=""
[ ! -n "${wifiicon+var}" ] && wifiicon=$(grep "^\s*w" /proc/net/wireless | awk '{ print "📶", int($3 * 100 / 70) "%" }') [ ! -n "${wifiicon+var}" ] && wifiicon=$(grep "^\s*w" /proc/net/wireless | awk '{ print "", int($3 * 100 / 70) "%" }')
printf "%s %s" "$wifiicon" "$(cat /sys/class/net/e*/operstate | sed "s/down/❎/;s/up/🌐/")" printf "%s %s" "$wifiicon" "$(cat /sys/class/net/e*/operstate | sed "s/down//;s/up//")"

41
.scripts/statusbar/kbdd_layout Executable file
View File

@ -0,0 +1,41 @@
#!/usr/bin/env bash
#
# kbdd_layout is a script that parse layout with kbdd in real time
# Copyright (C) 2016 Anton Karmanov <starcom24@gmail.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or any
# later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# In case user is restarting block after making layout changes
# e.g. via setxkbmap, reload kbdd
killall kbdd 2>/dev/null
kbdd >/dev/null || exit 1
# Get initial state of layout
N=$( dbus-send --print-reply=literal --dest=ru.gentoo.KbddService\
/ru/gentoo/KbddService ru.gentoo.kbdd.getCurrentLayout 2>/dev/null |\
sed -un 's/^.*uint32 //p' )
# In case dbus service wasn't available yet, poll until service is ready
while [[ -z "$N" ]]; do
sleep .1
N=$( dbus-send --print-reply=literal --dest=ru.gentoo.KbddService\
/ru/gentoo/KbddService ru.gentoo.kbdd.getCurrentLayout 2>/dev/null |\
sed -un 's/^.*uint32 //p' )
done
echo $( dbus-send --print-reply=literal --dest=ru.gentoo.KbddService \
/ru/gentoo/KbddService ru.gentoo.kbdd.getLayoutName uint32:$N )
# Parse dbus output
dbus-monitor "interface='ru.gentoo.kbdd',member='layoutNameChanged'" |\
sed -un '0~2p' | sed -un 's:.*string "\(.*\)".*:\1:p' | sed -u '/:/d'

4
.scripts/statusbar/openvpn Executable file
View File

@ -0,0 +1,4 @@
#!/bin/bash
result=$(nmcli -t -f type,state,connection d | egrep "^(tun|tap):connected" | awk -F':' '{ print $3 }')
[[ -z $result ]] || echo " $result"
# [[ -z $result ]] && echo ' N/A' || echo " $result"

View File

@ -11,16 +11,16 @@ case $BLOCK_BUTTON in
- Scroll to change." - Scroll to change."
esac esac
[ "$(pulsemixer --get-mute)" = "1" ] && printf "🔇\\n" && exit [ "$(pulsemixer --get-mute)" = "1" ] && printf "\\n" && exit
vol=$(pulsemixer --get-volume | awk '{print $1}') vol=$(pulsemixer --get-volume | awk '{print $1}')
if [ "$vol" -gt "70" ]; then if [ "$vol" -gt "70" ]; then
icon="🔊" icon=""
elif [ "$vol" -lt "30" ]; then elif [ "$vol" -lt "30" ]; then
icon="🔈" icon=""
else else
icon="🔉" icon=""
fi fi
printf "%s %s%%\\n" "$icon" "$vol" printf "%s %s%%\\n" "$icon" "$vol"

View File

@ -1,5 +1,5 @@
#!/bin/sh #!/bin/sh
[ "$(stat -c %y /tmp/weatherreport | awk '{print $1}')" != "$(date '+%Y-%m-%d')" ] && getforecast [ "$(stat -c %y /tmp/weatherreport | awk '{print $1}')" != "$(date '+%Y-%m-%d')" ] && getforecast Athens
case $BLOCK_BUTTON in case $BLOCK_BUTTON in
1) $TERMINAL -e less -S /tmp/weatherreport ;; 1) $TERMINAL -e less -S /tmp/weatherreport ;;

15
.scripts/statusbar/weather.bak Executable file
View File

@ -0,0 +1,15 @@
#!/bin/sh
[ "$(stat -c %y .weatherreport | awk '{print $1}')" != "$(date '+%Y-%m-%d')" ] && getforecast Athens
case $BLOCK_BUTTON in
1) $TERMINAL -e less -S ~/.weatherreport ;;
3) pgrep -x dunst >/dev/null && notify-send "<b>🌈 Weather module:</b>
- Click for wttr.in forecast.
☔: Chance of rain/snow
❄: Daily low
🌞: Daily high" ;;
esac
printf "%s" "$(sed '16q;d' ~/.weatherreport | grep -wo "[0-9]*%" | sort -n | sed -e '$!d' | sed -e "s/^/☔ /g" | tr -d '\n')"
sed '13q;d' ~/.weatherreport | grep -o "m\\(-\\)*[0-9]\\+" | sort -n -t 'm' -k 2n | sed -e 1b -e '$!d' | tr '\n|m' ' ' | awk '{print " ❄️",$1 "°","🌞",$2 "°"}'

1
.tmux Symbolic link
View File

@ -0,0 +1 @@
.dotfiles/tmux

View File

@ -1,177 +0,0 @@
##############################
# _
# | |_ _ __ ___ _ ___ __
# | __| '_ ` _ \| | | \ \/ /
# | |_| | | | | | |_| |> <
# \__|_| |_| |_|\__,_/_/\_\
#
#############################
#
# COPY AND PASTE
# http://robots.thoughtbot.com/tmux-copy-paste-on-os-x-a-better-future
#
# Use vim keybindings in copy mode
setw -g mode-keys vi
# Setup 'v' to begin selection as in Vim
#bind-key -t vi-copy v begin-selection
#bind-key -t vi-copy y copy-pipe "reattach-to-user-namespace pbcopy"
# Update default binding of `Enter` to also use copy-pipe
# unbind -t vi-copy Enter
# bind-key -t vi-copy Enter copy-pipe "reattach-to-user-namespace pbcopy"
#
############################################################################
############################################################################
# Reset Prefix
############################################################################
set -g prefix C-a
bind-key a send-prefix # for nested tmux sessions
############################################################################
# Global options
############################################################################
# large history
set-option -g history-limit 10000
# colors
setw -g mode-bg black
set-option -g default-terminal "screen-256color" #"xterm-256color" # "screen-256color"
set-option -g pane-active-border-fg green
# utf8 support
#set-window-option -g utf8 on
# basic settings
set-window-option -g xterm-keys on # for vim
set-window-option -g mode-keys vi # vi key
set-window-option -g monitor-activity on
set-window-option -g window-status-current-fg white
setw -g window-status-current-attr reverse
# Automatically set window title
setw -g automatic-rename
# use mouse # More on mouse support http://floriancrouzat.net/2010/07/run-tmux-with-mouse-support-in-mac-os-x-terminal-app/
#setw -g mode-mouse on
#setw -g mouse-resize-pane on
#set -g mouse-select-window on
#set -g mouse-select-pane on
set -g mouse on
set -g history-limit 30000
set -g terminal-overrides 'xterm*:smcup@:rmcup@'
# vi movement keys
# set-option -g status-keys vi
############################################################################
# Status Bar
############################################################################
#set-option -g status-utf8 on
set-option -g status-justify right
set-option -g status-bg black # colour213 # pink
set-option -g status-fg cyan
set-option -g status-interval 5
set-option -g status-left-length 30
set-option -g status-left '#[fg=magenta]» #[fg=blue,bold]#T#[default]'
set-option -g status-right '#[fg=red,bold][[ #(git branch) branch ]] #[fg=cyan]»» #[fg=blue,bold]###S #[fg=magenta]%R %m-%d#(acpi | cut -d ',' -f 2)#[default]'
set-option -g visual-activity on
# Titles (window number, program name, active (or not)
set-option -g set-titles on
set-option -g set-titles-string '#H:#S.#I.#P #W #T'
############################################################################
# Unbindings
############################################################################
#unbind [ # copy mode bound to escape key
unbind j
unbind C-b # unbind default leader key
unbind '"' # unbind horizontal split
unbind % # unbind vertical split
############################################################################
# Bindings
############################################################################
# reload tmux conf
bind-key r source-file ~/.tmux.conf
#bind Escape copy-mode
# new split in current pane (horizontal / vertical)
bind-key c split-window -v # split pane horizontally
bind-key v split-window -h # split pane vertically
# list panes
bind-key Space list-panes
# break-pane
bind-key Enter break-pane
# join-pane [-dhv] [-l size | -p percentage] [-s src-pane]
# [-t:dst-window.dst-pane] (destination window (dot) destination pane
# (alias: joinp)
#
#bind C-j command-prompt "joinp"
#bind C-j command-prompt "join-pane"
#bind-key j command-prompt "join-pane -s '%%'"
#bind-key j command-prompt "joinp -t:0"
bind-key Space command-prompt "joinp -t:%%" # %% = prompt for window.pane [-V|H] # vert|hor split
#previous pane
bind-key -n C-up prev
bind-key -n C-left prev
#next pane
bind-key -n C-right next
bind-key -n C-down next
############################################################################
# windows
############################################################################
set-window-option -g window-status-current-bg red
bind C-j previous-window
bind C-k next-window
bind-key C-a last-window # C-a C-a for last active window
bind A command-prompt "rename-window %%"
# By default, all windows in a session are constrained to the size of the
# smallest client connected to that session,
# even if both clients are looking at different windows.
# It seems that in this particular case, Screen has the better default
# where a window is only constrained in size if a smaller client
# is actively looking at it.
setw -g aggressive-resize on
############################################################################
# panes
############################################################################
# Navigation ---------------------------------------------------------------
# use the vim motion keys to move between panes
bind-key h select-pane -L
bind-key j select-pane -D
bind-key k select-pane -U
bind-key l select-pane -R
# Resizing ---------------------------------------------------------------
bind-key C-h resize-pane -L
bind-key C-j resize-pane -D
bind-key C-k resize-pane -U
bind-key C-l resize-pane -R
# use vim motion keys while in copy mode
setw -g mode-keys vi
############################################################################
# layouts
############################################################################
bind o select-layout "active-only"
bind M-- select-layout "even-vertical"
bind M-| select-layout "even-horizontal"
bind M-r rotate-window
# focus on first window
# select-window -t 0

1
.tmux.conf Symbolic link
View File

@ -0,0 +1 @@
.dotfiles/tmux.conf

1
.vim Symbolic link
View File

@ -0,0 +1 @@
.dotfiles/vim

File diff suppressed because it is too large Load Diff

2
.vimrc
View File

@ -1 +1 @@
.config/nvim/init.vim .dotfiles/vimrc

View File

@ -1,8 +1,29 @@
#!/bin/sh #!/bin/sh
# fixes problems with mysql-workbench
# and maybe other problems
# eval $(/usr/bin/gnome-keyring-daemon --start --components=gpg,pkcs11,secrets,ssh)
# export $(gnome-keyring-daemon --start --components=pkcs11,secrets,ssh,gpg)
# dbus-update-activation-environment --systemd DISPLAY
# END
# fixes problems with mysql-workbench
# and maybe other problems
dbus-update-activation-environment --systemd DISPLAY
eval $(/usr/bin/gnome-keyring-daemon --start --components=pkcs11,secrets,ssh)
export SSH_AUTH_SOCK
# END
[ -f ~/.Xmodmap ] && xmodmap ~/.Xmodmap [ -f ~/.Xmodmap ] && xmodmap ~/.Xmodmap
[ -f ~/.Xresources ] && xrdb -merge ~/.Xresources [ -f ~/.Xresources ] && xrdb -merge ~/.Xresources
setxkbmap -model extd -layout gb,gr -option grp:alt_shift_toggle
xset r rate 200 50 xset r rate 200 50
# from arch wiki for thinkpad x230
xrandr --dpi 125.37
# cat ~/.config/i3/config ~/.config/i3/config.custom > ~/.config/i3/config.combined
exec i3 exec i3