├── LICENSE ├── README.md ├── etc ├── X11 │ └── xorg.conf.d │ │ └── 30-touchpad.conf ├── ly │ └── config.ini └── systemd │ └── logind.conf ├── home ├── .Xresources ├── .bin │ ├── b │ ├── c │ ├── d │ ├── l │ ├── p │ ├── s │ ├── t │ ├── v │ └── z ├── .config │ ├── alacritty │ │ └── alacritty.yml │ ├── bspwm │ │ └── bspwmrc │ ├── dunst │ │ └── dunstrc │ ├── nvim │ │ ├── coc-settings.json │ │ ├── colors │ │ │ └── siori.vim │ │ └── init.vim │ ├── picom │ │ └── picom.conf │ ├── rofi │ │ └── config.rasi │ └── sxhkd │ │ └── sxhkdrc ├── .editorconfig ├── .gitconfig ├── .prettierrc ├── .wp │ └── floral.jpg └── .zshrc └── ss.png /LICENSE: -------------------------------------------------------------------------------- 1 | This is free and unencumbered software released into the public domain. 2 | 3 | Anyone is free to copy, modify, publish, use, compile, sell, or distribute this software, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means. 4 | 5 | In jurisdictions that recognize copyright laws, the author or authors of this software dedicate any and all copyright interest in the software to the public domain. We make this dedication for the benefit of the public at large and to the detriment of our heirs and successors. We intend this dedication to be an overt act of relinquishment in perpetuity of all present and future rights to this software under copyright law. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 8 | 9 | For more information, please refer to https://unlicense.org 10 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | ~ dots ~ 3 |

