├── gnupg ├── dirmngr.conf ├── README.md ├── gpg-agent.conf └── gpg.conf ├── X11 ├── README.md ├── Xmodmap ├── Xresources.d │ ├── xft.xresources │ ├── fonts.xresources │ ├── urxvt.xresources │ └── colors.xresources ├── xsession ├── xinitrc └── Xresources ├── bash ├── README.md ├── config │ ├── bashrc.d │ │ ├── README.md │ │ ├── gpg-fix.bash │ │ ├── key_bindings.bash │ │ ├── alias-rld.bash │ │ ├── alias-fzf.bash │ │ ├── ssh-agent.bash │ │ ├── alias-custom.bash │ │ ├── alias-ctags.bash │ │ ├── alias-commands.bash │ │ ├── alias-cfg.bash │ │ └── ps1.bash │ └── bash_profile.d │ │ ├── exports.bash │ │ ├── README.md │ │ └── colors.bash ├── bash_logout ├── bashrc └── bash_profile ├── sublime ├── README.md ├── Default (Linux).sublime-keymap ├── Package Control.sublime-settings ├── Preferences.sublime-settings ├── SublimeCodeIntel.sublime-settings └── Asphalt (SL).tmTheme ├── gtk ├── gtk-3.0 │ ├── gtk.css │ ├── bookmarks │ └── settings.ini ├── gtk-2.0 │ └── gtkfilechooser.ini └── gtkrc-2.0 ├── .github ├── screenshot-01.jpg ├── screenshot-02.jpg ├── screenshot-03.jpg ├── screenshot-04.jpg ├── screenshot-05.jpg └── screenshot-06.jpg ├── tmux ├── README.md ├── config │ ├── tmux-plugins.conf │ ├── tmux-titlebar.conf │ ├── tmux-mouse.conf │ ├── tmux-statusbar.conf │ ├── tmux-yank.conf │ ├── tmux-colors.conf │ ├── tmux-keys.conf │ └── tmux-layouts.conf └── tmux.conf ├── zathura ├── zathurarc └── theme ├── redshift ├── README.md └── redshift.conf ├── neovim └── coc-settings.json ├── xdg ├── mimeapps.list └── README.md ├── sxiv ├── README.md └── conf │ └── exec │ ├── key-handler │ └── image-info ├── config-example ├── thunar ├── thunar-volman.xml └── thunar.xml ├── readline ├── README.md └── inputrc ├── profanity └── profrc ├── qt └── Trolltech.conf ├── ctags └── ctags ├── i3 ├── bin │ └── wsmove.py └── config ├── .gitignore ├── autorunner └── config ├── compton └── compton.conf ├── README.md ├── i3blocks └── config ├── .lib └── functions.sh ├── git └── gitconfig ├── dunst └── dunstrc └── install.sh /gnupg/dirmngr.conf: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /X11/README.md: -------------------------------------------------------------------------------- 1 | # Xorg configuration files 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /bash/README.md: -------------------------------------------------------------------------------- 1 | # Bash 2 | 3 | Bash shell configuration files 4 | -------------------------------------------------------------------------------- /sublime/README.md: -------------------------------------------------------------------------------- 1 | # Sublime Text 3 2 | 3 | ## Plugins 4 | 5 | 6 | -------------------------------------------------------------------------------- /bash/config/bashrc.d/README.md: -------------------------------------------------------------------------------- 1 | # bashrc 2 | 3 | Source files for a non-login shell 4 | -------------------------------------------------------------------------------- /gtk/gtk-3.0/gtk.css: -------------------------------------------------------------------------------- 1 | headerbar image { 2 | -gtk-icon-transform: scale(2.5); 3 | } 4 | -------------------------------------------------------------------------------- /bash/config/bash_profile.d/exports.bash: -------------------------------------------------------------------------------- 1 | export GDK_SCALE=2 2 | export GDK_DPI_SCALE=0.5 3 | -------------------------------------------------------------------------------- /bash/config/bash_profile.d/README.md: -------------------------------------------------------------------------------- 1 | # bash_profile 2 | 3 | Source files for a login shell 4 | -------------------------------------------------------------------------------- /.github/screenshot-01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cytopia/dotfiles/master/.github/screenshot-01.jpg -------------------------------------------------------------------------------- /.github/screenshot-02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cytopia/dotfiles/master/.github/screenshot-02.jpg -------------------------------------------------------------------------------- /.github/screenshot-03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cytopia/dotfiles/master/.github/screenshot-03.jpg -------------------------------------------------------------------------------- /.github/screenshot-04.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cytopia/dotfiles/master/.github/screenshot-04.jpg -------------------------------------------------------------------------------- /.github/screenshot-05.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cytopia/dotfiles/master/.github/screenshot-05.jpg -------------------------------------------------------------------------------- /.github/screenshot-06.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cytopia/dotfiles/master/.github/screenshot-06.jpg -------------------------------------------------------------------------------- /tmux/README.md: -------------------------------------------------------------------------------- 1 | # Tmux todo' 2 | 3 | 4 | `mod + Escape` to enter/quit visual mode breaks tmux-copycat 5 | 6 | 7 | -------------------------------------------------------------------------------- /zathura/zathurarc: -------------------------------------------------------------------------------- 1 | # -*- mode: conf-space -*- 2 | 3 | 4 | ### 5 | ### Include Theme 6 | ### 7 | include theme 8 | -------------------------------------------------------------------------------- /redshift/README.md: -------------------------------------------------------------------------------- 1 | # Redshift 2 | 3 | * https://wiki.archlinux.org/index.php/Redshift 4 | * http://jonls.dk/redshift/ 5 | 6 | -------------------------------------------------------------------------------- /gnupg/README.md: -------------------------------------------------------------------------------- 1 | # GnuPG 2 | 3 | When using `pinentry-tty`, you have the following env var set in your bash config: 4 | ```shell 5 | GPG_TTY=$(tty) 6 | export GPG_TTY 7 | ``` 8 | -------------------------------------------------------------------------------- /sublime/Default (Linux).sublime-keymap: -------------------------------------------------------------------------------- 1 | [ 2 | { "keys": ["ctrl+shift+o"], "command": "prompt_open_file" }, 3 | { "keys": ["ctrl+o"], "command": "prompt_open_folder" }, 4 | ] 5 | -------------------------------------------------------------------------------- /gtk/gtk-3.0/bookmarks: -------------------------------------------------------------------------------- 1 | file:///home/cytopia/Documents 2 | file:///home/cytopia/Pictures 3 | file:///home/cytopia/Videos 4 | file:///home/cytopia/Downloads 5 | file:///home/cytopia/repo 6 | -------------------------------------------------------------------------------- /neovim/coc-settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "coc.preferences.timeout": 5000, 3 | "python.jediEnabled": false, 4 | "python.linting.enabled": false, 5 | "python.analysis.diagnosticEnabled": false 6 | } 7 | -------------------------------------------------------------------------------- /bash/config/bashrc.d/gpg-fix.bash: -------------------------------------------------------------------------------- 1 | GPG_TTY=$(tty) 2 | export GPG_TTY 3 | 4 | # Refresh gpg-agent tty in case user switches into an X session 5 | gpg-connect-agent updatestartuptty /bye >/dev/null 6 | -------------------------------------------------------------------------------- /bash/bash_logout: -------------------------------------------------------------------------------- 1 | # ~/.bash_logout: executed by bash(1) when login shell exits. 2 | 3 | # when leaving the console clear the screen to increase privacy 4 | 5 | if [ "$SHLVL" = 1 ]; then 6 | [ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q 7 | fi 8 | -------------------------------------------------------------------------------- /gtk/gtk-2.0/gtkfilechooser.ini: -------------------------------------------------------------------------------- 1 | [Filechooser Settings] 2 | LocationMode=filename-entry 3 | ShowHidden=false 4 | ShowSizeColumn=true 5 | GeometryX=2310 6 | GeometryY=864 7 | GeometryWidth=1140 8 | GeometryHeight=708 9 | SortColumn=name 10 | SortOrder=ascending 11 | StartupMode=recent 12 | -------------------------------------------------------------------------------- /bash/config/bashrc.d/key_bindings.bash: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | ### 3 | ### Key bindings 4 | ### 5 | ################################################################################ 6 | 7 | 8 | 9 | # Bind Ctrl+R to fh() 10 | #bind '"\C-R":"fh\n"' 11 | -------------------------------------------------------------------------------- /zathura/theme: -------------------------------------------------------------------------------- 1 | # -*- mode: conf-space -*- 2 | 3 | # Dark theme made in the manner of 'alect-dark': 4 | # . 5 | 6 | set default-bg "#4f4f4f" 7 | set default-fg "#d5d2be" 8 | set inputbar-bg "#3f3f3f" 9 | set inputbar-fg "#d5d2be" 10 | set statusbar-bg "#2b2b2b" 11 | set statusbar-fg "#d5d2be" 12 | set recolor-lightcolor "#3f3f3f" 13 | set recolor-darkcolor "#d5d2be" 14 | -------------------------------------------------------------------------------- /xdg/mimeapps.list: -------------------------------------------------------------------------------- 1 | [Default Applications] 2 | image/bmp=ximage.desktop 3 | image/gif=ximage.desktop 4 | image/jpeg=ximage.desktop 5 | image/jpg=ximage.desktop 6 | image/png=ximage.desktop 7 | image/tiff=ximage.desktop 8 | image/x-bmp=ximage.desktop 9 | x-scheme-handler/http=chromium.desktop 10 | x-scheme-handler/https=chromium.desktop 11 | x-scheme-handler/about=chromium.desktop 12 | x-scheme-handler/unknown=chromium.desktop 13 | -------------------------------------------------------------------------------- /sxiv/README.md: -------------------------------------------------------------------------------- 1 | # sxiv image viewer 2 | 3 | https://wiki.archlinux.org/index.php/Sxiv 4 | 5 | ## Status bar 6 | 7 | The information displayed on the left side of the status bar can be replaced with the output of a user-provided script, which is called by sxiv whenever an image gets loaded. The path of this script is $XDG_CONFIG_HOME/sxiv/exec/image-info and the arguments given to it are: 1) path to image file, 2) image width, 3) image height. 8 | -------------------------------------------------------------------------------- /tmux/config/tmux-plugins.conf: -------------------------------------------------------------------------------- 1 | ######################################################################## 2 | # Plugins 3 | ######################################################################## 4 | 5 | 6 | ### 7 | ### Url view 8 | ### 9 | 10 | ## Requires: urlview 11 | #bind-key u capture-pane -J \; \ 12 | # save-buffer "/tmp/tmux-buffer" \; \ 13 | # delete-buffer \; \ 14 | # split-window -l 10 "urlview '/tmp/tmux-buffer'" 15 | # 16 | -------------------------------------------------------------------------------- /gnupg/gpg-agent.conf: -------------------------------------------------------------------------------- 1 | # https://www.gnupg.org/documentation/manuals/gnupg/Agent-Options.html 2 | 3 | ### 4 | ### Password caching 5 | ### 6 | default-cache-ttl 0 7 | max-cache-ttl 0 8 | 9 | 10 | ### 11 | ### Pinentry tool 12 | ### 13 | #pinentry-program /usr/bin/pinentry-tty 14 | pinentry-program /usr/bin/pinentry-gtk-2 15 | 16 | 17 | ### 18 | ### Logging 19 | ### 20 | #verbose 21 | #debug ipc 22 | #debug-pinentry 23 | #log-file /dev/null 24 | #log-file /home/cytopia/gpg-agent.log 25 | -------------------------------------------------------------------------------- /X11/Xmodmap: -------------------------------------------------------------------------------- 1 | pointer = 1 2 3 4 5 6 7 8 9 10 11 12 2 | 3 | 4 | ! TODO: 5 | ! switch: FN <-> Ctrl (have it on the left) 6 | ! switch: CMD <-> Ctrl (apple mode) 7 | ! change: CAPS to Esc 8 | 9 | !clear control 10 | !clear mod4 11 | 12 | !keycode 105 = 13 | !keycode 206 = 14 | 15 | !keycode 133 = Control_L NoSymbol Control_L 16 | !keycode 134 = Control_R NoSymbol Control_R 17 | !keycode 37 = Super_L NoSymbol Super_L 18 | 19 | !add control = Control_L 20 | !add control = Control_R 21 | !add mod4 = Super_L 22 | -------------------------------------------------------------------------------- /tmux/config/tmux-titlebar.conf: -------------------------------------------------------------------------------- 1 | ######################################################################## 2 | # Terminal Title Bar 3 | ######################################################################## 4 | 5 | set-option -g set-titles on 6 | set -g set-titles-string "(s:#S) [w:#I|p:#P] @#H - #W#F" 7 | 8 | #S Name of session 9 | #I Index of window 10 | #P Index of pane 11 | #W Name of window 12 | #F Window flags 13 | #h Hostname of local host without domain 14 | #H Hostname of local host 15 | #D Unique pane ID 16 | #T Title of pane 17 | 18 | -------------------------------------------------------------------------------- /tmux/config/tmux-mouse.conf: -------------------------------------------------------------------------------- 1 | ######################################################################## 2 | # Mouse Settings 3 | ######################################################################## 4 | 5 | ## Mouse Interaction 6 | set -g mouse on 7 | 8 | 9 | # http://tangledhelix.com/blog/2012/07/16/tmux-and-mouse-mode/ 10 | # Toggle mouse on 11 | bind-key m \ 12 | set-option -g mouse on \;\ 13 | display-message 'Mouse: ON' 14 | 15 | # Toggle mouse off 16 | bind-key M \ 17 | set-option -g mouse off \;\ 18 | display-message 'Mouse: OFF' 19 | 20 | -------------------------------------------------------------------------------- /config-example: -------------------------------------------------------------------------------- 1 | # Configure different git identities 2 | # 3 | # No space in *_ALIAS 4 | 5 | NUM_OF_GIT_IDENTS="3" 6 | 7 | GIT_IDENT1_ALIAS="john" 8 | GIT_IDENT1_NAME="John Doe" 9 | GIT_IDENT1_MAIL="john@doe.com" 10 | GIT_IDENT1_GPG="1234abcd" 11 | 12 | GIT_IDENT2_ALIAS="jane" 13 | GIT_IDENT2_NAME="Jane Doe" 14 | GIT_IDENT2_MAIL="jane@doe.com" 15 | GIT_IDENT2_GPG="abcdef12" 16 | 17 | GIT_IDENT3_ALIAS="peter" 18 | GIT_IDENT3_NAME="Peter Parker" 19 | GIT_IDENT3_MAIL="pete@spidy.com" 20 | GIT_IDENT3_GPG="11112222" 21 | 22 | 23 | # If you add more, make sure to increase 'NUM_OF_GIT_IDENTS' 24 | -------------------------------------------------------------------------------- /gtk/gtk-3.0/settings.ini: -------------------------------------------------------------------------------- 1 | [Settings] 2 | gtk-theme-name=Arc-Dark 3 | gtk-icon-theme-name=Tela-circle-orange-dark 4 | gtk-font-name=Sans 9 5 | gtk-cursor-theme-name=Adwaita 6 | gtk-cursor-theme-size=0 7 | gtk-toolbar-style=GTK_TOOLBAR_BOTH 8 | gtk-toolbar-icon-size=GTK_ICON_SIZE_SMALL_TOOLBAR 9 | gtk-icon-sizes=panel-menu=16,16:gtk-large-toolbar=24,24 10 | gtk-button-images=1 11 | gtk-menu-images=1 12 | gtk-enable-event-sounds=1 13 | gtk-enable-input-feedback-sounds=1 14 | gtk-xft-antialias=1 15 | gtk-xft-hinting=1 16 | gtk-xft-hintstyle=hintfull 17 | gtk-xft-rgba=rgb 18 | gtk-modules=gail:atk-bridge 19 | -------------------------------------------------------------------------------- /thunar/thunar-volman.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /tmux/config/tmux-statusbar.conf: -------------------------------------------------------------------------------- 1 | ######################################################################## 2 | # Tmux Status Bar 3 | ######################################################################## 4 | 5 | # Refresh the status bar every 1 second. 6 | set-option -g status-interval 1 7 | 8 | # Time messages remain in the status bar. Lower this number 9 | # if this is too distracting. 10 | set-option -g display-panes-time 2000 11 | set-option -g display-time 1000 12 | 13 | # window activity notifications; display activity on other window 14 | set-window-option -g monitor-activity on 15 | set-option -g visual-activity on 16 | 17 | -------------------------------------------------------------------------------- /sxiv/conf/exec/key-handler: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # input '$file' 4 | # 5 | # First Press +X to trigger this 6 | # Then Press any of the below defined shortcuts 7 | 8 | 9 | while read file; do 10 | case "$1" in 11 | # Delete to trash 12 | "C-d") 13 | mv "$file" ~/.trash 14 | ;; 15 | # Rotate 16 | "C-r") 17 | convert -rotate 90 "$file" "$file" 18 | ;; 19 | # Copy to clipboard 20 | "C-c") 21 | xclip -selection clipboard -target image/png -i "${file}" 22 | #echo "$file" | xclip -selection clipboard 23 | ;; 24 | # Set background 25 | "C-w") 26 | feh --no-fehbg --bg-scale "$file" 27 | ;; 28 | esac 29 | done 30 | -------------------------------------------------------------------------------- /xdg/README.md: -------------------------------------------------------------------------------- 1 | # xdg-open 2 | 3 | * https://wiki.archlinux.org/index.php/Default_applications 4 | * https://unix.stackexchange.com/questions/77136/xdg-open-default-applications-behavior 5 | 6 | Query defaut application for directory 7 | 8 | ## Get default applications 9 | ```shell 10 | xdg-mime query default inode/directory 11 | xdg-mime query default text/html 12 | ``` 13 | 14 | ## Set default applications 15 | 16 | ```shell 17 | # Images 18 | xdg-mime default ximage.desktop image/png 19 | xdg-mime default ximage.desktop image/jpg 20 | xdg-mime default ximage.desktop image/jpeg 21 | 22 | # Browser 23 | xdg-settings set default-web-browser chromium.desktop 24 | ``` 25 | 26 | -------------------------------------------------------------------------------- /gtk/gtkrc-2.0: -------------------------------------------------------------------------------- 1 | # DO NOT EDIT! This file will be overwritten by LXAppearance. 2 | # Any customization should be done in ~/.gtkrc-2.0.mine instead. 3 | 4 | include "/home/cytopia/.gtkrc-2.0.mine" 5 | gtk-theme-name="Arc-Dark" 6 | gtk-icon-theme-name="Tela-circle-orange-dark" 7 | gtk-font-name="Sans 9" 8 | gtk-cursor-theme-name="Adwaita" 9 | gtk-cursor-theme-size=0 10 | gtk-toolbar-style=GTK_TOOLBAR_BOTH 11 | gtk-toolbar-icon-size=GTK_ICON_SIZE_SMALL_TOOLBAR 12 | gtk-button-images=1 13 | gtk-menu-images=1 14 | gtk-enable-event-sounds=1 15 | gtk-enable-input-feedback-sounds=1 16 | gtk-xft-antialias=1 17 | gtk-xft-hinting=1 18 | gtk-xft-hintstyle="hintfull" 19 | gtk-xft-rgba="rgb" 20 | gtk-modules="gail:atk-bridge" 21 | -------------------------------------------------------------------------------- /X11/Xresources.d/xft.xresources: -------------------------------------------------------------------------------- 1 | !------------------------------------------------------------------------------- 2 | ! Xft settings 3 | !------------------------------------------------------------------------------- 4 | 5 | ! Use this one here (184) 6 | Xft.dpi: 192 7 | 8 | 9 | Xft*antialias: true 10 | Xft*rgba: rgb 11 | Xft*hinting: true 12 | Xft*hintstyle: hintfull 13 | Xft*lcdfilter: lcddefault 14 | 15 | Xcursor.theme: openzone 16 | 17 | ! Values from font-infiniality 18 | !Xft.antialias: 1 19 | !Xft.autohint: 0 20 | !Xft.dpi: 96 21 | !Xft.hinting: 1 22 | !Xft.hintstyle: hintfull 23 | !Xft.lcdfilter: lcddefault 24 | !Xft.rgba: rgb 25 | 26 | ! vim: ff=unix ft=xdefaults ts=4 ss=4 noet 27 | -------------------------------------------------------------------------------- /readline/README.md: -------------------------------------------------------------------------------- 1 | # .inputrc 2 | 3 | This file edits the behavior of the terminal itself. 4 | The inputrc file handles keyboard mapping for specific situations. 5 | This file is the startup file used by Readline (the input-related library) 6 | used by Bash and most other shells. 7 | 8 | It makes it possible to enable vi-like or emacs-lile navigation in terminal. 9 | 10 | ## Resources 11 | 12 | * https://linux.die.net/man/3/readline 13 | * http://www.linuxfromscratch.org/blfs/view/5.1/postlfs/inputrc.html 14 | * https://www.gnu.org/software/bash/manual/html_node/Readline-Init-File-Syntax.html 15 | * https://unix.stackexchange.com/questions/83476 16 | * https://stackoverflow.com/questions/10002356 17 | * http://vim.wikia.com/wiki/Use_vi_shortcuts_in_terminal 18 | 19 | -------------------------------------------------------------------------------- /X11/xsession: -------------------------------------------------------------------------------- 1 | # 2 | # @file: ~/.xsession 3 | # @invoker: Graphical Login manager (xdm, gdm, kdm, wdm, lightdm, ...) 4 | # @man: man Xsession 5 | # @see: /etc/X11/Xsession 6 | # 7 | # This file is invoked by graphical login manager during login. 8 | # ~/.xsession has the role of ~/.profile and ~/.xinitrc combined: 9 | # it's supposed to perform the initial startup of your session 10 | # (e.g. define environment variables), then launch programs specific 11 | # to the GUI (usually at least window manager). 12 | # 13 | 14 | 15 | # TODO: explain these 16 | export GTK_IM_MODULE=ibus 17 | export XMODIFIERS=@im=ibus 18 | export QT_IM_MODULE=ibus 19 | 20 | 21 | # Scaling 22 | # https://wiki.archlinux.org/title/HiDPI#Multiple_displays 23 | export GDK_SCALE=2 24 | export GDK_DPI_SCALE=0.5 25 | -------------------------------------------------------------------------------- /sxiv/conf/exec/image-info: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Example for ~/.config/sxiv/exec/image-info 4 | # Called by sxiv(1) whenever an image gets loaded, 5 | # with the name of the image file as its first argument. 6 | # The output is displayed in sxiv's status bar. 7 | 8 | s=" | " # field separator 9 | 10 | filename="$( basename "${1}" )" 11 | filesize="$( du -Hh "${1}" | cut -f 1 )" 12 | mimetype="$( exiv2 -q "${1}" 2>/dev/null | grep '^MIME type' | awk -F':' '{print $2}' | xargs )" 13 | 14 | 15 | # The '[0]' stands for the first frame of a multi-frame file, e.g. gif. 16 | geometry="$( identify -format '%wx%h' "$1[0]" )" 17 | 18 | tags="$( exiv2 -q pr -pi "${1}" 2>/dev/null | awk '$1~"Keywords" { printf("%s,", $4); }' )" 19 | tags="${tags%,}" 20 | 21 | echo "${filesize}${s}${geometry}${tags:+$s}${tags}${s}${mimetype}${s}${filename}" 22 | -------------------------------------------------------------------------------- /sublime/Package Control.sublime-settings: -------------------------------------------------------------------------------- 1 | { 2 | "bootstrapped": true, 3 | "in_process_packages": 4 | [ 5 | ], 6 | "installed_packages": 7 | [ 8 | "All Autocomplete", 9 | "Ansible", 10 | "BracketHighlighter", 11 | "DocBlockr", 12 | "Dockerfile Syntax Highlighting", 13 | "EditorConfig", 14 | "FileDiffs", 15 | "Function Name Display", 16 | "GitGutter", 17 | "Hide Menu", 18 | "i3 wm", 19 | "INI", 20 | "Jinja2", 21 | "Package Control", 22 | "SideBarEnhancements", 23 | "SingleTrailingNewLine", 24 | "SublimeCodeIntel", 25 | "SublimeLinter", 26 | "SublimeLinter-eslint", 27 | "SublimeLinter-json", 28 | "SublimeLinter-pep8", 29 | "SublimeLinter-php", 30 | "SublimeLinter-pylint", 31 | "SublimeLinter-shellcheck", 32 | "SublimeLinter-xmllint", 33 | "SyncedSideBar", 34 | "Theme - Asphalt", 35 | "TrailingSpaces", 36 | "Xdebug Client" 37 | ] 38 | } 39 | -------------------------------------------------------------------------------- /profanity/profrc: -------------------------------------------------------------------------------- 1 | [notifications] 2 | message=true 3 | message.text=true 4 | room=on 5 | remind=10 6 | 7 | room.current=true 8 | room.text=true 9 | 10 | [connection] 11 | receipts.request=false 12 | receipts.send=false 13 | 14 | [ui] 15 | theme=boothj5 16 | beep=false 17 | flash=false 18 | splash=true 19 | wrap=true 20 | wins.autotidy=true 21 | time=%d-%m-%y %H:%M 22 | time.statusbar=%H:%M:%S 23 | resource.title=true 24 | resource.message=true 25 | statuses.console=all 26 | statuses.chat=all 27 | statuses.muc=none 28 | occupants=true 29 | occupants.jid=false 30 | occupants.size=15 31 | roster=true 32 | roster.offline=true 33 | roster.resource=false 34 | roster.empty=true 35 | roster.by=presence 36 | roster.size=25 37 | privileges=true 38 | presence=true 39 | intype=true 40 | enc.warn=true 41 | titlebar.show=true 42 | history=true 43 | 44 | [otr] 45 | otr.char=@ 46 | 47 | [pgp] 48 | pgp.char=% 49 | 50 | [logging] 51 | chlog=true 52 | -------------------------------------------------------------------------------- /X11/xinitrc: -------------------------------------------------------------------------------- 1 | # 2 | # @file: ~/.xinitrc 3 | # @invoker: startx 4 | # @man: man xinit 5 | # @see: /etc/X11/xinit/xinitrc 6 | # 7 | # This file is invoked by 'startx' (xinit) 8 | # Use this file if you start Xorg via 'startx'` 9 | # Use .xsession if you start Xorg with a graphical login manager. 10 | # 11 | 12 | 13 | # 14 | # Merge .Xresources 15 | # 16 | if [ -f ~/.Xresources ]; then 17 | xrdb -merge ~/.Xresources 18 | fi 19 | 20 | 21 | # 22 | # Chose window manager 23 | # 24 | session="${1}" 25 | 26 | case $session in 27 | openbox) exec openbox-session;; 28 | i3|i3wm) exec i3;; 29 | i3-debug) exec i3 --shmlog-size=26214400;; 30 | i3wm-debug) exec i3 --shmlog-size=26214400;; 31 | *) exec i3;; 32 | esac 33 | 34 | # 35 | # Usage 36 | # ------------ 37 | # $ xinit 38 | # $ xinit openbox 39 | # $ xinit i3 40 | # $ xinit i3-debug 41 | # or 42 | # $ startx 43 | # $ startx ~/.xinitrc openbox 44 | # $ startx ~/.xinitrc i3 45 | # $ startx ~/.xinitrc i3-debug 46 | 47 | -------------------------------------------------------------------------------- /qt/Trolltech.conf: -------------------------------------------------------------------------------- 1 | [Qt] 2 | font="Ubuntu,11,-1,5,25,0,0,0,0,0" 3 | Palette\active=#5c616c, #f5f6f7, #ffffff, #cbc7c4, #cccdce, #b8b5b2, #5c616c, #ffffff, #5c616c, #ffffff, #f5f6f7, #bdbdbe, #5294e2, #ffffff, #0000ff, #ff00ff, #fafafa, #000000, #ffffdc, #5c616c 4 | Palette\inactive=#5c616c, #f5f6f7, #ffffff, #cbc7c4, #cccdce, #b8b5b2, #5c616c, #ffffff, #5c616c, #ffffff, #f5f6f7, #bdbdbe, #4084d6, #ffffff, #0000ff, #ff00ff, #fafafa, #000000, #ffffdc, #5c616c 5 | Palette\disabled=#a8abb1, #f5f6f7, #ffffff, #cbc7c4, #cccdce, #b8b5b2, #a8abb1, #ffffff, #a8abb1, #ffffff, #f5f6f7, #bdbdbe, #e2e2e2, #ffffff, #0000ff, #ff00ff, #fafafa, #000000, #ffffdc, #5c616c 6 | fontPath=@Invalid() 7 | embedFonts=true 8 | style=Windows 9 | doubleClickInterval=400 10 | cursorFlashTime=1000 11 | wheelScrollLines=3 12 | resolveSymlinks=false 13 | globalStrut\width=0 14 | globalStrut\height=0 15 | useRtlExtensions=false 16 | XIMInputStyle=On The Spot 17 | DefaultInputMethod=xim 18 | audiosink=Auto 19 | videomode=Auto 20 | GUIEffects=none 21 | -------------------------------------------------------------------------------- /X11/Xresources.d/fonts.xresources: -------------------------------------------------------------------------------- 1 | !------------------------------------------------------------------------------- 2 | ! URxvt Settings 3 | !------------------------------------------------------------------------------- 4 | 5 | !---------------------------------------- 6 | ! Font 7 | !---------------------------------------- 8 | 9 | ! Unicode font with devicon support 10 | !*font: xft:TerminessTTF Nerd Font:style=Medium:pixelsize=24:antialias=true:hinting=true 11 | !*boldFont: xft:TerminessTTF Nerd Font:style=Medium:pixelsize=24:antialias=true:hinting=true 12 | 13 | *font: xft:TerminessTTF Nerd Font Mono:style=Medium:size=12:antialias=true:hinting=true 14 | *boldFont: xft:TerminessTTF Nerd Font Mono:style=Medium:size=12:antialias=true:hinting=true 15 | 16 | 17 | ! Fix font space 18 | *lineSpace: 1 19 | 20 | ! Urxvt can have problems with the spacings of some fonts (eg Terminus), 21 | ! an option has been introduced in the latest version (9.07), 22 | ! allowing you to manually tweak the spacings. 23 | !*letterSpace: -2 24 | 25 | 26 | 27 | ! vim: ff=unix ft=xdefaults ts=4 ss=4 noet 28 | -------------------------------------------------------------------------------- /X11/Xresources: -------------------------------------------------------------------------------- 1 | ! 2 | ! @file: ~/.Xresources 3 | ! @invoker: xrdb 4 | ! @man: - 5 | ! @see: https://wiki.archlinux.org/index.php/X_resources 6 | ! 7 | ! Xresources can be used to set X resources, which are configuration parameters 8 | ! for X client applications. 9 | ! They can do many operations, including: 10 | ! * defining terminal colours 11 | ! * configuring terminal preferences 12 | ! * setting DPI, antialiasing, hinting and other X font settings 13 | ! * changing the Xcursor theme 14 | ! * theming xscreensaver 15 | ! * altering preferences on low-level X applications 16 | ! xclock (xorg-xclock), xpdf, rxvt-unicode, etc.) 17 | ! 18 | ! ~/.Xdefaults is deprecated 19 | ! 20 | ! Make sure that xorg-xrdb is installed 21 | ! 22 | ! If you update this file, make sure to issue 23 | ! the following command (as your normal user) 24 | ! xrdb ~/.Xresources 25 | ! 26 | ! If you do not use a desktop environment 27 | ! add the following to your ~/.xinitrc 28 | ! [[ -f ~/.Xresources ]] && xrdb -merge ~/.Xresources 29 | ! 30 | 31 | #include ".config/Xresources.d/xft.xresources" 32 | #include ".config/Xresources.d/fonts.xresources" 33 | #include ".config/Xresources.d/colors.xresources" 34 | #include ".config/Xresources.d/rofi.xresources" 35 | #include ".config/Xresources.d/urxvt.xresources" 36 | 37 | -------------------------------------------------------------------------------- /thunar/thunar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /ctags/ctags: -------------------------------------------------------------------------------- 1 | --exclude=.git 2 | --exclude=.svn 3 | --exclude=log 4 | --tag-relative=yes 5 | --totals=yes 6 | 7 | 8 | --langmap=PHP:+.inc 9 | --langmap=PHP:+.engine 10 | --langmap=PHP:+.module 11 | --langmap=PHP:+.php3 12 | --langmap=PHP:+.php4 13 | --langmap=PHP:+.php5 14 | --langmap=PHP:+.ctp 15 | --langmap=PHP:+.phtml 16 | --regex-PHP=/^[ \t ]*trait[ \t ]+([a-z0_9_]+)/\1/t,traits/i/ 17 | --regex-PHP=/abstract\s+class\s+([^ ]+)/\1/a,abstract classes/ 18 | --regex-PHP=/interface\s+([^ ]+)/\1/i,interfaces/ 19 | --regex-PHP=/(public\s+|static\s+|abstract\s+|protected\s+|private\s+)function\s+\&?\s*([^ (]+)/\2/f/ 20 | --PHP-kinds=+cidfvvjjjtcif 21 | 22 | 23 | --langdef=css 24 | --langmap=css:.css.less.scss.sass 25 | --regex-css=/^[ \t]*@([A-Za-z0-9_-]+)/@\1/v,var,variables/ 26 | --regex-css=/^[ \t]*\.([A-Za-z0-9_-]+)/.\1/c,class,classes/ 27 | --regex-css=/^[ \t]*#([A-Za-z0-9_-]+)/#\1/i,id,ids/ 28 | --regex-css=/^[ \t]*(([A-Za-z0-9_-]+[ \t\n,]+)+)\{/\1/t,tag,tags/ 29 | --regex-css=/^[ \t]*@media\s+([A-Za-z0-9_-]+)/\1/m,media,medias/ 30 | 31 | 32 | --langdef=markdown 33 | --langmap=markdown:.md 34 | --regex-markdown=/^#[ \t]+(.*)/\1/h,Heading_L1/ 35 | --regex-markdown=/^##[ \t]+(.*)/\1/i,Heading_L2/ 36 | --regex-markdown=/^###[ \t]+(.*)/\1/k,Heading_L3/ 37 | --regex-markdown=/^####[ \t]+(.*)/\1/k,Heading_L4/ 38 | --regex-markdown=/^#####[ \t]+(.*)/\1/k,Heading_L5/ 39 | --regex-markdown=/^######[ \t]+(.*)/\1/k,Heading_L6/ 40 | -------------------------------------------------------------------------------- /i3/bin/wsmove.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | ''' i3 helper to move windows to named workspaces''' 3 | 4 | import sys 5 | import subprocess 6 | import json 7 | 8 | def run(command): 9 | '''Wrapper to run shell commands''' 10 | return subprocess.Popen(command, shell=True, stdout=subprocess.PIPE).stdout.readlines() 11 | 12 | def main(argv): 13 | '''Main entrypoint''' 14 | workspaces = json.loads(''.join(run('i3-msg -t get_workspaces'))) 15 | 16 | target = argv[1] 17 | 18 | focused_workspace_num = None 19 | for workspace in workspaces: 20 | if workspace['focused']: 21 | focused_workspace_num = workspace['num'] 22 | break 23 | 24 | # get all named workspaces from config 25 | command = 'cat ~/.config/i3/config | grep "^set \\$WS" | sed "s/.*\\$WS[0-9]*\\s//g"' 26 | workspace = ''.join(run(command)).split('\n') 27 | 28 | if target == "prev": 29 | if focused_workspace_num == 1: 30 | sendto = 10 31 | else: 32 | sendto = focused_workspace_num - 1 33 | elif target == "next": 34 | if focused_workspace_num == 10: 35 | sendto = 1 36 | else: 37 | sendto = focused_workspace_num + 1 38 | 39 | # Move container to chosen workspace 40 | run('i3-msg move container to workspace ' + workspace[sendto-1]) 41 | # Jump to chosen workspace 42 | run('i3-msg workspace ' + workspace[sendto-1]) 43 | 44 | if __name__ == '__main__': 45 | main(sys.argv) 46 | -------------------------------------------------------------------------------- /bash/config/bashrc.d/alias-rld.bash: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | ### 3 | ### Reload configuration 4 | ### 5 | ################################################################################ 6 | 7 | 8 | ### 9 | ### Update locate database 10 | ### 11 | rld-updatedb() { 12 | echo "\$ sudo /usr/libexec/locate.updatedb" 13 | sudo /usr/libexec/locate.updatedb 14 | } 15 | 16 | 17 | ### 18 | ### Reload bash config 19 | ### 20 | if [ -f ~/.bash_profile ]; then 21 | rld-bash() { 22 | echo "\$ source ~/.bash_profile" 23 | # shellcheck disable=SC1090 24 | source ~/.bash_profile 25 | } 26 | fi 27 | 28 | 29 | ### 30 | ### Reload xdg-dirs 31 | ### 32 | if [ -f ${XDG_CONFIG_HOME}/user-dirs.dirs ]; then 33 | rld-xdg-dirs() { 34 | echo "\$ xdg-user-dirs-update" 35 | xdg-user-dirs-update 36 | } 37 | fi 38 | 39 | 40 | ### 41 | ### Reload Xdefaults config 42 | ### 43 | if [ -f ~/.Xdefaults ]; then 44 | rld-xdefaults() { 45 | echo "\$ xrdb -load ~/.Xdefaults" 46 | xrdb -load ~/.Xdefaults 47 | } 48 | fi 49 | 50 | 51 | ### 52 | ### Reload Xmodmap config 53 | ### 54 | if [ -f ~/.Xmodmap ]; then 55 | rld-xmodmap() { 56 | echo "\$ xmodmap ~/.Xmodmap" 57 | xmodmap ~/.Xmodmap 58 | } 59 | fi 60 | 61 | 62 | ### 63 | ### Reload Xresources config 64 | ### 65 | if [ -f ~/.Xresources ]; then 66 | rld-xresources() { 67 | echo "\$ xrdb ~/.Xresources" 68 | xrdb ~/.Xresources 69 | } 70 | fi 71 | 72 | 73 | ### 74 | ### Reload gpg agent 75 | ### 76 | rld-gpg-agent() { 77 | echo "\$ gpg-connect-agent reloadagent /bye" 78 | gpg-connect-agent reloadagent /bye 79 | } 80 | -------------------------------------------------------------------------------- /tmux/config/tmux-yank.conf: -------------------------------------------------------------------------------- 1 | ######################################################################## 2 | # Copy Mode (Vim Style) + 3 | ######################################################################## 4 | 5 | # https://shapeshed.com/custom-vim-bindings-in-tmux-2-4/ 6 | 7 | ### 8 | ### Enable vi-style for Visual Mode 9 | ### 10 | setw -g mode-keys vi 11 | 12 | 13 | 14 | ### 15 | ### Copy Mode 16 | ### 17 | 18 | # This breaks tmux-copycat 19 | #unbind-key [ # Unbind 'Start copy mode' 20 | #unbind-key -t vi-copy q # Unbind 'Exit copy mode' 21 | #bind-key Escape copy-mode \; display 'Copy Mode' # Start copy mode; default is [ 22 | #bind-key -t vi-copy Escape cancel # Exit copy mode; or hit q 23 | 24 | 25 | 26 | ### 27 | ### Visual Mode (Selection) 28 | ### 29 | bind-key -T copy-mode-vi 'v' send -X begin-selection # Start visual mode (selection) 30 | bind-key -T copy-mode-vi 'V' send -X select-line # Select whole line 31 | bind-key -T copy-mode-vi 'C-v' send -X rectangle-toggle # Toggle block selection (in select mode) 32 | bind-key -T copy-mode-vi 'y' send -X copy-pipe-and-cancel "xsel -i -p && xsel -o -p | xsel -i -b" 33 | 34 | ### 35 | ### Copy/Paste (normal mode 36 | ### 37 | 38 | # Copying in normal mode is useful for mouse integration. 39 | # This way you can select text with a mouse, release mouse and 40 | # copy it to clipboard via C-y. 41 | bind-key y run "tmux show-buffer | xsel -i -p && xsel -o -p | xsel -i -b"\; display 'copied' 42 | 43 | # Allow system clipboard to be pasted with tmux 44 | bind-key p run "xsel -o | tmux load-buffer - ; tmux paste-buffer" 45 | -------------------------------------------------------------------------------- /tmux/config/tmux-colors.conf: -------------------------------------------------------------------------------- 1 | ######################################################################## 2 | # Tmux Colors 3 | ######################################################################## 4 | 5 | # default window title colors 6 | #set-window-option -g window-status-fg colour244 #base0 7 | #set-window-option -g window-status-bg default 8 | #set-window-option -g window-status-attr dim 9 | 10 | # active window title colors 11 | #set-window-option -g window-status-current-fg colour166 #orange 12 | #set-window-option -g window-status-current-bg default 13 | #set-window-option -g window-status-current-attr bright 14 | 15 | # pane border 16 | #set-option -g pane-border-fg colour235 #base02 17 | #set-option -g pane-active-border-fg colour240 #base01 18 | 19 | # message text 20 | #set-option -g message-bg colour235 #base02 21 | #set-option -g message-fg colour166 #orange 22 | 23 | # pane number display 24 | set-option -g display-panes-active-colour colour33 #blue 25 | set-option -g display-panes-colour colour166 #orange 26 | 27 | # clock 28 | set-window-option -g clock-mode-colour colour64 #green 29 | 30 | # bell 31 | set-window-option -g window-status-bell-style fg=colour235,bg=colour160 #base02, red 32 | # default statusbar colors 33 | set-option -g status-bg colour235 #base02 34 | set-option -g status-fg colour136 #yellow 35 | #set-option -g status-attr default 36 | 37 | # Inside statusbar 38 | set-option -g status-justify centre 39 | set-option -g status-left-length 40 40 | set-option -g status-left "#[fg=white][#[fg=cyan]Session: #[fg=yellow]#S#[fg=white]]" 41 | set-option -g status-right "#[fg=white][#[fg=cyan]Tab: #[fg=yellow]#I#[fg=white]] [#[fg=cyan]Pane: #[fg=yellow]#P#[fg=white]]" 42 | 43 | #set -g status-bg default 44 | #setw -g window-status-current-fg colour0 45 | #setw -g window-status-current-bg colour2 46 | #setw -g window-status-fg colour7 47 | #setw -g window-status-bg colour8 48 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Note: 2 | # To effectively apply the changes you will have 3 | # to re-index the git index (if there are already 4 | # commited files) 5 | # 6 | # $ git rm -r --cached . 7 | # $ git add . 8 | # $ git commit -m ".gitignore index rebuild" 9 | # 10 | 11 | 12 | ###################################### 13 | # CUSTOM 14 | ###################################### 15 | !.keepme 16 | 17 | /config 18 | 19 | # tmux 20 | tmux/config/plugins/* 21 | 22 | # Generated bash configs 23 | bash/config/bashrc.d/git-ident.bash 24 | 25 | # Neovim tmp files 26 | neovim/.netrwhist 27 | 28 | 29 | ###################################### 30 | # GENERIC 31 | ###################################### 32 | 33 | ###### std ###### 34 | .lock 35 | *.log 36 | 37 | ###### patches/diffs ###### 38 | *.patch 39 | *.diff 40 | *.orig 41 | *.rej 42 | 43 | ###### Continuous Integration ###### 44 | .vagrant 45 | 46 | 47 | ###################################### 48 | # Operating Systems 49 | ###################################### 50 | 51 | ###### OSX ###### 52 | ._* 53 | .DS* 54 | .Spotlight-V100 55 | .Trashes 56 | 57 | ###### Windows ###### 58 | Thumbs.db 59 | ehthumbs.db 60 | Desktop.ini 61 | $RECYCLE.BIN/ 62 | *.lnk 63 | *.shortcut 64 | 65 | 66 | 67 | ###################################### 68 | # Editors 69 | ###################################### 70 | 71 | ###### Sublime ###### 72 | *.sublime-workspace 73 | *.sublime-project 74 | 75 | ###### Eclipse ###### 76 | .classpath 77 | .buildpath 78 | .project 79 | .settings/ 80 | 81 | ###### Netbeans ###### 82 | /nbproject/ 83 | 84 | ###### Intellij IDE ###### 85 | .idea/ 86 | .idea_modules/ 87 | 88 | ###### vim ###### 89 | *.swp 90 | *.swo 91 | *~ 92 | 93 | ###### TextMate ###### 94 | .tm_properties 95 | *.tmproj 96 | 97 | ###### BBEdit ###### 98 | *.bbprojectd 99 | *.bbproject 100 | -------------------------------------------------------------------------------- /readline/inputrc: -------------------------------------------------------------------------------- 1 | # ------------------------------------------------------------------------------ 2 | # @file: ~/.inputrc 3 | # @invoker: readline 4 | # @man: man 3 readline 5 | # @see: /etc/inputrc 6 | # @see: https://www.gnu.org/software/bash/manual/html_node/Readline-Init-File-Syntax.html 7 | # @see: https://unix.stackexchange.com/questions/83476 8 | # @see: https://stackoverflow.com/questions/10002356 9 | # @see: http://vim.wikia.com/wiki/Use_vi_shortcuts_in_terminal 10 | # 11 | # This file edits the behavior of the terminal itself. 12 | # The inputrc file handles keyboard mapping for specific situations. 13 | # This file is the startup file used by Readline (the input-related library) 14 | # used by Bash and most other shells. 15 | # 16 | # It makes it possible to enable vi-like or emacs-lile navigation in terminal. 17 | # 18 | # Note: Comments must start at the beginning of the line. 19 | # Comments after a statement are not allowed. 20 | # ------------------------------------------------------------------------------ 21 | 22 | 23 | 24 | ### 25 | ### Move word-wise 26 | ### 27 | ### Ctrl+right => forward word 28 | ### Ctrl+left => backward word 29 | "\e[1;5C": forward-word 30 | "\e[1;5D": backward-word 31 | 32 | 33 | ### 34 | ### Disabled for now (they work without any doings) 35 | ### 36 | #"\e[1~": beginning-of-line 37 | #"\e[4~": end-of-line 38 | #“\e[5~”: history-search-backward 39 | #“\e[6~”: history-search-forward 40 | #"\e[3~": delete-char 41 | #"\e[2~": quoted-insert 42 | #"\e[5C": forward-word 43 | #"\e[5D": backward-word 44 | #"\e\e[C": forward-word 45 | #"\e\e[D": backward-word 46 | 47 | #set completion-ignore-case On 48 | #set expand-tilde on 49 | #set convert-meta off 50 | #set input-meta on 51 | #set output-meta on 52 | #set show-all-if-ambiguous on 53 | #set visible-stats on 54 | #set -o vi 55 | 56 | # Disable Console Beep 57 | #set bell-style off 58 | -------------------------------------------------------------------------------- /redshift/redshift.conf: -------------------------------------------------------------------------------- 1 | ; Global settings for redshift 2 | [redshift] 3 | ; Set the day and night screen temperatures (Neutral is 6500K) 4 | ; Default redshift config is 5700 5 | temp-day=6500 6 | ;temp-day=5700 7 | temp-night=3500 8 | 9 | ; Enable/Disable a smooth transition between day and night 10 | ; 0 will cause a direct change from day to night screen temperature. 11 | ; 1 will gradually increase or decrease the screen temperature. 12 | transition=1 13 | 14 | ; Set the screen brightness. Default is 1.0. 15 | ;brightness=0.9 16 | ; It is also possible to use different settings for day and night 17 | ; since version 1.8. 18 | brightness-day=1.0 19 | brightness-night=0.4 20 | ; Set the screen gamma (for all colors, or each color channel 21 | ; individually) 22 | ;gamma=0.8 23 | ;gamma=0.8:0.7:0.8 24 | ; This can also be set individually for day and night since 25 | ; version 1.10. 26 | gamma-day=1.0 27 | gamma-night=0.6 28 | 29 | ; Set the location-provider: 'geoclue', 'geoclue2', 'manual' 30 | ; type 'redshift -l list' to see possible values. 31 | ; The location provider settings are in a different section. 32 | location-provider=manual 33 | 34 | ; Set the adjustment-method: 'randr', 'vidmode' 35 | ; type 'redshift -m list' to see all possible values. 36 | ; 'randr' is the preferred method, 'vidmode' is an older API. 37 | ; but works in some cases when 'randr' does not. 38 | ; The adjustment method settings are in a different section. 39 | adjustment-method=randr 40 | 41 | ; Configuration of the location-provider: 42 | ; type 'redshift -l PROVIDER:help' to see the settings. 43 | ; ex: 'redshift -l manual:help' 44 | ; Keep in mind that longitudes west of Greenwich (e.g. the Americas) 45 | ; are negative numbers. 46 | [manual] 47 | lat=52.55 48 | lon=13.36 49 | 50 | ; Configuration of the adjustment-method 51 | ; type 'redshift -m METHOD:help' to see the settings. 52 | ; ex: 'redshift -m randr:help' 53 | ; In this example, randr is configured to adjust screen 1. 54 | ; Note that the numbering starts from 0, so this is actually the 55 | ; second screen. If this option is not specified, Redshift will try 56 | ; to adjust _all_ screens. 57 | [randr] 58 | screen=0 59 | -------------------------------------------------------------------------------- /bash/config/bashrc.d/alias-fzf.bash: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | ### 3 | ### FZF Aliases 4 | ### 5 | ################################################################################ 6 | 7 | 8 | ### 9 | ### locate 10 | ### 11 | f() { 12 | local file 13 | dir="$(pwd)" 14 | file=$(locate "${dir}/" 2>/dev/null | fzf +m) && if [ -d "$file" ]; then cd "$file"; else ${EDITOR:-vim} "$file"; fi 15 | } 16 | 17 | 18 | ### 19 | ### Edit file 20 | ### 21 | fe() { 22 | local file 23 | 24 | file="$( find . \ 25 | -type f \ 26 | -not \( \ 27 | -path "*/.git*" -o \ 28 | -path "*/.svn*" -o \ 29 | -path "*.png" -o \ 30 | -path "*.jpg" -o \ 31 | -path "*.jpeg" -o \ 32 | -path "*.bin" -o \ 33 | -path "*.svg" -o \ 34 | -path "*.gz" -o \ 35 | -path "*.tar" -o \ 36 | -path "*.tgz" -o \ 37 | -path "*.zip" \ 38 | \) \ 39 | ! -size 0 \ 40 | -print 2> /dev/null | fzf +m)" && 41 | ${EDITOR:-vim} "$file" 42 | } 43 | #fe() { 44 | # local file 45 | # local cpu 46 | # 47 | # cpu="$(getconf _NPROCESSORS_ONLN)" 48 | # 49 | # file="$( find . \ 50 | # -type f \ 51 | # -not \( -path "*/.git*" -o -path "*/.svn*" \) \ 52 | # ! -size 0 \ 53 | # -print0 2> /dev/null | \ 54 | # xargs -0 -P ${cpu} -n1 grep -Il '' 2>/dev/null | \ 55 | # fzf +m)" && 56 | # ${EDITOR:-vim} "$file" 57 | #} 58 | 59 | 60 | 61 | 62 | ### 63 | ### Goto directory 64 | ### 65 | fd() { 66 | local dir 67 | dir=$(find . \ 68 | -not \( -path "*/.*" -prune \) \ 69 | -not \( -path "*/Library/*" -prune \) \ 70 | -not \( -path "*/Applications/*" -prune \) \ 71 | -not \( -ipath "*/cache/*" -prune \) \ 72 | -type d -print 2> /dev/null | fzf +m) && 73 | cd "$dir" 74 | } 75 | 76 | 77 | ### 78 | ### kill process 79 | ### 80 | fkill() { 81 | ps -ef | sed 1d | fzf -m | awk '{print $2}' | xargs kill -${1:-9} 82 | } 83 | 84 | 85 | ### 86 | ### Show process 87 | ### 88 | fps() { 89 | ps aux | sed 1d | fzf -m 90 | } 91 | 92 | 93 | ### 94 | ### History search 95 | ### 96 | fh() { 97 | eval "$(history | fzf +s --tac | cut -d' ' -f 7- )" 98 | } 99 | 100 | -------------------------------------------------------------------------------- /autorunner/config: -------------------------------------------------------------------------------- 1 | # Autorunner configuration file 2 | # 3 | # Usage: execute "" "" "" 4 | # 5 | # 1: Kill the process and restart it 6 | # 0: Only start when it is not running 7 | # 8 | # 1: Notify via notifications when started/restarted 9 | # 0: Do not notify 10 | # Full command (including arguments) to run 11 | # 12 | # Examples: 13 | # 14 | # # Run clipmenu once (never restart it) 15 | # execute "0" "0" "clipmenud" 16 | # 17 | # # Run thunar daemon and always restart it when autorunner is called again 18 | # # Always trigger notifications whenever it is stopped and restarted 19 | # execute "1" "1" "thunar --daemon" 20 | # 21 | 22 | 23 | # Turn on/off annoying system beep 24 | execute "0" "1" "xset b off" 25 | 26 | # Set keyboard settings 27 | # 250 ms delay and 25 cps (characters per second) repeat rate. 28 | # KEYBOARD_RATE=60 29 | # KEYBOARD_DELAY=250 30 | execute "0" "1" "xset r rate 250 50" 31 | 32 | # Turn off monitor automatically 33 | # xset dpms [standby [suspend [off]]] 34 | # Turn off monitor after 5 minutes 35 | execute "0" "1" "xset dpms 0 0 300" 36 | 37 | # Auto-lock screen 38 | # xset s sec-notifications sec-lock 39 | execute "0" "1" "xset s 600 30" 40 | execute "1" "1" "xss-lock -v -n \"notify-send --urgency=critical --icon=/usr/share/icons/Adwaita/48x48/actions/system-lock-screen.png -- 'Auto-lock in 30 sec.'\" -- /usr/local/bin/xlock" 41 | #execute "xautolock -detectsleep -time 5 -locker '~/.config/i3/bin/i3exit lock' -notify 15 -notifier \"notify-send -u critical -t 10000 -- 'Locking screen in 15 sec'\"" "xautolock" "xautolock" 42 | 43 | # Clipboard manager 44 | execute "0" "1" "clipmenud" 45 | 46 | # Network Manager Applet (TASKBAR-ICON) 47 | execute "1" "1" "nm-applet" 48 | 49 | # Filemanager Daemon (for auto-mounts 50 | execute "1" "1" "thunar --daemon" 51 | 52 | # Compositor 53 | execute "1" "1" "compton" 54 | 55 | # Notification daemon 56 | execute "0" "1" "dunst" 57 | 58 | # XFCE4 power manager 59 | execute "0" "1" "xfce4-power-manager" 60 | 61 | # Bluetooth Manager Applet (TASKBAR-ICON) 62 | #execute "blueman-applet" "blueman-applet" "blueman-applet" 63 | 64 | # Redshift screen 65 | #execute "redshift-gtk" "redshift-gtk" "redshift" 66 | 67 | # Keyboard Input (TASKBAR-ICON) 68 | #execute "ibus-daemon --replace --restart --desktop=openbox --xim --daemonize" "ibus-daemon" "ibus-daemon" 69 | -------------------------------------------------------------------------------- /bash/config/bash_profile.d/colors.bash: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | ### 3 | ### Colors 4 | ### 5 | ################################################################################ 6 | 7 | 8 | # Color Foreground Background 9 | # Black 30 40 10 | # Red 31 41 11 | # Green 32 42 12 | # Yellow 33 43 13 | # Blue 34 44 14 | # Magenta 35 45 15 | # Cyan 36 46 16 | # White 37 47 17 | 18 | 19 | 20 | ################################################################################ 21 | ### 22 | ### ls colors 23 | ### 24 | ################################################################################ 25 | 26 | # On FreeBSD and Mac OS X, ls shows colors if the CLICOLOR 27 | # environment variable is set or if -G is passed on the command line. 28 | # The actual colors are configured through the LSCOLORS environment variable 29 | 30 | # With GNU ls, e.g. on Linux, ls shows colors if --color is passed 31 | # on the command line. The actual colors are configured through the 32 | # LS_COLORS environment variable, which can be set with the dircolors 33 | # command (built-in defaults are used if this variable is not set). 34 | 35 | ### 36 | ### Enable 'ls' colors 37 | ### 38 | export CLICOLOR=1 39 | 40 | 41 | 42 | ################################################################################ 43 | ### 44 | ### grep colors 45 | ### 46 | ################################################################################ 47 | 48 | ### 49 | ### colored grep results 50 | ### 51 | export GREP_COLORS='0;31' 52 | 53 | 54 | 55 | ################################################################################ 56 | ### 57 | ### mutt colors 58 | ### 59 | ################################################################################ 60 | 61 | ### 62 | ### mutt background fixes 63 | ### 64 | export COLORFGBG="default;default" 65 | 66 | 67 | 68 | ################################################################################ 69 | ### 70 | ### man page colors 71 | ### 72 | ################################################################################ 73 | 74 | ### 75 | ### Enable color when reading man-pages 76 | ### 77 | export LESS_TERMCAP_mb=$'\E[01;31m' # begin blinking 78 | export LESS_TERMCAP_md=$'\E[01;31m' # begin bold 79 | export LESS_TERMCAP_me=$'\E[0m' # end mode 80 | export LESS_TERMCAP_se=$'\E[0m' # end standout-mode 81 | export LESS_TERMCAP_so=$'\E[01;44;33m' # begin standout-mode - info box 82 | export LESS_TERMCAP_ue=$'\E[0m' # end underline 83 | export LESS_TERMCAP_us=$'\E[01;32m' # begin underline 84 | -------------------------------------------------------------------------------- /sublime/Preferences.sublime-settings: -------------------------------------------------------------------------------- 1 | { 2 | "always_prompt_for_file_reload": true, 3 | "always_show_minimap_viewport": true, 4 | "animation_enabled": false, 5 | "atomic_save": true, 6 | "binary_file_patterns": 7 | [ 8 | "*.jpg", 9 | "*.jpeg", 10 | "*.png", 11 | "*.gif", 12 | "*.ttf", 13 | "*.tga", 14 | "*.dds", 15 | "*.ico", 16 | "*.eot", 17 | "*.pdf", 18 | "*.swf", 19 | "*.jar", 20 | "*.zip" 21 | ], 22 | "bold_folder_labels": false, 23 | "color_scheme": "Packages/User/SublimeLinter/Asphalt (SL).tmTheme", 24 | "default_encoding": "UTF-8", 25 | "default_line_ending": "unix", 26 | "dpi_scale": 1.25, 27 | "draw_minimap_border": true, 28 | "draw_white_space": "selection", 29 | "enable_hexadecimal_encoding": true, 30 | "ensure_newline_at_eof_on_save": true, 31 | "file_exclude_patterns": 32 | [ 33 | "*.a", 34 | "*.class", 35 | "*.db", 36 | "*.dll", 37 | "*.dylib", 38 | "*.exe", 39 | "*.idb", 40 | "*.lib", 41 | "*.ncb", 42 | "*.o", 43 | "*.obj", 44 | "*.pdb", 45 | "*.psd", 46 | "*.pyc", 47 | "*.pyo", 48 | "*.sdf", 49 | "*.so", 50 | "*.sublime-workspace", 51 | "*.suo", 52 | ".DS_Store" 53 | ], 54 | "fold_buttons": true, 55 | "folder_exclude_patterns": 56 | [ 57 | ".git", 58 | ".hg", 59 | ".sass-cache", 60 | ".svn", 61 | "node_modules", 62 | "CVS" 63 | ], 64 | "font_options": 65 | [ 66 | ], 67 | "font_size": 11, 68 | "gutter": true, 69 | "highlight_line": true, 70 | "highlight_modified_tabs": false, 71 | "ignore_inodes": true, 72 | "ignored_packages": 73 | [ 74 | "Vintage" 75 | ], 76 | "index_exclude_patterns": 77 | [ 78 | "*.log", 79 | "*.git", 80 | "*.svn" 81 | ], 82 | "index_files": true, 83 | "line_numbers": true, 84 | "show_definitions": true, 85 | "show_encoding": true, 86 | "show_errors_inline": true, 87 | "show_full_path": true, 88 | "show_line_endings": true, 89 | "show_panel_on_build": true, 90 | "show_tab_close_buttons": false, 91 | "spell_check": false, 92 | "tab_size": 4, 93 | "theme": "Asphalt.sublime-theme", 94 | "theme_asphalt_hide_sidebar_icons": false, 95 | "theme_asphalt_show_dirty_tabs": false, 96 | "theme_asphalt_show_input_dropdowon": true, 97 | "theme_asphalt_show_panel_close": false, 98 | "theme_asphalt_sidebar_big": false, 99 | "theme_asphalt_sidebar_small": false, 100 | "theme_asphalt_status_bar_brighter": true, 101 | "theme_asphalt_tabs_big": false, 102 | "theme_asphalt_tabs_small": true, 103 | "translate_tabs_to_spaces": false, 104 | "trim_automatic_white_space": true, 105 | "trim_trailing_white_space_on_save": true, 106 | "use_tab_stops": true, 107 | "word_wrap": false, 108 | "wrap_width": 0 109 | } 110 | -------------------------------------------------------------------------------- /bash/config/bashrc.d/ssh-agent.bash: -------------------------------------------------------------------------------- 1 | SSH_ENV="${HOME}/.ssh/environment" 2 | 3 | # Start the ssh-agent 4 | function start_agent { 5 | local output 6 | 7 | if pidof ssh-agent >/dev/null 2>&1; then 8 | if [ -f "${SSH_ENV}" ]; then 9 | . "${SSH_ENV}" 10 | fi 11 | return 0 12 | fi 13 | 14 | echo "Initializing new SSH agent..." 15 | if ! output="$( ssh-agent -s )"; then 16 | echo "failed" 17 | exit 1 18 | fi 19 | echo succeeded 20 | 21 | echo "${output}" | sed 's/^echo/#echo/' > "${SSH_ENV}" 22 | chmod 600 "$SSH_ENV" 23 | . "${SSH_ENV}" > /dev/null 24 | 25 | load_identities 26 | } 27 | 28 | # Load all found ssh keys 29 | function load_identities { 30 | return 31 | local priv_keys 32 | # load all private keys in ~/.ssh 33 | priv_keys="$( /bin/ls "${HOME}/.ssh/" )" 34 | echo "Loading SSH identities..." 35 | for i in ${priv_keys}; do 36 | if grep -Eq 'BEGIN.*PRIVATE' "${HOME}/.ssh/${i}" 2>/dev/null; then 37 | echo "${i}" 38 | ssh-add "${HOME}/.ssh/${i}" 39 | fi 40 | done 41 | echo "Done" 42 | } 43 | 44 | # Test for identities 45 | function test_identities { 46 | # Do we already have identities loaded? 47 | local ret 48 | if ssh-add -l >/dev/null 2>&1; then 49 | ret=$? 50 | else 51 | ret=$? 52 | fi 53 | # $?=0 means the socket is there and it has a key 54 | # $?=1 means the socket is there but contains no key 55 | # $?=2 means the socket is not there or broken 56 | 57 | if [ "${ret}" = "0" ]; then 58 | return 0 59 | elif [ "${ret}" = "1" ]; then 60 | load_identities 61 | elif [ "${ret}" = "2" ]; then 62 | start_agent 63 | fi 64 | } 65 | 66 | function test_agent { 67 | local pid="${1}" 68 | 69 | # check if non-empty 70 | if [ -n "${pid}" ]; then 71 | ps -ef | grep 'ssh-agent' | awk '{print $2}' | grep -q "${pid}"; 72 | else 73 | return 1 74 | fi 75 | } 76 | 77 | 78 | ### 79 | ### ssh-agent env variables set 80 | ### 81 | if [ ! -z "${SSH_AGENT_PID+x}" ]; then 82 | 83 | # check if ssh-agent is running by this pid 84 | if test_agent "${SSH_AGENT_PID}"; then 85 | # all good, check if keys were loaded already 86 | test_identities 87 | else 88 | # not running, start ssh-agent 89 | start_agent 90 | fi 91 | ### 92 | ### if $SSH_AGENT_PID is not properly set, we might be able to load one from $SSH_ENV 93 | ### 94 | else 95 | if [ -f "${SSH_ENV}" ]; then 96 | . "${SSH_ENV}" > /dev/null 97 | fi 98 | 99 | # Is $SSH_AGENT_PID set now? 100 | if [ ! -z "${SSH_AGENT_PID+x}" ]; then 101 | # check if ssh-agent is running by this pid 102 | if test_agent "${SSH_AGENT_PID}"; then 103 | test_identities 104 | else 105 | start_agent 106 | fi 107 | else 108 | start_agent 109 | fi 110 | fi 111 | -------------------------------------------------------------------------------- /bash/config/bashrc.d/alias-custom.bash: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | ### 3 | ### Custom Aliases 4 | ### 5 | ################################################################################ 6 | 7 | 8 | 9 | ### 10 | ### xdg-open from terminal (OSX-style) 11 | ### 12 | open() { 13 | nohup xdg-open "${@}" > /dev/null 2>&1 14 | } 15 | 16 | 17 | ### 18 | ### google calendar 19 | ### 20 | cal() { 21 | if [ "${#}" = "0" ]; then 22 | gcalcli calm 23 | else 24 | gcalcli "${*}" 25 | fi 26 | } 27 | 28 | 29 | ### 30 | ### www Folder 31 | ### 32 | if [ -d "/shared/httpd" ] || [ -L "/shared/httpd" ]; then 33 | alias www='cd /shared/httpd/' 34 | elif [ -d "${HOME}/Sites" ] || [ -L "${HOME}/Sites" ]; then 35 | alias www='cd "${HOME}/Sites"' 36 | fi 37 | 38 | 39 | ### 40 | ### Go to repo folder 41 | ### 42 | repo() { 43 | local specific="${1:-}" 44 | 45 | if [ "${#}" = "1" ]; then 46 | cd "${HOME}/repo/${1}"* 47 | elif [ "${#}" = "2" ]; then 48 | cd "${HOME}/repo/${1}"*/"${2}"* 49 | else 50 | cd "${HOME}/repo/cytopia" 51 | fi 52 | } 53 | 54 | 55 | ### 56 | ### Open notes 57 | ### 58 | notes() { 59 | local specific="${1:-}" 60 | local tmp="${HOME}/.cache/notes" 61 | 62 | # Defaults 63 | local path="${HOME}/notes" 64 | local name= 65 | local lock= 66 | 67 | # Create tmp dir 68 | if [ ! -d "${tmp}" ]; then 69 | mkdir -p "${tmp}" 70 | fi 71 | 72 | # Try to get the specific directory 73 | if [ "${specific}" = "" ]; then 74 | path="${path}/private" 75 | name="private" 76 | lock="${tmp}/${name}.lock" 77 | else 78 | for d in ${path}/${specific}*; do 79 | if [ -d "${d}" ]; then 80 | path="${d}" 81 | name="$( basename "${path}" )" 82 | lock="${tmp}/${name}.lock" 83 | fi 84 | # Only try first match 85 | break; 86 | done 87 | fi 88 | 89 | # Check if it is already running 90 | if [ -f "${lock}" ]; then 91 | echo "notes (${name}) already running..." 92 | return 1 93 | fi 94 | 95 | # Lock 96 | touch "${lock}" 97 | 98 | cd "${path}" 99 | if [ "${name}" = "private" ]; then 100 | ${EDITOR:-vim} -o TODO.md 101 | else 102 | ${EDITOR:-vim} -o TODO.md 103 | fi 104 | 105 | # Unlock 106 | rm -f "${lock}" 107 | } 108 | 109 | 110 | ### 111 | ### Quickly add a shell script 112 | ### 113 | run() { 114 | if [ ! -d "${HOME}/tmp" ]; then 115 | mkdir -p "${HOME}/tmp" 116 | fi 117 | 118 | if [ ! -f "${HOME}/tmp/run.sh" ]; then 119 | echo "#!/bin/sh" > ${HOME}/tmp/run.sh 120 | echo "" >> ${HOME}/tmp/run.sh 121 | echo "" >> ${HOME}/tmp/run.sh 122 | echo "echo \"test\"" >> ${HOME}/tmp/run.sh 123 | echo "" >> ${HOME}/tmp/run.sh 124 | echo "exit 0" >> ${HOME}/tmp/run.sh 125 | fi 126 | 127 | chmod +x "${HOME}/tmp/run.sh" 128 | cd "${HOME}/tmp/" 129 | vim "run.sh" 130 | ./run.sh 131 | } 132 | -------------------------------------------------------------------------------- /bash/bashrc: -------------------------------------------------------------------------------- 1 | # 2 | # @file: ~/.bashrc 3 | # @invoker: Non-login shell 4 | # @see: https://unix.stackexchange.com/questions/38175 5 | # 6 | # ~/.bashrc: executed by bash(1) for non-login shells. 7 | # 8 | 9 | 10 | ### 11 | ### If not running interactively, don't do anything 12 | ### 13 | case $- in 14 | *i*) ;; 15 | *) exit;; 16 | esac 17 | 18 | 19 | ################################################################################ 20 | ### 21 | ### Session specific settings 22 | ### 23 | ################################################################################ 24 | 25 | ### 26 | ### Global tab size 27 | ### 28 | ### Set tab width system wide to 4 spaces (instead 8) 29 | ### @see man tabs 30 | ### 31 | tabs -4 > /dev/null 32 | 33 | 34 | ### 35 | ### Append to the history file, don't overwrite it 36 | ### 37 | shopt -s histappend 38 | 39 | 40 | ### 41 | ### Check the window size after each command and, if necessary, 42 | ### update the values of LINES and COLUMNS. 43 | ### 44 | shopt -s checkwinsize 45 | 46 | 47 | ### 48 | ### Enable programmable completion features (you don't need to enable 49 | ### this, if it's already enabled in /etc/bash.bashrc and /etc/profile 50 | ### sources /etc/bash.bashrc). 51 | ### 52 | if ! shopt -oq posix; then 53 | if [ -f /usr/share/bash-completion/bash_completion ]; then 54 | . /usr/share/bash-completion/bash_completion 55 | elif [ -f /etc/bash_completion ]; then 56 | . /etc/bash_completion 57 | fi 58 | fi 59 | 60 | 61 | 62 | ################################################################################ 63 | ### 64 | ### Includes 65 | ### 66 | ################################################################################ 67 | 68 | ### 69 | ### Source non-login shell config files 70 | ### 71 | if [ -d "${XDG_CONFIG_HOME}/bash/bashrc.d/" ]; then 72 | for f in ${XDG_CONFIG_HOME}/bash/bashrc.d/*.bash ; do 73 | . "${f}" 74 | done 75 | fi 76 | 77 | # 1Only search for text-files with 1FZF1 78 | #export 1FZF1_DEFAULT_COMMAND=' ag -0 --ignore-case --ignore .git --ignore .svn --ignore .hg --ignore .DS_Store --ignore "**/*.pyc" --nocolor --hidden --nogroup -g "" 2>/dev/null | xargs -0 grep -Il "" 2>/dev/null' 79 | ##export 1FZF1_DEFAULT_COMMAND='ag --hidden --ignore .git -g ""' 80 | ##export FZF_DEFAULT_COMMAND='rg --files --no-ignore --hidden --follow --glob "!.git/*"' 81 | #export 1FZF1_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND" 82 | 83 | 84 | 85 | ################################################################################ 86 | ### 87 | ### TMUX 88 | ### 89 | ################################################################################ 90 | 91 | # Start tmux for every new terminal 92 | if [[ -z "${TMUX}" ]] ;then 93 | # get the id of a deattached session 94 | SESS_ID="$( tmux ls | grep -vm1 attached | cut -d: -f1 )" 95 | 96 | # if not available create a new one 97 | if [[ -z "${SESS_ID}" ]] ;then 98 | exec tmux -2 -u new-session 99 | # if detached session available attach to it 100 | else 101 | exec tmux -2 -u attach-session -t "${SESS_ID}" 102 | fi 103 | fi 104 | -------------------------------------------------------------------------------- /tmux/config/tmux-keys.conf: -------------------------------------------------------------------------------- 1 | ######################################################################## 2 | # Tmux key bindings 3 | ######################################################################## 4 | 5 | ### 6 | ### Documentation 7 | ### 8 | 9 | # https://github.com/tmux-plugins/tmux-sensible 10 | 11 | 12 | 13 | ### 14 | ### Change Prefix Key 15 | ### 16 | # C-b is not acceptable -- Vim uses it 17 | # C-a is not acceptable -- Screen uses it 18 | # C-s is OK 19 | unbind C-b 20 | set -g prefix C-s 21 | bind C-s send-prefix 22 | 23 | # Goto last used window (Ctrl+s Ctrl+s) 24 | #bind-key C-s last-window 25 | 26 | # Nested Tmux Session 27 | # Allows us to use C-s s to send commands 28 | # to a TMUX session inside another TMUX session 29 | #bind-key s send-prefix 30 | 31 | # Clear screen and scrollback history 32 | # Ctrl + l 33 | bind-key -n C-l send-keys C-l \; run 'tmux clear-history' 34 | 35 | # Reload config file + 36 | bind-key r source-file ~/.tmux.conf \; display-message "Config reloaded in ~/.config/tmux/tmux.conf ..." 37 | 38 | # renumber windows manually 39 | # https://github.com/jasoncodes/dotfiles/blob/master/config/tmux.conf 40 | bind-key R set renumber-windows on\; new-window\; kill-window\; set renumber-windows off\; display 'Renumbered' 41 | 42 | 43 | 44 | ######################################################################## 45 | # Keybindings (Vim Style) 46 | ######################################################################## 47 | 48 | # Xterm Behavior 49 | # TODO: check what it does 50 | # enable shell hotkeys C-left/C-right 51 | # http://sigizmund.com/tmux-and-c-leftc-right/ 52 | set-window-option -g xterm-keys on 53 | 54 | 55 | # vim keys in command prompt 56 | # TODO: check if emacs is better 57 | set-option -g status-keys vi 58 | 59 | # Select Panes 60 | bind-key k select-pane -U 61 | bind-key h select-pane -L 62 | bind-key j select-pane -D 63 | bind-key l select-pane -R 64 | 65 | # Cycle Windows/Panes (no prefix) 66 | # note: weechat was using + so it didnt work in tmux 67 | #bind-key -n M-k select-pane -t :.- # prev pane 68 | #bind-key -n M-j select-pane -t :.+ # next pane 69 | #bind-key -n M-h select-window -t :- # previous window 70 | #bind-key -n M-l select-window -t :+ # next window 71 | # note: +l to clear terminal didn' work anymore 72 | #bind-key -n C-k select-pane -t :.- # prev pane 73 | #bind-key -n C-j select-pane -t :.+ # next pane 74 | #bind-key -n C-h select-window -t :- # previous window 75 | #bind-key -n C-l select-window -t :+ # next window 76 | 77 | 78 | 79 | # Resize Panes 80 | bind-key -r J resize-pane -D 1 81 | bind-key -r K resize-pane -U 1 82 | bind-key -r H resize-pane -L 1 83 | bind-key -r L resize-pane -R 1 84 | 85 | # Better Pane Split Bindings 86 | bind-key \\ split-window -h # vertical split 87 | bind-key - split-window -v # horizontal split 88 | 89 | # Move pane left/right 90 | bind-key -r "<" swap-window -t -1 91 | bind-key -r ">" swap-window -t +1 92 | 93 | # Explicit confirmation when killing window/pane; by default is set to ask 94 | # http://unix.stackexchange.com/a/30283 95 | bind-key & confirm-before -p "kill window #W? (y/n)" kill-window 96 | bind-key x confirm-before -p "kill pane #W? (y/n)" kill-pane 97 | 98 | 99 | # Sync panes - send what you're typing to other panes. 100 | bind-key C-s set-window-option synchronize-panes 101 | 102 | 103 | 104 | 105 | 106 | -------------------------------------------------------------------------------- /compton/compton.conf: -------------------------------------------------------------------------------- 1 | ############################################################ 2 | # Backend 3 | ############################################################ 4 | 5 | # Fix current bug on XFT font lag 6 | # https://wiki.archlinux.org/index.php/Compton#Lag_when_using_xft_fonts 7 | # https://github.com/chjj/compton/issues/152 8 | #xrender-sync = true; 9 | #xrender-sync-fence = true; 10 | 11 | # Backend to use: "xrender" or "glx". 12 | # GLX backend is typically much faster but depends on a sane driver. 13 | backend = "glx"; 14 | #backend = "xrender"; 15 | 16 | ### 17 | ### TODO: bnchmark with agar.io CPU usage 18 | ### 19 | 20 | ############################################################ 21 | # Vsync 22 | ############################################################ 23 | 24 | # vsync guide 25 | # https://github.com/chjj/compton/wiki/vsync-guide 26 | # opengl-swc or opengl-mswc 27 | #vsync = "opengl-swc"; 28 | #vsync = "drm"; 29 | 30 | 31 | ############################################################ 32 | # GLX backend 33 | ############################################################ 34 | 35 | # May have either positive or negative effect on performance. 36 | # Most compositors paints on the overlay windows nowadays, though. 37 | #paint-on-overlay = true; 38 | 39 | # Usually increases performance quite significantly (around 15%). 40 | # Its only problem I currently know is a theoretical risk of repainting 41 | # a single area for multiple times. I have never seen this happening, however. 42 | #glx-no-stencil = true; 43 | 44 | 45 | 46 | # has an effect very similar with --glx-use-copysubbuffermesa, 47 | # so they shouldn’t be enabled together. 48 | # There are 3 possible values, undefined, exchange, and copy. 49 | # 'copy' is the fastest, but it doesn’t work with most drivers 50 | # (in particular, it won’t work with "Allow Flipping" on in your driver configuration). 51 | # 'exchange' is slightly slower, but works if the driver is indeed using 52 | # exchange buffer swap with 2 buffers only. 53 | # 'undefined' is the slowest one, and the default value. 54 | #glx-swap-method = "undefined"; 55 | 56 | # is similar in effect with --glx-use-copysubbuffermesa and --glx-swap-method, 57 | # so only one of the three should be used. 58 | # It generally performs much worse than 59 | # --glx-use-copysubbuffermesa and --glx-swap-method. 60 | #glx-copy-from-front = true; 61 | 62 | # should work on most drivers (except LLVMpipe), 63 | # and is useful if you have a window with content rapidly changing. 64 | #glx-no-rebind-pixmap = true; 65 | 66 | 67 | 68 | ## Soften the window and workspace changes 69 | #fading = true; 70 | #fade-in-step = 0.1; 71 | #fade-out-step = 0.1; 72 | 73 | # shadow ransparency 74 | #shadow-opacity = 0.5; 75 | #shadow-red = 0.0; 76 | #shadow-green = 0.0; 77 | #shadow-blue = 0.0; 78 | 79 | 80 | ## transparent borders are pretty okay 81 | #frame-opacity = 0.5; 82 | 83 | ## Keep the shadows tight 84 | #shadow = true; 85 | #shadow-radius = 4; 86 | #shadow-offset-x = -2; 87 | #shadow-offset-y = -2; 88 | #no-dock-shadow = true; 89 | #no-dnd-shadow = true; 90 | #shadow-exclude = [ 91 | # "name = 'noshadow'", 92 | # "class_g = 'lemonbar'" 93 | #]; 94 | 95 | 96 | 97 | ## Extras 98 | #use-ewmh-active-win = false; 99 | detect-client-opacity = true; 100 | #sw-opti = true; 101 | detect-transient = true; 102 | detect-client-leader = true; 103 | #shadow-ignore-shaped = true; 104 | #detect-rounded-corners = true; 105 | -------------------------------------------------------------------------------- /bash/config/bashrc.d/alias-ctags.bash: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | ### 3 | ### CTAGs configuration 4 | ### 5 | ################################################################################ 6 | 7 | 8 | 9 | ### 10 | ### cscope 11 | ### 12 | #make-cscope() { 13 | # find . \ 14 | # -type d '(' -name .svn -o -name .git ')' -prune -o \ 15 | # -type f '(' -name tags ')' -prune -o \ 16 | # -type f -print > cscope.files 17 | # 18 | # # -b: just build 19 | # # -q: create inverted index 20 | # cscope -b -q 21 | #} 22 | 23 | 24 | 25 | ### 26 | ### ctags (general) 27 | ### 28 | make-ctags() { 29 | test -d ".ctags" || mkdir ".ctags" 30 | ctags -RBF -f .tags \ 31 | --file-scope=yes \ 32 | --sort=yes \ 33 | --extra=+fq \ 34 | 2>/dev/null 35 | } 36 | 37 | ### 38 | ### ctags (for CSS) 39 | ### 40 | make-ctags-css() { 41 | test -d ".ctags" || mkdir ".ctags" 42 | ctags -R -f .ctags/css \ 43 | --file-scope=yes \ 44 | --sort=yes \ 45 | --languages=css \ 46 | 2>/dev/null 47 | } 48 | 49 | ### 50 | ### ctags (for JavaScript) 51 | ### 52 | make-ctags-js() { 53 | test -d ".ctags" || mkdir ".ctags" 54 | ctags -R -f .ctags/js \ 55 | --file-scope=yes \ 56 | --sort=yes \ 57 | --languages=JavaScript \ 58 | 2>/dev/null 59 | } 60 | 61 | ### 62 | ### ctags (for HTML) 63 | ### 64 | make-ctags-html() { 65 | test -d ".ctags" || mkdir ".ctags" 66 | ctags -R -f .ctags/html \ 67 | --file-scope=yes \ 68 | --sort=yes \ 69 | --languages=HTML \ 70 | 2>/dev/null 71 | } 72 | 73 | ### 74 | ### ctags (for Markdown) 75 | ### 76 | make-ctags-md() { 77 | test -d ".ctags" || mkdir ".ctags" 78 | ctags -R -f .ctags/md \ 79 | --file-scope=yes \ 80 | --sort=yes \ 81 | --langdef=markdown \ 82 | --langmap=markdown:.md \ 83 | --regex-markdown="/^#[ \t](.*$)/\1/h,heading,headings/" \ 84 | 2>/dev/null 85 | } 86 | 87 | ### 88 | ### ctags (for PHP) 89 | ### 90 | make-ctags-php() { 91 | test -d ".ctags" || mkdir ".ctags" 92 | ctags -R -f .ctags/php \ 93 | --file-scope=yes \ 94 | --sort=yes \ 95 | --fields=+afikKlmnsSzt \ 96 | --languages=PHP \ 97 | --extra=+fq \ 98 | 2>/dev/null 99 | } 100 | 101 | ### 102 | ### ctags (for SQL) 103 | ### 104 | make-ctags-sql() { 105 | test -d ".ctags" || mkdir ".ctags" 106 | ctags -R -f .ctags/sql \ 107 | --file-scope=yes \ 108 | --sort=yes \ 109 | --languages=SQL \ 110 | --extra=+fq \ 111 | 2>/dev/null 112 | } 113 | 114 | ### 115 | ### ctags (for Shell) 116 | ### 117 | make-ctags-shell() { 118 | test -d ".ctags" || mkdir ".ctags" 119 | ctags -R -f .ctags/sh \ 120 | --file-scope=yes \ 121 | --sort=yes \ 122 | --languages=SH \ 123 | 2>/dev/null 124 | } 125 | 126 | ### 127 | ### ctags (for C++) 128 | ### 129 | make-ctags-cpp() { 130 | test -d ".ctags" || mkdir ".ctags" 131 | ctags -R -f .ctags/cpp \ 132 | --file-scope=yes \ 133 | --sort=yes \ 134 | --c++-kinds=+p \ 135 | --fields=+iaS \ 136 | --extra=+q \ 137 | 2>/dev/null 138 | } 139 | 140 | ### 141 | ### ctags (gobal c/c++ sources for vim) 142 | ### 143 | make-ctags-global() { 144 | 145 | local dest="${HOME}/.vim/ctags" 146 | 147 | # create tags dir if it does not exist 148 | if [ ! -d "${dest}" ]; then 149 | mkdir -p "${dest}" 150 | fi 151 | 152 | ctags \ 153 | -R \ 154 | --file-scope=yes \ 155 | --sort=yes \ 156 | --c++-kinds=+p \ 157 | --fields=+iaS \ 158 | --extra=+q \ 159 | --language-force=C++ \ 160 | -f "${dest}/cpp" /usr/include/ 161 | } 162 | 163 | -------------------------------------------------------------------------------- /tmux/config/tmux-layouts.conf: -------------------------------------------------------------------------------- 1 | ######################################################################## 2 | # Layout Presets 3 | ######################################################################## 4 | 5 | # demo video: http://www.youtube.com/watch?v=sxw-n5Du600 6 | # http://amjith.blogspot.com/2011/08/scripting-tmux-layouts.html 7 | # http://unix.stackexchange.com/a/17118 8 | # -v = split horizontal 9 | # -h = split veritical 10 | 11 | # - Work 12 | bind-key M-w new-window -n work -c $HOME \; \ 13 | split-window -v -p 50 -t 1 \; \ 14 | split-window -h -p 50 -t 1 \; \ 15 | split-window -h -p 50 -t 2 \; \ 16 | select-pane -t 2 17 | 18 | # - Chat 19 | bind-key M-c new-window -n chat -c $HOME \; \ 20 | send-keys 'centerim5' 'Enter' \; \ 21 | split-window -v -p 50 -t 1 \; \ 22 | send-keys 'weechat-curses' 'Enter' \; \ 23 | split-window -h -p 50 -t 1 \; \ 24 | send-keys 'turses' 'Enter' \; \ 25 | select-pane -t 2 26 | 27 | # - Torrent 28 | bind-key M-t new-window -n torrent -c $HOME \; \ 29 | send-keys 'ranger ~/Videos' 'Enter' \; \ 30 | split-window -v -p 50 -t 1 \; \ 31 | send-keys 'clear && figlet Torrent Search' 'Enter' \; \ 32 | split-window -h -p 50 -t 1 \; \ 33 | send-keys 'clear && trz' 'Enter' \; \ 34 | split-window -h -p 50 -t 2 \; \ 35 | send-keys 'if pidof -x transmission-daemon;then echo on;else transmission-daemon; fi && sleep 3 && transmission-remote-cli' 'Enter' \; \ 36 | select-pane -t 2 37 | 38 | # - Music 39 | bind-key M-m new-window -n music -c $HOME \; \ 40 | send-keys 'cmus' 'Enter' \; \ 41 | split-window -v -p 50 -t 1 \; \ 42 | send-keys 'clear && figlet yt-listen shoutcast mp3skull' 'Enter' \; \ 43 | split-window -h -p 50 -t 1 \; \ 44 | send-keys 'clear && yt-music' 'Enter' \; \ 45 | split-window -h -p 50 -t 2 \; \ 46 | send-keys 'clear && figlet pyRadio NVLC' 'Enter' \; \ 47 | select-pane -t 2 48 | 49 | # - Stats 50 | # t(): http://vimeo.com/3263629 51 | bind-key M-s new-window -n stats -c $HOME \; \ 52 | send-keys 'htop' 'Enter' \; \ 53 | split-window -v -p 50 -t 1 \; \ 54 | send-keys 'clear && figlet Freespace' 'Enter' \; \ 55 | split-window -h -p 50 -t 1 \; \ 56 | send-keys 't lsp | less' 'Enter' \; \ 57 | split-window -h -p 50 -t 2 \; \ 58 | send-keys 'df' 'Enter' \; \ 59 | select-pane -t 2 60 | 61 | # - News 62 | bind-key M-n new-window -n news -c $HOME \; \ 63 | send-keys 'newsbeuter' 'Enter' \; \ 64 | split-window -v -p 50 -t 1 \; \ 65 | send-keys 'clear && figlet Freespace' 'Enter' \; \ 66 | split-window -h -p 50 -t 1 \; \ 67 | send-keys 'hacker_top' 'Enter' \; \ 68 | split-window -h -p 50 -t 2 \; \ 69 | send-keys 'reddit_top -s linux' 'Enter' \; \ 70 | select-pane -t 2 71 | 72 | # - Bitcoins 73 | bind-key M-b new-window -n bitcoins -c $HOME \; \ 74 | send-keys 'reddit_top -s Bitcoin -u -U -i 1m' 'Enter' \; \ 75 | split-window -v -p 50 -t 1 \; \ 76 | send-keys 'reddit_top -s Bitcoin -u -U -n 1m' 'Enter' \; \ 77 | split-window -h -p 50 -t 1 \; \ 78 | send-keys 'reddit_top -s BitcoinMarkets -u -U 1m' 'Enter' \; \ 79 | split-window -h -p 50 -t 2 \; \ 80 | send-keys 'reddit_top -s BitcoinMarkets -u -U -n 1m' 'Enter' \; \ 81 | select-pane -t 2 82 | 83 | # - Video 84 | bind-key M-v new-window -n video -c $HOME \; \ 85 | send-keys 'ranger ~/Videos' 'Enter' \; \ 86 | split-window -v -p 50 -t 1 \; \ 87 | send-keys 'clear && figlet youtube-viewer' 'Enter' \; \ 88 | split-window -h -p 50 -t 1 \; \ 89 | send-keys 'clear && figlet rtmpdump' 'Enter' \; \ 90 | split-window -h -p 50 -t 2 \; \ 91 | send-keys 'clear && figlet Freespace' 'Enter' \; \ 92 | select-pane -t 2 93 | 94 | -------------------------------------------------------------------------------- /tmux/tmux.conf: -------------------------------------------------------------------------------- 1 | ######################################################################## 2 | # Tmux default config 3 | ######################################################################## 4 | 5 | # How to use tmux demo video: http://www.youtube.com/watch?v=ZNM1KfqpyGo 6 | # https://gist.github.com/1147532 7 | # http://crunchbanglinux.org/forums/post/236199/ 8 | # https://gist.github.com/adinapoli/4723872 9 | 10 | 11 | 12 | ### 13 | ### Default behaviour 14 | ### 15 | 16 | # Turn on UTF-8. (No longer necessary) 17 | #set -g status-utf8 on 18 | #set -g utf8 on 19 | 20 | 21 | ### 22 | ### Do not start a login shell 23 | ### 24 | set -g default-command "${SHELL}" 25 | 26 | 27 | # Allows for faster key repetition. 28 | # Lowers the delay time between the prefix key and other keys 29 | # address vim mode switching delay (http://superuser.com/a/252717/65504) 30 | set -sg escape-time 0 31 | 32 | 33 | # Increase scrollback history. 34 | set -g history-limit 50000 35 | 36 | 37 | # Enable 256 color terminal. 38 | # http://blog.sanctum.geek.nz/256-colour-terminals/ 39 | set -g default-terminal "screen-256color" 40 | 41 | # tell Tmux that outside terminal supports true color (for NeoVim) 42 | set -ga terminal-overrides ",*256col*:Tc" 43 | 44 | 45 | # Focus events enabled for terminals that support them. 46 | set -g focus-events on 47 | 48 | 49 | # Rather than constraining window size to the maximum size of any client 50 | # connected to the *session*, constrain window size to the maximum size of any 51 | # client connected to *that window*. 52 | # Super useful when using "grouped sessions" and multi-monitor setup 53 | setw -g aggressive-resize on 54 | 55 | 56 | 57 | ### 58 | ### Window / Pane Settings 59 | ### 60 | 61 | # Start Window index (Tabs) at 1 instead of 0 62 | set -g base-index 1 63 | 64 | # Start Panes at 1 insteaad of 0 65 | setw -g pane-base-index 1 66 | 67 | # Renumber windows sequentially after closing any of them 68 | # https://github.com/thoughtbot/dotfiles/blob/master/tmux.conf 69 | set -g renumber-windows on 70 | 71 | # Set Auto Rename of Windows base on command 72 | # note: ohmyzsh users commet out DISABLE_AUTO_TITLE=true from zshrc to disable autorename 73 | # http://superuser.com/questions/306028/tmux-and-zsh-custom-prompt-bug-with-window-name 74 | setw -g automatic-rename on 75 | 76 | ### 77 | ### Source configs 78 | ### 79 | source-file ~/.config/tmux/tmux-keys.conf 80 | source-file ~/.config/tmux/tmux-layouts.conf 81 | source-file ~/.config/tmux/tmux-mouse.conf 82 | source-file ~/.config/tmux/tmux-statusbar.conf 83 | source-file ~/.config/tmux/tmux-titlebar.conf 84 | source-file ~/.config/tmux/tmux-yank.conf 85 | 86 | source-file ~/.config/tmux/tmux-colors.conf 87 | 88 | ### 89 | ### Source plugins 90 | ### 91 | 92 | 93 | # prefix + u Display window with available URL's 94 | run-shell ~/.config/tmux/plugins/tmux-urlview/urlview.tmux 95 | 96 | 97 | # prefix + / Regex search (strings work too) 98 | # prefix + ctrl-f Simple file search 99 | # prefix + ctrl-g Jumping over git status files (best used after git status command) 100 | # prefix + alt-h Jumping over SHA-1 hashes (best used after git log command) 101 | # prefix + ctrl-u Url search (http, ftp and git urls) 102 | # prefix + ctrl-d Number search (mnemonic d, as digit) 103 | # prefix + alt-i Ip address search 104 | run-shell ~/.config/tmux/plugins/tmux-copycat/copycat.tmux 105 | 106 | # o Open a highlighted selection with the system default program. open for OS X or xdg-open for Linux. 107 | # Ctrl-o Open a highlighted selection with the $EDITOR 108 | run-shell ~/.config/tmux/plugins/tmux-open/open.tmux 109 | 110 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # dotfiles 2 | 3 | **[TL;DR](#tldr)** | 4 | **[What is included?](#what-is-included)** | 5 | **[How to apply?](#how-to-apply)** | 6 | **[Screenshots](#screenshots)** 7 | 8 | These are all of my personal hand-crafted and non-bloated dotfiles I use at home as well as at work. 9 | 10 | Before applying my dotfiles on an untouched system, I provision it in one go with **[ansible-debian](https://github.com/cytopia/ansible-debian)**. 11 | 12 | 13 | ## TL;DR 14 | ```bash 15 | $ ./install.sh 16 | ``` 17 | 18 | 19 | ## What is included? 20 | 21 | | dotfile | description | 22 | |-----------|-------------| 23 | | [autorunner](https://github.com/cytopia/autorunner) | Configurable and notification aware autostart helper | 24 | | [bash](https://www.gnu.org/software/bash) | Shell configuration files | 25 | | [compton](https://github.com/chjj/compton) | Compositor for Xorg | 26 | | [ctags](http://ctags.sourceforge.net) | Generate tag files for source code. Integrates well into vim and neovim | 27 | | [dunst](https://dunst-project.org) | Notification manager for i3-wm | 28 | | [git](https://git-scm.com) | gitconfig | 29 | | [gnupg](https://gnupg.org) | gnupg configuration | 30 | | [gtk](https://www.gtk.org) | GTK 2.0 and GTK 3.0 theme configuration | 31 | | [i3](https://i3wm.org) | i3 / i3-gaps configuration | 32 | | [i3blocks](https://github.com/vivien/i3blocks) | i3blocks (status bar for i3) configuration | 33 | | [neovim](https://neovim.io) | The last editor | 34 | | [profanity](http://www.profanity.im) | Console based XMPP client | 35 | | [qt](https://www.qt.io) | QT theme configuration | 36 | | [readline](https://tiswww.case.edu/php/chet/readline/rltop.html) | Terminal key configuration | 37 | | [redshift](http://jonls.dk/redshift) | Turns the screen red when working during night. Keeps your eyes intact | 38 | | [sublime](https://www.sublimetext.com) | Fast gui-based editor | 39 | | [sxiv](https://github.com/muennich/sxiv) | Small, fast and low-dependency image viewer with vim binding | 40 | | [thunar](https://docs.xfce.org/xfce/thunar/start) | Gui-based and leight-weight file explorer | 41 | | [tmux](https://github.com/tmux/tmux) | Terminal multiplexer | 42 | | [X11](https://www.x.org/wiki) | X11 configuration files (Xresources, Xmodmap, xinitrc and xsession).
They also configure dpi, fonts, colors, rofi and urxvt | 43 | | [xdg](https://specifications.freedesktop.org/mime-apps-spec) | Sets my prefered default applications | 44 | | [zathura](https://pwmt.org/projects/zathura) | Small, fast and low-dependency pdf viewer with vim bindings | 45 | 46 | 47 | ## How to apply? 48 | Running `install.sh` will just symlink every configuration file from this repository to its respective location. Before doing so it will take care about confirmation and backups. 49 | 50 | 1. Each symlink must be confirmed and can be skipped 51 | 2. Backing up the currently existing config file to `~/dotfiles-backup_/` 52 | 53 | ```bash 54 | # Install with confirmation 55 | $ ./install.sh 56 | 57 | Symlink bash? (Y/n) 58 | Symlink compton? (Y/n) 59 | Symlink ctags? (Y/n) 60 | Symlink dunst? (Y/n) 61 | ... 62 | ``` 63 | 64 | You can also run everything without confirmation by supplying `-y` argument to the `install.sh` script. 65 | ```bash 66 | # Install without confirmation and always assume yes 67 | $ ./install.sh -y 68 | ``` 69 | 70 | 71 | ## Screenshots 72 | 73 | #### Rofi 74 | [![screenshot](.github/screenshot-01.jpg)](.github/screenshot-01.jpg) 75 | 76 | #### urxvt 77 | [![screenshot](.github/screenshot-02.jpg)](.github/screenshot-02.jpg) 78 | 79 | #### Thunar 80 | [![screenshot](.github/screenshot-03.jpg)](.github/screenshot-03.jpg) 81 | 82 | #### Neovim 83 | [![screenshot](.github/screenshot-04.jpg)](.github/screenshot-04.jpg) 84 | 85 | #### Sublime Text 3 86 | [![screenshot](.github/screenshot-05.jpg)](.github/screenshot-05.jpg) 87 | 88 | #### Gimp & LibreOffice 89 | [![screenshot](.github/screenshot-06.jpg)](.github/screenshot-06.jpg) 90 | -------------------------------------------------------------------------------- /i3blocks/config: -------------------------------------------------------------------------------- 1 | # i3blocks config file 2 | # 3 | # Please see man i3blocks for a complete reference! 4 | # The man page is also hosted at http://vivien.github.io/i3blocks 5 | # 6 | # Custom modules can be found at: https://github.com/cytopia/i3blocks-modules 7 | # 8 | # List of valid properties: 9 | # 10 | # align 11 | # color 12 | # background 13 | # border 14 | # command 15 | # full_text 16 | # instance 17 | # interval 18 | # label 19 | # min_width 20 | # name 21 | # separator 22 | # separator_block_width 23 | # short_text 24 | # signal 25 | # urgent 26 | 27 | 28 | ### 29 | ### Global properties 30 | ### 31 | ### The top properties below are applied to every block, but can be overridden. 32 | ### Each block command defaults to the script name to avoid boilerplate. 33 | command=$SCRIPT_DIR/$BLOCK_NAME 34 | separator_block_width=25 35 | markup=pango 36 | 37 | 38 | ### 39 | ### Modules defines 40 | ### 41 | [cpu] 42 | command=~/.local/share/i3blocks-modules/modules/cpu -tw '{percent}' '>' '60' -tc '{percent}' '>' '80' 43 | interval=2 44 | 45 | [cputemp] 46 | command=~/.local/share/i3blocks-modules/modules/cputemp -tw '{temp}' '>' 75 -tc '{temp}' '>' 90 47 | instance=Core 0 48 | interval=2 49 | 50 | [memory] 51 | command=~/.local/share/i3blocks-modules/modules/memory -f ' {used} {uunit}B' -tw '{pfree}' '<' 30 -tc '{pfree}' '<' 15 52 | interval=10 53 | 54 | [disk] 55 | command=~/.local/share/i3blocks-modules/modules/disk -f ' {used}/{total} {uunit}B' -tc '{pfree}' '<' 20 -tc '{pfree}' '<' 10 56 | instance=/ 57 | interval=60 58 | 59 | # Requires internet 60 | [eth] 61 | command=~/.local/share/i3blocks-modules/modules/ethereum -f 'E {usd}$' -tc '{usd}' '<' 380 62 | interval=180 63 | 64 | # Requires internet 65 | [bch] 66 | command=~/.local/share/i3blocks-modules/modules/bitcoincash -f 'BC {usd}$' -tc '{usd}' '<' 665 67 | interval=180 68 | 69 | # Requires internet 70 | [btc] 71 | command=~/.local/share/i3blocks-modules/modules/bitcoin -f ' {eur}€' -tc '{eur}' '<' 4470 72 | instance=bitcoin.de 73 | interval=180 74 | 75 | # Requires internet 76 | [online] 77 | command=~/.local/share/i3blocks-modules/modules/online 78 | interval=2 79 | 80 | [wifi] 81 | command=~/.local/share/i3blocks-modules/modules/wifi -fe '{status}' '=' 'up' ' {ssid} ({quality}%)' -fe '{status}' '!=' 'up' ' down' 82 | instance=wlp0s20f3 83 | interval=2 84 | 85 | [iface] 86 | command=~/.local/share/i3blocks-modules/modules/iface -f ' {status}' -fe '{status}' '=' 'down|absent' '' 87 | instance=enp0s31f6 88 | interval=2 89 | 90 | [battery] 91 | command=~/.local/share/i3blocks-modules/modules/battery -fe '{percent}' '<' 90 ' {percent}% ({time})' -fe '{percent}' '<' 75 ' {percent}% ({time})' -fe '{percent}' '<' 60 ' {percent}% ({time})' -fe '{percent}' '<' 35 ' {percent}% ({time})' -fe '{percent}' '<' 5 ' {percent}% ({time})' -fe '{status}' '=' '^charging' '⚡ {percent}% ({time})' -fe '{status}' '=' 'full' '⚡ {percent}%' -tg '{status}' '=' 'full' -tg '{percent}' '=' 100 -ti '{status}' '=' '^charging' -tw '{percent}' '<' 30 -tc '{percent}' '<' 5 92 | instance=Battery 0 93 | interval=2 94 | 95 | [backlight] 96 | command=~/.local/share/i3blocks-modules/modules/backlight 97 | instance=intel_backlight 98 | interval=2 99 | 100 | [volume] 101 | command=~/.local/share/i3blocks-modules/modules/volume -f "{icon} {volume}%" -id "🔊" -im "🔇" -fe '{port}' '=' 'headphone' '{icon}  {volume}%' -fe '{dev_bus}' '=' 'bluetooth' '{icon}  {volume}%' -tw '{muted}' '=' 'yes' 102 | interval=1 103 | 104 | # Requires internet 105 | [weather] 106 | command=~/.local/share/i3blocks-modules/modules/weather 107 | instance=Berlin 108 | interval=180 109 | 110 | [date] 111 | command=~/.local/share/i3blocks-modules/modules/date -f " {time}" -t "(%V) %a, %d.%m.%Y" -tg '{time}' '=' '.*(Sat|Sun).*' 112 | interval=60 113 | 114 | [time] 115 | command=~/.local/share/i3blocks-modules/modules/date -f " {time}" -t "%H:%M" -tw '{time}' '=' '^23.*' -tc '{time}' '=' '^0(0|1|2|3).*' 116 | interval=60 117 | -------------------------------------------------------------------------------- /gnupg/gpg.conf: -------------------------------------------------------------------------------- 1 | # https://www.gnupg.org/documentation/manuals/gnupg/GPG-Configuration-Options.html 2 | # https://www.gnupg.org/documentation/manuals/gnupg/GPG-Input-and-Output.html 3 | # https://www.gnupg.org/documentation/manuals/gnupg/OpenPGP-Options.html 4 | # https://www.gnupg.org/documentation/manuals/gnupg/Compliance-Options.html 5 | # https://www.gnupg.org/documentation/manuals/gnupg/GPG-Esoteric-Options.html 6 | # https://www.gnupg.org/documentation/manuals/gnupg/Deprecated-Options.html 7 | 8 | #------------------------------------------------------------ 9 | # Behaviour 10 | #------------------------------------------------------------ 11 | 12 | # Try to use the GnuPG-Agent. With this option, GnuPG first tries to connect to 13 | # the agent before it asks for a passphrase. 14 | use-agent 15 | 16 | # Suppress the initial copyright message. 17 | no-greeting 18 | 19 | # Disable inclusion of the version string in ASCII armored output 20 | # Force inclusion of the version string in ASCII armored output. 21 | # * If given once only the name of the program and the major number is emitted, 22 | # * given twice the minor is also emitted, 23 | # * given thrice the micro is added, 24 | # * and given four times an operating system identification is also emitted 25 | no-emit-version 26 | 27 | # Disable comment string in clear text signatures and ASCII armored messages 28 | no-comments 29 | 30 | # automatic key retrieval: only from local machine 31 | auto-key-locate local 32 | 33 | 34 | #------------------------------------------------------------ 35 | # Display 36 | #------------------------------------------------------------ 37 | 38 | # Display long key IDs 39 | keyid-format 0xlong 40 | 41 | # List all keys (or the specified ones) along with their fingerprints 42 | with-fingerprint 43 | 44 | 45 | #------------------------------------------------------------ 46 | # Encoding 47 | #------------------------------------------------------------ 48 | 49 | # Assume that command line arguments are given as UTF-8 strings. 50 | utf8-strings 51 | 52 | # Set the name of the native character set. 53 | # This is used to convert some informational strings like user IDs to the proper UTF-8 encoding. 54 | display-charset utf-8 55 | 56 | 57 | #------------------------------------------------------------ 58 | # Security 59 | #------------------------------------------------------------ 60 | 61 | # Refuse to run if GnuPG cannot get secure memory. Defaults to no (i.e. run, but give a warning). 62 | require-secmem 63 | 64 | # When verifying a signature made from a subkey, ensure that the cross certification 65 | # "back signature" on the subkey is present and valid. This protects against a subtle 66 | # attack against subkeys that can sign. Defaults to --require-cross-certification for gpg. 67 | require-cross-certification 68 | 69 | # GnuPG uses a file to store its internal random pool over invocations. 70 | # This makes random generation faster; however sometimes write operations are not desired. 71 | # This option can be used to achieve that with the cost of slower random generation. 72 | no-random-seed-file 73 | 74 | # With –generate-key and –batch, enable the creation of RSA secret keys as large as 8192 bit. 75 | enable-large-rsa 76 | 77 | # Force the use of encryption with a modification detection code. 78 | # This is always used with the newer ciphers (those with a blocksize greater than 64 bits), 79 | # or if all of the recipient keys indicate MDC support in their feature flags. 80 | force-mdc 81 | 82 | 83 | #------------------------------------------------------------ 84 | # Algorithm and Ciphers 85 | #------------------------------------------------------------ 86 | 87 | # List of personal digest preferences. When multiple digests are supported by 88 | # all recipients, choose the strongest one 89 | personal-cipher-preferences AES256 AES192 AES CAST5 90 | 91 | # list of personal digest preferences. When multiple ciphers are supported by 92 | # all recipients, choose the strongest one 93 | personal-digest-preferences SHA512 SHA384 SHA256 SHA224 94 | 95 | personal-compress-preferences Uncompressed 96 | 97 | # message digest algorithm used when signing a key 98 | cert-digest-algo SHA512 99 | 100 | # This preference list is used for new keys and becomes the default for "setpref" in the edit menu 101 | default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 Uncompressed 102 | -------------------------------------------------------------------------------- /bash/config/bashrc.d/alias-commands.bash: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | ### 3 | ### Command Aliases 4 | ### 5 | ################################################################################ 6 | 7 | 8 | 9 | ### 10 | ### Defaults 11 | ### 12 | alias df='df -h' # human readable, print filetype 13 | alias du='du -d1 -h' # max depth, human readable 14 | alias info='info --vi-keys' # GNU info act like man command 15 | alias less='less --IGNORE-CASE --tabs=4 --status-column --LONG-PROMPT --line-numbers --RAW-CONTROL-CHARS' 16 | alias mkdir='mkdir -p -v' # create if not exist, verbose 17 | alias mount='mount | column -t' # align in column 18 | alias wget='wget -c' # continues/resumes 19 | alias ssh="env TERM=xterm-256color ssh" 20 | alias su='su -l' 21 | alias suc='su' 22 | alias tmux="tmux -2 -u" 23 | alias ta="tmux -2 -u attach" 24 | 25 | #alias vi='env TERM=xterm-256color vim' 26 | #alias vim='env TERM=xterm-256color vim' 27 | alias vi='nvim' 28 | alias vim='nvim' 29 | 30 | alias grep=' grep --color=auto --binary-file=without-match' 31 | alias fgrep='fgrep --color=auto --binary-file=without-match' 32 | alias egrep='egrep --color=auto --binary-file=without-match' 33 | alias rgrep='rgrep --color=auto --binary-file=without-match' 34 | 35 | 36 | 37 | ### 38 | ### Safeguard 39 | ### 40 | alias cp='cp -i' 41 | alias ln='ln -i' 42 | alias mv='mv -i' 43 | alias rm='rm -i' 44 | 45 | 46 | ### 47 | ### Shorthands 48 | ### 49 | alias a='alias' 50 | alias h="history" 51 | alias j="jobs -l" 52 | if command -v ranger >/dev/null 2>&1; then 53 | alias r="ranger" 54 | fi 55 | 56 | 57 | ### 58 | ### Geek aliase 59 | ### 60 | alias fuck='sudo $(history -p \!\!)' # Redo last command as root 61 | alias fake="cat /dev/urandom | hexdump -C | grep 'ca fe'" 62 | 63 | 64 | 65 | ### 66 | ### Directory traversal 67 | ### 68 | alias ..="cd .." 69 | alias ...="cd ../.." 70 | alias ....="cd ../../.." 71 | alias .....="cd ../../../.." 72 | alias ......="cd ../../../../.." 73 | 74 | 75 | 76 | ### 77 | ### ls defaults 78 | ### 79 | if command -v gls >/dev/null 2>&1; then # Gnu ls (gls via: brew install coreutils) 80 | 81 | alias l='gls --color=always --group-directories-first --classify -l' 82 | alias ll='gls --color=always --group-directories-first --classify -al' 83 | alias ls='gls --color=always --group-directories-first --classify' 84 | alias la='gls --color=always --group-directories-first --classify -a' 85 | 86 | alias l.='gls --color=always --group-directories-first --classify -l -d .*' 87 | alias la.='gls --color=always --group-directories-first --classify -d .*' 88 | 89 | # sort by time 90 | alias lt='gls --color=always --classify -lt' 91 | alias llt='gls --color=always --classify -alt' 92 | alias lst='gls --color=always --classify -t' 93 | alias lat='gls --color=always --classify -at' 94 | 95 | alias lt.='gls --color=always --classify -lt -d .*' 96 | alias lat.='gls --color=always --classify -t -d .*' 97 | 98 | alias lsg='gls --color=always --group-directories-first --classify -al | grep' 99 | 100 | elif [ "$(uname)" == "Linux" ]; then # Gnu ls (Linux) 101 | 102 | alias l='ls --color=always --group-directories-first --classify -l' 103 | alias ll='ls --color=always --group-directories-first --classify -al' 104 | #alias l='lsl.py --color=always --group-directories-first -l' 105 | #alias ll='lsl.py --color=always --group-directories-first -al' 106 | alias ls='ls --color=always --group-directories-first --classify' 107 | alias la='ls --color=always --group-directories-first --classify -a' 108 | 109 | alias l.='ls --color=always --group-directories-first --classify -l -d .*' 110 | alias la.='ls --color=always --group-directories-first --classify -d .*' 111 | 112 | # sort by time 113 | alias lt='ls --color=always --classify -lt' 114 | alias llt='ls --color=always --classify -alt' 115 | alias lst='ls --color=always --classify -t' 116 | alias lat='ls --color=always --classify -at' 117 | 118 | alias lt.='ls --color=always --classify -lt -d .*' 119 | alias lat.='ls --color=always --classify -t -d .*' 120 | 121 | alias llg='ls --color=always --group-directories-first --classify -al | grep' 122 | 123 | else # Posix ls (OSX/FreeBSD) 124 | 125 | alias l='ls -oFl' 126 | alias ll='ls -oFal' 127 | alias ls='ls -F' 128 | alias la='ls -Fa' 129 | 130 | alias l.='ls -oFl -d .*' 131 | alias la.='ls -F -d .*' 132 | 133 | # sort by time 134 | alias lt='ls -olFt' 135 | alias lat='ls -aFt' 136 | alias llt='ls -laFt' 137 | alias lst='ls -Ft' 138 | 139 | alias lt.='ls -oFlt -d .*' 140 | alias lat.='ls -Ft -d .*' 141 | 142 | alias llg='ls -oFal | grep' 143 | fi 144 | -------------------------------------------------------------------------------- /.lib/functions.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Ask a yes/no question and read users choise 4 | # 5 | # @param string Question to ask 6 | # @param string Default 'Y' or 'N' (or 'F' for not asking and assuming yes) 7 | # @return int 0: yes | 1:no 8 | ask() { 9 | question=$1 10 | 11 | if [ "${2:-}" = "Y" ]; then 12 | prompt="$(tput setaf 3)Y$(tput sgr0)/$(tput setaf 3)n$(tput sgr0)" 13 | default=Y 14 | elif [ "${2:-}" = "N" ]; then 15 | prompt="$(tput setaf 3)y$(tput sgr0)/$(tput setaf 3)N$(tput sgr0)" 16 | default=N 17 | # Force Yes without asking 18 | elif [ "${2:-}" = "F" ]; then 19 | return 0 20 | else 21 | prompt="$(tput setaf 3)y$(tput sgr0)/$(tput setaf 3)n$(tput sgr0)" 22 | default= 23 | fi 24 | 25 | while true; do 26 | 27 | 28 | # /dev/tty for redirection 29 | read -p "$(tput setaf 2)${question} $(tput sgr0)(${prompt})" yn ${to}" 153 | _bind_file "${from}" "${to}" "ln" "${backup}" "sudo" 154 | else 155 | echo " [ln] --> ${to}" 156 | _bind_file "${from}" "${to}" "ln" "${backup}" "" 157 | fi 158 | } 159 | 160 | copy_file() { 161 | from="${1}" 162 | to="${2}" 163 | backup="${3}" 164 | if [ "${#}" = "4" ] && [ "${4}" = "sudo" ]; then 165 | echo "sudo [cp] --> ${to}" 166 | _bind_file "${from}" "${to}" "cp" "${backup}" "sudo" 167 | else 168 | _bind_file "${from}" "${to}" "cp" "${backup}" "s" 169 | echo " [cp] --> ${to}" 170 | fi 171 | } 172 | 173 | -------------------------------------------------------------------------------- /bash/config/bashrc.d/alias-cfg.bash: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | ### 3 | ### System configuration 4 | ### 5 | ################################################################################ 6 | 7 | ### 8 | ### /etc/fstab 9 | ### 10 | cfg-fstab() { 11 | if [ "$(id -u)" == "0" ]; then 12 | ${EDITOR:-vim} /etc/fstab 13 | else 14 | sudo "${EDITOR:-vim}" /etc/fstab; 15 | fi 16 | } 17 | 18 | 19 | ### 20 | ### /etc/hosts 21 | ### 22 | cfg-hosts() { 23 | if [ "$(id -u)" == "0" ]; then 24 | ${EDITOR:-vim} /etc/hosts 25 | else 26 | sudo "${EDITOR:-vim}" /etc/hosts 27 | fi 28 | } 29 | 30 | cfg-xdg-dirs() { 31 | if [ -f ${XDG_CONFIG_HOME}/user-dirs.dirs ]; then 32 | ${EDITOR:-vim} ${XDG_CONFIG_HOME}/user-dirs.dirs 33 | fi 34 | } 35 | 36 | ################################################################################ 37 | ### 38 | ### Bash configuration 39 | ### 40 | ################################################################################ 41 | 42 | ### 43 | ### ~/.bashrc 44 | ### 45 | if [ -f "${HOME}/.bashrc" ]; then 46 | cfg-bashrc() { ${EDITOR:-vim} ~/.bashrc; }; 47 | fi 48 | 49 | 50 | ### 51 | ### ~/.bash_profile 52 | ### 53 | if [ -f "${HOME}/.bash_profile" ]; then 54 | cfg-bash-profile() { ${EDITOR:-vim} ~/.bash_profile; }; 55 | fi 56 | 57 | 58 | ### 59 | ### ~/.config/bash/bashrc.d/*.bash 60 | ### 61 | if [ -d "${XDG_CONFIG_HOME}/bash/bashrc.d/" ]; then 62 | for _f in ${XDG_CONFIG_HOME}/bash/bashrc.d/*.bash ; do 63 | _suffix="$( basename "${_f}" )" 64 | _suffix="${_suffix%.bash}" 65 | eval "cfg-bash-${_suffix}() { ${EDITOR:-vim} \"${_f}\"; }" 66 | unset _f 67 | unset _suffix 68 | done 69 | fi 70 | 71 | 72 | ### 73 | ### ~/.config/bash/bash_profile/*.bash 74 | ### 75 | if [ -d "${XDG_CONFIG_HOME}/bash/bash_profile/" ]; then 76 | for _f in ${XDG_CONFIG_HOME}/bash/bash_profile/*.bash ; do 77 | _suffix="$( basename "${_f}" )" 78 | _suffix="${_suffix%.bash}" 79 | eval "cfg-bash-${_suffix}() { ${EDITOR:-vim} \"${_f}\"; }" 80 | unset _f 81 | unset _suffix 82 | done 83 | fi 84 | 85 | 86 | 87 | ################################################################################ 88 | ### 89 | ### Ranger configuration 90 | ### 91 | ################################################################################ 92 | 93 | if [ -f "${HOME}/.config/ranger/rc,conf" ]; then 94 | cfg-ranger() { ${EDITOR:-vim} ~/.config/ranger/rc.conf; } 95 | fi 96 | if [ -f "${HOME}/.config/ranger/rifle,conf" ]; then 97 | cfg-ranger-rifle() { ${EDITOR:-vim} ~/.config/ranger/rifle.conf; } # edit open_with extensions 98 | fi 99 | if [ -f "${HOME}/.config/ranger/commands,py" ]; then 100 | cfg-ranger-commands() { ${EDITOR:-vim} ~/.config/ranger/commands.py; } # scripts 101 | fi 102 | 103 | 104 | 105 | ################################################################################ 106 | ### 107 | ### Misc configuration 108 | ### 109 | ################################################################################ 110 | 111 | ### 112 | ### Single dotfiles 113 | ### 114 | if [ -f "${HOME}/.inputrc" ]; then 115 | cfg-inputrc() { ${EDITOR:-vim} ~/.inputrc; }; 116 | fi 117 | if [ -f "${HOME}/.gitconfig" ]; then 118 | cfg-git() { ${EDITOR:-vim} ~/.gitconfig; }; 119 | fi 120 | if [ -f "${HOME}/.ctags" ]; then 121 | cfg-ctags() { ${EDITOR:-vim} ~/.ctags; }; 122 | fi 123 | if [ -f "${HOME}/.muttrc" ]; then 124 | cfg-mutt() { ${EDITOR:-vim} ~/.muttrc; }; 125 | fi 126 | if [ -f "${HOME}/.tmux.conf" ]; then 127 | cfg-tmux() { ${EDITOR:-vim} ~/.tmux.conf; }; 128 | fi 129 | if [ -f "${HOME}/.vimrc" ]; then 130 | cfg-vim() { ${EDITOR:-vim} ~/.vimrc; }; 131 | fi 132 | if [ -f "${HOME}/.config/nvim/vim.init" ]; then 133 | cfg-nvim() { ${EDITOR:-vim} ~/.config/nvim/vim.init; }; 134 | fi 135 | if [ -f "${HOME}/.Xdefaults" ]; then 136 | cfg-xdefaults() { ${EDITOR:-vim} ~/.Xdefaults; }; 137 | fi 138 | if [ -f "${HOME}/.xinitrc" ]; then 139 | cfg-xinitrc() { ${EDITOR:-vim} ~/.xinitrc; }; 140 | fi 141 | if [ -f "${HOME}/.Xmodmap" ]; then 142 | cfg-xmodmap() { ${EDITOR:-vim} ~/.Xmodmap; }; 143 | fi 144 | if [ -f "${HOME}/.Xresources" ]; then 145 | cfg-xresources() { ${EDITOR:-vim} ~/.Xresources; }; 146 | fi 147 | if [ -f "${HOME}/.xsession" ]; then 148 | cfg-xsession() { ${EDITOR:-vim} ~/.xsession; }; 149 | fi 150 | 151 | 152 | ### 153 | ### ~/.config/Xresources.d/*.xresources 154 | ### 155 | if [ -d "${XDG_CONFIG_HOME}/Xresources.d/" ]; then 156 | for _f in ${XDG_CONFIG_HOME}/Xresources.d/*.xresources ; do 157 | _suffix="$( basename "${_f}" )" 158 | _suffix="${_suffix%.xresources}" 159 | eval "cfg-xresources-${_suffix}() { ${EDITOR:-vim} \"${_f}\"; }" 160 | unset _f 161 | unset _suffix 162 | done 163 | fi 164 | -------------------------------------------------------------------------------- /X11/Xresources.d/urxvt.xresources: -------------------------------------------------------------------------------- 1 | !------------------------------------------------------------------------------- 2 | ! URxvt Behavior 3 | !------------------------------------------------------------------------------- 4 | 5 | !---------------------------------------- 6 | ! Defaults 7 | !---------------------------------------- 8 | 9 | ! Terminal Identifier 10 | URxvt*termName: screen-256color 11 | 12 | ! Notification 13 | URxvt*urgentOnBell: false 14 | URxvt*visualBell: false 15 | 16 | ! Login Shell 17 | URxvt*loginShell: true 18 | 19 | ! History 20 | ! None - use tmux instead 21 | URxvt*saveLines: 65535 22 | 23 | 24 | !---------------------------------------- 25 | ! Scrolling 26 | !---------------------------------------- 27 | 28 | ! Scrolling 29 | URxvt*scrollWithBuffer: true 30 | !URxvt*scrollWithBuffer: false 31 | URxvt*skipScroll: true 32 | 33 | ! Auto scroll on output? 34 | URxvt*scrollTtyOutput: false 35 | URxvt*scrollTtyKeypress: true 36 | 37 | ! Scroll inside page (less, more) etc without 38 | ! scrolling urxvt, but the pager 39 | URxvt*secondaryScreen: 1 40 | URxvt*secondaryScroll: 0 41 | URxvt*secondaryWheel: 1 42 | 43 | 44 | !---------------------------------------- 45 | ! Input Methods 46 | !---------------------------------------- 47 | 48 | ! ibus input 49 | URxvt*inputMethod: ibus 50 | URxvt*preeditType: OverTheSpot 51 | URxvt*imLocale: en_US.UTF-8 52 | 53 | 54 | 55 | !------------------------------------------------------------------------------- 56 | ! URxvt Appearance 57 | !------------------------------------------------------------------------------- 58 | 59 | !---------------------------------------- 60 | ! URxvt Window 61 | !---------------------------------------- 62 | 63 | ! Size 64 | URxvt*geometry: 180x35 65 | 66 | ! Border 67 | URxvt*borderLess: false 68 | URxvt*externalBorder: 0 69 | URxvt*internalBorder: 2 70 | 71 | ! Scrollbar 72 | URxvt*scrollBar: false 73 | 74 | ! Cursor 75 | URxvt*cursorBlink: true 76 | URxvt*cursorColor: #657b83 77 | URxvt*cursorUnderline: false 78 | 79 | ! Pointer 80 | URxvt*pointerBlank: true 81 | 82 | 83 | !---------------------------------------- 84 | ! URxvt Transparency 85 | !---------------------------------------- 86 | 87 | ! True transparency (requires compositing) 88 | URxvt*depth: 32 89 | URxvt*background: rgba:0000/0000/0000/bbbb 90 | URxvt*foreground: rgba:dddd/dddd/dddd/bbbb 91 | 92 | !Setting to 24 resolves compositing (tearing) in urxvt 93 | !URxvt*depth: 24 94 | !URxvt*transparent: true 95 | !URxvt*shading: 25 96 | !URxvt*background: #cccccc 97 | !URxvt*foreground: #bbbbbb 98 | 99 | 100 | !---------------------------------------- 101 | ! URxvt Colors 102 | !---------------------------------------- 103 | 104 | URxvt*underlineColor: yellow 105 | URxvt*intensityStyles: false 106 | 107 | ! Colored Manpages 108 | !URxvt*colorIT: #87af5f 109 | !URxvt*colorBD: #d7d7d7 110 | !URxvt*colorUL: #87afd7 111 | 112 | 113 | 114 | !------------------------------------------------------------------------------- 115 | ! URxvt Plugins 116 | !------------------------------------------------------------------------------- 117 | 118 | ! Default Extension Path in order: 119 | ! 120 | ! * $URXVT_PERL_LIB 121 | ! * $HOME/.urxvt/ext 122 | ! * /usr/lib/urxvt/perl/ 123 | 124 | ! perl-ext-common will be used for extensions that should be available 125 | ! to all instances, while perl-ext is used for specific instances. 126 | URxvt.perl-ext: 127 | URxvt*perl-ext-common: default,selection-to-clipboard 128 | !URxvt.perl-ext-common: 129 | 130 | 131 | ! font-size plugin 132 | ! Increase/Decrease font size 133 | URxvt.keysym.C-plus: font-size:increase 134 | URxvt.keysym.C-minus: font-size:decrease 135 | 136 | 137 | 138 | !------------------------------------------------------------------------------- 139 | ! URxvt Keys 140 | !------------------------------------------------------------------------------- 141 | 142 | ! Disable Ctrl+Shift nonesense picture (showing up bottom-left corner) 143 | URxvt*iso14755: false 144 | URxvt*iso14755_52: false 145 | 146 | 147 | ! Fix Home/End Keys in tmux sessions 148 | URxvt*keysym.Home: \033[1~ 149 | URxvt*keysym.End: \033[4~ 150 | 151 | ! Fix Keys 152 | !URxvt*keysym.M-Down: \033[1;3B 153 | !URxvt*keysym.M-Up: \033[1;3A 154 | !URxvt*keysym.M-Left: \033[1;3D 155 | !URxvt*keysym.M-Right: \033[1;3C 156 | 157 | !URxvt*keysym.Control-Up: \033[1;5A 158 | !URxvt*keysym.Control-Down: \033[1;5B 159 | URxvt*keysym.Control-Left: \033[1;5D 160 | URxvt*keysym.Control-Right: \033[1;5C 161 | 162 | ! https://bbs.archlinux.org/viewtopic.php?id=106412 163 | ! Slow urxvt 164 | URxvt*buffered: false 165 | 166 | ! vim: ff=unix ft=xdefaults ts=4 ss=4 noet 167 | -------------------------------------------------------------------------------- /bash/bash_profile: -------------------------------------------------------------------------------- 1 | # 2 | # @file: ~/.bash_profile 3 | # @invoker: Login shell 4 | # @see: https://unix.stackexchange.com/questions/38175 5 | # 6 | # A login shell is the first process that executes under your user ID 7 | # when you log in for an interactive session. 8 | # The login process tells the shell to behave as a login shell with a 9 | # convention: passing argument 0, which is normally the name of the 10 | # shell executable, with a - character prepended 11 | # (e.g. -bash) whereas it would normally be bash. Login shells typically 12 | # read a file that does things like setting environment variables: 13 | # /etc/profile and ~/.profile for the traditional Bourne shell, 14 | # ~/.bash_profile additionally for bash†, /etc/zprofile and 15 | # ~/.zprofile for zsh†, /etc/csh.login and ~/.login for csh, etc. 16 | # 17 | 18 | 19 | 20 | # Disable less history 21 | #export LESSHISTFILE=/dev/null 22 | export LESSHISTFILE=- 23 | export LESSHISTSIZE=0 24 | 25 | #GPG_TTY=$(tty) 26 | #export GPG_TTY 27 | ################################################################################ 28 | ### 29 | ### Path's 30 | ### 31 | ################################################################################ 32 | 33 | 34 | ### 35 | ### Default search Path 36 | ### 37 | export PATH="${HOME}/bin:${HOME}/.local/bin:/usr/local/bin:/usr/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin" 38 | 39 | 40 | ### 41 | ### Default XDG path 42 | ### 43 | export XDG_CONFIG_HOME="${HOME}/.config" 44 | export XDG_DATA_HOME="${HOME}/.local/share" 45 | export XDG_CACHE_HOME="${HOME}/.cache" 46 | 47 | if [ -f ${XDG_CONFIG_HOME}/user-dirs.dirs ]; then 48 | . ${XDG_CONFIG_HOME}/user-dirs.dirs 49 | export XDG_DESKTOP_DIR 50 | export XDG_DOWNLOAD_DIR 51 | export XDG_TEMPLATES_DIR 52 | export XDG_PUBLICSHARE_DIR 53 | export XDG_DOCUMENTS_DIR 54 | export XDG_MUSIC_DIR 55 | export XDG_PICTURES_DIR 56 | export XDG_VIDEOS_DIR 57 | fi 58 | 59 | 60 | 61 | ################################################################################ 62 | ### 63 | ### Locale 64 | ### 65 | ################################################################################ 66 | 67 | 68 | ### 69 | ### General locale category to use. 70 | ### (All LC_* values) 71 | ### 72 | export LANG=en_US.UTF-8 73 | 74 | 75 | ### 76 | ### Overwrite specific LC_* values 77 | ### 78 | export LC_ALL=en_US.UTF-8 79 | export LC_CTYPE=en_US.UTF-8 80 | export LANGUAGE=en_US.UTF-8 81 | export LC_COLLATE="C" 82 | 83 | 84 | 85 | ################################################################################ 86 | ### 87 | ### Bash History 88 | ### 89 | ################################################################################ 90 | 91 | 92 | ### 93 | ### What to save in the history file? 94 | ### 95 | ### * ignorespace Ignore commands starting with space 96 | ### * ignoredups Ignore duplicate commands 97 | ### * erasedups If current command is already in history, remove old entries 98 | ### and keep the new entry. 99 | ### (Only stores latest version of command) 100 | export HISTCONTROL="ignorespace:ignoredups:erasedups" 101 | 102 | 103 | ### 104 | ### How many lines to save in the history file 105 | ### 106 | export HISTFILESIZE=10000 107 | 108 | 109 | ### 110 | ### How many lines to remember in history list ($ history) 111 | ### 112 | export HISTSIZE=10000 113 | 114 | 115 | ### 116 | ### Where to store the history file 117 | ### 118 | export HISTFILE="${XDG_CACHE_HOME}/bash/bash_history" 119 | if [ ! -d "$( dirname "${HISTFILE}" )" ]; then 120 | mkdir -p "$( dirname "${HISTFILE}" )" 121 | fi 122 | if [ ! -f "${HISTFILE}" ]; then 123 | touch "${HISTFILE}" 124 | fi 125 | 126 | 127 | ### 128 | ### Format of timestring to prepend 129 | ### 130 | export HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S: " 131 | 132 | 133 | 134 | 135 | ################################################################################ 136 | ### 137 | ### Default Programs 138 | ### 139 | ################################################################################ 140 | 141 | 142 | ### 143 | ### Login terminal type 144 | ### 145 | export TERM=xterm-256color 146 | export COLORTERM=truecolor 147 | 148 | 149 | ### 150 | ### Visual editor 151 | ### 152 | ### Crontab and less use 'VISUAL' to determine 153 | ### the editor. 154 | ### If 'VISUAL' is not set 'EDITOR' will be used 155 | ### as a fall-back. 156 | ### 157 | export VISUAL="nvim" 158 | 159 | 160 | ### 161 | ### Default Editor 162 | ### 163 | export EDITOR="nvim" 164 | #export EDITOR="env TERM=xterm-256color vim -u" 165 | 166 | 167 | ### 168 | ### Default Viewer (manpage, etc) 169 | ### 170 | export PAGER="less" 171 | #export PAGER=vimpager 172 | 173 | 174 | 175 | ### 176 | ### Non standard default programs 177 | ### 178 | export BROWSER="/usr/bin/chromium" 179 | export TERMINAL="/usr/bin/urxvt" 180 | 181 | 182 | 183 | ################################################################################ 184 | ### 185 | ### Includes 186 | ### 187 | ################################################################################ 188 | 189 | 190 | ### 191 | ### Source non-login shell config file 192 | ### 193 | if [ -f ~/.bashrc ]; then 194 | . ~/.bashrc 195 | fi 196 | 197 | 198 | ### 199 | ### Source login-shell config files 200 | ### 201 | if [ -d "${XDG_CONFIG_HOME}/bash/bash_profile.d/" ]; then 202 | for f in ${XDG_CONFIG_HOME}/bash/bash_profile.d/*.bash ; do 203 | . "${f}" 204 | done 205 | fi 206 | -------------------------------------------------------------------------------- /sublime/SublimeCodeIntel.sublime-settings: -------------------------------------------------------------------------------- 1 | /* 2 | SublimeCodeIntel default settings 3 | All settings can be overridden in *.sublime-project file 4 | */ 5 | { 6 | /* 7 | Sets the mode in which SublimeCodeIntel runs: 8 | 9 | true - Enabled (the default). 10 | false - Disabled. 11 | */ 12 | "codeintel": true, 13 | 14 | /* path to codeintel database */ 15 | "codeintel_database_dir": "~/.codeintel", 16 | 17 | /* 18 | An array of language names which are enabled. 19 | */ 20 | "codeintel_enabled_languages": [ 21 | 22 | "HTML", 23 | "HTML5", 24 | 25 | "JavaScript", 26 | "Node.js", 27 | 28 | "CSS", 29 | "SCSS", 30 | "Sass", 31 | "Less", 32 | 33 | "Perl", 34 | "PHP", 35 | "Python", 36 | "Python3", 37 | "Ruby", 38 | 39 | "XML" 40 | //"Twig", 41 | //"TemplateToolkit" 42 | ], 43 | 44 | /* 45 | Maps syntax names to languages. This allows variations on a syntax 46 | (for example "Python (Django)") to be used. The key is 47 | the base filename of the .tmLanguage syntax files, and the value 48 | is the syntax it maps to. 49 | */ 50 | "codeintel_syntax_map": 51 | { 52 | "Python Django": "Python" 53 | }, 54 | 55 | 56 | /* ####################################################################### */ 57 | /* the following settings can be overridden for each language individually */ 58 | /* see "codeintel_language_settings" below! */ 59 | /* ####################################################################### */ 60 | 61 | /* 62 | Sets the mode in which SublimeCodeIntel's live autocomplete runs: 63 | 64 | true - Autocomplete popups as you type (the default). 65 | false - Autocomplete popups only when you request it. 66 | */ 67 | "codeintel_live": true, 68 | 69 | /* 70 | Tooltips method: 71 | 72 | "popup" - Uses Autocomplete popup for tooltips. 73 | "panel" - Uses the output panel for tooltips. 74 | "status" - Uses the status bar for tooltips (was the default). 75 | */ 76 | "codeintel_tooltips": "popup", 77 | 78 | 79 | /* 80 | "buffer" - add word completions from current view 81 | "all" - add word completions from all views from active window 82 | "none" - do not add word completions 83 | */ 84 | "codeintel_word_completions": "buffer", 85 | 86 | /* 87 | Insert functions snippets. 88 | */ 89 | "codeintel_snippets": true, 90 | 91 | /* 92 | Define global filters to exclude paths from scanning. Use the codeintel_config setting for language specific settings. 93 | ex: ["list/of","/path/to/exclude"] 94 | (Currently only working for JavaScript and PHP) 95 | */ 96 | "codeintel_scan_exclude_dir":[], 97 | 98 | /* Code Scanning: Controls how the Code Intelligence system scans your source code files. */ 99 | 100 | /* Maximum directory depth: */ 101 | "codeintel_max_recursive_dir_depth": 10, 102 | 103 | /* Include all files and directories from the project base directory: */ 104 | "codeintel_scan_files_in_project": true, 105 | 106 | /* API Catalogs: SublimeCodeIntel uses API catalogs to provide autocomplete and calltips for 3rd-party libraries. 107 | Add te libraries that you use in your code. Note: Adding all API catalogs for a particular language can lead to confusing results. 108 | 109 | Avaliable catalogs: 110 | PyWin32 (Python3) (for Python3: Python Extensions for Windows) 111 | PyWin32 (for Python: Python Extensions for Windows) 112 | Rails (for Ruby: Rails version 1.1.6) 113 | jQuery (for JavaScript: jQuery JavaScript library - version 1.9.1) 114 | Prototype (for JavaScript: JavaScript framework for web development) 115 | dojo (for JavaScript: Dojo Toolkit API - version 1.5.0) 116 | Ext_30 (for JavaScript: Ext JavaScript framework - version 3.0) 117 | HTML5 (for JavaScript: HTML5 (Canvas, Web Messaging, Microdata)) 118 | MochiKit (for JavaScript: A lightweight JavaScript library - v1.4.2) 119 | Mozilla Toolkit (for JavaScript: Mozilla Toolkit API - version 1.8) 120 | XBL (for JavaScript: XBL JavaScript support - version 1.0) 121 | YUI (for JavaScript: Yahoo! User Interface Library - v2.8.1) 122 | Drupal (for PHP: A full-featured PHP content management/discussion engine -- v5.1) 123 | PECL (for PHP: A collection of PHP Extensions) 124 | */ 125 | "codeintel_selected_catalogs": [], 126 | 127 | /* 128 | When editing within a defined scope, no live completion will trigger. ex: ["comment"] 129 | */ 130 | "codeintel_exclude_scopes_from_complete_triggers": ["comment"], 131 | 132 | /* 133 | Defines a configuration for each language. 134 | */ 135 | "codeintel_language_settings": { 136 | "Python3": { 137 | "python3": "/usr/bin/python3", 138 | "codeintel_scan_extra_dir": [], 139 | "codeintel_scan_files_in_project": true, 140 | "codeintel_selected_catalogs": [] 141 | }, 142 | "JavaScript": { 143 | "codeintel_scan_extra_dir": [], 144 | "codeintel_scan_exclude_dir":["/build/", "/min/"], 145 | "codeintel_scan_files_in_project": false, 146 | "codeintel_max_recursive_dir_depth": 2, 147 | "codeintel_selected_catalogs": ["jQuery"] 148 | }, 149 | "PHP": { 150 | "php": "/usr/bin/php", 151 | "codeintel_scan_extra_dir": [], 152 | "codeintel_scan_files_in_project": true, 153 | "codeintel_max_recursive_dir_depth": 15 154 | } 155 | 156 | } 157 | } 158 | -------------------------------------------------------------------------------- /X11/Xresources.d/colors.xresources: -------------------------------------------------------------------------------- 1 | ! 2 | !! More color themes here: 3 | !! https://github.com/chriskempson/tomorrow-theme/tree/master/Xdefaults 4 | ! 5 | !! Special 6 | !*.foreground: #c5c8c6 7 | !*.background: #1d1f21 8 | !*.cursorColor: #c5c8c6 9 | ! 10 | !! Black (dark/light) 11 | !*.color0: #282a2e 12 | !*.color8: #373b41 13 | ! 14 | !! Red (dark/light) 15 | !*.color1: #a54242 16 | !*.color9: #cc6666 17 | ! 18 | !! Green (dark/light) 19 | !*.color2: #8c9440 20 | !*.color10: #b5bd68 21 | ! 22 | !! Yellow (dark/light) 23 | !*.color3: #de935f 24 | !*.color11: #f0c674 25 | ! 26 | !! Blue (dark/light) 27 | !*.color4: #5f819d 28 | !*.color12: #81a2be 29 | ! 30 | !! Magenta (dark/light) 31 | !*.color5: #85678f 32 | !*.color13: #b294bb 33 | ! 34 | !! Cyan (dark/light) 35 | !*.color6: #5e8d87 36 | !*.color14: #8abeb7 37 | ! 38 | !! White (dark/light) 39 | !*.color7: #707880 40 | !*.color15: #c5c8c6 41 | ! 42 | ! 43 | ! 44 | ! 45 | !xterm*faceName: Roboto Mono Medium for powerline:size=8:antialias=true 46 | !xterm*loginShell: true 47 | !xterm*vt100*geometry: 90x34 48 | !xterm*saveLines: 2000 49 | !xterm*charClass: 33:48,35:48,37:48,43:48,45-47:48,64:48,95:48,126:48 50 | !xterm*termName: xterm-color 51 | !xterm*eightBitInput: false 52 | !xterm*foreground: rgb:d9/d4/d4 53 | !xterm*background: #1B1B1B 54 | !xterm*color0: rgb:00/00/00 55 | !xterm*color1: rgb:a8/00/00 56 | !xterm*color2: rgb:00/a8/00 57 | !xterm*color3: rgb:a8/54/00 58 | !xterm*color4: rgb:5f/81/9d 59 | !xterm*color5: rgb:a8/00/a8 60 | !xterm*color6: rgb:00/a8/a8 61 | !xterm*color7: rgb:70/78/80 62 | !xterm*color8: rgb:54/54/54 63 | !xterm*color9: rgb:fc/54/54 64 | !xterm*color10: rgb:54/fc/54 65 | !xterm*color11: rgb:fc/fc/54 66 | !xterm*color12: rgb:81/a2/be 67 | !xterm*color13: rgb:fc/54/fc 68 | !xterm*color14: rgb:54/fc/fc 69 | !xterm*color15: rgb:c5/c8/c6 70 | !xterm*boldMode: false 71 | ! 72 | ! 73 | !! colors 74 | !URxvt*color0: #212121 75 | !URxvt*color1: #2b2b2b 76 | !URxvt*color2: #b1b1b1 77 | !URxvt*color3: #b1b1b1 78 | !URxvt*color4: #4c8dcc 79 | !URxvt*color5: #add8e6 80 | !URxvt*color6: #e0e0e0 81 | !URxvt*color7: #ffffff 82 | !URxvt*color8: #cc6666 83 | !URxvt*color9: #de935f 84 | !URxvt*color10: #f0c674 85 | !URxvt*color11: #b5bd68 86 | !URxvt*color12: #8abeb7 87 | !URxvt*color13: #81a2be 88 | !URxvt*color14: #b294bb 89 | !URxvt*color15: #a3685a 90 | ! 91 | !! fix colors 92 | !UXTerm*background: rgb:63/63/63 93 | !UXTerm*foreground: rgb:00/00/00 94 | !UXTerm*color0: rgb:00/00/00 95 | !UXTerm*color1: rgb:a8/00/00 96 | !UXTerm*color2: rgb:00/a8/00 97 | !UXTerm*color3: rgb:a8/54/00 98 | !UXTerm*color4: rgb:00/00/a8 99 | !UXTerm*color5: rgb:a8/00/a8 100 | !UXTerm*color6: rgb:00/a8/a8 101 | !UXTerm*color7: rgb:a8/a8/a8 102 | !UXTerm*color8: rgb:54/54/54 103 | !UXTerm*color9: rgb:fc/54/54 104 | !UXTerm*color10: rgb:54/fc/54 105 | !UXTerm*color11: rgb:fc/fc/54 106 | !UXTerm*color12: rgb:54/54/fc 107 | !UXTerm*color13: rgb:fc/54/fc 108 | !UXTerm*color14: rgb:54/fc/fc 109 | !UXTerm*color15: rgb:fc/fc/fc 110 | !UXTerm*boldMode: false 111 | !UXTerm*colorBDMode: true 112 | !UXTerm*colorBD: rgb:3f/3f/3f 113 | ! 114 | !!||| COLORSPECTRUM COLORSCHEME by: juleslord ||| 115 | !! 116 | !! Examples for each different color 117 | !! 0: black (normal) 118 | !! 8: black (bright) 119 | !! 120 | !! Black (dark/light) 121 | !*color0: #25283d 122 | !*color0: #3F4256 123 | !*color8: #709080 124 | !! Red (dark/light) 125 | !*color1: #edcf8e 126 | !*color9: #ee2e31 127 | !! Green (dark/light) 128 | !*color2: #07bee8 129 | !*color10: #e83f6f 130 | !! Yellow (dark/light) 131 | !*color3: #84dcc6 132 | !*color11: #f0dfaf 133 | !! Blue (dark/light) 134 | !*color4: #0a8754 135 | !*color12: #94bff3 136 | !! Magenta (dark/light) 137 | !*color5: #af3b6e 138 | !*color13: #ffbf00 139 | !! Cyan (dark/light) 140 | !*color6: #cbf3f0 141 | !*color14: #1cfeba 142 | !! White (dark/light) 143 | !*color7: #edddd4 144 | !*color15: #ffffff 145 | ! 146 | ! 147 | !*cursorColor: S_base1 148 | !*pointerColorBackground:S_base01 149 | !*pointerColorForeground:S_base1 150 | 151 | 152 | 153 | #define S_base03 #002b36 154 | #define S_base02 #073642 155 | #define S_base01 #586e75 156 | #define S_base00 #657b83 157 | #define S_base0 #839496 158 | #define S_base1 #93a1a1 159 | #define S_base2 #eee8d5 160 | #define S_base3 #fdf6e3 161 | 162 | 163 | 164 | *foreground: #c5c8c6 165 | *background: #1d1f21 166 | *cursorColor: #c5c8c6 167 | *fadeColor: #ff0000 168 | *pointerColorBackground:S_base01 169 | *pointerColorForeground:S_base1 170 | 171 | 172 | !------------------------------------------------------------------------------- 173 | ! Color Defines 174 | !------------------------------------------------------------------------------- 175 | !# define S_black_dark #3F4256 176 | !# define S_black_lite #709080 177 | !# define S_red_dark #edcf8e 178 | !# define S_red_lite #ee2e31 179 | !# define S_green_dark #07bee8 180 | !# define S_green_lite #e83f6f 181 | !# define S_yellow_dark #84dcc6 182 | !# define S_yellow_lite #f0dfaf 183 | !# define S_blue_dark #0a8754 184 | !# define S_blue_lite #94bff3 185 | !# define S_magenta_dark #af3b6e 186 | !# define S_magento_lite #ffbf00 187 | !# define S_cyan_dark #cbf3f0 188 | !# define S_cyan_lite #1cfeba 189 | !# define S_white_dark #edddd4 190 | !# define S_white_lite #ffffff 191 | 192 | 193 | # define S_black_dark #3F4256 194 | # define S_black_lite #709080 195 | 196 | # define S_red_dark #ee2e31 197 | # define S_red_lite #e83f6f 198 | 199 | # define S_green_dark #0a8754 200 | # define S_green_lite #1cfeba 201 | 202 | # define S_yellow_dark #ffbf00 203 | # define S_yellow_lite #edcf8e 204 | 205 | ## define S_blue_dark #07bee8 206 | # define S_blue_dark #00CCFB 207 | # define S_blue_lite #cbf3f0 208 | 209 | # define S_magenta_dark #af3b6e 210 | # define S_magento_lite #edddd4 211 | 212 | # define S_cyan_dark #94bff3 213 | # define S_cyan_lite #84dcc6 214 | 215 | # define S_white_dark #f0dfaf 216 | # define S_white_lite #ffffff 217 | 218 | 219 | !------------------------------------------------------------------------------- 220 | ! Color Assignments 221 | !------------------------------------------------------------------------------- 222 | 223 | ! Black (dark/light) 224 | URxvt*color0: S_black_dark 225 | URxvt*color8: S_black_lite 226 | ! Red (dark/light) 227 | URxvt*color1: S_red_dark 228 | URxvt*color9: S_red_lite 229 | ! Green (dark/light) 230 | URxvt*color2: S_green_dark 231 | URxvt*color10: S_green_lite 232 | ! Yellow (dark/light) 233 | URxvt*color3: S_yellow_dark 234 | URxvt*color11: S_yellow_lite 235 | ! Blue (dark/light) 236 | URxvt*color4: S_blue_dark 237 | URxvt*color12: S_blue_lite 238 | ! Magenta (dark/light) 239 | URxvt*color5: S_magenta_dark 240 | URxvt*color13: S_magenta_lite 241 | ! Cyan (dark/light) 242 | URxvt*color6: S_cyan_dark 243 | URxvt*color14: S_cyan_lite 244 | ! White (dark/light) 245 | URxvt*color7: S_white_dark 246 | URxvt*color15: S_white_lite 247 | 248 | ! vim: ff=unix ft=xdefaults ts=4 ss=4 noet 249 | -------------------------------------------------------------------------------- /bash/config/bashrc.d/ps1.bash: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | ### 3 | ### PS1 prompt 4 | ### 5 | ################################################################################ 6 | 7 | D=$'\e[37;40m' 8 | #PINK=$'\e[35;40m' 9 | #PINK=$'\e[35;35m' 10 | GREEN=$'\e[32;40m' 11 | ORANGE=$'\e[33;40m' 12 | 13 | 14 | 15 | # Reset 16 | Color_Off='\e[0m' # Text Reset 17 | 18 | # Regular Colors 19 | Black=$'\e[0;30m' # Black 20 | Red=$'\e[0;31m' # Red 21 | Green=$'\e[0;32m' # Green 22 | Yellow=$'\e[0;33m' # Yellow 23 | Blue=$'\e[0;34m' # Blue 24 | Purple=$'\e[0;35m' # Purple 25 | Cyan=$'\e[0;36m' # Cyan 26 | White=$'\e[0;37m' # White 27 | # Bold 28 | BBlack='\e[1;30m' # Black 29 | BRed='\e[1;31m' # Red 30 | BGreen='\e[1;32m' # Green 31 | BYellow='\e[1;33m' # Yellow 32 | BBlue='\e[1;34m' # Blue 33 | BPurple='\e[1;35m' # Purple 34 | BCyan='\e[1;36m' # Cyan 35 | BWhite='\e[1;37m' # White 36 | # Underline 37 | UBlack='\e[4;30m' # Black 38 | URed='\e[4;31m' # Red 39 | UGreen='\e[4;32m' # Green 40 | UYellow='\e[4;33m' # Yellow 41 | UBlue='\e[4;34m' # Blue 42 | UPurple='\e[4;35m' # Purple 43 | UCyan='\e[4;36m' # Cyan 44 | UWhite='\e[4;37m' # White 45 | # Background 46 | On_Black='\e[40m' # Black 47 | On_Red='\e[41m' # Red 48 | On_Green='\e[42m' # Green 49 | On_Yellow='\e[43m' # Yellow 50 | On_Blue='\e[44m' # Blue 51 | On_Purple='\e[45m' # Purple 52 | On_Cyan='\e[46m' # Cyan 53 | On_White='\e[47m' # White 54 | # High Intensity 55 | IBlack='\e[0;90m' # Black 56 | IRed='\e[0;91m' # Red 57 | IGreen='\e[0;92m' # Green 58 | IYellow='\e[0;93m' # Yellow 59 | IBlue='\e[0;94m' # Blue 60 | IPurple='\e[0;95m' # Purple 61 | ICyan='\e[0;96m' # Cyan 62 | IWhite='\e[0;97m' # White 63 | # Bold High Intensity 64 | BIBlack='\e[1;90m' # Black 65 | BIRed='\e[1;91m' # Red 66 | BIGreen='\e[1;92m' # Green 67 | BIYellow='\e[1;93m' # Yellow 68 | BIBlue='\e[1;94m' # Blue 69 | BIPurple='\e[1;95m' # Purple 70 | BICyan='\e[1;96m' # Cyan 71 | BIWhite='\e[1;97m' # White 72 | # High Intensity backgrounds 73 | On_IBlack='\e[0;100m' # Black 74 | On_IRed='\e[0;101m' # Red 75 | On_IGreen='\e[0;102m' # Green 76 | On_IYellow='\e[0;103m' # Yellow 77 | On_IBlue='\e[0;104m' # Blue 78 | On_IPurple='\e[0;105m' # Purple 79 | On_ICyan='\e[0;106m' # Cyan 80 | On_IWhite='\e[0;107m' # White 81 | 82 | 83 | 84 | 85 | 86 | 87 | ############################################################################################## 88 | # 89 | # BASH PS1 90 | # 91 | ############################################################################################## 92 | 93 | # Success of previous command 94 | PS1_SUCCESS="\$(ret=\$?; if [ \$ret = 0 ]; then echo \[\e[32m\][0]\[\e[0m\]; else echo \[\e[31m\][\$ret]\[\e[0m\]; fi)" 95 | 96 | 97 | 98 | 99 | 100 | 101 | _get_git_dirty() { 102 | readonly GIT_BRANCH_CHANGED_SYMBOL='+' 103 | readonly GIT_NEED_PUSH_SYMBOL='⇡' 104 | readonly GIT_NEED_PULL_SYMBOL='⇣' 105 | local marks 106 | 107 | local tmp="$( git status --porcelain --branch 2> /dev/null )" 108 | if [ "${?}" != "0" ]; then 109 | return 1 110 | fi 111 | 112 | local stat="$( echo "${tmp}" | grep '^##' | grep -o '\[.\+\]$')" 113 | 114 | [[ $( echo "${tmp}" | wc -l) -gt 1 ]] && marks+="${GIT_BRANCH_CHANGED_SYMBOL}" 115 | 116 | # how many commits local branch is ahead/behind of remote? 117 | local stat="$( echo "${tmp}" | grep '^##' | grep -o '\[.\+\]$')" 118 | local aheadN="$(echo $stat | grep -o 'ahead[[:space:]][0-9]+' | grep -o '[0-9]\+' )" 119 | local behindN="$(echo $stat | grep -o 'behind[[:space:]][0-9]\+' | grep -o '[0-9]\+' )" 120 | [ -n "$aheadN" ] && marks+=" ${GIT_NEED_PUSH_SYMBOL}${aheadN}" 121 | [ -n "$behindN" ] && marks+=" ${GIT_NEED_PULL_SYMBOL}${behindN}" 122 | 123 | echo "${marks}" 124 | } 125 | 126 | _get_git_branch() { 127 | readonly GIT_BRANCH_SYMBOL="" 128 | local git_branch 129 | 130 | if ! git_branch="$( git branch --no-color 2> /dev/null | grep '^*[[:space:]]' )"; then 131 | return 1 132 | fi 133 | 134 | git_branch="$( echo "${git_branch}" | sed 's/^\*[[:space:]]*//g' )" 135 | echo "${GIT_BRANCH_SYMBOL}${git_branch}" 136 | } 137 | 138 | 139 | _get_git_remote() { 140 | readonly GIT_REMOTE_SYMBOL="☿" 141 | local git_remote 142 | 143 | if ! git_remote="$( git remote -v 2> /dev/null )"; then 144 | return 1 145 | fi 146 | 147 | # has remote? 148 | if ! git_remote="$( echo "${git_remote}" | grep '(fetch)' )"; then 149 | echo "[no remote]" 150 | return 151 | fi 152 | 153 | git_remote="$( echo "${git_remote% (fetch)}" )" 154 | if [ "${#git_remote}" = "0" ]; then 155 | return 156 | fi 157 | git_remote="$( basename "${git_remote}" )" 158 | echo "${GIT_REMOTE_SYMBOL} ${git_remote}" 159 | } 160 | 161 | 162 | get_git_prompt() { 163 | local git_dirty 164 | local git_branch 165 | local git_remote 166 | 167 | if ! git_dirty="$( _get_git_dirty )"; then 168 | return 169 | fi 170 | if ! git_branch="$( _get_git_branch )"; then 171 | return 172 | fi 173 | if ! git_remote="$( _get_git_remote )"; then 174 | return 175 | fi 176 | 177 | echo "(${git_remote} ${git_branch}${git_dirty})" 178 | } 179 | 180 | 181 | 182 | parse_svn() { 183 | # Helpers 184 | local svn_info 185 | local svn_root 186 | local svn_url 187 | 188 | # Final output 189 | local branch 190 | local repository 191 | svn_info=$(svn info 2>/dev/null) 192 | 193 | if [ ${#svn_info} -gt 0 ]; then 194 | svn_root=$(echo "$svn_info" | sed -ne 's#^Repository Root: ##p') 195 | svn_url=$(echo "$svn_info" | sed -ne 's#^URL: ##p') 196 | 197 | repository=$(echo "$svn_info" | grep "^Repository Root" | awk '{print $3}') 198 | repository=$(basename $repository) 199 | 200 | branch=$(echo "$svn_url" | sed -e 's#^'"$svn_root"'##g') 201 | branch=$(echo "$branch" | cut -d "/" -f2) 202 | 203 | if [ ${#branch} -eq 0 ]; then 204 | branch="/" 205 | fi 206 | 207 | echo " (svn::${repository}::${branch})" 208 | fi 209 | } 210 | # Append Git status? 211 | PS1_GIT="\[$BRed\] \$(get_git_prompt)\[$Color_Off\]" 212 | 213 | 214 | # Append SVN status? 215 | if command -v svn >/dev/null 2>&1 ; then 216 | PS1_SVN="\[$BRed\]\$(parse_svn)\[$Color_Off\]" 217 | else 218 | PS1_SVN="" 219 | fi 220 | 221 | 222 | 223 | # Inside FreeBSD Jail 224 | if [ -d /boot/kernel ] && [ $(ls -l /boot/kernel/ | grep -v total | wc -l) == "0" ]; then 225 | PS1_JAIL="[\[$Green\]JAIL\[$Color_Off\]]" 226 | else 227 | PS1_JAIL="\[$Color_Off\]" 228 | fi 229 | 230 | 231 | # User Color 232 | if [ "$USER" = "root" ]; then 233 | PS1_USER="\[$Red\]\u\[$Color_Off\]" 234 | PS1_CHAR="\[$Red\]#\[$Color_Off\]" 235 | else 236 | PS1_USER="\[$Blue\]\u\[$Color_Off\]" 237 | PS1_CHAR="\[$Blue\]\$\[$Color_Off\]" 238 | fi 239 | 240 | PS1_HIST="[\#]" 241 | PS1_HOST="\[$Cyan\]\H" 242 | PS1_PATH="\[$Green\]\$PWD\[$Color_Off\]" 243 | PS1_GO="\[$Color_Off\]C:\\>\[$Color_Off\]" 244 | #PS1_GO="\[$Color_Off\]☿ \[$Color_Off\]" 245 | #PS1_GO="\[$Color_Off\]\[$Color_Off\]" 246 | 247 | #export PS1="${PS1_JAIL}[${PS1_USER}@${PS1_HOST}:${PS1_PATH}${PS1_GIT}]$PS1_CHAR\n$PS1_GO" 248 | 249 | 250 | pid="$$" 251 | lvl="$( pstree -s -p ${pid} | sed 's/[()0-9]//g' | awk -F "---" '{for (i=2; ibold
29 | # italic 30 | # strikethrough 31 | # underline 32 | # 33 | # For a complete reference see 34 | # . 35 | # If markup is not allowed, those tags will be stripped out of the 36 | # message. 37 | allow_markup = yes 38 | 39 | # The format of the message. Possible variables are: 40 | # %a appname 41 | # %s summary 42 | # %b body 43 | # %i iconname (including its path) 44 | # %I iconname (without its path) 45 | # %p progress value if set ([ 0%] to [100%]) or nothing 46 | # Markup is allowed 47 | format = "%s\n%b" 48 | 49 | # Sort messages by urgency. 50 | sort = yes 51 | 52 | # Show how many messages are currently hidden (because of geometry). 53 | indicate_hidden = yes 54 | 55 | # Alignment of message text. 56 | # Possible values are "left", "center" and "right". 57 | alignment = left 58 | 59 | # The frequency with wich text that is longer than the notification 60 | # window allows bounces back and forth. 61 | # This option conflicts with "word_wrap". 62 | # Set to 0 to disable. 63 | bounce_freq = 0 64 | 65 | # Show age of message if message is older than show_age_threshold 66 | # seconds. 67 | # Set to -1 to disable. 68 | show_age_threshold = 60 69 | 70 | # Split notifications into multiple lines if they don't fit into 71 | # geometry. 72 | word_wrap = yes 73 | 74 | # Ignore newlines '\n' in notifications. 75 | ignore_newline = no 76 | 77 | 78 | # Hide duplicate's count and stack them 79 | stack_duplicates = yes 80 | hide_duplicates_count = yes 81 | 82 | # The geometry of the window: 83 | # [{width}]x{height}[+/-{x}+/-{y}] 84 | # The geometry of the message window. 85 | # The height is measured in number of notifications everything else 86 | # in pixels. If the width is omitted but the height is given 87 | # ("-geometry x2"), the message window expands over the whole screen 88 | # (dmenu-like). If width is 0, the window expands to the longest 89 | # message displayed. A positive x is measured from the left, a 90 | # negative from the right side of the screen. Y is measured from 91 | # the top and down respectevly. 92 | # The width can be negative. In this case the actual width is the 93 | # screen width minus the width defined in within the geometry option. 94 | geometry = "400x50-20+50" 95 | 96 | # Shrink window if it's smaller than the width. Will be ignored if 97 | # width is 0. 98 | shrink = no 99 | 100 | # The transparency of the window. Range: [0; 100]. 101 | # This option will only work if a compositing windowmanager is 102 | # present (e.g. xcompmgr, compiz, etc.). 103 | transparency = 0 104 | 105 | # Don't remove messages, if the user is idle (no mouse or keyboard input) 106 | # for longer than idle_threshold seconds. 107 | # Set to 0 to disable. 108 | idle_threshold = 120 109 | 110 | # Which monitor should the notifications be displayed on. 111 | monitor = 0 112 | 113 | # Display notification on focused monitor. Possible modes are: 114 | # mouse: follow mouse pointer 115 | # keyboard: follow window with keyboard focus 116 | # none: don't follow anything 117 | # 118 | # "keyboard" needs a windowmanager that exports the 119 | # _NET_ACTIVE_WINDOW property. 120 | # This should be the case for almost all modern windowmanagers. 121 | # 122 | # If this option is set to mouse or keyboard, the monitor option 123 | # will be ignored. 124 | follow = mouse 125 | 126 | # Should a notification popped up from history be sticky or timeout 127 | # as if it would normally do. 128 | sticky_history = yes 129 | 130 | # Maximum amount of notifications kept in history 131 | history_length = 20 132 | 133 | # Display indicators for URLs (U) and actions (A). 134 | show_indicators = yes 135 | 136 | # The height of a single line. If the height is smaller than the 137 | # font height, it will get raised to the font height. 138 | # This adds empty space above and under the text. 139 | line_height = 5 140 | 141 | # Draw a line of "separatpr_height" pixel height between two 142 | # notifications. 143 | # Set to 0 to disable. 144 | separator_height = 2 145 | 146 | # Padding between text and separator. 147 | padding = 20 148 | 149 | # Horizontal padding. 150 | horizontal_padding = 20 151 | 152 | # Define a color for the separator. 153 | # possible values are: 154 | # * auto: dunst tries to find a color fitting to the background; 155 | # * foreground: use the same color as the foreground; 156 | # * frame: use the same color as the frame; 157 | # * anything else will be interpreted as a X color. 158 | separator_color = frame 159 | 160 | # Print a notification on startup. 161 | # This is mainly for error detection, since dbus (re-)starts dunst 162 | # automatically after a crash. 163 | startup_notification = true 164 | 165 | # dmenu path. 166 | dmenu = /usr/bin/dmenu -p dunst: 167 | 168 | # Browser for opening urls in context menu. 169 | browser = /usr/bin/firefox -new-tab 170 | 171 | # Align icons left/right/off 172 | icon_position = left 173 | 174 | # Paths to default icons. 175 | #icon_folders = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/ 176 | #icon_folders = /usr/share/icons/Faenza/status/16/ 177 | icon_folders = /usr/share/icons/Faenza-Dark/status/24/:/usr/share/icons/Faenza-Dark/devices/24/:/usr/share/icons/gnome-colors-common/scalable/notifications/ 178 | #icon_folders = /usr/share/icons/Moka/22x22/status/:/usr/share/icons/Moka/22x22/devices 179 | #:/usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/:/usr/share/icons/Paper/16x16/mimetypes/:/usr/share/icons/Paper/48x48/status/:/usr/share/icons/Paper/16x16/devices/:/usr/share/icons/Paper/48x48/notifications/:/usr/share/icons/Paper/48x48/emblems/ 180 | 181 | 182 | 183 | [frame] 184 | width = 4 185 | #color = "#ffffff" 186 | #color = "#D70A53" 187 | color = "#1E1E23" 188 | 189 | [urgency_low] 190 | # frame_color = "#FFFFFF" 191 | background = "#222222" 192 | # gray-ish 193 | foreground = "#666666" 194 | timeout = 10 195 | 196 | [urgency_normal] 197 | # frame_color = "#FFFFFF" 198 | foreground = "#FFFFFF" 199 | # blue 200 | background = "#2F343F" 201 | timeout = 16 202 | 203 | [urgency_critical] 204 | # frame_color = "#312B2B" 205 | foreground = "#FFFFFF" 206 | # redish 207 | background = "#DE8484" 208 | timeout = 0 209 | 210 | # Every section that isn't one of the above is interpreted as a rules to 211 | # override settings for certain messages. 212 | # Messages can be matched by "appname", "summary", "body", "icon", "category", 213 | # "msg_urgency" and you can override the "timeout", "urgency", "foreground", 214 | # "background", "new_icon" and "format". 215 | # Shell-like globbing will get expanded. 216 | # 217 | # SCRIPTING 218 | # You can specify a script that gets run when the rule matches by 219 | # setting the "script" option. 220 | # The script will be called as follows: 221 | # script appname summary body icon urgency 222 | # where urgency can be "LOW", "NORMAL" or "CRITICAL". 223 | # 224 | # NOTE: if you don't want a notification to be displayed, set the format 225 | # to "". 226 | # NOTE: It might be helpful to run dunst -print in a terminal in order 227 | # to find fitting options for rules. 228 | 229 | #[espeak] 230 | # summary = "*" 231 | # script = dunst_espeak.sh 232 | 233 | #[script-test] 234 | # summary = "*script*" 235 | # script = dunst_test.sh 236 | 237 | #[script-test] 238 | #summary = "*script*" 239 | #script =/home/balbooaaa/.config/i3/blocks/spotify.py 240 | 241 | [Go For It!] 242 | appname=Go For It! 243 | format = "%s\n%b" 244 | timeout =50 245 | new_icon=Mocp 246 | 247 | #[VLC media player] 248 | #appname = VLC media player 249 | #format = "Now Playing:\n%s\n%b" 250 | #new_icon = Mocp 251 | #timeout = 10 252 | 253 | 254 | 255 | [Spotify] 256 | appname= Spotify 257 | format = "Now Playing:\n%s\n%b" 258 | new_icon = Spotify 259 | timeout = 10 260 | 261 | 262 | 263 | 264 | 265 | #[ignore] 266 | # # This notification will not be displayed 267 | # summary = "foobar" 268 | # format = "" 269 | 270 | #[signed_on] 271 | # appname = Pidgin 272 | # summary = "*signed on*" 273 | # urgency = low 274 | # 275 | #[signed_off] 276 | # appname = Pidgin 277 | # summary = *signed off* 278 | # urgency = low 279 | # 280 | #[says] 281 | # appname = Pidgin 282 | # summary = *says* 283 | # urgency = critical 284 | # 285 | #[twitter] 286 | # appname = Pidgin 287 | # summary = *twitter.com* 288 | # urgency = normal 289 | # 290 | # vim: ft=cfg 291 | -------------------------------------------------------------------------------- /install.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -e 4 | set -u 5 | 6 | 7 | ### 8 | ### ./install.sh -y 9 | ### 10 | ASK="Y" 11 | if [ "${#}" = "1" ]; then 12 | if [ "${1}" = "-y" ]; then 13 | ASK="F" 14 | fi 15 | fi 16 | 17 | ############################################################ 18 | # Generic defines (do not edit) 19 | ############################################################ 20 | MY_PATH="$(cd -P -- "$(dirname -- "${0}")" && pwd -P)" 21 | #MY_NAME="$( basename "${0}" )" 22 | MY_FUNCTIONS="${MY_PATH}/.lib/functions.sh" 23 | MY_BACKUPDIR="${HOME}/dotfiles-backup_$(date '+%Y-%m-%d_%H.%M.%S')" 24 | 25 | ############################################################ 26 | # Pre-Start 27 | ############################################################ 28 | 29 | # Source lib 30 | # shellcheck disable=SC1090 31 | . "${MY_FUNCTIONS}" 32 | 33 | # Create Backup folder 34 | if [ ! -d "${MY_BACKUPDIR}" ]; then 35 | mkdir "${MY_BACKUPDIR}"; 36 | fi 37 | 38 | ############################################################ 39 | # Start 40 | ############################################################ 41 | 42 | ### 43 | ### autorunner 44 | ### 45 | if ask "Symlink autorunner?" "${ASK}"; then 46 | symlink_file "${MY_PATH}/autorunner" "${HOME}/.config/autorunner" "${MY_BACKUPDIR}" 47 | fi 48 | 49 | 50 | ### 51 | ### bash 52 | ### 53 | if ask "Symlink bash?" "${ASK}"; then 54 | symlink_file "${MY_PATH}/bash/bash_logout" "${HOME}/.bash_logout" "${MY_BACKUPDIR}" 55 | symlink_file "${MY_PATH}/bash/bash_profile" "${HOME}/.bash_profile" "${MY_BACKUPDIR}" 56 | symlink_file "${MY_PATH}/bash/bashrc" "${HOME}/.bashrc" "${MY_BACKUPDIR}" 57 | symlink_file "${MY_PATH}/bash/config" "${HOME}/.config/bash" "${MY_BACKUPDIR}" 58 | 59 | if [ -f "${MY_PATH}/config" ]; then 60 | # shellcheck disable=SC1090 61 | . "${MY_PATH}/config" 62 | git_ident="$( mktemp )" 63 | i=1 64 | ( 65 | echo "#Generated by dotfiles from ./config - do not edit" 66 | echo "git-ident-show() {" 67 | echo " git config --get user.name" 68 | echo " git config --get user.email" 69 | echo " git config --get user.signingkey" 70 | echo "}" 71 | ) > "${git_ident}" 72 | 73 | while [ "${i}" -le "${NUM_OF_GIT_IDENTS}" ]; do 74 | git_alias="GIT_IDENT${i}_ALIAS" 75 | git_name="GIT_IDENT${i}_NAME" 76 | git_mail="GIT_IDENT${i}_MAIL" 77 | git_gpg="GIT_IDENT${i}_GPG" 78 | 79 | ( 80 | echo "git-ident-make-${!git_alias}() {" 81 | echo " git config user.name \"${!git_name}\"" 82 | echo " git config user.email \"${!git_mail}\"" 83 | echo " git config user.signingkey \"${!git_gpg}\"" 84 | echo " git-ident-show" 85 | echo "}" 86 | ) >> "${git_ident}" 87 | i=$(( i + 1 )) 88 | done 89 | mv "${git_ident}" "${MY_PATH}/bash/config/bashrc.d/git-ident.bash" 90 | fi 91 | fi 92 | 93 | 94 | ### 95 | ### compton 96 | ### 97 | if ask "Symlink compton?" "${ASK}"; then 98 | symlink_file "${MY_PATH}/compton/compton.conf" "${HOME}/.config/compton.conf" "${MY_BACKUPDIR}" 99 | fi 100 | 101 | 102 | ### 103 | ### ctags 104 | ### 105 | if ask "Symlink ctags?" "${ASK}"; then 106 | symlink_file "${MY_PATH}/ctags/ctags" "${HOME}/.ctags" "${MY_BACKUPDIR}" 107 | fi 108 | 109 | 110 | ### 111 | ### dunst 112 | ### 113 | if ask "Symlink dunst?" "${ASK}"; then 114 | symlink_file "${MY_PATH}/dunst" "${HOME}/.config/dunst" "${MY_BACKUPDIR}" 115 | fi 116 | 117 | 118 | ### 119 | ### git 120 | ### 121 | if ask "Symlink gitconfig?" "${ASK}"; then 122 | symlink_file "${MY_PATH}/git/gitconfig" "${HOME}/.gitconfig" "${MY_BACKUPDIR}" 123 | fi 124 | 125 | 126 | ### 127 | ### gnugp 128 | ### 129 | if ask "Symlink gnupg?" "${ASK}"; then 130 | symlink_file "${MY_PATH}/gnupg/dirmngr.conf" "${HOME}/.gnupg/dirmngr.conf" "${MY_BACKUPDIR}" 131 | symlink_file "${MY_PATH}/gnupg/gpg.conf" "${HOME}/.gnupg/gpg.conf" "${MY_BACKUPDIR}" 132 | symlink_file "${MY_PATH}/gnupg/gpg-agent.conf" "${HOME}/.gnupg/gpg-agent.conf" "${MY_BACKUPDIR}" 133 | fi 134 | 135 | 136 | ### 137 | ### gtk 138 | ### 139 | if ask "Symlink gtk2/gtk3 settings?" "${ASK}"; then 140 | symlink_file "${MY_PATH}/gtk/gtkrc-2.0" "${HOME}/.gtkrc-2.0" "${MY_BACKUPDIR}" 141 | symlink_file "${MY_PATH}/gtk/gtk-2.0" "${HOME}/.config/gtk-2.0" "${MY_BACKUPDIR}" 142 | symlink_file "${MY_PATH}/gtk/gtk-3.0" "${HOME}/.config/gtk-3.0" "${MY_BACKUPDIR}" 143 | fi 144 | 145 | 146 | ### 147 | ### i3 148 | ### 149 | if ask "Symlink i3?" "${ASK}"; then 150 | symlink_file "${MY_PATH}/i3" "${HOME}/.config/i3" "${MY_BACKUPDIR}" 151 | fi 152 | 153 | 154 | ### 155 | ### i3blocks 156 | ### 157 | if ask "Symlink i3blocks?" "${ASK}"; then 158 | symlink_file "${MY_PATH}/i3blocks" "${HOME}/.config/i3blocks" "${MY_BACKUPDIR}" 159 | fi 160 | 161 | 162 | ### 163 | ### neovim 164 | ### 165 | if ask "Symlink neovim?" "${ASK}"; then 166 | NVIM_BUNDLES="${HOME}/.local/share/nvim/bundles" 167 | BIN_PHPCTAGS="${NVIM_BUNDLES}/repos/github.com/vim-php/tagbar-phpctags.vim/bin/phpctags" 168 | TMP_SCRIPT="$( mktemp )" 169 | 170 | # Link nvim configuration 171 | symlink_file "${MY_PATH}/neovim" "${HOME}/.config/nvim" "${MY_BACKUPDIR}" 172 | 173 | # Install dein (vim package manager) 174 | curl https://raw.githubusercontent.com/Shougo/dein.vim/master/bin/installer.sh > "${TMP_SCRIPT}" 175 | sh "${TMP_SCRIPT}" "${NVIM_BUNDLES}" 176 | rm -f ${TMP_SCRIPT} 177 | 178 | # Install dein Plugins 179 | nvim +'call dein#install()' +qall 180 | 181 | # Symlink phpctags 182 | if [ -f "${BIN_PHPCTAGS}" ]; then 183 | ln -sf "${BIN_PHPCTAGS}" "${HOME}/bin/phpctags" 184 | fi 185 | fi 186 | 187 | 188 | ### 189 | ### profanity 190 | ### 191 | if ask "Symlink profanity?" "${ASK}"; then 192 | symlink_file "${MY_PATH}/profanity" "${HOME}/.config/profanity" "${MY_BACKUPDIR}" 193 | fi 194 | 195 | 196 | ### 197 | ### qt 198 | ### 199 | if ask "Symlink qt config?" "${ASK}"; then 200 | symlink_file "${MY_PATH}/qt/Trolltech.conf" "${HOME}/.config/Trolltech.conf" "${MY_BACKUPDIR}" 201 | fi 202 | 203 | 204 | ### 205 | ### readline 206 | ### 207 | if ask "Symlink readline?" "${ASK}"; then 208 | symlink_file "${MY_PATH}/readline/inputrc" "${HOME}/.inputrc" "${MY_BACKUPDIR}" 209 | fi 210 | 211 | 212 | ### 213 | ### redshift 214 | ### 215 | if ask "Symlink redshift?" "${ASK}"; then 216 | symlink_file "${MY_PATH}/redshift/redshift.conf" "${HOME}/.config/redshift.conf" "${MY_BACKUPDIR}" 217 | fi 218 | 219 | 220 | ### 221 | ### sublime 222 | ### 223 | if ask "Symlink Sublime?" "${ASK}"; then 224 | symlink_file "${MY_PATH}/sublime/Default (Linux).sublime-keymap" "${HOME}/.config/sublime-text-3/Packages/User/Default (Linux).sublime-keymap" "${MY_BACKUPDIR}" 225 | symlink_file "${MY_PATH}/sublime/Package Control.sublime-settings" "${HOME}/.config/sublime-text-3/Packages/User/Package Control.sublime-settings" "${MY_BACKUPDIR}" 226 | symlink_file "${MY_PATH}/sublime/Preferences.sublime-settings" "${HOME}/.config/sublime-text-3/Packages/User/Preferences.sublime-settings" "${MY_BACKUPDIR}" 227 | symlink_file "${MY_PATH}/sublime/SublimeCodeIntel.sublime-settings" "${HOME}/.config/sublime-text-3/Packages/User/SublimeCodeIntel.sublime-settings" "${MY_BACKUPDIR}" 228 | symlink_file "${MY_PATH}/sublime/Asphalt (SL).tmTheme" "${HOME}/.config/sublime-text-3/Packages/User/SublimeLinter/Asphalt (SL).tmTheme" "${MY_BACKUPDIR}" 229 | fi 230 | 231 | 232 | ### 233 | ### sxiv 234 | ### 235 | if ask "Symlink sxiv?" "${ASK}"; then 236 | symlink_file "${MY_PATH}/sxiv/conf" "${HOME}/.config/sxiv" "${MY_BACKUPDIR}" 237 | fi 238 | 239 | 240 | ### 241 | ### thunar 242 | ### 243 | if ask "Symlink thunar?" "${ASK}"; then 244 | symlink_file "${MY_PATH}/thunar/thunar.xml" "${HOME}/.config/xfce4/xfconf/xfce-perchannel-xml/thunar.xml" "${MY_BACKUPDIR}" 245 | symlink_file "${MY_PATH}/thunar/thunar-volman.xml" "${HOME}/.config/xfce4/xfconf/xfce-perchannel-xml/thunar.xml-volman" "${MY_BACKUPDIR}" 246 | fi 247 | 248 | 249 | ### 250 | ### tmux 251 | ### 252 | if ask "Symlink tmux?" "${ASK}"; then 253 | _TMUX_PLUGINS="${MY_PATH}/tmux/config/plugins" 254 | symlink_file "${MY_PATH}/tmux/tmux.conf" "${HOME}/.tmux.conf" "${MY_BACKUPDIR}" 255 | symlink_file "${MY_PATH}/tmux/config" "${HOME}/.config/tmux" "${MY_BACKUPDIR}" 256 | if [ ! -d "${_TMUX_PLUGINS}/tmux-copycat" ]; then 257 | git clone https://github.com/tmux-plugins/tmux-copycat ${_TMUX_PLUGINS}/tmux-copycat 258 | else 259 | cd "${_TMUX_PLUGINS}/tmux-copycat" && \ 260 | git stash && \ 261 | git checkout master && \ 262 | git fetch --all --prune && \ 263 | git pull origin master 264 | fi 265 | if [ ! -d "${_TMUX_PLUGINS}/tmux-open" ]; then 266 | git clone https://github.com/tmux-plugins/tmux-open ${_TMUX_PLUGINS}/tmux-open 267 | else 268 | cd "${_TMUX_PLUGINS}/tmux-open" && \ 269 | git stash && \ 270 | git checkout master && \ 271 | git fetch --all --prune && \ 272 | git pull origin master 273 | fi 274 | if [ ! -d "${_TMUX_PLUGINS}/tmux-urlview" ]; then 275 | git clone https://github.com/tmux-plugins/tmux-urlview ${_TMUX_PLUGINS}/tmux-urlview 276 | else 277 | cd "${_TMUX_PLUGINS}/tmux-urlview" && \ 278 | git stash && \ 279 | git checkout master && \ 280 | git fetch --all --prune && \ 281 | git pull origin master 282 | fi 283 | fi 284 | 285 | 286 | ### 287 | ### X11 288 | ### 289 | if ask "Symlink X11 configs?" "${ASK}"; then 290 | symlink_file "${MY_PATH}/X11/xinitrc" "${HOME}/.xinitrc" "${MY_BACKUPDIR}" 291 | symlink_file "${MY_PATH}/X11/Xmodmap" "${HOME}/.Xmodmap" "${MY_BACKUPDIR}" 292 | symlink_file "${MY_PATH}/X11/Xresources" "${HOME}/.Xresources" "${MY_BACKUPDIR}" 293 | symlink_file "${MY_PATH}/X11/xsession" "${HOME}/.xsession" "${MY_BACKUPDIR}" 294 | symlink_file "${MY_PATH}/X11/Xresources.d" "${HOME}/.config/Xresources.d" "${MY_BACKUPDIR}" 295 | fi 296 | 297 | 298 | ### 299 | ### xdg 300 | ### 301 | if ask "Symlink xdg?" "${ASK}"; then 302 | symlink_file "${MY_PATH}/xdg/mimeapps.list" "${HOME}/.config/mimeapps.list" "${MY_BACKUPDIR}" 303 | fi 304 | 305 | 306 | ### 307 | ### zathura 308 | ### 309 | if ask "Symlink zathura?" "${ASK}"; then 310 | symlink_file "${MY_PATH}/zathura" "${HOME}/.config/zathura" "${MY_BACKUPDIR}" 311 | fi 312 | -------------------------------------------------------------------------------- /i3/config: -------------------------------------------------------------------------------- 1 | # i3 config file (v4) 2 | # 3 | # Please see http://i3wm.org/docs/userguide.html for a complete reference! 4 | 5 | 6 | # i3 Naming convention 7 | # --------------------------- 8 | # window: single program 9 | # container: container for one/more programs (e.g.: a vsplit with two windows) 10 | # workspace: avirtual desktop 11 | # output: a monitor 12 | 13 | 14 | 15 | 16 | ############################################################################################ 17 | # 18 | # Modifier Keys / Variables 19 | # 20 | ############################################################################################ 21 | 22 | # In case you are on an apple Notebook/Keyboard 23 | # you can simply swap Mod1 and Mod4 to get the same 24 | # behaviour 25 | # Mod4 = Super key 26 | # Mod1 = Alt key 27 | set $mod Mod1 28 | set $alt Mod4 29 | set $control Control 30 | 31 | 32 | # use these keys for focus, movement, and resize directions when reaching for 33 | # the arrows is not convenient 34 | set $up k 35 | set $down j 36 | set $left h 37 | set $right l 38 | 39 | 40 | # assign workspace variables 41 | set $WS1 1  chat 42 | set $WS2 2  tty 43 | set $WS3 3  web 44 | set $WS4 4  dev 45 | set $WS5 5  mail 46 | set $WS6 6  files 47 | set $WS7 7  48 | set $WS8 8  49 | set $WS9 9  50 | set $WS10 10  tmp 51 | 52 | 53 | 54 | 55 | ############################################################################################ 56 | # 57 | # Theming 58 | # 59 | ############################################################################################ 60 | 61 | # Font for window titles. Will also be used by the bar unless a different font 62 | # is used in the bar {} block below. 63 | font pango: System San Francisco Display 10 64 | 65 | 66 | # Colors 67 | 68 | # 69 | client.focused #da2263 #d70a53 #ffffff #eb709b 70 | client.focused_inactive #565656 #444444 #ffffff #666666 71 | client.unfocused #373737 #222222 #888888 #444444 72 | client.urgent #ec7ea4 #eb709b #ffffff #eb709b 73 | 74 | # $i3-background 75 | #exec_always --no-startup-id xsetroot -solid '#000000' 76 | 77 | # A 3 px border and no title bar 78 | new_window pixel 3 79 | #border pixel 1 80 | 81 | # Disable titlebar 82 | #new_window 1pixel 83 | 84 | # i3-gaps specific 85 | #gaps inner 0 86 | #gaps outer 0 87 | 88 | 89 | 90 | 91 | ############################################################################################ 92 | # 93 | # i3 Status Bar 94 | # 95 | ############################################################################################ 96 | 97 | # Start i3bar to display a workspace bar (plus the system information i3status 98 | # finds out, if available) 99 | bar { 100 | font pango: FontAwesome 8 101 | status_command "exec i3blocks" 102 | position top 103 | 104 | # Only show on main 105 | #output primary 106 | #output eDP1 107 | 108 | colors { 109 | # 110 | background #222222 111 | separator #444444 112 | statusline #666666 113 | 114 | # 115 | focused_workspace #da2263 #d70a53 #ffffff 116 | active_workspace #565656 #444444 #ffffff 117 | inactive_workspace #373737 #222222 #888888 118 | urgent_workspace #ec7ea4 #eb709b #ffffff 119 | } 120 | 121 | # tray_output none|primary| 122 | tray_output primary 123 | 124 | mode dock 125 | 126 | # separator between bar sections 127 | separator_symbol "|" 128 | } 129 | 130 | 131 | 132 | 133 | ############################################################################################ 134 | # 135 | # Floating 136 | # 137 | ############################################################################################ 138 | 139 | # When holding the floating modifier, you can resize a floating window by pressing 140 | # the right mouse button on it and moving around while holding it. 141 | # If you hold the shift button as well, the resize will be proportional (the aspect ratio will be preserved). 142 | # Use Mouse+$mod to drag floating windows to their wanted position 143 | floating_modifier $mod 144 | 145 | # toggle tiling / floating 146 | bindsym $mod+Shift+space floating toggle 147 | 148 | # change focus between tiling / floating windows 149 | #bindsym $mod+space focus mode_toggle 150 | 151 | 152 | 153 | 154 | ############################################################################################ 155 | # 156 | # Tiling (Splitting/Layout) 157 | # 158 | ############################################################################################ 159 | 160 | # split in horizontal orientation 161 | bindsym $mod+g split h 162 | bindsym $mod+v split v 163 | bindsym $mod+t split toggle 164 | 165 | # change container layout (stacked, tabbed, toggle split) 166 | bindsym $mod+s layout stacking 167 | bindsym $mod+w layout tabbed 168 | bindsym $mod+e layout toggle split 169 | 170 | # focus the parent container 171 | bindsym $mod+a focus parent 172 | 173 | # focus the child container 174 | #bindsym $mod+d focus child 175 | 176 | 177 | 178 | 179 | ############################################################################################ 180 | # 181 | # Fullscreen 182 | # 183 | ############################################################################################ 184 | 185 | # enter fullscreen mode for the focused container 186 | bindsym $mod+f fullscreen 187 | 188 | #popup_during_fullscreen smart|ignore|leave_fullscreen 189 | popup_during_fullscreen leave_fullscreen 190 | 191 | 192 | 193 | 194 | ############################################################################################ 195 | # 196 | # Scratch Pad 197 | # 198 | ############################################################################################ 199 | 200 | # Make the currently focused window a scratchpad 201 | # move the currently focused window to the scratchpad 202 | bindsym $mod+Shift+minus move scratchpad 203 | 204 | # Show the next scratchpad window or hide the focused scratchpad window. 205 | # If there are multiple scratchpad windows, this command cycles through them. 206 | bindsym $mod+minus scratchpad show 207 | 208 | # Show the sup-mail scratchpad window, if any. 209 | #bindsym mod4+s [title="^Sup ::"] scratchpad show 210 | 211 | 212 | 213 | 214 | ############################################################################################ 215 | # 216 | # Resizing 217 | # 218 | ############################################################################################ 219 | 220 | # Key to enter resize mode 221 | bindsym $mod+r mode "resize" 222 | 223 | # resize window (you can also use the mouse for that) 224 | mode "resize" { 225 | # These bindings trigger as soon as you enter the resize mode 226 | 227 | # Pressing left will shrink the window’s width. 228 | # Pressing right will grow the window’s width. 229 | # Pressing up will shrink the window’s height. 230 | # Pressing down will grow the window’s height. 231 | bindsym $left resize shrink width 10 px or 10 ppt 232 | bindsym $down resize grow height 10 px or 10 ppt 233 | bindsym $up resize shrink height 10 px or 10 ppt 234 | bindsym $right resize grow width 10 px or 10 ppt 235 | 236 | # same bindings, but for the arrow keys 237 | bindsym Left resize shrink width 10 px or 10 ppt 238 | bindsym Down resize grow height 10 px or 10 ppt 239 | bindsym Up resize shrink height 10 px or 10 ppt 240 | bindsym Right resize grow width 10 px or 10 ppt 241 | 242 | # back to normal: Enter or Escape 243 | bindsym Return mode "default" 244 | bindsym Escape mode "default" 245 | } 246 | 247 | 248 | 249 | 250 | ############################################################################################ 251 | # 252 | # Navigation (inside one workspace) 253 | # 254 | ############################################################################################ 255 | 256 | ############################################################ 257 | # Change Focus 258 | ############################################################ 259 | 260 | # change focus 261 | # alternatively, you can use the cursor keys: 262 | bindsym $mod+Left focus left 263 | bindsym $mod+Down focus down 264 | bindsym $mod+Up focus up 265 | bindsym $mod+Right focus right 266 | 267 | bindsym $mod+$left focus left 268 | bindsym $mod+$down focus down 269 | bindsym $mod+$up focus up 270 | bindsym $mod+$right focus right 271 | 272 | 273 | ############################################################ 274 | # Move/snap Window 275 | ############################################################ 276 | 277 | # (Note: Previously done with $alt+Shift+) 278 | 279 | # Alternatively, you can use the cursor keys: 280 | bindsym $alt+Left move left 281 | bindsym $alt+Down move down 282 | bindsym $alt+Up move up 283 | bindsym $alt+Right move right 284 | 285 | # Move focused Window 286 | bindsym $alt+$left move left 287 | bindsym $alt+$down move down 288 | bindsym $alt+$up move up 289 | bindsym $alt+$right move right 290 | 291 | 292 | 293 | 294 | ############################################################################################ 295 | # 296 | # Navigation (workspaces) 297 | # 298 | ############################################################################################ 299 | 300 | ############################################################ 301 | # Go to workspace 302 | ############################################################ 303 | 304 | # Switch to workspace by number 305 | bindsym $mod+1 workspace $WS1 306 | bindsym $mod+2 workspace $WS2 307 | bindsym $mod+3 workspace $WS3 308 | bindsym $mod+4 workspace $WS4 309 | bindsym $mod+5 workspace $WS5 310 | bindsym $mod+6 workspace $WS6 311 | bindsym $mod+7 workspace $WS7 312 | bindsym $mod+8 workspace $WS8 313 | bindsym $mod+9 workspace $WS9 314 | bindsym $mod+0 workspace $WS10 315 | 316 | # Cycle through Workspaces (on current monitor) 317 | bindsym $control+$mod+Left workspace prev_on_output 318 | bindsym $control+$mod+Right workspace next_on_output 319 | bindsym $control+$mod+$left workspace prev_on_output 320 | bindsym $control+$mod+$right workspace next_on_output 321 | 322 | # For instance: Assume you are on workspace "1: www" and switch to "2: IM" 323 | # using mod+2 because somebody sent you a message. 324 | # You don’t need to remember where you came from now, 325 | # you can just press $mod+2 again to switch back to "1: www". 326 | workspace_auto_back_and_forth yes 327 | 328 | # Use alt+tab to switch between workspaces back and forth 329 | bindsym $mod+Tab workspace back_and_forth 330 | 331 | 332 | ############################################################ 333 | # Move container to workspace 334 | ############################################################ 335 | 336 | # Move focused container to workspace by number 337 | bindsym $mod+Shift+1 move container to workspace $WS1 338 | bindsym $mod+Shift+2 move container to workspace $WS2 339 | bindsym $mod+Shift+3 move container to workspace $WS3 340 | bindsym $mod+Shift+4 move container to workspace $WS4 341 | bindsym $mod+Shift+5 move container to workspace $WS5 342 | bindsym $mod+Shift+6 move container to workspace $WS6 343 | bindsym $mod+Shift+7 move container to workspace $WS7 344 | bindsym $mod+Shift+8 move container to workspace $WS8 345 | bindsym $mod+Shift+9 move container to workspace $WS9 346 | bindsym $mod+Shift+0 move container to workspace $WS10 347 | 348 | # Go to Workspace with next/prev window (Shift+Alt) 349 | bindsym $mod+Shift+Left exec "~/.config/i3/bin/wsmove.py prev" 350 | bindsym $mod+Shift+Right exec "~/.config/i3/bin/wsmove.py next" 351 | bindsym $mod+Shift+$left exec "~/.config/i3/bin/wsmove.py prev" 352 | bindsym $mod+Shift+$right exec "~/.config/i3/bin/wsmove.py next" 353 | 354 | 355 | 356 | 357 | ############################################################################################ 358 | # 359 | # Navigation (monitors) 360 | # 361 | ############################################################################################ 362 | 363 | # Move workspace (virtual desktop) to top|down|right|left monitor 364 | 365 | #move workspace to output <|> 366 | #move container to output <|> 367 | bindsym $mod+$alt+$up move workspace to output up 368 | bindsym $mod+$alt+$down move workspace to output down 369 | bindsym $mod+$alt+$right move workspace to output right 370 | bindsym $mod+$alt+$left move workspace to output left 371 | 372 | bindsym $mod+$alt+Up move workspace to output up 373 | bindsym $mod+$alt+Down move workspace to output down 374 | bindsym $mod+$alt+Right move workspace to output right 375 | bindsym $mod+$alt+Left move workspace to output left 376 | 377 | 378 | 379 | 380 | ############################################################################################ 381 | # 382 | # Program Hotkeys 383 | # 384 | ############################################################################################ 385 | 386 | ############################################################ 387 | # System 388 | ############################################################ 389 | 390 | # Reload the configuration file 391 | bindsym $mod+Shift+c reload 392 | 393 | # Restart i3 inplace (preserves your layout/session, can be used to upgrade i3) 394 | bindsym $mod+Shift+r restart 395 | 396 | # Exit i3 (logs you out of your X session) 397 | #bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'" 398 | bindsym $mod+Shift+e mode "$mode_system" 399 | 400 | # Kill focused window 401 | bindsym $mod+q kill 402 | 403 | # Lock, Logout, Suspend, Hibernat, Reboot, Poweroff 404 | set $mode_system System (l) lock, (e) logout, (s) suspend, (h) hibernate, (r) reboot, (p) poweroff 405 | mode "$mode_system" { 406 | #bindsym l exec --no-startup-id system-lock.sh ~/Pictures/wallpaper/4k/2.png, mode "default" 407 | bindsym l exec --no-startup-id xlock -m, mode "default" 408 | bindsym e exec --no-startup-id i3-msg exit, mode "default" 409 | bindsym s exec --no-startup-id "xlock -b -m; system-suspend", mode "default" 410 | bindsym h exec --no-startup-id "xlock -b -m; system-hibernate", mode "default" 411 | bindsym r exec --no-startup-id system-reboot, mode "default" 412 | bindsym p exec --no-startup-id system-shutdown, mode "default" 413 | 414 | # back to normal: Enter or Escape 415 | bindsym Return mode "default" 416 | bindsym Escape mode "default" 417 | } 418 | 419 | 420 | ############################################################ 421 | # Apps 422 | ############################################################ 423 | 424 | # Start a terminal 425 | bindsym $mod+Return exec --no-startup-id exec urxvt 426 | bindsym $mod+Shift+Return exec --no-startup-id exec urxvt -name "floating_urxvt" 427 | 428 | # Run Dialog 429 | bindsym $mod+d exec "exec rofi -show run 430 | #bindsym $mod+space exec "exec rofi -show combi -combi-modi window,drun,run -modi combi,'calc:qalc +u8 -nocurrencies' -sidebar-mode" 431 | bindsym $mod+space exec "exec rofi -show combi -combi-modi window,drun -modi combi,calc -sidebar-mode -calc-command 'echo -n {result} | xclip'" 432 | 433 | # Clipboard Dialog 434 | bindsym $mod+c exec "CM_LAUNCHER=rofi clipmenu -p 'clipboard:'" 435 | 436 | # Pass Dialog 437 | bindsym $mod+p exec /home/cytopia/bin/pass-dmenu.sh 438 | 439 | 440 | ############################################################ 441 | # Special Keyboard keys 442 | ############################################################ 443 | 444 | # Sreen Backlight brightness 445 | bindsym XF86MonBrightnessUp exec --no-startup-id exec xf86-backlight -c up 446 | bindsym XF86MonBrightnessDown exec --no-startup-id exec xf86-backlight -c down 447 | 448 | # Audio Volume 449 | bindsym XF86AudioRaiseVolume exec --no-startup-id exec xf86-audio -c up 450 | bindsym XF86AudioLowerVolume exec --no-startup-id exec xf86-audio -c down 451 | bindsym XF86AudioMute exec --no-startup-id exec xf86-audio -c toggle 452 | 453 | # Audio Control 454 | bindsym XF86AudioPlay exec --no-startup-id exec playerctl play-pause 455 | bindsym XF86AudioPause exec --no-startup-id exec playerctl play-pause 456 | bindsym XF86AudioNext exec --no-startup-id exec playerctl next 457 | bindsym XF86AudioPrev exec --no-startup-id exec playerctl previous 458 | 459 | 460 | # Screenshot: all (with multi monitors) 461 | bindsym Print exec --no-startup-id "exec xscreenshot -p ~/Pictures/Screenshots/ -c maim -m multi" 462 | # Screenshot: select window or rectangle 463 | bindsym $mod+Sys_Req exec --no-startup-id "exec xscreenshot -p ~/Pictures/Screenshots/ -c maim -m selection" 464 | # Screenshot: select window 465 | bindsym $mod+Shift+Sys_Req exec --no-startup-id "exec xscreenshot -p ~/Pictures/Screenshots/ -c maim -m window" 466 | 467 | 468 | 469 | 470 | ############################################################################################ 471 | # 472 | # Default floating Apps 473 | # 474 | ############################################################################################ 475 | 476 | # Use xprop to detect class name: 477 | # $ xprop |grep -i class 478 | # WM_CLASS(STRING) = "gajim", "Gajim" 479 | # (Use the second name, that starts with a capital letter) 480 | 481 | 482 | # Drop-down Terminal 483 | exec --no-startup-id exec urxvt -name scratchurxvt 484 | for_window [instance="scratchurxvt"] move scratchpad 485 | bindsym $mod+grave [instance="scratchurxvt"] scratchpad show 486 | 487 | # Allow to start urxvt in floating mode ($mod+shift+enter) 488 | for_window [class="URxvt" instance="floating_urxvt$"] floating toggle 489 | 490 | 491 | 492 | 493 | ############################################################################################ 494 | # 495 | # Default start position for Apps 496 | # 497 | ############################################################################################ 498 | 499 | #assign [class="Subl3"] $WS2 500 | #assign [class="Chromium"] $WS3 501 | #assign [class="Filezilla"] $WS4 502 | #assign [class="Skype"] $WS6 503 | #assign [class="Gajim"] $WS6 504 | #assign [class="Evolution"] $WS7 505 | #assign [class="xpad"] $WS10 506 | 507 | 508 | 509 | 510 | ############################################################################################ 511 | # 512 | # Autostart Programs 513 | # 514 | ############################################################################################ 515 | 516 | # Wallpaper 517 | exec_always --no-startup-id feh --no-fehbg --bg-scale ${HOME}/Pictures/wallpaper/active-wallpaper 518 | 519 | # Autostart helper: https://github.com/cytopia/autorunner 520 | exec_always --no-startup-id /usr/local/bin/autorunner 521 | -------------------------------------------------------------------------------- /sublime/Asphalt (SL).tmTheme: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | author 6 | O'rlmente? 7 | comment 8 | Asphalt Theme - v1.0 9 | name 10 | Asphalt 11 | settings 12 | 13 | 14 | settings 15 | 16 | background 17 | #2D2D32 18 | caret 19 | #D2D2D7 20 | foreground 21 | #D2D2D7 22 | 23 | 24 | 25 | 26 | invisibles 27 | #737378 28 | lineHighlight 29 | #28282D 30 | selection 31 | #505055 32 | findHighlight 33 | #87878C 34 | findHighlightForeground 35 | #D7D7DC 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | name 46 | Source 47 | scope 48 | entity.other.attribute-name 49 | settings 50 | 51 | foreground 52 | #cc7832 53 | 54 | 55 | 56 | name 57 | Comment 58 | scope 59 | comment 60 | settings 61 | 62 | fontStyle 63 | 64 | 65 | 66 | foreground 67 | #797979 68 | 69 | 70 | 71 | name 72 | Keyword 73 | scope 74 | keyword, storage 75 | settings 76 | 77 | fontStyle 78 | 79 | foreground 80 | #CC7833 81 | 82 | 83 | 84 | name 85 | Keyword 86 | scope 87 | storage 88 | settings 89 | 90 | fontStyle 91 | 92 | foreground 93 | #a1617a 94 | 95 | 96 | 97 | name 98 | Function (definition) 99 | scope 100 | entity.name.function, keyword.other.name-of-parameter.objc 101 | settings 102 | 103 | fontStyle 104 | 105 | foreground 106 | #FFC66D 107 | 108 | 109 | 110 | name 111 | Class (definition) 112 | scope 113 | entity.name 114 | settings 115 | 116 | foreground 117 | #FFFFFF 118 | 119 | 120 | 121 | name 122 | Number 123 | scope 124 | constant.numeric 125 | settings 126 | 127 | fontStyle 128 | 129 | foreground 130 | #b4c973 131 | 132 | 133 | 134 | name 135 | Variable 136 | scope 137 | variable.language, variable.other 138 | settings 139 | 140 | fontStyle 141 | 142 | foreground 143 | #D0D0FF 144 | 145 | 146 | 147 | name 148 | Constant 149 | scope 150 | constant 151 | settings 152 | 153 | fontStyle 154 | 155 | foreground 156 | #6D9CBE 157 | 158 | 159 | 160 | name 161 | Constant (other variable) 162 | scope 163 | variable.other.constant 164 | settings 165 | 166 | foreground 167 | #c45837 168 | 169 | 170 | 171 | name 172 | Constant (built-in) 173 | scope 174 | constant.language 175 | settings 176 | 177 | fontStyle 178 | 179 | foreground 180 | #6c99bb 181 | 182 | 183 | 184 | name 185 | String 186 | scope 187 | string 188 | settings 189 | 190 | fontStyle 191 | 192 | foreground 193 | #b4c973 194 | 195 | 196 | 197 | name 198 | Library function 199 | scope 200 | support.function 201 | settings 202 | 203 | fontStyle 204 | 205 | foreground 206 | #c45837 207 | 208 | 209 | 210 | name 211 | Library type 212 | scope 213 | support.type 214 | settings 215 | 216 | foreground 217 | #6c99bb 218 | 219 | 220 | 221 | name 222 | Library constant 223 | scope 224 | support.constant 225 | settings 226 | 227 | foreground 228 | #b4c973 229 | 230 | 231 | 232 | name 233 | Markup tag 234 | scope 235 | meta.tag, declaration.tag, entity.name.tag 236 | settings 237 | 238 | fontStyle 239 | 240 | foreground 241 | #E8BF6A 242 | 243 | 244 | 245 | name 246 | Invalid 247 | scope 248 | invalid 249 | settings 250 | 251 | background 252 | #990000 253 | foreground 254 | #FFFFFF 255 | 256 | 257 | 258 | name 259 | String interpolation 260 | scope 261 | constant.character.escaped, constant.character.escape, string source, string source.ruby 262 | settings 263 | 264 | fontStyle 265 | 266 | foreground 267 | #a1617a 268 | 269 | 270 | 271 | name 272 | Diff Add 273 | scope 274 | markup.inserted 275 | settings 276 | 277 | background 278 | #00401E 279 | foreground 280 | #40FF9A 281 | 282 | 283 | 284 | name 285 | Diff Remove 286 | scope 287 | markup.deleted 288 | settings 289 | 290 | background 291 | #400021 292 | foreground 293 | #ff40a3 294 | 295 | 296 | 297 | name 298 | Diff Changed 299 | scope 300 | markup.changed 301 | settings 302 | 303 | background 304 | #803d00 305 | foreground 306 | #ffff55 307 | 308 | 309 | 310 | name 311 | Diff Header 312 | scope 313 | meta.diff.header, meta.separator.diff, meta.diff.index, meta.diff.range 314 | settings 315 | 316 | background 317 | #12466d 318 | foreground 319 | #65c2ef 320 | 321 | 322 | 323 | name 324 | CSS: units 325 | scope 326 | keyword.other.unit 327 | settings 328 | 329 | foreground 330 | #b4c973 331 | 332 | 333 | 334 | 335 | name 336 | Variable 337 | scope 338 | variable.language.js 339 | settings 340 | 341 | fontStyle 342 | 343 | foreground 344 | #52adda 345 | 346 | 347 | 348 | name 349 | Class js 350 | scope 351 | support.class.js 352 | settings 353 | 354 | fontStyle 355 | 356 | foreground 357 | #ff0007 358 | 359 | 360 | 361 | 362 | name 363 | Numbers css 364 | scope 365 | constant.numeric.css, constant.other.color.rgb-value.css 366 | settings 367 | 368 | fontStyle 369 | 370 | foreground 371 | #e36f81 372 | 373 | 374 | 375 | name 376 | Units css 377 | scope 378 | keyword.other.unit.css, punctuation.definition.constant.css 379 | settings 380 | 381 | fontStyle 382 | 383 | foreground 384 | #eda987 385 | 386 | 387 | 388 | name 389 | Tag css 390 | scope 391 | source.less entity.name.tag.css, source.css entity.name.tag.css, keyword.control.html.elements 392 | settings 393 | 394 | fontStyle 395 | 396 | foreground 397 | #f249cf 398 | 399 | 400 | 401 | name 402 | Pseudo-Class css 403 | scope 404 | entity.other.attribute-name.pseudo-class.css 405 | settings 406 | 407 | fontStyle 408 | 409 | foreground 410 | #b798bf 411 | 412 | 413 | 414 | name 415 | IDs css 416 | scope 417 | entity.other.attribute-name.id.css 418 | settings 419 | 420 | fontStyle 421 | 422 | foreground 423 | #cd3352 424 | 425 | 426 | 427 | name 428 | Quoted css 429 | scope 430 | source.less meta.property-value.css string.quoted.single.css, source.less meta.property-value.css string.quoted.double.css 431 | settings 432 | 433 | fontStyle 434 | 435 | foreground 436 | #f09d59 437 | 438 | 439 | 440 | name 441 | Important css 442 | scope 443 | keyword.other.important.css 444 | settings 445 | 446 | fontStyle 447 | 448 | foreground 449 | #ffe215 450 | 451 | 452 | 453 | 454 | 455 | name 456 | Doctype html 457 | scope 458 | meta.tag.sgml.html 459 | settings 460 | 461 | fontStyle 462 | 463 | foreground 464 | #827a96 465 | 466 | 467 | 468 | 469 | name 470 | GitGutter deleted 471 | scope 472 | markup.deleted.git_gutter 473 | settings 474 | 475 | foreground 476 | #F92672 477 | 478 | 479 | 480 | name 481 | GitGutter inserted 482 | scope 483 | markup.inserted.git_gutter 484 | settings 485 | 486 | foreground 487 | #A6E22E 488 | 489 | 490 | 491 | name 492 | GitGutter changed 493 | scope 494 | markup.changed.git_gutter 495 | settings 496 | 497 | foreground 498 | #967EFB 499 | 500 | 501 | 502 | name 503 | GitGutter ignored 504 | scope 505 | markup.ignored.git_gutter 506 | settings 507 | 508 | foreground 509 | #565656 510 | 511 | 512 | 513 | name 514 | GitGutter untracked 515 | scope 516 | markup.untracked.git_gutter 517 | settings 518 | 519 | foreground 520 | #565656 521 | 522 | 523 | 524 | name 525 | SublimeLinter Error 526 | scope 527 | sublimelinter.mark.error 528 | settings 529 | 530 | foreground 531 | #D02000 532 | 533 | 534 | name 535 | SublimeLinter Gutter Mark 536 | scope 537 | sublimelinter.gutter-mark 538 | settings 539 | 540 | foreground 541 | #FFFFFF 542 | 543 | 544 | name 545 | SublimeLinter Warning 546 | scope 547 | sublimelinter.mark.warning 548 | settings 549 | 550 | foreground 551 | #DDB700 552 | 553 | 554 | uuid 555 | f3e51493-254d-408e-974e-891e2b651617 556 | 557 | --------------------------------------------------------------------------------