initial commit
1@@ -0,0 +1,62 @@
2+Xft.dpi: 96
3+Xft.antialias: true
4+Xft.rgba: rgb
5+Xft.hinting: true
6+Xft.hintstyle: hintslight
7+URxvt.internalBorder: 5
8+Xcursor.theme:Quintom-Snow
9+URxvt.scrollBar:false
10+URxvt.font: xft:JetBrainsMono NF:size=14
11+URxvt.boldFont: xft:JetBrainsMono NF:bold:size=14
12+URxvt.letterSpace: -1
13+#define base00 #212121
14+#define base01 #303030
15+#define base02 #353535
16+#define base03 #4a4a4a
17+#define base04 #b2ccd6
18+#define base05 #eeffff
19+#define base06 #eeffff
20+#define base07 #ffffff
21+#define base08 #f07178
22+#define base09 #f78c6c
23+#define base0A #ffcb6b
24+#define base0B #c3e88d
25+#define base0C #89ddff
26+#define base0D #82aaff
27+#define base0E #c792ea
28+#define base0F #ff5370
29+
30+*foreground: base05
31+#ifdef background_opacity
32+*background: [background_opacity]base00
33+#else
34+*background: base00
35+#endif
36+*cursorColor: base05
37+
38+*color0: base00
39+*color1: base08
40+*color2: base0B
41+*color3: base0A
42+*color4: base0D
43+*color5: base0E
44+*color6: base0C
45+*color7: base05
46+
47+*color8: base03
48+*color9: base08
49+*color10: base0B
50+*color11: base0A
51+*color12: base0D
52+*color13: base0E
53+*color14: base0C
54+*color15: base07
55+
56+! Note: colors beyond 15 might not be loaded (e.g., xterm, urxvt),
57+! use 'shell' template to set these if necessary
58+*color16: base09
59+*color17: base0F
60+*color18: base01
61+*color19: base02
62+*color20: base04
63+*color21: base06
A · .bashrc
+141, -0 1@@ -0,0 +1,141 @@
2+#
3+# ~/.bashrc
4+#
5+
6+[[ $- != *i* ]] && return
7+
8+colors() {
9+ local fgc bgc vals seq0
10+
11+ printf "Color escapes are %s\n" '\e[${value};...;${value}m'
12+ printf "Values 30..37 are \e[33mforeground colors\e[m\n"
13+ printf "Values 40..47 are \e[43mbackground colors\e[m\n"
14+ printf "Value 1 gives a \e[1mbold-faced look\e[m\n\n"
15+
16+ # foreground colors
17+ for fgc in {30..37}; do
18+ # background colors
19+ for bgc in {40..47}; do
20+ fgc=${fgc#37} # white
21+ bgc=${bgc#40} # black
22+
23+ vals="${fgc:+$fgc;}${bgc}"
24+ vals=${vals%%;}
25+
26+ seq0="${vals:+\e[${vals}m}"
27+ printf " %-9s" "${seq0:-(default)}"
28+ printf " ${seq0}TEXT\e[m"
29+ printf " \e[${vals:+${vals+$vals;}}1mBOLD\e[m"
30+ done
31+ echo; echo
32+ done
33+}
34+
35+[ -r /usr/share/bash-completion/bash_completion ] && . /usr/share/bash-completion/bash_completion
36+
37+# Change the window title of X terminals
38+case ${TERM} in
39+ xterm*|rxvt*|Eterm*|aterm|kterm|gnome*|interix|konsole*)
40+ PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/\~}\007"'
41+ ;;
42+ screen*)
43+ PROMPT_COMMAND='echo -ne "\033_${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/\~}\033\\"'
44+ ;;
45+esac
46+
47+use_color=true
48+
49+# Set colorful PS1 only on colorful terminals.
50+# dircolors --print-database uses its own built-in database
51+# instead of using /etc/DIR_COLORS. Try to use the external file
52+# first to take advantage of user additions. Use internal bash
53+# globbing instead of external grep binary.
54+safe_term=${TERM//[^[:alnum:]]/?} # sanitize TERM
55+match_lhs=""
56+[[ -f ~/.dir_colors ]] && match_lhs="${match_lhs}$(<~/.dir_colors)"
57+[[ -f /etc/DIR_COLORS ]] && match_lhs="${match_lhs}$(</etc/DIR_COLORS)"
58+[[ -z ${match_lhs} ]] \
59+ && type -P dircolors >/dev/null \
60+ && match_lhs=$(dircolors --print-database)
61+[[ $'\n'${match_lhs} == *$'\n'"TERM "${safe_term}* ]] && use_color=true
62+
63+if ${use_color} ; then
64+ # Enable colors for ls, etc. Prefer ~/.dir_colors #64489
65+ if type -P dircolors >/dev/null ; then
66+ if [[ -f ~/.dir_colors ]] ; then
67+ eval $(dircolors -b ~/.dir_colors)
68+ elif [[ -f /etc/DIR_COLORS ]] ; then
69+ eval $(dircolors -b /etc/DIR_COLORS)
70+ fi
71+ fi
72+
73+ if [[ ${EUID} == 0 ]] ; then
74+ PS1='\[\033[01;31m\][\h\[\033[01;36m\] \W\[\033[01;31m\]]\$\[\033[00m\] '
75+ else
76+ PS1='\[\033[01;32m\][\u@\h\[\033[01;37m\] \W\[\033[01;32m\]]\$\[\033[00m\] '
77+ fi
78+
79+ alias ls='ls --color=auto'
80+ alias grep='grep --colour=auto'
81+ alias egrep='egrep --colour=auto'
82+ alias fgrep='fgrep --colour=auto'
83+else
84+ if [[ ${EUID} == 0 ]] ; then
85+ # show root@ when we don't have colors
86+ PS1='\u@\h \W \$ '
87+ else
88+ PS1='\u@\h \w \$ '
89+ fi
90+fi
91+
92+unset use_color safe_term match_lhs sh
93+
94+alias cp="cp -i" # confirm before overwriting something
95+alias df='df -h' # human-readable sizes
96+alias free='free -m' # show sizes in MB
97+alias np='nano -w PKGBUILD'
98+alias more=less
99+
100+xhost +local:root > /dev/null 2>&1
101+
102+complete -cf sudo
103+
104+# Bash won't get SIGWINCH if another process is in the foreground.
105+# Enable checkwinsize so that bash will check the terminal size when
106+# it regains control. #65623
107+# http://cnswww.cns.cwru.edu/~chet/bash/FAQ (E11)
108+shopt -s checkwinsize
109+
110+shopt -s expand_aliases
111+
112+# export QT_SELECT=4
113+
114+# Enable history appending instead of overwriting. #139609
115+shopt -s histappend
116+
117+#
118+# # ex - archive extractor
119+# # usage: ex <file>
120+ex ()
121+{
122+ if [ -f $1 ] ; then
123+ case $1 in
124+ *.tar.bz2) tar xjf $1 ;;
125+ *.tar.gz) tar xzf $1 ;;
126+ *.bz2) bunzip2 $1 ;;
127+ *.rar) unrar x $1 ;;
128+ *.gz) gunzip $1 ;;
129+ *.tar) tar xf $1 ;;
130+ *.tbz2) tar xjf $1 ;;
131+ *.tgz) tar xzf $1 ;;
132+ *.zip) unzip $1 ;;
133+ *.Z) uncompress $1;;
134+ *.7z) 7z x $1 ;;
135+ *) echo "'$1' cannot be extracted via ex()" ;;
136+ esac
137+ else
138+ echo "'$1' is not a valid file"
139+ fi
140+}
141+
142+eval "$(starship init bash)"
A · .zshrc
+12, -0 1@@ -0,0 +1,12 @@
2+source ~/Git_ext/zsh-autocomplete/zsh-autocomplete.plugin.zsh
3+# Lines configured by zsh-newuser-install
4+HISTFILE=~/.histfile
5+HISTSIZE=1000
6+SAVEHIST=1000
7+bindkey -v
8+# End of lines configured by zsh-newuser-install
9+# The following lines were added by compinstall
10+#zstyle :compinstall filename '/home/arjun/.zshrc'
11+eval "$(starship init zsh)"
12+#autoload -Uz compinit
13+alias ls='ls --color=auto'
A · alacritty/alacritty.yml
+92, -0 1@@ -0,0 +1,92 @@
2+# to the user's home directory starting with `~/`.
3+#import:
4+# - /path/to/alacritty.yml
5+#env:
6+ # TERM variable
7+ #
8+ # This value is used to set the `$TERM` environment variable for
9+ # each instance of Alacritty. If it is not present, alacritty will
10+ # check the local terminfo database and use `alacritty` if it is
11+ # available, otherwise `xterm-256color` is used.
12+ #TERM: alacritty
13+
14+window:
15+ padding:
16+ x: 20
17+ y: 20
18+
19+# Font configuration (changes require restart)
20+font:
21+ # The size to use.
22+ size: 13
23+ # The normal (roman) font face to use.
24+ normal:
25+ family: JetBrains Mono
26+ # Style can be specified to pick a specific face.
27+ style: Regular
28+
29+ # The bold font face
30+ bold:
31+ family: JetBrains Mono
32+ # Style can be specified to pick a specific face.
33+ style: Bold
34+
35+ # The italic font face
36+ italic:
37+ family: JetBrains Mono
38+ # Style can be specified to pick a specific face.
39+ style: Italic
40+
41+# If `true`, bold text is drawn using the bright color variants.
42+ draw_bold_text_with_bright_colors: true
43+
44+# Base16 Material Darker 256 - alacritty color config
45+# Nate Peterson
46+colors:
47+ # Default colors
48+ primary:
49+ background: '0x212121'
50+ foreground: '0xeeffff'
51+
52+ # Colors the cursor will use if `custom_cursor_colors` is true
53+ cursor:
54+ text: '0x212121'
55+ cursor: '0xeeffff'
56+
57+ # Normal colors
58+ normal:
59+ black: '0x212121'
60+ red: '0xf07178'
61+ green: '0xc3e88d'
62+ yellow: '0xffcb6b'
63+ blue: '0x82aaff'
64+ magenta: '0xc792ea'
65+ cyan: '0x89ddff'
66+ white: '0xeeffff'
67+
68+ # Bright colors
69+ bright:
70+ black: '0x4a4a4a'
71+ red: '0xf07178'
72+ green: '0xc3e88d'
73+ yellow: '0xffcb6b'
74+ blue: '0x82aaff'
75+ magenta: '0xc792ea'
76+ cyan: '0x89ddff'
77+ white: '0xffffff'
78+
79+ indexed_colors:
80+ - { index: 16, color: '0xf78c6c' }
81+ - { index: 17, color: '0xff5370' }
82+ - { index: 18, color: '0x303030' }
83+ - { index: 19, color: '0x353535' }
84+ - { index: 20, color: '0xb2ccd6' }
85+ - { index: 21, color: '0xeeffff' }
86+
87+cursor:
88+ # Cursor style
89+ style:
90+ shape: Block
91+ blinking: On
92+ blink_interval: 500
93+
A · bspwm/bspwmrc
+31, -0 1@@ -0,0 +1,31 @@
2+#! /bin/sh
3+
4+bspc monitor HDMI-0 -d 1 2 3 4 5
5+bspc monitor HDMI-1 -d 1 2 3 4 5
6+
7+#Window settings
8+bspc config border_width 2
9+bspc config window_gap 10
10+bspc config split_ratio 0.50
11+bspc config borderless_monocle true
12+bspc config gapless_monocle true
13+bspc config focus_follows_pointer true
14+bspc config top_padding 35
15+bspc config right_padding 0
16+bspc config bottom_padding 0
17+bspc config left_padding 0
18+#Switch the resize/move mod key which is mod1 in bspwm for some reason?
19+bspc config pointer_modifier mod1
20+#Border colors
21+bspc config normal_border_color "#212121"
22+bspc config active_border_color "#212121"
23+bspc config focused_border_color "#d3d3d3"
24+bspc config presel_feedback_color "#000000"
25+bspc config urgent_border_color "#000000"
26+
27+#Applications on bspwm session init
28+picom -b &
29+xset -dpms s off
30+nitrogen --restore &
31+~/.config/polybar/launch.sh &
32+sxhkd &
A · dunst/dunstrc
+70, -0 1@@ -0,0 +1,70 @@
2+[global]
3+ monitor = 0
4+ geometry = "1055x5-295+5"
5+ indicate_hidden = yes
6+ shrink = no
7+ transparency = 0
8+ notification_height = 1
9+ separator_height = 2
10+ padding = 7
11+ horizontal_padding = 5
12+ text_icon_padding = 0
13+ frame_width = 1
14+ frame_color = "#212121"
15+ separator_color = frame
16+ sort = yes
17+ idle_threshold = 120
18+ font = Inter Medium 11
19+ line_height = 0
20+ markup = full
21+ format = "%s %b"
22+ alignment = center
23+ vertical_alignment = center
24+ show_age_threshold = 60
25+ word_wrap = no
26+ ellipsize = middle
27+ ignore_newline = no
28+ stack_duplicates = true
29+ hide_duplicate_count = false
30+ show_indicators = yes
31+ icon_position = off
32+ min_icon_size = 0
33+ always_run_script = true
34+ title = Dunst
35+ class = Dunst
36+ startup_notification = true
37+ verbosity = mesg
38+ corner_radius = 6
39+ force_xwayland = false
40+ force_xinerama = false
41+ mouse_left_click = none
42+ mouse_middle_click = none
43+ mouse_right_click = none
44+
45+
46+[urgency_low]
47+ # IMPORTANT: colors have to be defined in quotation marks.
48+ # Otherwise the "#" and following would be interpreted as a comment.
49+ background = "#212121"
50+ foreground = "#ffffff"
51+ timeout = 10
52+ # Icon for notifications with low urgency, uncomment to enable
53+ #icon = /path/to/icon
54+
55+[urgency_normal]
56+ background = "#212121"
57+ foreground = "#ffffff"
58+ timeout = 10
59+ # Icon for notifications with normal urgency, uncomment to enable
60+ #icon = /path/to/icon
61+
62+[urgency_critical]
63+ background = "#900000"
64+ foreground = "#ffffff"
65+ frame_color = "#ffffff"
66+ timeout = 0
67+ # Icon for notifications with critical urgency, uncomment to enable
68+ #icon = /path/to/icon
69+
70+# vim: ft=cfg
71+
A · gtk-2.0/gtkfilechooser.ini
+12, -0 1@@ -0,0 +1,12 @@
2+[Filechooser Settings]
3+LocationMode=path-bar
4+ShowHidden=true
5+ExpandFolders=false
6+ShowSizeColumn=true
7+GeometryX=540
8+GeometryY=225
9+GeometryWidth=840
10+GeometryHeight=630
11+SortColumn=name
12+SortOrder=ascending
13+StartupMode=recent
A · gtk-3.0/bookmarks
+5, -01@@ -0,0 +1,5 @@
2+file:///home/arjun/.config
3+file:///home/arjun/Media
4+file:///home/arjun/Notes
5+file:///home/arjun/Projects
6+file:///home/arjun/Executables
A · gtk-3.0/settings.ini
+16, -0 1@@ -0,0 +1,16 @@
2+[Settings]
3+gtk-theme-name=Materia-dark-compact
4+gtk-icon-theme-name=Papirus-Dark
5+gtk-font-name=Inter 11
6+gtk-cursor-theme-size=0
7+gtk-toolbar-style=GTK_TOOLBAR_BOTH
8+gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
9+gtk-button-images=1
10+gtk-menu-images=1
11+gtk-enable-event-sounds=1
12+gtk-enable-input-feedback-sounds=1
13+gtk-xft-antialias=1
14+gtk-xft-hinting=1
15+gtk-xft-hintstyle=hintslight
16+gtk-cursor-theme-name=xcursor-breeze-snow
17+gtk-xft-rgba=rgb
A · nvim/.netrwhist
+12, -0 1@@ -0,0 +1,12 @@
2+let g:netrw_dirhistmax =10
3+let g:netrw_dirhistcnt =3
4+let g:netrw_dirhist_3='/home/arjun/.config/nvim'
5+let g:netrw_dirhist_2='/home/arjun/.config/rofi'
6+let g:netrw_dirhist_1='/home/arjun/.config/dunst'
7+let g:netrw_dirhist_0='/home/arjun/.config/alacritty'
8+let g:netrw_dirhist_9='/home/arjun/.oh-my-zsh/custom'
9+let g:netrw_dirhist_8='/home/arjun/.oh-my-zsh'
10+let g:netrw_dirhist_7='/home/arjun/.config/sxhkd'
11+let g:netrw_dirhist_6='/home/arjun/.config/volumeicon'
12+let g:netrw_dirhist_5='/home/arjun/.config'
13+let g:netrw_dirhist_4='/home/arjun/.config/nvim/plugged/coc.nvim'
A · nvim/init.vim
+13, -0 1@@ -0,0 +1,13 @@
2+call plug#begin('~/.config/nvim/plugged')
3+Plug 'neoclide/coc.nvim', {'branch': 'release'}
4+Plug 'kaicataldo/material.vim', { 'branch': 'main' }
5+Plug 'rust-lang/rust.vim'
6+Plug 'instant-markdown/vim-instant-markdown', {'for': 'markdown'}
7+call plug#end()
8+filetype plugin indent on
9+set termguicolors
10+set number
11+syntax enable
12+let g:material_theme_style = 'darker'
13+colorscheme material
14+let g:instant_markdown_browser = "firefox --new-window"
A · nvim/plugged/base16-vim
+1, -01@@ -0,0 +1 @@
2+Subproject commit 6191622d5806d4448fa2285047936bdcee57a098
A · nvim/plugged/coc.nvim
+1, -01@@ -0,0 +1 @@
2+Subproject commit 70e5a383cd1c5e39505ef016e8507e7daa4bc7dc
A · nvim/plugged/material.vim
+1, -01@@ -0,0 +1 @@
2+Subproject commit f66fba49bc72aa59c17ffceee96a86d3eb07e28e
A · nvim/plugged/rust.vim
+1, -01@@ -0,0 +1 @@
2+Subproject commit 87c745d8d506fc1eecc1d81df15d5bde1658a2fc
A · nvim/plugged/vim-instant-markdown
+1, -01@@ -0,0 +1 @@
2+Subproject commit eb52cb6d651023c6507033d2f87715addbd55aab
A · nvim/plugged/vim-rainbow
+1, -01@@ -0,0 +1 @@
2+Subproject commit a6c7fd5a2b0193b5dbd03f62ad820b521dea3290
A · picom/picom.conf
+68, -0 1@@ -0,0 +1,68 @@
2+shadow = false;
3+clear-shadow = true;
4+shadow-radius = 40;
5+shadow-opacity = .45;
6+shadow-offset-x = -40;
7+shadow-offset-y = -20;
8+shadow-exclude = [
9+ "_NET_WM_WINDOW_TYPE:a = '_NET_WM_WINDOW_TYPE_NOTIFICATION'",
10+ "_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'",
11+ "_GTK_FRAME_EXTENTS@:c",
12+ "!focused"
13+];
14+shadow-ignore-shaped = false
15+fading = false
16+fade-in-step = 0.028;
17+fade-out-step = 0.03;
18+fade-delta = 5;
19+no-fading-openclose = false
20+
21+#rounded corners
22+corner-radius = 8;
23+rounded-corners-exclude = [
24+ "window_type = 'toolbar'",
25+ "window_type = 'menu'",
26+ "window_type = 'dropdown_menu'",
27+ "window_type = 'popup_menu'",
28+ "window_type = 'Notification'",
29+ "window_type = 'dock'",
30+ "class_g = 'Dunst'",
31+];
32+
33+#rounded borders
34+round-borders = 1;
35+round-borders-rule = [
36+ "2:window_type = 'normal'",
37+];
38+round-borders-exclude = [
39+ "window_type = 'dunst'"
40+];
41+
42+frame-opacity = 1
43+menu-opacity = 1
44+#inactive-dim = 0
45+inactive-opacity-override = true;
46+focus-exclude = [ "class_g = 'i3-frame'"];
47+active-opacity = 1.0
48+opacity-rule = [
49+ "0:_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'"
50+];
51+
52+backend = "glx";
53+vsync = true
54+mark-wmwin-focused = false;
55+mark-ovredir-focused = false;
56+refresh-rate = 75
57+detect-transient = false;
58+detect-rounded-corners = false;
59+detect-client-leader = false;
60+xrender-sync-fence = false;
61+
62+wintypes:
63+{
64+ tooltip = { fade = true; shadow = true; opacity = 1; focus = true; full-shadow = false; };
65+ dock = { shadow = false; }
66+ dnd = { shadow = false; }
67+ popup_menu = { opacity = 1; }
68+ dropdown_menu = { opacity = 1; }
69+};
A · polybar/config
+151, -0 1@@ -0,0 +1,151 @@
2+[colors]
3+transparent = #00000000
4+background = #212121
5+background-alt = #ababab
6+foreground = #ffffff
7+foreground-alt = #eeffff
8+primary = #ffb52a
9+secondary = #e60053
10+alert = #bd2c40
11+
12+[bar/Date]
13+monitor = ${env:MONITOR:HDMI-0}
14+inherit = bar/Workspace
15+width = 280px
16+offset-x = 1630px
17+modules-center = date
18+
19+[bar/SysStats]
20+monitor = ${env:MONITOR:HDMI-1}
21+inherit = bar/Workspace
22+width = 500px
23+offset-x = 1410px
24+module-margin = 3
25+modules-center = network cpu memory temperature
26+
27+[bar/Title]
28+inherit = bar/Workspace
29+modules-center = xwindow
30+width = 400px
31+offset-x = 165px
32+
33+[bar/Workspace2]
34+monitor = ${env:MONITOR:HDMI-1}
35+inherit = bar/Workspace
36+
37+[bar/Workspace]
38+monitor = ${env:MONITOR:HDMI-0}
39+height = 35
40+width = 150px
41+offset-x = 10px
42+offset-y = 5px
43+fixed-center = true
44+background = ${colors.background}
45+foreground = ${colors.foreground}
46+bottom = false
47+padding = 3
48+module-margin = 0
49+border-top-size = 0
50+border-left-size = 0
51+border-right-size = 0
52+border-bottom-size = 0
53+radius = 6
54+modules-right =
55+modules-left =
56+modules-center = bspwm
57+wm-restack = bspwm
58+override-redirect= true
59+font-0 = Inter Medium:size=11;2
60+font-1 = Ubuntu Nerd Font:size=12;2
61+
62+[module/xwindow]
63+type = internal/xwindow
64+label = %title%
65+label-maxlen = 45
66+label-empty = Desktop
67+
68+[module/bspwm]
69+type = internal/bspwm
70+pin-workspaces = true
71+inline-mode = false
72+enable-click = false
73+enable-scroll = false
74+reverse-scroll = false
75+; Available tags:
76+; <label-monitor>
77+; <label-state> - gets replaced with <label-(focused|urgent|occupied|empty)>
78+; <label-mode> - gets replaced with <label-(monocle|tiled|fullscreen|floating|locked|sticky|private)>
79+; Default: <label-state>
80+format = <label-state> <label-mode>
81+label-monitor = %name%
82+
83+
84+label-focused = %{T2}
85+label-focused-foreground = #ffffff
86+
87+label-occupied = %{T2}
88+label-occupied-foreground = #ffffff
89+
90+label-urgent = %{T2}
91+label-urgent-foreground = #f71919
92+
93+label-empty = %{T2}
94+label-empty-foreground = #ffffff
95+
96+; Separator in between workspaces
97+label-separator = |
98+label-separator-padding = 0
99+label-separator-foreground = ${colors.background}
100+
101+[module/cpu]
102+type = internal/cpu
103+interval = 2
104+format-prefix-foreground = ${colors.foreground}
105+label = "%{T2} %{T1}%percentage%%"
106+
107+[module/memory]
108+type = internal/memory
109+interval = 2
110+label = " %{T2} %{T1}%gb_used%/%gb_total%"
111+
112+[module/date]
113+type = internal/date
114+interval = 30
115+date ="%A, %d-%m-%Y"
116+time = "| %I:%M%P"
117+format-background = ${colors.background}
118+label = %date% %time%
119+
120+[module/temperature]
121+type = internal/temperature
122+thermal-zone = 0
123+warn-temperature = 60
124+format = <ramp> <label>
125+format-underline = #f50a4d
126+format-warn = <ramp> <label-warn>
127+format-warn-underline = ${self.format-underline}
128+label = "%{T2}%{T1}%temperature-c%"
129+label-warn = %temperature-c%
130+label-warn-foreground = ${colors.secondary}
131+ramp-0 =
132+ramp-1 =
133+ramp-2 =
134+ramp-foreground = ${colors.foreground-alt}
135+
136+[module/network]
137+type = internal/network
138+interface = enp0s31f6
139+interval = 1
140+label-connected = "%downspeed% %upspeed%"
141+label-disconnected = OFF
142+accumulate-stats = true
143+
144+[settings]
145+screenchange-reload = true
146+pseudo-transparency = true
147+
148+[global/wm]
149+;margin-top = 0
150+;margin-bottom = 0
151+
152+; vim:ft=dosini
A · polybar/launch.sh
+16, -0 1@@ -0,0 +1,16 @@
2+#!/bin/bash
3+
4+# Terminate already running bar instances
5+killall -q polybar
6+
7+# Wait until the processes have been shut down
8+while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done
9+
10+# Launch Polybar, using default config location ~/.config/polybar/config
11+polybar Workspace &
12+polybar Workspace2 &
13+polybar SysStats &
14+polybar Date &
15+polybar Title &
16+
17+echo "Polybar launched..."
A · qt5ct/qt5ct.conf
+31, -0 1@@ -0,0 +1,31 @@
2+[Appearance]
3+color_scheme_path=/usr/share/qt5ct/colors/darker.conf
4+custom_palette=true
5+icon_theme=Papirus-Dark
6+standard_dialogs=gtk2
7+style=gtk2
8+
9+[Fonts]
10+fixed=@Variant(\0\0\0@\0\0\0\x1c\0J\0\x65\0t\0\x42\0r\0\x61\0i\0n\0s\0 \0M\0o\0n\0o@&\0\0\0\0\0\0\xff\xff\xff\xff\x5\x1\0\x32\x10)
11+general=@Variant(\0\0\0@\0\0\0\n\0I\0n\0t\0\x65\0r@&\0\0\0\0\0\0\xff\xff\xff\xff\x5\x1\0\x32\x10)
12+
13+[Interface]
14+activate_item_on_single_click=1
15+buttonbox_layout=2
16+cursor_flash_time=1000
17+dialog_buttons_have_icons=1
18+double_click_interval=400
19+gui_effects=@Invalid()
20+keyboard_scheme=2
21+menus_have_icons=true
22+show_shortcuts_in_context_menus=true
23+stylesheets=/usr/share/qt5ct/qss/fusion-fixes.qss, /usr/share/qt5ct/qss/scrollbar-simple.qss, /usr/share/qt5ct/qss/sliders-simple.qss, /usr/share/qt5ct/qss/tooltip-simple.qss, /usr/share/qt5ct/qss/traynotification-simple.qss
24+toolbutton_style=4
25+underline_shortcut=1
26+wheel_scroll_lines=3
27+
28+[QSSEditor]
29+geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\x2i\0\0\x1/\0\0\x4\xef\0\0\x3%\0\0\x2k\0\0\x1\x31\0\0\x4\xed\0\0\x3#\0\0\0\0\0\0\0\0\a\x80\0\0\x2k\0\0\x1\x31\0\0\x4\xed\0\0\x3#)
30+
31+[SettingsWindow]
32+geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\x3\xc5\0\0\0-\0\0\au\0\0\x4-\0\0\x3\xc7\0\0\0/\0\0\as\0\0\x4+\0\0\0\0\0\0\0\0\a\x80\0\0\x3\xc7\0\0\0/\0\0\as\0\0\x4+)
A · ranger/__pycache__/devicons.cpython-38.opt-1.pyc
+0, -0
A · ranger/__pycache__/devicons.cpython-39.opt-1.pyc
+0, -0
A · ranger/commands.py
+38, -0 1@@ -0,0 +1,38 @@
2+from ranger.api.commands import Command
3+
4+class paste_as_root(Command):
5+ def execute(self):
6+ if self.fm.do_cut:
7+ self.fm.execute_console('shell sudo mv %c .')
8+ else:
9+ self.fm.execute_console('shell sudo cp -r %c .')
10+
11+class fzf_select(Command):
12+ """
13+ :fzf_select
14+
15+ Find a file using fzf.
16+
17+ With a prefix argument select only directories.
18+
19+ See: https://github.com/junegunn/fzf
20+ """
21+ def execute(self):
22+ import subprocess
23+ import os.path
24+ if self.quantifier:
25+ # match only directories
26+ command="find -L . \( -path '*/\.*' -o -fstype 'dev' -o -fstype 'proc' \) -prune \
27+ -o -type d -print 2> /dev/null | sed 1d | cut -b3- | fzf +m --reverse --header='Jump to file'"
28+ else:
29+ # match files and directories
30+ command="find -L . \( -path '*/\.*' -o -fstype 'dev' -o -fstype 'proc' \) -prune \
31+ -o -print 2> /dev/null | sed 1d | cut -b3- | fzf +m --reverse --header='Jump to filemap <C-f> fzf_select'"
32+ fzf = self.fm.execute_command(command, universal_newlines=True, stdout=subprocess.PIPE)
33+ stdout, stderr = fzf.communicate()
34+ if fzf.returncode == 0:
35+ fzf_file = os.path.abspath(stdout.rstrip('\n'))
36+ if os.path.isdir(fzf_file):
37+ self.fm.cd(fzf_file)
38+ else:
39+ self.fm.select_file(fzf_file)
A · ranger/devicons.py
+219, -0 1@@ -0,0 +1,219 @@
2+#!/usr/bin/python
3+# coding=UTF-8
4+# These glyphs, and the mapping of file extensions to glyphs
5+# has been copied from the vimscript code that is present in
6+# https://github.com/ryanoasis/vim-devicons
7+import re;
8+import os;
9+
10+# all those glyphs will show as weird squares if you don't have the correct patched font
11+# My advice is to use NerdFonts which can be found here:
12+# https://github.com/ryanoasis/nerd-fonts
13+file_node_extensions = {
14+ '7z' : '',
15+ 'ai' : '',
16+ 'apk' : '',
17+ 'avi' : '',
18+ 'bat' : '',
19+ 'bmp' : '',
20+ 'bz2' : '',
21+ 'c' : '',
22+ 'c++' : '',
23+ 'cab' : '',
24+ 'cc' : '',
25+ 'clj' : '',
26+ 'cljc' : '',
27+ 'cljs' : '',
28+ 'coffee' : '',
29+ 'conf' : '',
30+ 'cp' : '',
31+ 'cpio' : '',
32+ 'cpp' : '',
33+ 'css' : '',
34+ 'cxx' : '',
35+ 'd' : '',
36+ 'dart' : '',
37+ 'db' : '',
38+ 'deb' : '',
39+ 'diff' : '',
40+ 'dump' : '',
41+ 'edn' : '',
42+ 'ejs' : '',
43+ 'epub' : '',
44+ 'erl' : '',
45+ 'f#' : '',
46+ 'fish' : '',
47+ 'flac' : '',
48+ 'flv' : '',
49+ 'fs' : '',
50+ 'fsi' : '',
51+ 'fsscript' : '',
52+ 'fsx' : '',
53+ 'gem' : '',
54+ 'gif' : '',
55+ 'go' : '',
56+ 'gz' : '',
57+ 'gzip' : '',
58+ 'hbs' : '',
59+ 'hrl' : '',
60+ 'hs' : '',
61+ 'htm' : '',
62+ 'html' : '',
63+ 'ico' : '',
64+ 'ini' : '',
65+ 'java' : '',
66+ 'jl' : '',
67+ 'jpeg' : '',
68+ 'jpg' : '',
69+ 'js' : '',
70+ 'json' : '',
71+ 'jsx' : '',
72+ 'less' : '',
73+ 'lha' : '',
74+ 'lhs' : '',
75+ 'log' : '',
76+ 'lua' : '',
77+ 'lzh' : '',
78+ 'lzma' : '',
79+ 'markdown' : '',
80+ 'md' : '',
81+ 'mkv' : '',
82+ 'ml' : 'λ',
83+ 'mli' : 'λ',
84+ 'mov' : '',
85+ 'mp3' : '',
86+ 'mp4' : '',
87+ 'mpeg' : '',
88+ 'mpg' : '',
89+ 'mustache' : '',
90+ 'ogg' : '',
91+ 'pdf' : '',
92+ 'php' : '',
93+ 'pl' : '',
94+ 'pm' : '',
95+ 'png' : '',
96+ 'psb' : '',
97+ 'psd' : '',
98+ 'py' : '',
99+ 'pyc' : '',
100+ 'pyd' : '',
101+ 'pyo' : '',
102+ 'rar' : '',
103+ 'rb' : '',
104+ 'rc' : '',
105+ 'rlib' : '',
106+ 'rpm' : '',
107+ 'rs' : '',
108+ 'rss' : '',
109+ 'scala' : '',
110+ 'scss' : '',
111+ 'sh' : '',
112+ 'slim' : '',
113+ 'sln' : '',
114+ 'sql' : '',
115+ 'styl' : '',
116+ 'suo' : '',
117+ 't' : '',
118+ 'tar' : '',
119+ 'tgz' : '',
120+ 'ts' : '',
121+ 'twig' : '',
122+ 'vim' : '',
123+ 'vimrc' : '',
124+ 'wav' : '',
125+ 'xml' : '',
126+ 'xul' : '',
127+ 'xz' : '',
128+ 'yml' : '',
129+ 'zip' : '',
130+}
131+
132+dir_node_exact_matches = {
133+# English
134+ '.git' : '',
135+ 'Desktop' : '',
136+ 'Documents' : '',
137+ 'Downloads' : '',
138+ 'Dropbox' : '',
139+ 'Music' : '',
140+ 'Pictures' : '',
141+ 'Public' : '',
142+ 'Templates' : '',
143+ 'Videos' : '',
144+# French
145+ 'Bureau' : '',
146+ 'Documents' : '',
147+ 'Images' : '',
148+ 'Musique' : '',
149+ 'Publique' : '',
150+ 'Téléchargements' : '',
151+ 'Vidéos' : '',
152+# Portuguese
153+ 'Documentos' : '',
154+ 'Imagens' : '',
155+ 'Modelos' : '',
156+ 'Música' : '',
157+ 'Público' : '',
158+ 'Vídeos' : '',
159+ 'Área de trabalho' : '',
160+# Italian
161+ 'Documenti' : '',
162+ 'Immagini' : '',
163+ 'Modelli' : '',
164+ 'Musica' : '',
165+ 'Pubblici' : '',
166+ 'Scaricati' : '',
167+ 'Scrivania' : '',
168+ 'Video' : '',
169+# German
170+ 'Bilder' : '',
171+ 'Dokumente' : '',
172+ 'Musik' : '',
173+ 'Schreibtisch' : '',
174+ 'Vorlagen' : '',
175+ 'Öffentlich' : '',
176+}
177+
178+file_node_exact_matches = {
179+ '.Xdefaults' : '',
180+ '.Xresources' : '',
181+ '.bashprofile' : '',
182+ '.bashrc' : '',
183+ '.dmrc' : '',
184+ '.ds_store' : '',
185+ '.fasd' : '',
186+ '.gitconfig' : '',
187+ '.gitignore' : '',
188+ '.jack-settings' : '',
189+ '.mime.types' : '',
190+ '.nvidia-settings-rc' : '',
191+ '.pam_environment' : '',
192+ '.profile' : '',
193+ '.recently-used' : '',
194+ '.selected_editor' : '',
195+ '.vimrc' : '',
196+ '.xinputrc' : '',
197+ 'config' : '',
198+ 'dropbox' : '',
199+ 'exact-match-case-sensitive-1.txt' : 'X1',
200+ 'exact-match-case-sensitive-2' : 'X2',
201+ 'favicon.ico' : '',
202+ 'gruntfile.coffee' : '',
203+ 'gruntfile.js' : '',
204+ 'gruntfile.ls' : '',
205+ 'gulpfile.coffee' : '',
206+ 'gulpfile.js' : '',
207+ 'gulpfile.ls' : '',
208+ 'ini' : '',
209+ 'ledger' : '',
210+ 'license' : '',
211+ 'mimeapps.list' : '',
212+ 'node_modules' : '',
213+ 'procfile' : '',
214+ 'react.jsx' : '',
215+ 'user-dirs.dirs' : '',
216+}
217+
218+def devicon(file):
219+ if file.is_directory: return dir_node_exact_matches.get(file.relative_path, '')
220+ return file_node_exact_matches.get(file.relative_path, file_node_extensions.get(file.extension, ''))
A · ranger/plugins/__init__.py
+0, -0
A · ranger/plugins/__pycache__/__init__.cpython-38.opt-1.pyc
+0, -0
A · ranger/plugins/__pycache__/__init__.cpython-39.opt-1.pyc
+0, -0
A · ranger/plugins/__pycache__/devicons_linemode.cpython-38.opt-1.pyc
+0, -0
A · ranger/plugins/__pycache__/devicons_linemode.cpython-39.opt-1.pyc
+0, -0
A · ranger/plugins/devicons_linemode.py
+22, -0 1@@ -0,0 +1,22 @@
2+import os
3+terminal=terminal=os.getenv('TERM')
4+if terminal != 'linux':
5+ import ranger.api
6+ from ranger.core.linemode import LinemodeBase
7+ from devicons import *
8+
9+ @ranger.api.register_linemode
10+ class DevIconsLinemode(LinemodeBase):
11+ name = "devicons"
12+
13+ uses_metadata = False
14+
15+ def filetitle(self, file, metadata):
16+ return devicon(file) + ' ' + file.relative_path
17+
18+ @ranger.api.register_linemode
19+ class DevIconsLinemodeFile(LinemodeBase):
20+ name = "filename"
21+
22+ def filetitle(self, file, metadata):
23+ return devicon(file) + ' ' + file.relative_path
A · ranger/rc.conf
+619, -0 1@@ -0,0 +1,619 @@
2+# ===================================================================
3+# This file contains the default startup commands for ranger.
4+# To change them, it is recommended to create the file
5+# ~/.config/ranger/rc.conf and add your custom commands there.
6+#
7+# If you copy this whole file there, you may want to set the environment
8+# variable RANGER_LOAD_DEFAULT_RC to FALSE to avoid loading it twice.
9+#
10+# The purpose of this file is mainly to define keybindings and settings.
11+# For running more complex python code, please create a plugin in "plugins/" or
12+# a command in "commands.py".
13+#
14+# Each line is a command that will be run before the user interface
15+# is initialized. As a result, you can not use commands which rely
16+# on the UI such as :delete or :mark.
17+# ===================================================================
18+
19+# ===================================================================
20+# == Options
21+# ===================================================================
22+
23+# Which viewmode should be used? Possible values are:
24+# miller: Use miller columns which show multiple levels of the hierarchy
25+# multipane: Midnight-commander like multipane view showing all tabs next
26+# to each other
27+set viewmode miller
28+#set viewmode multipane
29+
30+# How many columns are there, and what are their relative widths?
31+set column_ratios 1,3,4
32+
33+# Which files should be hidden? (regular expression)
34+set hidden_filter ^\.|\.(?:pyc|pyo|bak|swp)$|^lost\+found$|^__(py)?cache__$
35+
36+# Show hidden files? You can toggle this by typing 'zh'
37+set show_hidden false
38+
39+# Ask for a confirmation when running the "delete" command?
40+# Valid values are "always", "never", "multiple" (default)
41+# With "multiple", ranger will ask only if you delete multiple files at once.
42+set confirm_on_delete never
43+
44+# Which script is used to generate file previews?
45+# ranger ships with scope.sh, a script that calls external programs (see
46+# README.md for dependencies) to preview images, archives, etc.
47+set preview_script ~/.config/ranger/scope.sh
48+
49+# Use the external preview script or display simple plain text or image previews?
50+set use_preview_script true
51+
52+# Automatically count files in the directory, even before entering them?
53+set automatically_count_files true
54+
55+# Open all images in this directory when running certain image viewers
56+# like feh or sxiv? You can still open selected files by marking them.
57+set open_all_images true
58+
59+# Be aware of version control systems and display information.
60+set vcs_aware false
61+
62+# State of the three backends git, hg, bzr. The possible states are
63+# disabled, local (only show local info), enabled (show local and remote
64+# information).
65+set vcs_backend_git enabled
66+set vcs_backend_hg disabled
67+set vcs_backend_bzr disabled
68+
69+# Use one of the supported image preview protocols
70+set preview_images true
71+
72+# Set the preview image method. Supported methods:
73+#
74+# * w3m (default):
75+# Preview images in full color with the external command "w3mimgpreview"?
76+# This requires the console web browser "w3m" and a supported terminal.
77+# It has been successfully tested with "xterm" and "urxvt" without tmux.
78+#
79+# * iterm2:
80+# Preview images in full color using iTerm2 image previews
81+# (http://iterm2.com/images.html). This requires using iTerm2 compiled
82+# with image preview support.
83+#
84+# * urxvt:
85+# Preview images in full color using urxvt image backgrounds. This
86+# requires using urxvt compiled with pixbuf support.
87+#
88+# * urxvt-full:
89+# The same as urxvt but utilizing not only the preview pane but the
90+# whole terminal window.
91+set preview_images_method urxvt
92+
93+# Use a unicode "..." character to mark cut-off filenames?
94+set unicode_ellipsis false
95+
96+# Show dotfiles in the bookmark preview box?
97+set show_hidden_bookmarks true
98+
99+# Which colorscheme to use? These colorschemes are available by default:
100+# default, jungle, snow, solarized
101+set colorscheme default
102+
103+# Preview files on the rightmost column?
104+# And collapse (shrink) the last column if there is nothing to preview?
105+set preview_files true
106+set preview_directories true
107+set collapse_preview true
108+
109+# Save the console history on exit?
110+set save_console_history true
111+
112+# Draw the status bar on top of the browser window (default: bottom)
113+set status_bar_on_top false
114+
115+# Draw a progress bar in the status bar which displays the average state of all
116+# currently running tasks which support progress bars?
117+set draw_progress_bar_in_status_bar true
118+
119+# Draw borders around columns?
120+set draw_borders true
121+
122+# Display the directory name in tabs?
123+set dirname_in_tabs false
124+
125+# Enable the mouse support?
126+set mouse_enabled true
127+
128+# Display the file size in the main column or status bar?
129+set display_size_in_main_column true
130+set display_size_in_status_bar true
131+
132+# Display files tags in all columns or only in main column?
133+set display_tags_in_all_columns true
134+
135+# Set a title for the window?
136+set update_title false
137+
138+# Set the title to "ranger" in the tmux program?
139+set update_tmux_title false
140+
141+# Shorten the title if it gets long? The number defines how many
142+# directories are displayed at once, 0 turns off this feature.
143+set shorten_title 3
144+
145+# Abbreviate $HOME with ~ in the titlebar (first line) of ranger?
146+set tilde_in_titlebar false
147+
148+# How many directory-changes or console-commands should be kept in history?
149+set max_history_size 20
150+set max_console_history_size 50
151+
152+# Try to keep so much space between the top/bottom border when scrolling:
153+set scroll_offset 8
154+
155+# Flush the input after each key hit? (Noticeable when ranger lags)
156+set flushinput true
157+
158+# Padding on the right when there's no preview?
159+# This allows you to click into the space to run the file.
160+set padding_right true
161+
162+# Save bookmarks (used with mX and `X) instantly?
163+# This helps to synchronize bookmarks between multiple ranger
164+# instances but leads to *slight* performance loss.
165+# When false, bookmarks are saved when ranger is exited.
166+set autosave_bookmarks true
167+
168+# You can display the "real" cumulative size of directories by using the
169+# command :get_cumulative_size or typing "dc". The size is expensive to
170+# calculate and will not be updated automatically. You can choose
171+# to update it automatically though by turning on this option:
172+set autoupdate_cumulative_size false
173+
174+# Turning this on makes sense for screen readers:
175+set show_cursor false
176+
177+# One of: size, natural, basename, atime, ctime, mtime, type, random
178+set sort natural
179+
180+# Additional sorting options
181+set sort_reverse false
182+set sort_case_insensitive true
183+set sort_directories_first true
184+set sort_unicode false
185+
186+# Enable this if key combinations with the Alt Key don't work for you.
187+# (Especially on xterm)
188+set xterm_alt_key false
189+
190+# Whether to include bookmarks in cd command
191+set cd_bookmarks true
192+
193+# Avoid previewing files larger than this size, in bytes. Use a value of 0 to
194+# disable this feature.
195+set preview_max_size 0
196+
197+# Add the highlighted file to the path in the titlebar
198+set show_selection_in_titlebar true
199+
200+# The delay that ranger idly waits for user input, in milliseconds, with a
201+# resolution of 100ms. Lower delay reduces lag between directory updates but
202+# increases CPU load.
203+set idle_delay 2000
204+
205+# When the metadata manager module looks for metadata, should it only look for
206+# a ".metadata.json" file in the current directory, or do a deep search and
207+# check all directories above the current one as well?
208+set metadata_deep_search false
209+
210+# Clear all existing filters when leaving a directory
211+set clear_filters_on_dir_change false
212+
213+# Disable displaying line numbers in main column
214+set line_numbers false
215+
216+# ===================================================================
217+# == Local Options
218+# ===================================================================
219+# You can set local options that only affect a single directory.
220+
221+# Examples:
222+# setlocal path=~/downloads sort mtime
223+
224+# ===================================================================
225+# == Command Aliases in the Console
226+# ===================================================================
227+
228+alias e edit
229+alias q quit
230+alias q! quitall
231+alias qa quitall
232+alias qall quitall
233+alias setl setlocal
234+
235+alias filter scout -prt
236+alias find scout -aeit
237+alias mark scout -mr
238+alias unmark scout -Mr
239+alias search scout -rs
240+alias search_inc scout -rts
241+alias travel scout -aefiklst
242+
243+# ===================================================================
244+# == Define keys for the browser
245+# ===================================================================
246+
247+# Basic
248+map Q quit!
249+map q quit
250+copymap q ZZ ZQ
251+
252+map R reload_cwd
253+map <C-r> reset
254+map <C-l> redraw_window
255+map <C-c> abort
256+map <esc> change_mode normal
257+map ~ set viewmode!
258+
259+map i display_file
260+map ? help
261+map W display_log
262+map w taskview_open
263+map S shell $SHELL
264+
265+map : console
266+map ; console
267+map ! console shell%space
268+map @ console -p6 shell %%s
269+map # console shell -p%space
270+map s console shell%space
271+map r chain draw_possible_programs; console open_with%%space
272+#map f console find%space
273+map f console scout -ftsea%space
274+map cd console cd%space
275+
276+# Change the line mode
277+map Mf linemode filename
278+map Mi linemode fileinfo
279+map Mm linemode mtime
280+map Mp linemode permissions
281+map Ms linemode sizemtime
282+map Mt linemode metatitle
283+
284+# Tagging / Marking
285+map t tag_toggle
286+map ut tag_remove
287+map "<any> tag_toggle tag=%any
288+map <Space> mark_files toggle=True
289+map v mark_files all=True toggle=True
290+map uv mark_files all=True val=False
291+map V toggle_visual_mode
292+map uV toggle_visual_mode reverse=True
293+
294+# For the nostalgics: Midnight Commander bindings
295+map <F1> help
296+map <F3> display_file
297+map <F4> edit
298+map <F5> copy
299+map <F6> cut
300+map <F7> console mkdir%space
301+map <F8> console delete
302+map <F10> exit
303+
304+# In case you work on a keyboard with dvorak layout
305+map <UP> move up=1
306+map <DOWN> move down=1
307+map <LEFT> move left=1
308+map <RIGHT> move right=1
309+map <HOME> move to=0
310+map <END> move to=-1
311+map <PAGEDOWN> move down=1 pages=True
312+map <PAGEUP> move up=1 pages=True
313+map <CR> move right=1
314+map <DELETE> console delete
315+map <INSERT> console touch%space
316+
317+# VIM-like
318+copymap <UP> k
319+copymap <DOWN> j
320+copymap <LEFT> h
321+copymap <RIGHT> l
322+copymap <HOME> gg
323+copymap <END> G
324+copymap <PAGEDOWN> <C-F>
325+copymap <PAGEUP> <C-B>
326+
327+map J move down=0.5 pages=True
328+map K move up=0.5 pages=True
329+copymap J <C-D>
330+copymap K <C-U>
331+
332+# Jumping around
333+map H history_go -1
334+map L history_go 1
335+map ] move_parent 1
336+map [ move_parent -1
337+map } traverse
338+
339+map gh cd ~
340+map ge cd /etc
341+map gu cd /usr
342+map gd cd /dev
343+map gl cd -r .
344+map gL cd -r %f
345+map go cd /opt
346+map gv cd /var
347+map gm cd /media
348+map gM cd /mnt
349+map gs cd /srv
350+map gr cd /
351+map gR eval fm.cd(ranger.RANGERDIR)
352+map g/ cd /
353+map g? cd /usr/share/doc/ranger
354+
355+# External Programs
356+map E edit
357+map du shell -p du --max-depth=1 -h --apparent-size
358+map dU shell -p du --max-depth=1 -h --apparent-size | sort -rh
359+map yp shell -f echo -n %d/%f | xsel -i; xsel -o | xsel -i -b
360+map yd shell -f echo -n %d | xsel -i; xsel -o | xsel -i -b
361+map yn shell -f echo -n %f | xsel -i; xsel -o | xsel -i -b
362+
363+# Filesystem Operations
364+map = chmod
365+
366+#map cw console rename%space
367+map cw eval fm.execute_console("bulkrename") if fm.thisdir.marked_items else fm.open_console("rename ")
368+map a rename_append
369+map A eval fm.open_console('rename ' + fm.thisfile.relative_path.replace("%", "%%"))
370+map I eval fm.open_console('rename ' + fm.thisfile.relative_path.replace("%", "%%"), position=7)
371+
372+map pp paste
373+map po paste overwrite=True
374+map pP paste append=True
375+map pO paste overwrite=True append=True
376+map pl paste_symlink relative=False
377+map pL paste_symlink relative=True
378+map phl paste_hardlink
379+map pht paste_hardlinked_subtree
380+map pr paste_as_root
381+
382+map dD console delete
383+
384+map dd cut
385+map ud uncut
386+map da cut mode=add
387+map dr cut mode=remove
388+map dt cut mode=toggle
389+
390+map yy copy
391+map uy uncut
392+map ya copy mode=add
393+map yr copy mode=remove
394+map yt copy mode=toggle
395+
396+# Temporary workarounds
397+map dgg eval fm.cut(dirarg=dict(to=0), narg=quantifier)
398+map dG eval fm.cut(dirarg=dict(to=-1), narg=quantifier)
399+map dj eval fm.cut(dirarg=dict(down=1), narg=quantifier)
400+map dk eval fm.cut(dirarg=dict(up=1), narg=quantifier)
401+map ygg eval fm.copy(dirarg=dict(to=0), narg=quantifier)
402+map yG eval fm.copy(dirarg=dict(to=-1), narg=quantifier)
403+map yj eval fm.copy(dirarg=dict(down=1), narg=quantifier)
404+map yk eval fm.copy(dirarg=dict(up=1), narg=quantifier)
405+
406+# Searching
407+map / console search%space
408+map n search_next
409+map N search_next forward=False
410+map ct search_next order=tag
411+map cs search_next order=size
412+map ci search_next order=mimetype
413+map cc search_next order=ctime
414+map cm search_next order=mtime
415+map ca search_next order=atime
416+
417+# Tabs
418+map <C-n> tab_new ~
419+map <C-w> tab_close
420+map <TAB> tab_move 1
421+map <S-TAB> tab_move -1
422+map <A-Right> tab_move 1
423+map <A-Left> tab_move -1
424+map gt tab_move 1
425+map gT tab_move -1
426+map gn tab_new ~
427+map gc tab_close
428+map uq tab_restore
429+map <a-1> tab_open 1
430+map <a-2> tab_open 2
431+map <a-3> tab_open 3
432+map <a-4> tab_open 4
433+map <a-5> tab_open 5
434+map <a-6> tab_open 6
435+map <a-7> tab_open 7
436+map <a-8> tab_open 8
437+map <a-9> tab_open 9
438+
439+# Sorting
440+map or set sort_reverse!
441+map oz set sort=random
442+map os chain set sort=size; set sort_reverse=False
443+map ob chain set sort=basename; set sort_reverse=False
444+map on chain set sort=natural; set sort_reverse=False
445+map om chain set sort=mtime; set sort_reverse=False
446+map oc chain set sort=ctime; set sort_reverse=False
447+map oa chain set sort=atime; set sort_reverse=False
448+map ot chain set sort=type; set sort_reverse=False
449+map oe chain set sort=extension; set sort_reverse=False
450+
451+map oS chain set sort=size; set sort_reverse=True
452+map oB chain set sort=basename; set sort_reverse=True
453+map oN chain set sort=natural; set sort_reverse=True
454+map oM chain set sort=mtime; set sort_reverse=True
455+map oC chain set sort=ctime; set sort_reverse=True
456+map oA chain set sort=atime; set sort_reverse=True
457+map oT chain set sort=type; set sort_reverse=True
458+map oE chain set sort=extension; set sort_reverse=True
459+
460+map dc get_cumulative_size
461+
462+# Settings
463+map zc set collapse_preview!
464+map zd set sort_directories_first!
465+map zh set show_hidden!
466+map <C-h> set show_hidden!
467+map zI set flushinput!
468+map zi set preview_images!
469+map zm set mouse_enabled!
470+map zp set preview_files!
471+map zP set preview_directories!
472+map zs set sort_case_insensitive!
473+map zu set autoupdate_cumulative_size!
474+map zv set use_preview_script!
475+map zf console filter%space
476+
477+# Bookmarks
478+map `<any> enter_bookmark %any
479+map '<any> enter_bookmark %any
480+map m<any> set_bookmark %any
481+map um<any> unset_bookmark %any
482+
483+map m<bg> draw_bookmarks
484+copymap m<bg> um<bg> `<bg> '<bg>
485+
486+# Generate all the chmod bindings with some python help:
487+eval for arg in "rwxXst": cmd("map +u{0} shell -f chmod u+{0} %s".format(arg))
488+eval for arg in "rwxXst": cmd("map +g{0} shell -f chmod g+{0} %s".format(arg))
489+eval for arg in "rwxXst": cmd("map +o{0} shell -f chmod o+{0} %s".format(arg))
490+eval for arg in "rwxXst": cmd("map +a{0} shell -f chmod a+{0} %s".format(arg))
491+eval for arg in "rwxXst": cmd("map +{0} shell -f chmod u+{0} %s".format(arg))
492+
493+eval for arg in "rwxXst": cmd("map -u{0} shell -f chmod u-{0} %s".format(arg))
494+eval for arg in "rwxXst": cmd("map -g{0} shell -f chmod g-{0} %s".format(arg))
495+eval for arg in "rwxXst": cmd("map -o{0} shell -f chmod o-{0} %s".format(arg))
496+eval for arg in "rwxXst": cmd("map -a{0} shell -f chmod a-{0} %s".format(arg))
497+eval for arg in "rwxXst": cmd("map -{0} shell -f chmod u-{0} %s".format(arg))
498+
499+# ===================================================================
500+# == Define keys for the console
501+# ===================================================================
502+# Note: Unmapped keys are passed directly to the console.
503+
504+# Basic
505+cmap <tab> eval fm.ui.console.tab()
506+cmap <s-tab> eval fm.ui.console.tab(-1)
507+cmap <ESC> eval fm.ui.console.close()
508+cmap <CR> eval fm.ui.console.execute()
509+cmap <C-l> redraw_window
510+
511+copycmap <ESC> <C-c>
512+copycmap <CR> <C-j>
513+
514+# Move around
515+cmap <up> eval fm.ui.console.history_move(-1)
516+cmap <down> eval fm.ui.console.history_move(1)
517+cmap <left> eval fm.ui.console.move(left=1)
518+cmap <right> eval fm.ui.console.move(right=1)
519+cmap <home> eval fm.ui.console.move(right=0, absolute=True)
520+cmap <end> eval fm.ui.console.move(right=-1, absolute=True)
521+cmap <a-left> eval fm.ui.console.move_word(left=1)
522+cmap <a-right> eval fm.ui.console.move_word(right=1)
523+
524+# Line Editing
525+cmap <backspace> eval fm.ui.console.delete(-1)
526+cmap <delete> eval fm.ui.console.delete(0)
527+cmap <C-w> eval fm.ui.console.delete_word()
528+cmap <A-d> eval fm.ui.console.delete_word(backward=False)
529+cmap <C-k> eval fm.ui.console.delete_rest(1)
530+cmap <C-u> eval fm.ui.console.delete_rest(-1)
531+cmap <C-y> eval fm.ui.console.paste()
532+
533+# And of course the emacs way
534+copycmap <up> <C-p>
535+copycmap <down> <C-n>
536+copycmap <left> <C-b>
537+copycmap <right> <C-f>
538+copycmap <home> <C-a>
539+copycmap <end> <C-e>
540+copycmap <delete> <C-d>
541+copycmap <backspace> <C-h>
542+
543+# Note: There are multiple ways to express backspaces. <backspace> (code 263)
544+# and <backspace2> (code 127). To be sure, use both.
545+copycmap <backspace> <backspace2>
546+
547+# This special expression allows typing in numerals:
548+cmap <allow_quantifiers> false
549+
550+# ===================================================================
551+# == Pager Keybindings
552+# ===================================================================
553+
554+# Movement
555+pmap <down> pager_move down=1
556+pmap <up> pager_move up=1
557+pmap <left> pager_move left=4
558+pmap <right> pager_move right=4
559+pmap <home> pager_move to=0
560+pmap <end> pager_move to=-1
561+pmap <pagedown> pager_move down=1.0 pages=True
562+pmap <pageup> pager_move up=1.0 pages=True
563+pmap <C-d> pager_move down=0.5 pages=True
564+pmap <C-u> pager_move up=0.5 pages=True
565+
566+copypmap <UP> k <C-p>
567+copypmap <DOWN> j <C-n> <CR>
568+copypmap <LEFT> h
569+copypmap <RIGHT> l
570+copypmap <HOME> g
571+copypmap <END> G
572+copypmap <C-d> d
573+copypmap <C-u> u
574+copypmap <PAGEDOWN> n f <C-F> <Space>
575+copypmap <PAGEUP> p b <C-B>
576+
577+# Basic
578+pmap <C-l> redraw_window
579+pmap <ESC> pager_close
580+copypmap <ESC> q Q i <F3>
581+pmap E edit_file
582+
583+# ===================================================================
584+# == Taskview Keybindings
585+# ===================================================================
586+
587+# Movement
588+tmap <up> taskview_move up=1
589+tmap <down> taskview_move down=1
590+tmap <home> taskview_move to=0
591+tmap <end> taskview_move to=-1
592+tmap <pagedown> taskview_move down=1.0 pages=True
593+tmap <pageup> taskview_move up=1.0 pages=True
594+tmap <C-d> taskview_move down=0.5 pages=True
595+tmap <C-u> taskview_move up=0.5 pages=True
596+
597+copytmap <UP> k <C-p>
598+copytmap <DOWN> j <C-n> <CR>
599+copytmap <HOME> g
600+copytmap <END> G
601+copytmap <C-u> u
602+copytmap <PAGEDOWN> n f <C-F> <Space>
603+copytmap <PAGEUP> p b <C-B>
604+
605+# Changing priority and deleting tasks
606+tmap J eval -q fm.ui.taskview.task_move(-1)
607+tmap K eval -q fm.ui.taskview.task_move(0)
608+tmap dd eval -q fm.ui.taskview.task_remove()
609+tmap <pagedown> eval -q fm.ui.taskview.task_move(-1)
610+tmap <pageup> eval -q fm.ui.taskview.task_move(0)
611+tmap <delete> eval -q fm.ui.taskview.task_remove()
612+
613+# Basic
614+tmap <C-l> redraw_window
615+tmap <ESC> taskview_close
616+copytmap <ESC> q Q w <C-c>
617+default_linemode devicons
618+
619+# find
620+map <C-f> fzf_select
A · ranger/scope.sh
+121, -0 1@@ -0,0 +1,121 @@
2+#!/usr/bin/env sh
3+# ranger supports enhanced previews. If the option "use_preview_script"
4+# is set to True and this file exists, this script will be called and its
5+# output is displayed in ranger. ANSI color codes are supported.
6+
7+# NOTES: This script is considered a configuration file. If you upgrade
8+# ranger, it will be left untouched. (You must update it yourself.)
9+# Also, ranger disables STDIN here, so interactive scripts won't work properly
10+
11+# Meanings of exit codes:
12+# code | meaning | action of ranger
13+# -----+------------+-------------------------------------------
14+# 0 | success | success. display stdout as preview
15+# 1 | no preview | failure. display no preview at all
16+# 2 | plain text | display the plain content of the file
17+# 3 | fix width | success. Don't reload when width changes
18+# 4 | fix height | success. Don't reload when height changes
19+# 5 | fix both | success. Don't ever reload
20+# 6 | image | success. display the image $cached points to as an image preview
21+# 7 | image | success. display the file directly as an image
22+
23+# Meaningful aliases for arguments:
24+path="$1" # Full path of the selected file
25+width="$1" # Width of the preview pane (number of fitting characters)
26+height="$2" # Height of the preview pane (number of fitting characters)
27+cached="$4" # Path that should be used to cache image previews
28+preview_images="$5" # "True" if image previews are enabled, "False" otherwise.
29+
30+maxln=200 # Stop after $maxln lines. Can be used like ls | head -n $maxln
31+
32+# Find out something about the file:
33+mimetype=$(file --mime-type -Lb "$path")
34+extension=$(/bin/echo "${path##*.}" | awk '{print tolower($0)}')
35+
36+# Functions:
37+# runs a command and saves its output into $output. Useful if you need
38+# the return value AND want to use the output in a pipe
39+try() { output=$(eval '"$@"'); }
40+
41+# writes the output of the previously used "try" command
42+dump() { /bin/echo "$output"; }
43+
44+# a common post-processing function used after most commands
45+trim() { head -n "$maxln"; }
46+
47+# wraps highlight to treat exit code 141 (killed by SIGPIPE) as success
48+safepipe() { "$@"; test $? = 0 -o $? = 141; }
49+
50+# Image previews, if enabled in ranger.
51+if [ "$preview_images" = "True" ]; then
52+ case "$mimetype" in
53+ # Image previews for SVG files, disabled by default.
54+ image/svg+xml)
55+ convert "$path" "$cached" && exit 6 || exit 1;;
56+ # Image previews for image files. w3mimgdisplay will be called for all
57+ # image files (unless overriden as above), but might fail for
58+ # unsupported types.
59+ image/*)
60+ exit 7;;
61+ # Image preview for video, disabled by default.:
62+ video/*)
63+ ffmpegthumbnailer -i "$path" -o "$cached" -s 0 && exit 6 || exit 1;;
64+ esac
65+fi
66+
67+case "$extension" in
68+ # Archive extensions:
69+ a|ace|alz|arc|arj|bz|bz2|cab|cpio|deb|gz|jar|lha|lz|lzh|lzma|lzo|\
70+ rpm|rz|t7z|tar|tbz|tbz2|tgz|tlz|txz|tZ|tzo|war|xpi|xz|Z|zip)
71+ try als "$path" && { dump | trim; exit 0; }
72+ try acat "$path" && { dump | trim; exit 3; }
73+ try bsdtar -lf "$path" && { dump | trim; exit 0; }
74+ exit 1;;
75+ rar)
76+ # avoid password prompt by providing empty password
77+ try unrar -p- lt "$path" && { dump | trim; exit 0; } || exit 1;;
78+ 7z)
79+ # avoid password prompt by providing empty password
80+ try 7z -p l "$path" && { dump | trim; exit 0; } || exit 1;;
81+ # PDF documents:
82+ pdf)
83+ try pdftotext -l 10 -nopgbrk -q "$path" - && \
84+ { dump | trim | fmt -s -w $width; exit 0; } || exit 1;;
85+ # BitTorrent Files
86+ torrent)
87+ try transmission-show "$path" && { dump | trim; exit 5; } || exit 1;;
88+ # ODT Files
89+ odt|ods|odp|sxw)
90+ try odt2txt "$path" && { dump | trim; exit 5; } || exit 1;;
91+ # HTML Pages:
92+ htm|html|xhtml)
93+ try w3m -dump "$path" && { dump | trim | fmt -s -w $width; exit 4; }
94+ try lynx -dump "$path" && { dump | trim | fmt -s -w $width; exit 4; }
95+ try elinks -dump "$path" && { dump | trim | fmt -s -w $width; exit 4; }
96+ ;; # fall back to highlight/cat if the text browsers fail
97+esac
98+
99+case "$mimetype" in
100+ # Syntax highlight for text files:
101+ text/* | */xml)
102+ if [ "$(tput colors)" -ge 256 ]; then
103+ pygmentize_format=terminal256
104+ highlight_format=xterm256
105+ else
106+ pygmentize_format=terminal
107+ highlight_format=ansi
108+ fi
109+ try safepipe highlight --out-format=${highlight_format} "$path" && { dump | trim; exit 5; }
110+ try safepipe pygmentize -f ${pygmentize_format} "$path" && { dump | trim; exit 5; }
111+ exit 2;;
112+ # Ascii-previews of images:
113+ image/*)
114+ img2txt --gamma=0.6 --width="$width" "$path" && exit 4 || exit 1;;
115+ # Display information about media files:
116+ video/* | audio/*)
117+ exiftool "$path" && exit 5
118+ # Use sed to remove spaces so the output fits into the narrow window
119+ try mediainfo "$path" && { dump | trim | sed 's/ \+:/: /;'; exit 5; } || exit 1;;
120+esac
121+
122+exit 1
A · rofi/config.rasi
+13, -0 1@@ -0,0 +1,13 @@
2+/** Configured For Applets **/
3+
4+configuration {
5+ show-icons: true;
6+ icon-theme: "ePapirus";
7+ theme: "darker-than-black";
8+ location: 0;
9+ yoffset: 0;
10+ xoffset: 0;
11+ lines: 8;
12+ font: "Inter Medium 14";
13+ modi: "drun";
14+}
A · rofi/darker-than-black.rasi
+138, -0 1@@ -0,0 +1,138 @@
2+* {
3+ background-color: #1d1d1d;
4+ text-color: #d3d7cf;
5+ selbg: #e3e3e3;
6+ actbg: #e3e3e3;
7+ urgbg: #e53935;
8+ winbg: #d3d3d3;
9+
10+ selected-normal-foreground: @background-color;
11+ normal-foreground: @text-color;
12+ selected-normal-background: @actbg;
13+ normal-background: @background-color;
14+
15+ selected-urgent-foreground: @background-color;
16+ urgent-foreground: @text-color;
17+ selected-urgent-background: @urgbg;
18+ urgent-background: @background-color;
19+
20+ selected-active-foreground: @background-color;
21+ active-foreground: @background-color;
22+ selected-active-background: @actbg;
23+ active-background: @selbg;
24+ separator-style: "none";
25+ margin: 0;
26+}
27+
28+#window {
29+ width: 400px;
30+ border-radius: 6px;
31+ children: [mainbox];
32+}
33+
34+#mainbox {
35+ border: 2px;
36+ border-color: @winbg;
37+ border-radius: 5px;
38+ orientation: vertical;
39+ children: [ entry,message,listview];
40+}
41+
42+#entry {
43+ expand: false;
44+ text-color: @normal-foreground;
45+ padding: 0px 0px 10px 0px;
46+ border: 0 0 1px;
47+ border-color: #e3e3e3;
48+ margin: 15px 10px 0px 10px;
49+}
50+
51+#sidebar {
52+ expand: false;
53+}
54+
55+#textbox {
56+ horizontal-align: 0;
57+ background-color: silver;
58+ padding: 10px 20px 10px 20px ;
59+ text-color: #000;
60+}
61+
62+#listview {
63+ border: 0px 0px 0px ;
64+ border-color: white;
65+ padding: 05 10 0 10;
66+}
67+
68+
69+#mode-switcher {
70+ /* border: 1px 0px 0px 0px; */
71+ /* border-color: grey; */
72+ /* padding: 0 30 10 30; */
73+ margin: 0px 0px 0px 0px;
74+}
75+
76+button {
77+ padding: 8px;
78+}
79+
80+#button.selected {
81+ background-color: @selected-normal-background;
82+ text-color: @selected-normal-foreground;
83+}
84+
85+#element {
86+ border-radius: 5px;
87+ border: 0;
88+ padding: 10px 10px 10px 10px ;
89+}
90+
91+#element-icon {
92+ size: 2ch;
93+ }
94+
95+#element.normal.normal {
96+ background-color: @normal-background;
97+ text-color: @normal-foreground;
98+}
99+
100+#element.normal.urgent {
101+ background-color: @urgent-background;
102+ text-color: @urgent-foreground;
103+}
104+
105+#element.normal.active {
106+ background-color: @active-background;
107+ text-color: @active-foreground;
108+}
109+
110+#element.selected.normal {
111+ background-color: @selected-normal-background;
112+ text-color: @selected-normal-foreground;
113+}
114+
115+#element.selected.urgent {
116+ background-color: @selected-urgent-background;
117+ text-color: @selected-urgent-foreground;
118+}
119+
120+#element.selected.active {
121+ background-color: @selected-active-background;
122+ text-color: @selected-active-foreground;
123+}
124+
125+#element.alternate.normal {
126+ background-color: @alternate-normal-background;
127+ text-color: @alternate-normal-foreground;
128+}
129+
130+#element.alternate.urgent {
131+ background-color: @alternate-urgent-background;
132+ text-color: @alternate-urgent-foreground;
133+}
134+
135+#element.alternate.active {
136+ background-color: @alternate-active-background;
137+ text-color: @alternate-active-foreground;
138+}
139+
A · starship.toml
+8, -01@@ -0,0 +1,8 @@
2+add_newline = false
3+
4+[character]
5+success_symbol = "[](bold green)"
6+error_symbol = "[](bold red)"
7+[package]
8+disabled = true
9+
A · sxhkd/sxhkdrc
+74, -0 1@@ -0,0 +1,74 @@
2+#To spawn the terminal
3+alt + Return
4+ alacritty
5+
6+#Make sxhkd reload its configuration files:
7+alt + shift + Escape
8+ pkill -USR1 -x sxhkd
9+
10+#Show rofi
11+alt + space
12+ rofi -show
13+
14+#Reload bspwm
15+super + shift + r
16+ ~/.config/bspwm/bspwmrc
17+
18+#Close and kill
19+alt + shift + q
20+ bspc node -{c}
21+
22+#Quit bspwm
23+super + shift + F12
24+ bspc quit
25+
26+#Focus the given desktop primary monitor
27+alt + {1-5}
28+ bspc {desktop -f} focused:^{1-4}
29+
30+# focus or send to the given desktop
31+alt + {_,shift + }{1-5}
32+ bspc {desktop -f,node -d} focused:^{1-5} --follow
33+
34+# set the window state
35+alt + f
36+ bspc node -t {tiled,pseudo_tiled,floating,fullscreen}
37+
38+#fullscreen
39+alt + f
40+ bspc node -t {floating,tiled}
41+#float
42+alt + shift + f
43+ bspc node -t {fullscreen,tiled}
44+
45+# Focus/swap windows by direction
46+alt + {_,shift + }{h,j,k,l}
47+ bspc node --{focus,swap} {west,south,north,east}
48+
49+# Move focused window to other monitor
50+alt + shift + bracketleft
51+ bspc node -m prev --follow
52+
53+# Move focused window to next monitor
54+alt + shift + bracketright
55+ bspc node -m next -follow
56+
57+# Changed focused monitor
58+alt + bracketright
59+ bspc monitor --focus next
60+
61+# Changed focused monitor
62+alt + bracketleft
63+ bspc monitor --focus prev
64+
65+# Rotate tree on focused tree
66+alt + shift + {d,a}
67+ bspc node @/ -C {forward,backward}
68+
69+# Resize window
70+alt + shift + {Left, Down, Up, Right}
71+ bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0}
72+
73+# Lock screen
74+super + shift + l
75+ dm-tool switch-to-greeter