4 | 5 | 6 | -------------------------------------------------------------------------------- /etc/X11/xorg.conf.d/30-touchpad.conf: -------------------------------------------------------------------------------- 1 | Section "InputClass" 2 | Identifier "touchpad" 3 | MatchProduct "ELAN1200:00 04F3:306F Touchpad" 4 | Driver "libinput" 5 | Option "Tapping" "on" 6 | Option "ClickMethod" "clickfinger" 7 | Option "NaturalScrolling" "true" 8 | EndSection 9 | -------------------------------------------------------------------------------- /etc/ly/config.ini: -------------------------------------------------------------------------------- 1 | # animation enabled 2 | #animate = false 3 | #animate = true 4 | 5 | # the active animation (only animation '0' available for now) 6 | #animation = 0 7 | 8 | # the char used to mask the password 9 | #asterisk = * 10 | #asterisk = o 11 | 12 | # background color id 13 | #bg = 0 14 | 15 | # blank main box 16 | #blank_box = true 17 | 18 | # erase password input on failure 19 | #blank_password = false 20 | blank_password = true 21 | 22 | # console path 23 | #console_dev = /dev/console 24 | 25 | # input active by default on startup 26 | #default_input = 2 27 | 28 | # foreground color id 29 | #fg = 9 30 | 31 | # remove main box borders 32 | #hide_borders = false 33 | #hide_borders = true 34 | 35 | # number of visible chars on an input 36 | #input_len = 34 37 | 38 | # active language 39 | #lang = en 40 | #lang = fr 41 | 42 | # load the saved desktop and login 43 | #load = true 44 | 45 | # main box margins 46 | margin_box_h = 3 47 | margin_box_v = 2 48 | 49 | # total input sizes 50 | #max_desktop_len = 100 51 | #max_login_len = 255 52 | #max_password_len = 255 53 | 54 | # cookie generator 55 | #mcookie_cmd = /usr/bin/mcookie 56 | 57 | # event timeout in milliseconds 58 | #min_refresh_delta = 5 59 | 60 | # default path 61 | #path = /sbin:/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin 62 | 63 | # command executed when pressing F2 64 | #restart_cmd = /sbin/shutdown -r now 65 | 66 | # save the current desktop and login as defaults 67 | #save = true 68 | 69 | # file in which to save and load the default desktop and login 70 | #save_file = /etc/ly/save 71 | 72 | # service name (set to ly to use the provided pam config file) 73 | #service_name = ly 74 | 75 | # command executed when pressing F1 76 | #shutdown_cmd = /sbin/shutdown -a now 77 | 78 | # terminal reset command (tput is faster) 79 | #term_reset_cmd = /usr/bin/tput reset 80 | 81 | # tty in use 82 | #tty = 2 83 | 84 | # wayland setup command 85 | #wayland_cmd = /etc/ly/wsetup.sh 86 | 87 | # add wayland specifier to session names 88 | #wayland_specifier = false 89 | #wayland_specifier = true 90 | 91 | # wayland desktop environments 92 | #waylandsessions = /usr/share/wayland-sessions 93 | 94 | # xorg server command 95 | #x_cmd = /usr/bin/X 96 | 97 | # xorg setup command 98 | #x_cmd_setup = /etc/ly/xsetup.sh 99 | 100 | # xorg xauthority edition tool 101 | #xauth_cmd = /usr/bin/xauth 102 | 103 | # xorg desktop environments 104 | #xsessions = /usr/share/xsessions 105 | -------------------------------------------------------------------------------- /etc/systemd/logind.conf: -------------------------------------------------------------------------------- 1 | # This file is part of systemd. 2 | # 3 | # systemd is free software; you can redistribute it and/or modify it 4 | # under the terms of the GNU Lesser General Public License as published by 5 | # the Free Software Foundation; either version 2.1 of the License, or 6 | # (at your option) any later version. 7 | # 8 | # Entries in this file show the compile time defaults. 9 | # You can change settings by editing this file. 10 | # Defaults can be restored by simply deleting this file. 11 | # 12 | # See logind.conf(5) for details. 13 | 14 | [Login] 15 | #NAutoVTs=6 16 | #ReserveVT=6 17 | #KillUserProcesses=no 18 | #KillOnlyUsers= 19 | #KillExcludeUsers=root 20 | #InhibitDelayMaxSec=5 21 | #UserStopDelaySec=10 22 | #HandlePowerKey=poweroff 23 | #HandleSuspendKey=suspend 24 | #HandleHibernateKey=hibernate 25 | #HandleLidSwitch=suspend 26 | HandleLidSwitchExternalPower=ignore 27 | #HandleLidSwitchDocked=ignore 28 | #HandleRebootKey=reboot 29 | #PowerKeyIgnoreInhibited=no 30 | #SuspendKeyIgnoreInhibited=no 31 | #HibernateKeyIgnoreInhibited=no 32 | #LidSwitchIgnoreInhibited=yes 33 | #RebootKeyIgnoreInhibited=no 34 | #HoldoffTimeoutSec=30s 35 | #IdleAction=ignore 36 | #IdleActionSec=30min 37 | #RuntimeDirectorySize=10% 38 | #RuntimeDirectoryInodes=400k 39 | #RemoveIPC=yes 40 | #InhibitorsMax=8192 41 | #SessionsMax=8192 42 | -------------------------------------------------------------------------------- /home/.Xresources: -------------------------------------------------------------------------------- 1 | ! special 2 | *.foreground: #b9b5b7 3 | *.background: #151113 4 | *.cursorColor: #b9b5b7 5 | 6 | ! black 7 | *.color0: #151113 8 | *.color8: #2e2527 9 | 10 | ! red 11 | *.color1: #9e7878 12 | *.color9: #9e8e8e 13 | 14 | ! green 15 | *.color2: #9a907a 16 | *.color10: #99948a 17 | 18 | ! yellow 19 | *.color3: #899a78 20 | *.color11: #91998a 21 | 22 | ! blue 23 | *.color4: #769c8b 24 | *.color12: #8c9c95 25 | 26 | ! magenta 27 | *.color5: #76969e 28 | *.color13: #8e9b9e 29 | 30 | ! cyan 31 | *.color6: #7a889c 32 | *.color14: #8c929c 33 | 34 | ! white 35 | *.color7: #b9b5b7 36 | *.color15: #cfcbcc 37 | -------------------------------------------------------------------------------- /home/.bin/b: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | dir=/tmp/splash 4 | if [[ -d $dir ]]; then 5 | rm -rf $dir 6 | fi 7 | 8 | mkdir $dir 9 | c=1 10 | 11 | while true; do 12 | wget -q -O $dir/$c.jpeg https://unsplash.it/3840/2160/?random 13 | feh --bg-fill $dir/$c.jpeg 14 | echo "Picture $c.jpeg has been downloaded!" 15 | c=$((c + 1)) 16 | done 17 | -------------------------------------------------------------------------------- /home/.bin/c: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | clear 3 | 4 | i=" " 5 | 6 | r='\033[0;31m' 7 | g='\033[0;32m' 8 | y='\033[0;33m' 9 | b='\033[0;34m' 10 | c='\033[0;35m' 11 | s='\033[0m' 12 | 13 | #intro 14 | printf "~ @iota ~\n" 15 | 16 | #colors 17 | printf "$r$i" 18 | printf "$g$i" 19 | printf "$y$i" 20 | printf "$b$i" 21 | printf "$c$i" 22 | 23 | #cleanup 24 | printf "$s\n\n" 25 | -------------------------------------------------------------------------------- /home/.bin/d: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | dots="$HOME/dots/" 4 | 5 | #raw 6 | _r() { 7 | d=$(dirname "${dots}${1}") 8 | mkdir -p "$d" 9 | cp -Rf "$1" "$d" 10 | } 11 | 12 | _rd() { 13 | rm -rf "${dots}${1}" 14 | } 15 | 16 | #home 17 | _() { 18 | d=$(dirname "${dots}home${1}") 19 | mkdir -p "$d" 20 | cp -Rf "${HOME}${1}" "$d" 21 | } 22 | 23 | _d() { 24 | rm -rf "${dots}home${1}" 25 | } 26 | 27 | #cleanup 28 | _rd "/*" 29 | _d "/*" 30 | 31 | #home 32 | _ "/.zshrc" 33 | _ "/.Xresources" 34 | _ "/.gitconfig" 35 | _ "/.editorconfig" 36 | _ "/.prettierrc" 37 | _ "/.bin" 38 | _ "/.wp" 39 | _ "/.config/bspwm" 40 | _ "/.config/sxhkd" 41 | _ "/.config/alacritty" 42 | _ "/.config/picom" 43 | _ "/.config/rofi" 44 | _ "/.config/nvim" 45 | _ "/.config/dunst" 46 | 47 | #sys 48 | _r "/etc/X11/xorg.conf.d/30-touchpad.conf" 49 | _r "/etc/systemd/logind.conf" 50 | _r "/etc/ly/config.ini" 51 | 52 | #rms 53 | _d "/.config/nvim/plugged" 54 | 55 | #push 56 | cd "$HOME/dots" && p 57 | -------------------------------------------------------------------------------- /home/.bin/l: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | help='l v0.1 4 | 5 | USAGE: 6 | l [-u/-d/-h] 7 | 8 | FLAGS: 9 | u, -u, --up - increase the brightness by 5% 10 | d, -d, --down - decrease the brightness by 5% 11 | h, -h, --help - display this help message 12 | ' 13 | current=$(xrandr --current --verbose | grep -w "Brightness" | head -n 1 | cut -d" " -f2) 14 | 15 | [ -z "$1" ] && { 16 | printf '%s' "$help" 17 | exit 1 18 | } 19 | 20 | run() { 21 | [ "$(echo "$1 > 1" | bc)" = "1" ] && exit 1 22 | xrandr --output eDP-1 --brightness $1 23 | notify-send "brightness: $(echo "$1 * 100" | bc | cut -d. -f1)%" \ 24 | -h string:x-canonical-private-synchronous:brightness 25 | } 26 | 27 | case $1 in 28 | u | -u | --up) 29 | new="$(echo "$current + 0.05" | bc)" 30 | run "$new" 31 | ;; 32 | d | -d | --down) 33 | new="$(echo "$current - 0.05" | bc)" 34 | run "$new" 35 | ;; 36 | h | -h | --help) 37 | printf '%s' "$help" 38 | exit 0 39 | ;; 40 | esac 41 | -------------------------------------------------------------------------------- /home/.bin/p: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | [ -d ".git" ] || { 4 | echo "not a git repository!" 5 | exit 1 6 | } 7 | 8 | [ -z "$1" ] && { 9 | printf "[COMMIT MESSAGE]: " 10 | read -r cmt 11 | } || cmt="${1:-"n/a"}" 12 | 13 | cat </dev/null 2>&1 21 | sudo rm -rf /var/cache/pacman/pkg/* 22 | 23 | b="$(pacman -Qtdq)" 24 | [ -n "$b" ] && { 25 | sudo pacman --noconfirm -Rns "$b" >/dev/null 2>&1 26 | } 27 | 28 | printf "new" 29 | _s 30 | -------------------------------------------------------------------------------- /home/.bin/z: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | files="$#" 4 | out="" 5 | 6 | while [ "$#" -gt 0 ]; do 7 | link="$(curl -s -F"file=@$1" http://0x0.st)" 8 | ident="[$((files - $#))] $link ($1)" 9 | 10 | out="${out}${ident} 11 | " 12 | echo "$ident" 13 | shift 14 | done 15 | 16 | printf "copy? " 17 | read -r _c 18 | 19 | printf "%s" "$out" | grep -w "[$_c]" | cut -d " " -f2 | xclip -sel c 20 | -------------------------------------------------------------------------------- /home/.config/alacritty/alacritty.yml: -------------------------------------------------------------------------------- 1 | custom_cursor_colors: true 2 | 3 | window: 4 | padding: 5 | x: 30 6 | y: 30 7 | 8 | font: 9 | size: 9 10 | normal: 11 | family: SF Mono 12 | 13 | colors: 14 | cursor: 15 | cursor: '0x9e7878' 16 | 17 | # Default colors 18 | primary: 19 | background: '0x151113' 20 | foreground: '0xb9b5b7' 21 | 22 | # Normal colors 23 | normal: 24 | black: '0x151113' 25 | red: '0x9e7878' 26 | green: '0x9a907a' 27 | yellow: '0x899a78' 28 | blue: '0x769c8b' 29 | magenta: '0x76969e' 30 | cyan: '0x7a889c' 31 | white: '0xb9b5b7' 32 | 33 | # Bright colors 34 | bright: 35 | black: '0x2e2527' 36 | red: '0x9e8e8e' 37 | green: '0x99948a' 38 | yellow: '0x91998a' 39 | blue: '0x8c9c95' 40 | magenta: '0x8e9b9e' 41 | cyan: '0x8c929c' 42 | white: '0xcfcbcc' 43 | -------------------------------------------------------------------------------- /home/.config/bspwm/bspwmrc: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | #inspired by gk 4 | _c() { bspc config "$@"; } 5 | _m() { bspc monitor "$@"; } 6 | _s() { 7 | pkill -x "$1" 8 | { 9 | sleep 0.1 10 | "$@" & 11 | } 12 | } 13 | 14 | #monitors 15 | _m -d I II III IV V 16 | 17 | #borders 18 | _c border_width 10 19 | _c normal_border_color "#261c1f" 20 | _c focused_border_color "#3d292e" 21 | _c borderless_monocle false 22 | _c gapless_monocle false 23 | 24 | #misc 25 | _c window_gap 20 26 | _c focus_follows_pointer true 27 | 28 | #startup 29 | _s sxhkd 30 | _s picom -b 31 | _s xsetroot -cursor_name left_ptr 32 | _s ~/.fehbg 33 | _s xrdb -load ~/.Xresources 34 | _s pulseaudio -D 35 | -------------------------------------------------------------------------------- /home/.config/dunst/dunstrc: -------------------------------------------------------------------------------- 1 | [global] 2 | geometry = "350x50-40-40" 3 | indicate_hidden = no 4 | shrink = no 5 | transparency = 0 6 | separator_height = 1 7 | padding = 20 8 | horizontal_padding = 20 9 | frame_width = 10 10 | frame_color = "#3d292e" 11 | separator_color = frame 12 | sort = yes 13 | font = SF Mono 12 14 | line_height = 0 15 | markup = full 16 | format = "%s\n%b" 17 | alignment = center 18 | vertical_alignment = center 19 | show_age_threshold = 60 20 | word_wrap = yes 21 | ellipsize = middle 22 | ignore_newline = no 23 | stack_duplicates = true 24 | hide_duplicate_count = false 25 | show_indicators = no 26 | browser = firefox 27 | always_run_script = true 28 | title = Dunst 29 | class = Dunst 30 | startup_notification = false 31 | verbosity = mesg 32 | corner_radius = 0 33 | mouse_left_click = close_current 34 | mouse_middle_click = do_action, close_current 35 | mouse_right_click = close_all 36 | 37 | [urgency_low] 38 | background = "#151113" 39 | foreground = "#b9b5b7" 40 | timeout = 10 41 | 42 | [urgency_normal] 43 | background = "#151113" 44 | foreground = "#b9b5b7" 45 | timeout = 15 46 | 47 | [urgency_critical] 48 | background = "#151113" 49 | foreground = "#3d292e" 50 | timeout = 10 51 | 52 | # vim: ft=cfg 53 | -------------------------------------------------------------------------------- /home/.config/nvim/coc-settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "languageserver": { 3 | "erlang": { "command": "erlang_ls", "filetypes": ["erlang"] } 4 | }, 5 | "diagnostic-languageserver.filetypes": { 6 | "sh": "shellcheck" 7 | }, 8 | "diagnostic-languageserver.formatFiletypes": { 9 | "sh": "shfmt" 10 | }, 11 | "diagnostic-languageserver.formatters": { 12 | "shfmt": { 13 | "command": "shfmt" 14 | } 15 | }, 16 | "coc.preferences.formatOnSaveFiletypes": ["css", "markdown", "json"] 17 | } 18 | -------------------------------------------------------------------------------- /home/.config/nvim/colors/siori.vim: -------------------------------------------------------------------------------- 1 | """""""""""" 2 | " ORIGINAL " 3 | """""""""""" 4 | " Name: siori.vim 5 | " Version: 1.0 6 | " Maintainer: github.com/co1ncidence 7 | " License: The BSD 3 Clause License 8 | " 9 | " Based on 10 | " 11 | " https://github.com/pbrisbin/vim-colors-off (MIT License) 12 | " 13 | " which in turn based on 14 | " 15 | " https://github.com/reedes/vim-colors-pencil (MIT License) 16 | " 17 | """ 18 | " Modified by: Safin Singh 19 | 20 | hi clear 21 | 22 | if exists('syntax on') 23 | syntax reset 24 | endif 25 | 26 | let g:colors_name='siori' 27 | 28 | let s:black = { "gui": "#2e2527", "cterm": "0" } 29 | let s:medium_gray = { "gui": "#b9b5b7", "cterm": "243" } 30 | let s:white = { "gui": "#b9b5b7", "cterm": "15" } 31 | let s:light_black = { "gui": "#2e2527", "cterm": "8" } 32 | let s:lighter_black = { "gui": "#534347", "cterm": "240" } 33 | let s:subtle_black = { "gui": "#4f4648", "cterm": "236" } 34 | let s:light_gray = { "gui": "#625558", "cterm": "249" } 35 | let s:lighter_gray = { "gui": "#b9b5b7", "cterm": "251" } 36 | let s:lightest_gray = { "gui": "#cfcbcc", "cterm": "251" } 37 | let s:dark_red = { "gui": "#9e7878", "cterm": "1" } 38 | let s:light_red = { "gui": "#9e8e8e", "cterm": "1" } 39 | let s:dark_blue = { "gui": "#76969e", "cterm": "4" } 40 | let s:light_blue = { "gui": "#946C66", "cterm": "153" } 41 | let s:dark_cyan = { "gui": "#9e7878", "cterm": "6" } 42 | let s:light_cyan = { "gui": "#76969e", "cterm": "14" } 43 | let s:dark_green = { "gui": "#769c8b", "cterm": "2" } 44 | let s:light_green = { "gui": "#899a78", "cterm": "10" } 45 | let s:dark_purple = { "gui": "#7a889c", "cterm": "5" } 46 | let s:light_purple = { "gui": "#8c929c", "cterm": "13" } 47 | let s:light_yellow = { "gui": "#9a907a", "cterm": "11" } 48 | let s:dark_yellow = { "gui": "#99948a", "cterm": "3" } 49 | 50 | if &background == "dark" 51 | let s:bg = s:black 52 | let s:bg_subtle = s:light_black 53 | let s:bg_very_subtle = s:subtle_black 54 | let s:norm = s:lighter_gray 55 | let s:norm_subtle = s:medium_gray 56 | let s:norm_very_subtle = s:medium_gray 57 | let s:purple = s:light_purple 58 | let s:cyan = s:light_cyan 59 | let s:green = s:light_green 60 | let s:red = s:light_red 61 | let s:yellow = s:light_yellow 62 | let s:visual = s:lighter_black 63 | let s:cursor_line = s:subtle_black 64 | let s:constant = s:light_blue 65 | let s:comment = s:light_gray 66 | let s:selection = s:dark_yellow 67 | let s:selection_fg = s:black 68 | let s:ok = s:light_green 69 | let s:warning = s:yellow 70 | let s:error = s:light_red 71 | else 72 | let s:bg = s:white 73 | let s:bg_subtle = s:lighter_gray 74 | let s:bg_very_subtle = s:light_gray 75 | let s:norm = s:light_black 76 | let s:norm_subtle = s:lighter_black 77 | let s:norm_very_subtle = s:medium_gray 78 | let s:purple = s:dark_purple 79 | let s:cyan = s:dark_cyan 80 | let s:green = s:dark_green 81 | let s:red = s:dark_red 82 | let s:yellow = s:dark_yellow 83 | let s:visual = s:light_blue 84 | let s:cursor_line = s:lightest_gray 85 | let s:constant = s:dark_blue 86 | let s:comment = s:light_gray 87 | let s:selection = s:light_yellow 88 | let s:selection_fg = s:light_black 89 | let s:ok = s:light_green 90 | let s:warning = s:yellow 91 | let s:error = s:dark_red 92 | endif 93 | 94 | unlet s:black 95 | unlet s:medium_gray 96 | unlet s:white 97 | unlet s:light_black 98 | unlet s:lighter_black 99 | unlet s:subtle_black 100 | unlet s:light_gray 101 | unlet s:lighter_gray 102 | unlet s:lightest_gray 103 | unlet s:dark_red 104 | unlet s:light_red 105 | unlet s:dark_blue 106 | unlet s:light_blue 107 | unlet s:dark_cyan 108 | unlet s:light_cyan 109 | unlet s:dark_green 110 | unlet s:light_green 111 | unlet s:dark_purple 112 | unlet s:light_purple 113 | unlet s:light_yellow 114 | unlet s:dark_yellow 115 | 116 | " https://github.com/noahfrederick/vim-hemisu/ 117 | function! s:h(group, style) 118 | execute "highlight" a:group 119 | \ "guifg=" (has_key(a:style, "fg") ? a:style.fg.gui : "NONE") 120 | \ "guibg=" (has_key(a:style, "bg") ? a:style.bg.gui : "NONE") 121 | \ "guisp=" (has_key(a:style, "sp") ? a:style.sp.gui : "NONE") 122 | \ "gui=" (has_key(a:style, "gui") ? a:style.gui : "NONE") 123 | \ "ctermfg=" (has_key(a:style, "fg") ? a:style.fg.cterm : "NONE") 124 | \ "ctermbg=" (has_key(a:style, "bg") ? a:style.bg.cterm : "NONE") 125 | \ "cterm=" (has_key(a:style, "cterm") ? a:style.cterm : "NONE") 126 | endfunction 127 | 128 | " __Normal__ 129 | if has("gui") 130 | call s:h("Normal", {"fg": s:norm, "bg": s:bg}) 131 | call s:h("Cursor", {"fg": s:bg, "bg": s:norm}) 132 | else 133 | call s:h("Normal", {"fg": s:norm}) 134 | hi! link Cursor Identifier 135 | endif 136 | hi! link Identifier Normal 137 | hi! link Function Identifier 138 | hi! link Type Normal 139 | hi! link StorageClass Type 140 | hi! link Structure Type 141 | hi! link Typedef Type 142 | hi! link Special Normal 143 | hi! link SpecialChar Special 144 | hi! link Tag Special 145 | hi! link Delimiter Special 146 | hi! link SpecialComment Special 147 | hi! link Debug Special 148 | hi! link VertSplit Normal 149 | hi! link PreProc Normal 150 | hi! link Define PreProc 151 | hi! link Macro PreProc 152 | hi! link PreCondit PreProc 153 | 154 | " __Operator__ 155 | call s:h("Noise", {"fg": s:norm_subtle, "gui": "NONE"}) 156 | hi! link Operator Noise 157 | hi! link FoldColumn LineNr 158 | hi! link SignColumn LineNr 159 | 160 | " __Comment__ 161 | call s:h("Comment", {"fg": s:comment, "gui": "NONE"}) 162 | hi! link shShebang Comment 163 | 164 | " __Constant__ 165 | call s:h("Constant", {"fg": s:constant}) 166 | hi! link Character Constant 167 | hi! link Number Constant 168 | hi! link Boolean Constant 169 | hi! link Float Constant 170 | hi! link String Constant 171 | hi! link Directory Constant 172 | hi! link Title Constant 173 | 174 | " __Statement__ 175 | call s:h("Statement", {"fg": s:norm, "gui": "bold"}) 176 | hi! link Include Statement 177 | hi! link Conditonal Statement 178 | hi! link Repeat Statement 179 | hi! link Label Statement 180 | hi! link Keyword Statement 181 | hi! link Exception Statement 182 | 183 | " __ErrorMsg__ 184 | call s:h("ErrorMsg", {"fg": s:error}) 185 | hi! link Error ErrorMsg 186 | hi! link Question ErrorMsg 187 | " __WarningMsg__ 188 | call s:h("WarningMsg", {"fg": s:warning}) 189 | " __MoreMsg__ 190 | call s:h("MoreMsg", {"fg": s:norm_subtle, "cterm": "bold", "gui": "bold"}) 191 | hi! link ModeMsg MoreMsg 192 | 193 | " __NonText__ 194 | call s:h("NonText", {"fg": s:bg}) 195 | hi! link qfLineNr NonText 196 | hi! link NonText NonText 197 | 198 | " __Folded 199 | call s:h("Folded", {"bg": s:norm_very_subtle, "fg": s:bg}) 200 | hi! link Folded Folded 201 | 202 | " __Search__ 203 | call s:h("Search", {"bg": s:selection, "fg": s:selection_fg}) 204 | call s:h("IncSearch", {"bg": s:selection, "fg": s:selection_fg, "gui": "bold"}) 205 | 206 | " __Visual__ 207 | call s:h("Visual", {"bg": s:visual}) 208 | " __VisualNOS__ 209 | call s:h("VisualNOS", {"bg": s:bg_subtle}) 210 | 211 | call s:h("Ignore", {"fg": s:bg}) 212 | 213 | " __DiffAdd__ 214 | call s:h("DiffAdd", {"fg": s:green}) 215 | " __DiffDelete__ 216 | call s:h("DiffDelete", {"fg": s:red}) 217 | " __DiffChange__ 218 | call s:h("DiffChange", {"fg": s:yellow}) 219 | " __DiffText__ 220 | call s:h("DiffText", {"fg": s:constant}) 221 | 222 | if has("gui_running") 223 | call s:h("SpellBad", {"gui": "underline", "sp": s:red}) 224 | call s:h("SpellCap", {"gui": "underline", "sp": s:ok}) 225 | call s:h("SpellRare", {"gui": "underline", "sp": s:error}) 226 | call s:h("SpellLocal", {"gui": "underline", "sp": s:ok}) 227 | else 228 | call s:h("SpellBad", {"cterm": "underline", "fg": s:red}) 229 | call s:h("SpellCap", {"cterm": "underline", "fg": s:ok}) 230 | call s:h("SpellRare", {"cterm": "underline", "fg": s:error}) 231 | call s:h("SpellLocal", {"cterm": "underline", "fg": s:ok}) 232 | endif 233 | 234 | hi! link helpHyperTextEntry Title 235 | hi! link helpHyperTextJump String 236 | 237 | " __StatusLine__ 238 | call s:h("StatusLine", {"gui": "underline", "bg": s:bg, "fg": s:norm_very_subtle}) 239 | " __StatusLineNC__ 240 | call s:h("StatusLineNC", {"gui": "underline", "bg": s:bg, "fg": s:bg_subtle}) 241 | " __WildMenu__ 242 | call s:h("WildMenu", {"gui": "underline,bold", "bg": s:bg, "fg": s:norm}) 243 | 244 | call s:h("StatusLineOk", {"gui": "underline", "bg": s:bg, "fg": s:ok}) 245 | call s:h("StatusLineError", {"gui": "underline", "bg": s:bg, "fg": s:error}) 246 | call s:h("StatusLineWarning", {"gui": "underline", "bg": s:bg, "fg": s:warning}) 247 | 248 | " __Pmenu__ 249 | call s:h("Pmenu", {"fg": s:norm, "bg": s:cursor_line}) 250 | hi! link PmenuSbar Pmenu 251 | hi! link PmenuThumb Pmenu 252 | " __PmenuSel__ 253 | call s:h("PmenuSel", {"fg": s:norm, "bg": s:cursor_line, "gui": "bold"}) 254 | 255 | hi! link TabLine Normal 256 | hi! link TabLineSel Keyword 257 | hi! link TabLineFill Normal 258 | 259 | " __CursorLine__ 260 | call s:h("CursorLine", {"bg": s:cursor_line}) 261 | call s:h("CursorLineNr", {"bg": s:bg}) 262 | 263 | " __LineNr__ 264 | call s:h("LineNr", {"bg": s:bg, "fg": s:bg_subtle}) 265 | 266 | " __MatchParen__ 267 | call s:h("MatchParen", {"bg": s:bg_subtle, "fg": s:norm}) 268 | 269 | hi! link htmlH1 Normal 270 | hi! link htmlH2 Normal 271 | hi! link htmlH3 Normal 272 | hi! link htmlH4 Normal 273 | hi! link htmlH5 Normal 274 | hi! link htmlH6 Normal 275 | 276 | hi link diffRemoved DiffDelete 277 | hi link diffAdded DiffAdd 278 | 279 | " Signify, git-gutter 280 | hi link SignifySignAdd LineNr 281 | hi link SignifySignDelete LineNr 282 | hi link SignifySignChange LineNr 283 | hi link GitGutterAdd LineNr 284 | hi link GitGutterDelete LineNr 285 | hi link GitGutterChange LineNr 286 | hi link GitGutterChangeDelete LineNr 287 | 288 | hi link jsFlowTypeKeyword Statement 289 | hi link jsFlowImportType Statement 290 | hi link jsFunction Statement 291 | hi link jsGlobalObjects Normal 292 | hi link jsGlobalNodeObjects Normal 293 | hi link jsArrowFunction Noise 294 | hi link StorageClass Statement 295 | 296 | hi link xmlTag Constant 297 | hi link xmlTagName xmlTag 298 | hi link xmlEndTag xmlTag 299 | hi link xmlAttrib xmlTag 300 | 301 | hi link markdownH1 Statement 302 | hi link markdownH2 Statement 303 | hi link markdownH3 Statement 304 | hi link markdownH4 Statement 305 | hi link markdownH5 Statement 306 | hi link markdownH6 Statement 307 | hi link markdownListMarker Constant 308 | hi link markdownCode Constant 309 | hi link markdownCodeBlock Constant 310 | hi link markdownCodeDelimiter Constant 311 | hi link markdownHeadingDelimiter Constant 312 | 313 | hi link yamlBlockMappingKey Statement 314 | hi link pythonOperator Statement 315 | 316 | hi link ALEWarning WarningMsg 317 | hi link ALEWarningSign WarningMsg 318 | hi link ALEError ErrorMsg 319 | hi link ALEErrorSign ErrorMsg 320 | hi link ALEInfo InfoMsg 321 | hi link ALEInfoSign InfoMsg 322 | 323 | hi link sqlStatement Statement 324 | hi link sqlKeyword Keyword 325 | -------------------------------------------------------------------------------- /home/.config/nvim/init.vim: -------------------------------------------------------------------------------- 1 | " theme settings 2 | let &t_8f = "\[41;2;%lu;%lu;%lum" 3 | let &t_8b = "\[48;2;%lu;%lu;%lum" 4 | 5 | set termguicolors 6 | set background=dark 7 | set t_Co=254 8 | 9 | syntax on 10 | colorscheme siori 11 | syntax on 12 | 13 | set ruler 14 | set laststatus=2 15 | set noshowmode 16 | set linebreak 17 | set hidden 18 | 19 | " compatibility 20 | set nocompatible 21 | filetype on 22 | 23 | " plugins 24 | call plug#begin('~/.config/nvim/plugged') 25 | Plug 'neoclide/coc.nvim', { 'branch': 'release' } 26 | Plug 'sheerun/vim-polyglot' 27 | Plug 'z0mbix/vim-shfmt', { 'for': 'sh' } 28 | Plug 'junegunn/goyo.vim' 29 | Plug 'preservim/nerdtree' 30 | Plug 'ap/vim-css-color' 31 | Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } 32 | Plug 'junegunn/fzf.vim' 33 | Plug 'voldikss/vim-floaterm' 34 | Plug 'ryanoasis/vim-devicons' 35 | Plug 'editorconfig/editorconfig-vim' 36 | Plug 'jiangmiao/auto-pairs' 37 | call plug#end() 38 | 39 | " text wrap 40 | set wrap 41 | 42 | " tabs 43 | set autoindent 44 | set noexpandtab 45 | set tabstop=4 46 | 47 | " searching 48 | set ignorecase 49 | 50 | " backups 51 | set nobackup 52 | set noswapfile 53 | 54 | " statusbar 55 | set laststatus=2 56 | set noshowmode 57 | 58 | " extension-specific settings 59 | "" fzf 60 | let g:fzf_layout = { 'window': { 'width': 0.8, 'height': 0.8 } } 61 | 62 | "" shfmt 63 | let g:shfmt_fmt_on_save = 1 64 | 65 | "" comments 66 | let g:NERDSpaceDelims = 1 67 | 68 | " keybinds 69 | map :NERDTreeToggle 70 | map :BLines 71 | map :GFiles 72 | map :set nonumber! norelativenumber! 73 | map :FloatermNew --height=0.8 --width=0.8 74 | 75 | " file association 76 | autocmd BufNewFile,BufRead *.prettierrc set ft=json 77 | autocmd BufNewFile,BufRead *.eslintrc set ft=json 78 | 79 | " nuaNce's statusline 80 | hi Sl1 ctermfg=none cterm=none ctermbg=NONE 81 | hi Sl2 ctermfg=none cterm=none ctermbg=NONE 82 | hi Sl3 ctermfg=none cterm=none ctermbg=NONE 83 | hi Slrese ctermfg=none cterm=none ctermbg=none 84 | 85 | function! RedrawMode(mode) 86 | if a:mode == 'n' 87 | return 'normal mode' 88 | elseif a:mode == 'i' 89 | return 'insert mode' 90 | elseif a:mode == 'R' 91 | return 'replace mode' 92 | elseif a:mode == 'v' || a:mode == 'V' || a:mode == '^V' 93 | return 'visual mode' 94 | elseif a:mode == 'c' 95 | return 'command mode' 96 | elseif a:mode == 't' 97 | return 'trace mode' 98 | endif 99 | return '' 100 | endfunction 101 | 102 | function! SetModifiedSymbol(modified) 103 | if a:modified == 1 104 | return '// unsaved' 105 | else 106 | return '' 107 | endif 108 | endfunction 109 | 110 | function! SetFiletype(filetype) 111 | if a:filetype == '' 112 | return 'txt' 113 | else 114 | return a:filetype 115 | endif 116 | endfunction 117 | 118 | set statusline=%#Slrese#\ %{RedrawMode(mode())}\ %#Sl1# 119 | set statusline+=%#Sl3#%{SetModifiedSymbol(&modified)} 120 | set statusline+=%#SlRese# 121 | set statusline+=%= 122 | set statusline+=%#Sl2#\ %.20t\ // 123 | set statusline+=\%#Sl2#\ %l,%c 124 | 125 | set shiftwidth=4 126 | -------------------------------------------------------------------------------- /home/.config/picom/picom.conf: -------------------------------------------------------------------------------- 1 | # corner-radius = 6.0; 2 | 3 | shadow = true; 4 | shadow-radius = 30; 5 | shadow-offset-x = -30; 6 | shadow-offset-y = -20; 7 | shadow-opacity = 0.4; 8 | 9 | fading = true; 10 | fade-in-step = 0.1; 11 | fade-out-step = 0.1; 12 | -------------------------------------------------------------------------------- /home/.config/rofi/config.rasi: -------------------------------------------------------------------------------- 1 | configuration { 2 | modi: "run"; 3 | width: 20; 4 | font: "SF Mono 12"; 5 | terminal: "alacritty"; 6 | disable-history: false; 7 | sidebar-mode: true; 8 | tokenize: true; 9 | m: "-5"; 10 | line-margin: 2; 11 | line-padding: 1; 12 | separator-style: "none"; 13 | hide-scrollbar: true; 14 | window-format: "{w} {c}"; 15 | } 16 | 17 | * { 18 | bg: #151113; 19 | fg: #b9b5b7; 20 | accent: #3d292e; 21 | 22 | background-color: @bg; 23 | text-color: @fg; 24 | } 25 | 26 | window { 27 | padding: 50px; 28 | border: 10px; 29 | border-color: @accent; 30 | } 31 | 32 | prompt, entry { 33 | enabled: false; 34 | } 35 | 36 | element { 37 | padding: 10px; 38 | text-align: center; 39 | } 40 | 41 | element selected { 42 | background-color: @accent; 43 | text-color: @fg; 44 | } 45 | 46 | button { 47 | enabled: false; 48 | } 49 | -------------------------------------------------------------------------------- /home/.config/sxhkd/sxhkdrc: -------------------------------------------------------------------------------- 1 | # 2 | # wm independent hotkeys 3 | # 4 | 5 | # terminal emulator 6 | super + Return 7 | alacritty 8 | 9 | # take a full-screen screenshot 10 | super + Print 11 | maim ~/rice.png && \ 12 | notify-send "screenshot taken!" 13 | 14 | # take a selection screenshot 15 | Print 16 | scr -S && \ 17 | notify-send "screenshot taken!" 18 | 19 | # volume 20 | XF86Audio{Raise,Lower}Volume 21 | ~/.bin/s {u,d} 22 | 23 | # mute sink 24 | XF86AudioMute 25 | pactl set-sink-mute 0 toggle && \ 26 | notify-send "婢 muted" 27 | 28 | # program launcher 29 | super + d 30 | rofi -show run 31 | 32 | #info 33 | super + shift + t 34 | notify-send "$(~/.bin/t)" 35 | 36 | #primary display brightness 37 | XF86MonBrightnessUp 38 | ~/.bin/l u 39 | 40 | XF86MonBrightnessDown 41 | ~/.bin/l d 42 | 43 | # make sxhkd reload its config 44 | super + Escape 45 | pkill -USR1 -x sxhkd 46 | 47 | # 48 | # bspwm hotkeys 49 | # 50 | 51 | # quit/restart bspwm 52 | super + alt + {q,r} 53 | bspc {quit,wm -r} 54 | 55 | # close and kill 56 | super + {_,shift + }w 57 | bspc node -{c,k} 58 | 59 | # send the newest marked node to the newest preselected node 60 | super + y 61 | bspc node newest.marked.local -n newest.!automatic.local 62 | 63 | # swap the current node and the biggest window 64 | super + g 65 | bspc node -s biggest.window 66 | 67 | # 68 | # state/flags 69 | # 70 | 71 | # set the window state 72 | super + {t,s,f} 73 | bspc node -t {tiled,floating,fullscreen} 74 | 75 | # set the node flags 76 | super + ctrl + {m,x,y,z} 77 | bspc node -g {marked,locked,sticky,private} 78 | 79 | # 80 | # focus/swap 81 | # 82 | 83 | # focus the node in the given direction 84 | super + {_,shift + }{h,j,k,l} 85 | bspc node -{f,s} {west,south,north,east} 86 | 87 | # focus the next/previous window in the current desktop 88 | super + {_,shift + }c 89 | bspc node -f {next,prev}.local.!hidden.window 90 | 91 | # focus the next/previous desktop in the current monitor 92 | super + bracket{left,right} 93 | bspc desktop -f {prev,next}.local 94 | 95 | # focus the last node/desktop 96 | super + {grave,Tab} 97 | bspc {node,desktop} -f last 98 | 99 | # focus the older or newer node in the focus history 100 | super + {o,i} 101 | bspc wm -h off; \ 102 | bspc node {older,newer} -f; \ 103 | bspc wm -h on 104 | 105 | # focus or send to the given desktop 106 | super + {_,shift + }{1-9,0} 107 | bspc {desktop -f,node -d} '^{1-9,10}' 108 | 109 | # 110 | # preselect 111 | # 112 | 113 | # preselect the direction 114 | super + ctrl + {h,j,k,l} 115 | bspc node -p {west,south,north,east} 116 | 117 | # preselect the ratio 118 | super + ctrl + {1-9} 119 | bspc node -o 0.{1-9} 120 | 121 | # cancel the preselection for the focused node 122 | super + ctrl + space 123 | bspc node -p cancel 124 | 125 | # cancel the preselection for the focused desktop 126 | super + ctrl + shift + space 127 | bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel 128 | 129 | # 130 | # move/resize 131 | # 132 | 133 | # expand a window by moving one of its side outward 134 | super + alt + {h,j,k,l} 135 | bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0} 136 | 137 | # contract a window by moving one of its side inward 138 | super + alt + shift + {h,j,k,l} 139 | bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0} 140 | 141 | # move a floating window 142 | super + {Left,Down,Up,Right} 143 | bspc node -v {-20 0,0 20,0 -20,20 0} 144 | -------------------------------------------------------------------------------- /home/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | end_of_line = lf 5 | charset = utf-8 6 | 7 | indent_style = tab 8 | indent_size = 4 9 | 10 | insert_final_newline = true 11 | trim_trailing_whitespace = true 12 | 13 | [*.{yml,md}] 14 | indent_style = space 15 | indent_size = 2 16 | -------------------------------------------------------------------------------- /home/.gitconfig: -------------------------------------------------------------------------------- 1 | [credential] 2 | helper = store 3 | [user] 4 | name = Safin Singh 5 | email = safin.singh@gmail.com 6 | -------------------------------------------------------------------------------- /home/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "singleQuote": true, 3 | "trailingComma": "none", 4 | "printWidth": 80, 5 | "semi": false, 6 | "useTabs": true 7 | } 8 | -------------------------------------------------------------------------------- /home/.wp/floral.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/safinsingh/dots/93ee1cfa8a8512207edd796abb1a7e58e97d4e8d/home/.wp/floral.jpg -------------------------------------------------------------------------------- /home/.zshrc: -------------------------------------------------------------------------------- 1 | #shell options 2 | set -k 3 | setopt auto_cd 4 | setopt extendedglob 5 | setopt notify 6 | 7 | unsetopt PROMPT_SP 8 | unsetopt beep 9 | bindkey -e 10 | 11 | #vars 12 | export LESS_TERMCAP_mb=$'\e[1;32m' 13 | export LESS_TERMCAP_md=$'\e[1;32m' 14 | export LESS_TERMCAP_me=$'\e[0m' 15 | export LESS_TERMCAP_se=$'\e[0m' 16 | export LESS_TERMCAP_so=$'\e[01;33m' 17 | export LESS_TERMCAP_ue=$'\e[0m' 18 | export LESS_TERMCAP_us=$'\e[1;4;31m' 19 | 20 | export TERMINAL="alacritty" 21 | export EDITOR="nvim" 22 | export VISUAL="$EDITOR" 23 | export BROWSER="firefox" 24 | export TERM="xterm-256color" 25 | 26 | export PATH="/home/pdx/.bin:$PATH" 27 | export PATH="/home/pdx/.deno/bin:$PATH" 28 | export PATH="/home/pdx/.cargo/bin:$PATH" 29 | export PROMPT='%F{red}%B*%b%f ' 30 | 31 | #aliases 32 | alias ls="exa --icons --group-directories-first" 33 | alias la="exa -a --icons --group-directories-first" 34 | alias ll="exa -l -a --icons --group-directories-first" 35 | alias tree="exa -a --icons --tree --group-directories-first" 36 | 37 | #file manipulation 38 | alias grep="grep --color=auto" 39 | alias vim="nvim" 40 | 41 | #disk 42 | alias space="sudo du -sh / 2>/dev/null" 43 | 44 | #screen 45 | alias record="scr -c -e -r60 2>/dev/null" 46 | alias mirror="xrandr --output DP-1 --auto --same-as eDP-1" 47 | alias xwin="Xephyr -br -ac -noreset -screen 1600x900 :2" 48 | alias bigxwin="Xephyr -br -ac -noreset -screen 1920x1080 :2" 49 | alias xdisp="DISPLAY=:2" 50 | -------------------------------------------------------------------------------- /ss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/safinsingh/dots/93ee1cfa8a8512207edd796abb1a7e58e97d4e8d/ss.png --------------------------------------------------------------------------------