Compare commits
60 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| e05e33ee8b | |||
| 026eae58dc | |||
| e95ab2fe98 | |||
| efc1dcddde | |||
| 04e07cd38b | |||
| 7009fefce6 | |||
| 9ad34a63ee | |||
| c7511cd5f7 | |||
| e7f9ad68f0 | |||
| 6a4ced0a9f | |||
| d0b318709e | |||
| 7c4443945f | |||
| 972ba6c251 | |||
| 4dc5660e60 | |||
| 959300bc41 | |||
| d40b9e0542 | |||
| 85cf9b60f7 | |||
| 9872528929 | |||
| 94c8a6dc2e | |||
| 484e10675e | |||
| a4c819a30b | |||
| f43e88e7ee | |||
| b5bd5b8e97 | |||
| 3cd7d3e61d | |||
| e364be1ffd | |||
| ea1a173009 | |||
| d4d0ff6464 | |||
| e23614fa0f | |||
| 58c24e5bec | |||
| d298bf577f | |||
| 4e7550c40e | |||
| ba2eba85ac | |||
| 0ee5219afa | |||
| 099776ed43 | |||
| d8cf77a93a | |||
| 3d6870653a | |||
| cfaab76060 | |||
| 9d32b2fbfd | |||
| 30238b5b40 | |||
| b9fe669dd8 | |||
| a6bdab5e49 | |||
| 7d82e9c22e | |||
| d187cff810 | |||
| 26ece42965 | |||
| 081dc5ccc1 | |||
| 8583c61d95 | |||
| bf6d4b3316 | |||
| b81486ced0 | |||
| 802f0166ed | |||
| f8f6bd4616 | |||
| 0ac6ba4418 | |||
| 86088f0767 | |||
| a140c1abf2 | |||
| ad3ae94180 | |||
| c292200110 | |||
| bacee2ee4f | |||
| 7c09fdf4d0 | |||
| 1e84448fcc | |||
| 547a5b9f84 | |||
| d1b5037e15 |
37
.Xresources
37
.Xresources
@@ -1,37 +0,0 @@
|
|||||||
URxvt*font: xft:Iosevka\ Term:size=11
|
|
||||||
|
|
||||||
URxvt*scrollBar: false
|
|
||||||
! URxvt*geometry: 167x54
|
|
||||||
|
|
||||||
! do not scroll with output
|
|
||||||
URxvt*scrollTtyOutput: false
|
|
||||||
! scroll in relation to buffer (with mouse scroll or Shift+Page Up)
|
|
||||||
URxvt*scrollWithBuffer: true
|
|
||||||
! scroll back to the bottom on keypress
|
|
||||||
URxvt*scrollTtyKeypress: true
|
|
||||||
URxvt*secondaryWheel: true
|
|
||||||
|
|
||||||
URxvt.urgentOnBell: true
|
|
||||||
|
|
||||||
URxvt.perl-ext: default,clipboard,url-select,keyboard-select
|
|
||||||
|
|
||||||
URxvt.keysym.M-Escape: perl:keyboard-select:activate
|
|
||||||
URxvt.keysym.M-s: perl:keyboard-select:search
|
|
||||||
|
|
||||||
URxvt.url-select.launcher: browser
|
|
||||||
URxvt.url-select.underline: true
|
|
||||||
URxvt.url-select.button: 1
|
|
||||||
URxvt.keysym.M-u: perl:url-select:select_next
|
|
||||||
|
|
||||||
! links color
|
|
||||||
!URxvt.colorUL: #4682B4
|
|
||||||
|
|
||||||
Xft*dpi: 120
|
|
||||||
Xft*antialias: true
|
|
||||||
Xft.hinting: true
|
|
||||||
Xft.hintstyle: hintslight
|
|
||||||
Xft.lcdfilter: lcddefault
|
|
||||||
Xft.rgba: rgb
|
|
||||||
|
|
||||||
#include ".Xresources.d/base16-gruvbox-dark-hard-256"
|
|
||||||
#include ".Xresources.d/st"
|
|
||||||
34
.gitconfig
34
.gitconfig
@@ -1,34 +0,0 @@
|
|||||||
[include]
|
|
||||||
path = .gituser
|
|
||||||
|
|
||||||
[core]
|
|
||||||
excludesfile = ~/.gitignore_global
|
|
||||||
pager = diff-so-fancy | less --tabs=2 -RFX
|
|
||||||
|
|
||||||
[alias]
|
|
||||||
st = status
|
|
||||||
ci = commit
|
|
||||||
br = branch
|
|
||||||
co = checkout
|
|
||||||
df = diff
|
|
||||||
pl = pull
|
|
||||||
ps = push
|
|
||||||
today = log --stat --since='1 Day Ago' --graph --pretty=oneline --abbrev-commit --date=relative
|
|
||||||
lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative
|
|
||||||
lf = !sh -c 'git lg --grep=$1 --max-count=5' -
|
|
||||||
tree = log --graph --decorate --pretty=oneline --abbrev-commit
|
|
||||||
patch = !git --no-pager diff --no-color
|
|
||||||
|
|
||||||
[color]
|
|
||||||
status = always
|
|
||||||
diff = always
|
|
||||||
|
|
||||||
[push]
|
|
||||||
default = simple
|
|
||||||
|
|
||||||
[merge]
|
|
||||||
tool = vimdiff
|
|
||||||
conflictstyle = diff3
|
|
||||||
|
|
||||||
[mergetool]
|
|
||||||
prompt = false
|
|
||||||
2
.gitignore
vendored
2
.gitignore
vendored
@@ -1,3 +1,5 @@
|
|||||||
.notion/*.bkp
|
.notion/*.bkp
|
||||||
.notion/*session*
|
.notion/*session*
|
||||||
.notion/log.txt
|
.notion/log.txt
|
||||||
|
|
||||||
|
mozilla/firefox/profile/userjs_backups/
|
||||||
|
|||||||
@@ -1,12 +0,0 @@
|
|||||||
*.swp
|
|
||||||
/.bundle
|
|
||||||
npm-debug.log
|
|
||||||
vendor/bundle/
|
|
||||||
vendor/cache/
|
|
||||||
.sass-cache/
|
|
||||||
node_modules/
|
|
||||||
yarn-error.log
|
|
||||||
.env.local
|
|
||||||
*.gem
|
|
||||||
.pgsync.yml
|
|
||||||
stats.json
|
|
||||||
20
.xinitrc
20
.xinitrc
@@ -1,20 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
export BROWSER=browser
|
|
||||||
export TERMINAL=terminal
|
|
||||||
export XTERM=terminal
|
|
||||||
export LANGUAGE=en_US:en_GB:en
|
|
||||||
export LC_TIME=ru_RU.UTF-8
|
|
||||||
|
|
||||||
export QT_QPA_PLATFORMTHEME=qt5ct
|
|
||||||
unset QT_STYLE_OVERRIDE
|
|
||||||
|
|
||||||
# TrackPoint+Middleclick scroll
|
|
||||||
xinput set-prop "TPPS/2 IBM TrackPoint" "Evdev Wheel Emulation" 1
|
|
||||||
xinput set-prop "TPPS/2 IBM TrackPoint" "Evdev Wheel Emulation Button" 2
|
|
||||||
xinput set-prop "TPPS/2 IBM TrackPoint" "Evdev Wheel Emulation Timeout" 200
|
|
||||||
xinput set-prop "TPPS/2 IBM TrackPoint" "Evdev Wheel Emulation Axes" 6 7 4 5
|
|
||||||
|
|
||||||
# exec ck-launch-session dbus-launch
|
|
||||||
xrdb -merge ~/.Xresources
|
|
||||||
exec i3 > $HOME/log/i3.txt 2>&1
|
|
||||||
3
README.md
Normal file
3
README.md
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
Use [rcm](https://thoughtbot.github.io/rcm/rcm)
|
||||||
|
|
||||||
|
rcup -v
|
||||||
9
Xresources
Normal file
9
Xresources
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
Xft*dpi: 120
|
||||||
|
Xft*antialias: true
|
||||||
|
Xft.hinting: true
|
||||||
|
Xft.hintstyle: hintslight
|
||||||
|
Xft.lcdfilter: lcddefault
|
||||||
|
Xft.rgba: rgb
|
||||||
|
|
||||||
|
#include ".Xresources.d/st"
|
||||||
|
#include ".Xresources.d/base16-gruvbox-dark-hard-256"
|
||||||
277
Xresources.d/ansi-us-colemak-dh-z.xmodmap
Normal file
277
Xresources.d/ansi-us-colemak-dh-z.xmodmap
Normal file
@@ -0,0 +1,277 @@
|
|||||||
|
! xmodmap for the Colemak Mod-DH layout (US, ANSI keyboard, Z angle mod).
|
||||||
|
! http://colemakmods.github.io/mod-dh/.
|
||||||
|
! Public domain.
|
||||||
|
|
||||||
|
keycode 49 = grave asciitilde dead_tilde asciitilde
|
||||||
|
keycode 10 = 1 exclam exclamdown onesuperior
|
||||||
|
keycode 11 = 2 at masculine twosuperior
|
||||||
|
keycode 12 = 3 numbersign ordfeminine threesuperior
|
||||||
|
keycode 13 = 4 dollar cent sterling
|
||||||
|
keycode 14 = 5 percent EuroSign yen
|
||||||
|
keycode 15 = 6 asciicircum hstroke Hstroke
|
||||||
|
keycode 16 = 7 ampersand eth ETH
|
||||||
|
keycode 17 = 8 asterisk thorn THORN
|
||||||
|
keycode 18 = 9 parenleft leftsinglequotemark leftdoublequotemark
|
||||||
|
keycode 19 = 0 parenright rightsinglequotemark rightdoublequotemark
|
||||||
|
keycode 20 = minus underscore endash emdash
|
||||||
|
keycode 21 = equal plus multiply division
|
||||||
|
|
||||||
|
keycode 24 = q Q adiaeresis Adiaeresis
|
||||||
|
keycode 25 = w W aring Aring
|
||||||
|
keycode 26 = f F atilde Atilde
|
||||||
|
keycode 27 = p P oslash Ooblique
|
||||||
|
keycode 28 = b B dead_breve asciitilde
|
||||||
|
keycode 29 = j J dstroke Dstroke
|
||||||
|
keycode 30 = l L lstroke Lstroke
|
||||||
|
keycode 31 = u U uacute Uacute
|
||||||
|
keycode 32 = y Y udiaeresis Udiaeresis
|
||||||
|
keycode 33 = semicolon colon odiaeresis Odiaeresis
|
||||||
|
keycode 34 = bracketleft braceleft guillemotleft U2039
|
||||||
|
keycode 35 = bracketright braceright guillemotright U203a
|
||||||
|
keycode 51 = backslash bar asciitilde asciitilde
|
||||||
|
|
||||||
|
keycode 38 = a A aacute Aacute
|
||||||
|
keycode 39 = r R dead_grave asciitilde
|
||||||
|
keycode 40 = s S ssharp asciitilde
|
||||||
|
keycode 41 = t T dead_acute dead_doubleacute
|
||||||
|
keycode 42 = g G dead_ogonek asciitilde
|
||||||
|
keycode 43 = k K dead_abovering asciitilde
|
||||||
|
keycode 44 = n N ntilde Ntilde
|
||||||
|
keycode 45 = e E eacute Eacute
|
||||||
|
keycode 46 = i I iacute Iacute
|
||||||
|
keycode 47 = o O oacute Oacute
|
||||||
|
keycode 48 = apostrophe quotedbl otilde Otilde
|
||||||
|
|
||||||
|
keycode 94 = minus underscore endash emdash
|
||||||
|
keycode 52 = x X dead_circumflex asciitilde
|
||||||
|
keycode 53 = c C ccedilla Ccedilla
|
||||||
|
keycode 54 = d D dead_diaeresis asciitilde
|
||||||
|
keycode 55 = v V oe OE
|
||||||
|
keycode 56 = z Z ae AE
|
||||||
|
keycode 57 = m M dead_macron asciitilde
|
||||||
|
keycode 58 = h H dead_caron asciitilde
|
||||||
|
keycode 59 = comma less dead_cedilla asciitilde
|
||||||
|
keycode 60 = period greater dead_abovedot asciitilde
|
||||||
|
keycode 61 = slash question questiondown asciitilde
|
||||||
|
|
||||||
|
keycode 65 = space space space nobreakspace
|
||||||
|
|
||||||
|
keycode 108 = Mode_switch Mode_switch
|
||||||
|
|
||||||
|
! Remove these 2 lines if you want caps lock unmodified
|
||||||
|
!keycode 66 = BackSpace BackSpace BackSpace BackSpace
|
||||||
|
!clear Lock
|
||||||
|
|
||||||
|
!clear Shift
|
||||||
|
!clear Control
|
||||||
|
!clear Mod1
|
||||||
|
!clear Mod2
|
||||||
|
!clear Mod3
|
||||||
|
!clear Mod4
|
||||||
|
!clear Mod5
|
||||||
|
|
||||||
|
!add Shift = Shift_L Shift_R
|
||||||
|
!add Control = Control_L Control_R
|
||||||
|
!add Mod1 = Alt_L Alt_R
|
||||||
|
!add Mod2 = Num_Lock
|
||||||
|
!add Mod4 = Meta_L Meta_R
|
||||||
|
!add Mod5 = Scroll_Lock
|
||||||
|
|
||||||
|
!keycode 9 = Escape
|
||||||
|
!keycode 22 = BackSpace Terminate_Server
|
||||||
|
!keycode 23 = Tab ISO_Left_Tab
|
||||||
|
!keycode 36 = Return
|
||||||
|
!keycode 37 = Control_L
|
||||||
|
!keycode 50 = Shift_L
|
||||||
|
!keycode 62 = Shift_R
|
||||||
|
!keycode 63 = KP_Multiply XF86_ClearGrab
|
||||||
|
!keycode 64 = Alt_L Meta_L
|
||||||
|
!keycode 67 = F1 XF86_Switch_VT_1
|
||||||
|
!keycode 68 = F2 XF86_Switch_VT_2
|
||||||
|
!keycode 69 = F3 XF86_Switch_VT_3
|
||||||
|
!keycode 70 = F4 XF86_Switch_VT_4
|
||||||
|
!keycode 71 = F5 XF86_Switch_VT_5
|
||||||
|
!keycode 72 = F6 XF86_Switch_VT_6
|
||||||
|
!keycode 73 = F7 XF86_Switch_VT_7
|
||||||
|
!keycode 74 = F8 XF86_Switch_VT_8
|
||||||
|
!keycode 75 = F9 XF86_Switch_VT_9
|
||||||
|
!keycode 76 = F10 XF86_Switch_VT_10
|
||||||
|
!keycode 95 = F11 XF86_Switch_VT_11
|
||||||
|
!keycode 96 = F12 XF86_Switch_VT_12
|
||||||
|
!keycode 77 = Num_Lock Pointer_EnableKeys
|
||||||
|
!keycode 78 = Scroll_Lock
|
||||||
|
!keycode 79 = KP_Home KP_7
|
||||||
|
!keycode 80 = KP_Up KP_8
|
||||||
|
!keycode 81 = KP_Prior KP_9
|
||||||
|
!keycode 82 = KP_Subtract XF86_Prev_VMode
|
||||||
|
!keycode 83 = KP_Left KP_4
|
||||||
|
!keycode 84 = KP_Begin KP_5
|
||||||
|
!keycode 85 = KP_Right KP_6
|
||||||
|
!keycode 86 = KP_Add XF86_Next_VMode
|
||||||
|
!keycode 87 = KP_End KP_1
|
||||||
|
!keycode 88 = KP_Down KP_2
|
||||||
|
!keycode 89 = KP_Next KP_3
|
||||||
|
!keycode 90 = KP_Insert KP_0
|
||||||
|
!keycode 91 = KP_Delete KP_Decimal
|
||||||
|
!keycode 92 = Print Sys_Req
|
||||||
|
!keycode 93 = Mode_switch
|
||||||
|
!keycode 97 = Home
|
||||||
|
!keycode 98 = Up
|
||||||
|
!keycode 99 = Prior
|
||||||
|
!keycode 100 = Left
|
||||||
|
!keycode 102 = Right
|
||||||
|
!keycode 103 = End
|
||||||
|
!keycode 104 = Down
|
||||||
|
!keycode 105 = Next
|
||||||
|
!keycode 106 = Insert
|
||||||
|
!keycode 107 = Delete
|
||||||
|
!keycode 108 = KP_Enter
|
||||||
|
!keycode 109 = Control_R
|
||||||
|
!keycode 110 = Pause Break
|
||||||
|
!keycode 111 = Print Sys_Req
|
||||||
|
!keycode 112 = KP_Divide XF86_Ungrab
|
||||||
|
!keycode 114 = Pause Break
|
||||||
|
!keycode 115 = Super_L
|
||||||
|
!keycode 116 = Super_R
|
||||||
|
!keycode 117 = Menu
|
||||||
|
!keycode 124 = ISO_Level3_Shift
|
||||||
|
!keycode 125 = NoSymbol Alt_L
|
||||||
|
!keycode 126 = KP_Equal
|
||||||
|
!keycode 127 = NoSymbol Super_L
|
||||||
|
!keycode 128 = NoSymbol Hyper_L
|
||||||
|
!keycode 156 = NoSymbol Meta_L
|
||||||
|
|
||||||
|
!keycode 8 =
|
||||||
|
!keycode 101 =
|
||||||
|
!keycode 118 =
|
||||||
|
!keycode 119 =
|
||||||
|
!keycode 120 =
|
||||||
|
!keycode 121 =
|
||||||
|
!keycode 122 =
|
||||||
|
!keycode 123 =
|
||||||
|
!keycode 129 =
|
||||||
|
!keycode 130 =
|
||||||
|
!keycode 131 =
|
||||||
|
!keycode 132 =
|
||||||
|
!keycode 133 =
|
||||||
|
!keycode 134 =
|
||||||
|
!keycode 135 =
|
||||||
|
!keycode 136 =
|
||||||
|
!keycode 137 =
|
||||||
|
!keycode 138 =
|
||||||
|
!keycode 139 =
|
||||||
|
!keycode 140 =
|
||||||
|
!keycode 141 =
|
||||||
|
!keycode 142 =
|
||||||
|
!keycode 143 =
|
||||||
|
!keycode 144 =
|
||||||
|
!keycode 145 =
|
||||||
|
!keycode 146 =
|
||||||
|
!keycode 147 =
|
||||||
|
!keycode 148 =
|
||||||
|
!keycode 149 =
|
||||||
|
!keycode 150 =
|
||||||
|
!keycode 151 =
|
||||||
|
!keycode 152 =
|
||||||
|
!keycode 153 =
|
||||||
|
!keycode 154 =
|
||||||
|
!keycode 155 =
|
||||||
|
!keycode 157 =
|
||||||
|
!keycode 158 =
|
||||||
|
!keycode 159 =
|
||||||
|
!keycode 160 =
|
||||||
|
!keycode 161 =
|
||||||
|
!keycode 162 =
|
||||||
|
!keycode 163 =
|
||||||
|
!keycode 164 =
|
||||||
|
!keycode 165 =
|
||||||
|
!keycode 166 =
|
||||||
|
!keycode 167 =
|
||||||
|
!keycode 168 =
|
||||||
|
!keycode 169 =
|
||||||
|
!keycode 170 =
|
||||||
|
!keycode 171 =
|
||||||
|
!keycode 172 =
|
||||||
|
!keycode 173 =
|
||||||
|
!keycode 174 =
|
||||||
|
!keycode 175 =
|
||||||
|
!keycode 176 =
|
||||||
|
!keycode 177 =
|
||||||
|
!keycode 178 =
|
||||||
|
!keycode 179 =
|
||||||
|
!keycode 180 =
|
||||||
|
!keycode 181 =
|
||||||
|
!keycode 182 =
|
||||||
|
!keycode 183 =
|
||||||
|
!keycode 184 =
|
||||||
|
!keycode 185 =
|
||||||
|
!keycode 186 =
|
||||||
|
!keycode 187 =
|
||||||
|
!keycode 188 =
|
||||||
|
!keycode 189 =
|
||||||
|
!keycode 190 =
|
||||||
|
!keycode 191 =
|
||||||
|
!keycode 192 =
|
||||||
|
!keycode 193 =
|
||||||
|
!keycode 194 =
|
||||||
|
!keycode 195 =
|
||||||
|
!keycode 196 =
|
||||||
|
!keycode 197 =
|
||||||
|
!keycode 198 =
|
||||||
|
!keycode 199 =
|
||||||
|
!keycode 200 =
|
||||||
|
!keycode 201 =
|
||||||
|
!keycode 202 =
|
||||||
|
!keycode 203 =
|
||||||
|
!keycode 204 =
|
||||||
|
!keycode 205 =
|
||||||
|
!keycode 206 =
|
||||||
|
!keycode 207 =
|
||||||
|
!keycode 208 =
|
||||||
|
!keycode 209 =
|
||||||
|
!keycode 210 =
|
||||||
|
!keycode 211 =
|
||||||
|
!keycode 212 =
|
||||||
|
!keycode 213 =
|
||||||
|
!keycode 214 =
|
||||||
|
!keycode 215 =
|
||||||
|
!keycode 216 =
|
||||||
|
!keycode 217 =
|
||||||
|
!keycode 218 =
|
||||||
|
!keycode 219 =
|
||||||
|
!keycode 220 =
|
||||||
|
!keycode 221 =
|
||||||
|
!keycode 222 =
|
||||||
|
!keycode 223 =
|
||||||
|
!keycode 224 =
|
||||||
|
!keycode 225 =
|
||||||
|
!keycode 226 =
|
||||||
|
!keycode 227 =
|
||||||
|
!keycode 228 =
|
||||||
|
!keycode 229 =
|
||||||
|
!keycode 230 =
|
||||||
|
!keycode 231 =
|
||||||
|
!keycode 232 =
|
||||||
|
!keycode 233 =
|
||||||
|
!keycode 234 =
|
||||||
|
!keycode 235 =
|
||||||
|
!keycode 236 =
|
||||||
|
!keycode 237 =
|
||||||
|
!keycode 238 =
|
||||||
|
!keycode 239 =
|
||||||
|
!keycode 240 =
|
||||||
|
!keycode 241 =
|
||||||
|
!keycode 242 =
|
||||||
|
!keycode 243 =
|
||||||
|
!keycode 244 =
|
||||||
|
!keycode 245 =
|
||||||
|
!keycode 246 =
|
||||||
|
!keycode 247 =
|
||||||
|
!keycode 248 =
|
||||||
|
!keycode 249 =
|
||||||
|
!keycode 250 =
|
||||||
|
!keycode 251 =
|
||||||
|
!keycode 252 =
|
||||||
|
!keycode 253 =
|
||||||
|
!keycode 254 =
|
||||||
|
!keycode 255 =
|
||||||
@@ -8,33 +8,34 @@ st.termname: xterm-256color
|
|||||||
! st.shell: /bin/sh
|
! st.shell: /bin/sh
|
||||||
|
|
||||||
! The following options options can be reloaded via USR1 signal.
|
! The following options options can be reloaded via USR1 signal.
|
||||||
st.font: Iosevka Term:pixelsize=18:antialias=true:autohint=false:dpi=120;
|
st.font: Iosevka\ Term:Medium:pixelsize=14;
|
||||||
|
st.bold_font: 1
|
||||||
st.borderpx: 0
|
st.borderpx: 0
|
||||||
! Available cursor values: 2 4 6 7 = █ _ | ☃ ( 1 3 5 are blinking versions)
|
! Available cursor values: 2 4 6 7 = █ _ | ☃ ( 1 3 5 are blinking versions)
|
||||||
st.cursorshape: 2
|
st.cursorshape: 2
|
||||||
! thickness of underline and bar cursors
|
! thickness of underline and bar cursors
|
||||||
st.cursorthickness: 2
|
st.cursorthickness: 2
|
||||||
! 0: normal blinking, 1: leave cursor border and blink with cursor's background
|
! 0: normal blinking, 1: leave cursor border and blink with cursors background
|
||||||
st.cursorblinkstyle: 0
|
st.cursorblinkstyle: 0
|
||||||
! 0: cursor blinks with a constant interval; 1: blinking cycle resets on key input
|
! 0: cursor blinks with a constant interval; 1: blinking cycle resets on key input
|
||||||
st.cursorblinkontype: 1
|
st.cursorblinkontype: 1
|
||||||
st.bold_font: 1
|
|
||||||
st.xfps: 120
|
st.xfps: 120
|
||||||
st.actionfps: 30
|
st.actionfps: 30
|
||||||
! Amount of lines scrolled
|
! Amount of lines scrolled
|
||||||
st.mouseScrollLines: 1
|
st.mouseScrollLines: 1
|
||||||
! Kerning / character bounding-box height multiplier
|
! Kerning / character bounding-box height multiplier
|
||||||
st.chscale: 1.0
|
st.chscale: 0.95
|
||||||
|
! st.chscale: 1.0
|
||||||
! Kerning / character bounding-box width multiplier
|
! Kerning / character bounding-box width multiplier
|
||||||
st.cwscale: 1.0
|
st.cwscale: 1.0
|
||||||
! blinking timeout for terminal and cursor blinking (0 disables)
|
! blinking timeout for terminal and cursor blinking (0 disables)
|
||||||
st.blinktimeout: 800
|
st.blinktimeout: 800
|
||||||
! bell volume. Value between -100 and 100. (0 disables)
|
! bell volume. Value between -100 and 100. (0 disables)
|
||||||
st.bellvolume: 100
|
st.bellvolume: 100
|
||||||
! this is a char that is exposed like so: `printf '\033[z'`
|
! this is a char that is exposed like so: printf '\033[z'
|
||||||
st.prompt_char: $
|
st.prompt_char: $
|
||||||
! This option is can be preedit style. Available values: `root` `overthespot` (Default taken `root`)
|
! This option is can be preedit style. Available values: `root` `overthespot` (Default taken `root`)
|
||||||
st.imstyle: root
|
st.imstyle: root
|
||||||
|
|
||||||
! opacity==255 means what terminal will be not transparent, 0 - fully transparent
|
! opacity==255 means what terminal will be not transparent, 0 - fully transparent
|
||||||
st.opacity: 255
|
st.opacity: 180
|
||||||
248
Xresources.d/xmodmap.orig
Normal file
248
Xresources.d/xmodmap.orig
Normal file
@@ -0,0 +1,248 @@
|
|||||||
|
keycode 8 =
|
||||||
|
keycode 9 = Escape NoSymbol Escape
|
||||||
|
keycode 10 = 1 exclam 1 exclam
|
||||||
|
keycode 11 = 2 at 2 quotedbl
|
||||||
|
keycode 12 = 3 numbersign 3 numerosign
|
||||||
|
keycode 13 = 4 dollar 4 semicolon
|
||||||
|
keycode 14 = 5 percent 5 percent
|
||||||
|
keycode 15 = 6 asciicircum 6 colon
|
||||||
|
keycode 16 = 7 ampersand 7 question
|
||||||
|
keycode 17 = 8 asterisk 8 asterisk U20BD
|
||||||
|
keycode 18 = 9 parenleft 9 parenleft
|
||||||
|
keycode 19 = 0 parenright 0 parenright
|
||||||
|
keycode 20 = minus underscore minus underscore
|
||||||
|
keycode 21 = equal plus equal plus
|
||||||
|
keycode 22 = BackSpace BackSpace BackSpace BackSpace
|
||||||
|
keycode 23 = Tab ISO_Left_Tab Tab ISO_Left_Tab
|
||||||
|
keycode 24 = q Q Cyrillic_shorti Cyrillic_SHORTI
|
||||||
|
keycode 25 = w W Cyrillic_tse Cyrillic_TSE
|
||||||
|
keycode 26 = e E Cyrillic_u Cyrillic_U
|
||||||
|
keycode 27 = r R Cyrillic_ka Cyrillic_KA
|
||||||
|
keycode 28 = t T Cyrillic_ie Cyrillic_IE
|
||||||
|
keycode 29 = y Y Cyrillic_en Cyrillic_EN
|
||||||
|
keycode 30 = u U Cyrillic_ghe Cyrillic_GHE
|
||||||
|
keycode 31 = i I Cyrillic_sha Cyrillic_SHA
|
||||||
|
keycode 32 = o O Cyrillic_shcha Cyrillic_SHCHA
|
||||||
|
keycode 33 = p P Cyrillic_ze Cyrillic_ZE
|
||||||
|
keycode 34 = bracketleft braceleft Cyrillic_ha Cyrillic_HA
|
||||||
|
keycode 35 = bracketright braceright Cyrillic_hardsign Cyrillic_HARDSIGN
|
||||||
|
keycode 36 = Return NoSymbol Return
|
||||||
|
keycode 37 = Control_L NoSymbol Control_L
|
||||||
|
keycode 38 = a A Cyrillic_ef Cyrillic_EF
|
||||||
|
keycode 39 = s S Cyrillic_yeru Cyrillic_YERU
|
||||||
|
keycode 40 = d D Cyrillic_ve Cyrillic_VE
|
||||||
|
keycode 41 = f F Cyrillic_a Cyrillic_A
|
||||||
|
keycode 42 = g G Cyrillic_pe Cyrillic_PE
|
||||||
|
keycode 43 = h H Cyrillic_er Cyrillic_ER
|
||||||
|
keycode 44 = j J Cyrillic_o Cyrillic_O
|
||||||
|
keycode 45 = k K Cyrillic_el Cyrillic_EL
|
||||||
|
keycode 46 = l L Cyrillic_de Cyrillic_DE
|
||||||
|
keycode 47 = semicolon colon Cyrillic_zhe Cyrillic_ZHE
|
||||||
|
keycode 48 = apostrophe quotedbl Cyrillic_e Cyrillic_E
|
||||||
|
keycode 49 = grave asciitilde Cyrillic_io Cyrillic_IO
|
||||||
|
keycode 50 = Shift_L NoSymbol Shift_L
|
||||||
|
keycode 51 = backslash bar backslash slash
|
||||||
|
keycode 52 = z Z Cyrillic_ya Cyrillic_YA
|
||||||
|
keycode 53 = x X Cyrillic_che Cyrillic_CHE
|
||||||
|
keycode 54 = c C Cyrillic_es Cyrillic_ES
|
||||||
|
keycode 55 = v V Cyrillic_em Cyrillic_EM
|
||||||
|
keycode 56 = b B Cyrillic_i Cyrillic_I
|
||||||
|
keycode 57 = n N Cyrillic_te Cyrillic_TE
|
||||||
|
keycode 58 = m M Cyrillic_softsign Cyrillic_SOFTSIGN
|
||||||
|
keycode 59 = comma less Cyrillic_be Cyrillic_BE
|
||||||
|
keycode 60 = period greater Cyrillic_yu Cyrillic_YU
|
||||||
|
keycode 61 = slash question period comma
|
||||||
|
keycode 62 = Shift_R NoSymbol Shift_R
|
||||||
|
keycode 63 = KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply XF86ClearGrab KP_Multiply KP_Multiply XF86ClearGrab
|
||||||
|
keycode 64 = Alt_L Meta_L Alt_L Meta_L
|
||||||
|
keycode 65 = space ISO_Next_Group space ISO_Next_Group
|
||||||
|
keycode 66 = Escape NoSymbol Escape
|
||||||
|
keycode 67 = F1 F1 F1 F1 F1 F1 XF86Switch_VT_1 F1 F1 XF86Switch_VT_1
|
||||||
|
keycode 68 = F2 F2 F2 F2 F2 F2 XF86Switch_VT_2 F2 F2 XF86Switch_VT_2
|
||||||
|
keycode 69 = F3 F3 F3 F3 F3 F3 XF86Switch_VT_3 F3 F3 XF86Switch_VT_3
|
||||||
|
keycode 70 = F4 F4 F4 F4 F4 F4 XF86Switch_VT_4 F4 F4 XF86Switch_VT_4
|
||||||
|
keycode 71 = F5 F5 F5 F5 F5 F5 XF86Switch_VT_5 F5 F5 XF86Switch_VT_5
|
||||||
|
keycode 72 = F6 F6 F6 F6 F6 F6 XF86Switch_VT_6 F6 F6 XF86Switch_VT_6
|
||||||
|
keycode 73 = F7 F7 F7 F7 F7 F7 XF86Switch_VT_7 F7 F7 XF86Switch_VT_7
|
||||||
|
keycode 74 = F8 F8 F8 F8 F8 F8 XF86Switch_VT_8 F8 F8 XF86Switch_VT_8
|
||||||
|
keycode 75 = F9 F9 F9 F9 F9 F9 XF86Switch_VT_9 F9 F9 XF86Switch_VT_9
|
||||||
|
keycode 76 = F10 F10 F10 F10 F10 F10 XF86Switch_VT_10 F10 F10 XF86Switch_VT_10
|
||||||
|
keycode 77 = Num_Lock NoSymbol Num_Lock
|
||||||
|
keycode 78 = Scroll_Lock NoSymbol Scroll_Lock
|
||||||
|
keycode 79 = KP_Home KP_7 KP_Home KP_7
|
||||||
|
keycode 80 = KP_Up KP_8 KP_Up KP_8
|
||||||
|
keycode 81 = KP_Prior KP_9 KP_Prior KP_9
|
||||||
|
keycode 82 = KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract XF86Prev_VMode KP_Subtract KP_Subtract XF86Prev_VMode
|
||||||
|
keycode 83 = KP_Left KP_4 KP_Left KP_4
|
||||||
|
keycode 84 = KP_Begin KP_5 KP_Begin KP_5
|
||||||
|
keycode 85 = KP_Right KP_6 KP_Right KP_6
|
||||||
|
keycode 86 = KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add XF86Next_VMode KP_Add KP_Add XF86Next_VMode
|
||||||
|
keycode 87 = KP_End KP_1 KP_End KP_1
|
||||||
|
keycode 88 = KP_Down KP_2 KP_Down KP_2
|
||||||
|
keycode 89 = KP_Next KP_3 KP_Next KP_3
|
||||||
|
keycode 90 = KP_Insert KP_0 KP_Insert KP_0
|
||||||
|
keycode 91 = KP_Delete KP_Decimal KP_Delete KP_Separator
|
||||||
|
keycode 92 = ISO_Level3_Shift NoSymbol ISO_Level3_Shift
|
||||||
|
keycode 93 =
|
||||||
|
keycode 94 = less greater slash bar bar brokenbar
|
||||||
|
keycode 95 = F11 F11 F11 F11 F11 F11 XF86Switch_VT_11 F11 F11 XF86Switch_VT_11
|
||||||
|
keycode 96 = F12 F12 F12 F12 F12 F12 XF86Switch_VT_12 F12 F12 XF86Switch_VT_12
|
||||||
|
keycode 97 =
|
||||||
|
keycode 98 = Katakana NoSymbol Katakana
|
||||||
|
keycode 99 = Hiragana NoSymbol Hiragana
|
||||||
|
keycode 100 = Henkan_Mode NoSymbol Henkan_Mode
|
||||||
|
keycode 101 = Hiragana_Katakana NoSymbol Hiragana_Katakana
|
||||||
|
keycode 102 = Muhenkan NoSymbol Muhenkan
|
||||||
|
keycode 103 =
|
||||||
|
keycode 104 = KP_Enter NoSymbol KP_Enter
|
||||||
|
keycode 105 = Control_R NoSymbol Control_R
|
||||||
|
keycode 106 = KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide XF86Ungrab KP_Divide KP_Divide XF86Ungrab
|
||||||
|
keycode 107 = Print Sys_Req Print Sys_Req
|
||||||
|
keycode 108 = Alt_R Meta_R Alt_R Meta_R
|
||||||
|
keycode 109 = Linefeed NoSymbol Linefeed
|
||||||
|
keycode 110 = Home NoSymbol Home
|
||||||
|
keycode 111 = Up NoSymbol Up
|
||||||
|
keycode 112 = Prior NoSymbol Prior
|
||||||
|
keycode 113 = Left NoSymbol Left
|
||||||
|
keycode 114 = Right NoSymbol Right
|
||||||
|
keycode 115 = End NoSymbol End
|
||||||
|
keycode 116 = Down NoSymbol Down
|
||||||
|
keycode 117 = Next NoSymbol Next
|
||||||
|
keycode 118 = Insert NoSymbol Insert
|
||||||
|
keycode 119 = Delete NoSymbol Delete
|
||||||
|
keycode 120 =
|
||||||
|
keycode 121 = XF86AudioMute NoSymbol XF86AudioMute
|
||||||
|
keycode 122 = XF86AudioLowerVolume NoSymbol XF86AudioLowerVolume
|
||||||
|
keycode 123 = XF86AudioRaiseVolume NoSymbol XF86AudioRaiseVolume
|
||||||
|
keycode 124 = XF86PowerOff NoSymbol XF86PowerOff
|
||||||
|
keycode 125 = KP_Equal NoSymbol KP_Equal
|
||||||
|
keycode 126 = plusminus NoSymbol plusminus
|
||||||
|
keycode 127 = Pause Break Pause Break
|
||||||
|
keycode 128 = XF86LaunchA NoSymbol XF86LaunchA
|
||||||
|
keycode 129 = KP_Decimal KP_Decimal KP_Decimal KP_Decimal
|
||||||
|
keycode 130 = Hangul NoSymbol Hangul
|
||||||
|
keycode 131 = Hangul_Hanja NoSymbol Hangul_Hanja
|
||||||
|
keycode 132 =
|
||||||
|
keycode 133 = Super_L NoSymbol Super_L
|
||||||
|
keycode 134 = Super_R NoSymbol Super_R
|
||||||
|
keycode 135 = Menu NoSymbol Menu
|
||||||
|
keycode 136 = Cancel NoSymbol Cancel
|
||||||
|
keycode 137 = Redo NoSymbol Redo
|
||||||
|
keycode 138 = SunProps NoSymbol SunProps
|
||||||
|
keycode 139 = Undo NoSymbol Undo
|
||||||
|
keycode 140 = SunFront NoSymbol SunFront
|
||||||
|
keycode 141 = XF86Copy NoSymbol XF86Copy
|
||||||
|
keycode 142 = XF86Open NoSymbol XF86Open
|
||||||
|
keycode 143 = XF86Paste NoSymbol XF86Paste
|
||||||
|
keycode 144 = Find NoSymbol Find
|
||||||
|
keycode 145 = XF86Cut NoSymbol XF86Cut
|
||||||
|
keycode 146 = Help NoSymbol Help
|
||||||
|
keycode 147 = XF86MenuKB NoSymbol XF86MenuKB
|
||||||
|
keycode 148 = XF86Calculator NoSymbol XF86Calculator
|
||||||
|
keycode 149 =
|
||||||
|
keycode 150 = XF86Sleep NoSymbol XF86Sleep
|
||||||
|
keycode 151 = XF86WakeUp NoSymbol XF86WakeUp
|
||||||
|
keycode 152 = XF86Explorer NoSymbol XF86Explorer
|
||||||
|
keycode 153 = XF86Send NoSymbol XF86Send
|
||||||
|
keycode 154 =
|
||||||
|
keycode 155 = XF86Xfer NoSymbol XF86Xfer
|
||||||
|
keycode 156 = XF86Launch1 NoSymbol XF86Launch1
|
||||||
|
keycode 157 = XF86Launch2 NoSymbol XF86Launch2
|
||||||
|
keycode 158 = XF86WWW NoSymbol XF86WWW
|
||||||
|
keycode 159 = XF86DOS NoSymbol XF86DOS
|
||||||
|
keycode 160 = XF86ScreenSaver NoSymbol XF86ScreenSaver
|
||||||
|
keycode 161 = XF86RotateWindows NoSymbol XF86RotateWindows
|
||||||
|
keycode 162 = XF86TaskPane NoSymbol XF86TaskPane
|
||||||
|
keycode 163 = XF86Mail NoSymbol XF86Mail
|
||||||
|
keycode 164 = XF86Favorites NoSymbol XF86Favorites
|
||||||
|
keycode 165 = XF86MyComputer NoSymbol XF86MyComputer
|
||||||
|
keycode 166 = XF86Back NoSymbol XF86Back
|
||||||
|
keycode 167 = XF86Forward NoSymbol XF86Forward
|
||||||
|
keycode 168 =
|
||||||
|
keycode 169 = XF86Eject NoSymbol XF86Eject
|
||||||
|
keycode 170 = XF86Eject XF86Eject XF86Eject XF86Eject
|
||||||
|
keycode 171 = XF86AudioNext NoSymbol XF86AudioNext
|
||||||
|
keycode 172 = XF86AudioPlay XF86AudioPause XF86AudioPlay XF86AudioPause
|
||||||
|
keycode 173 = XF86AudioPrev NoSymbol XF86AudioPrev
|
||||||
|
keycode 174 = XF86AudioStop XF86Eject XF86AudioStop XF86Eject
|
||||||
|
keycode 175 = XF86AudioRecord NoSymbol XF86AudioRecord
|
||||||
|
keycode 176 = XF86AudioRewind NoSymbol XF86AudioRewind
|
||||||
|
keycode 177 = XF86Phone NoSymbol XF86Phone
|
||||||
|
keycode 178 =
|
||||||
|
keycode 179 = XF86Tools NoSymbol XF86Tools
|
||||||
|
keycode 180 = XF86HomePage NoSymbol XF86HomePage
|
||||||
|
keycode 181 = XF86Reload NoSymbol XF86Reload
|
||||||
|
keycode 182 = XF86Close NoSymbol XF86Close
|
||||||
|
keycode 183 =
|
||||||
|
keycode 184 =
|
||||||
|
keycode 185 = XF86ScrollUp NoSymbol XF86ScrollUp
|
||||||
|
keycode 186 = XF86ScrollDown NoSymbol XF86ScrollDown
|
||||||
|
keycode 187 = parenleft NoSymbol parenleft
|
||||||
|
keycode 188 = parenright NoSymbol parenright
|
||||||
|
keycode 189 = XF86New NoSymbol XF86New
|
||||||
|
keycode 190 = Redo NoSymbol Redo
|
||||||
|
keycode 191 = XF86Tools NoSymbol XF86Tools
|
||||||
|
keycode 192 = XF86Launch5 NoSymbol XF86Launch5
|
||||||
|
keycode 193 = XF86Launch6 NoSymbol XF86Launch6
|
||||||
|
keycode 194 = XF86Launch7 NoSymbol XF86Launch7
|
||||||
|
keycode 195 = XF86Launch8 NoSymbol XF86Launch8
|
||||||
|
keycode 196 = XF86Launch9 NoSymbol XF86Launch9
|
||||||
|
keycode 197 =
|
||||||
|
keycode 198 = XF86AudioMicMute NoSymbol XF86AudioMicMute
|
||||||
|
keycode 199 = XF86TouchpadToggle NoSymbol XF86TouchpadToggle
|
||||||
|
keycode 200 = XF86TouchpadOn NoSymbol XF86TouchpadOn
|
||||||
|
keycode 201 = XF86TouchpadOff NoSymbol XF86TouchpadOff
|
||||||
|
keycode 202 =
|
||||||
|
keycode 203 = Mode_switch NoSymbol Mode_switch
|
||||||
|
keycode 204 = NoSymbol Alt_L NoSymbol Alt_L
|
||||||
|
keycode 205 = NoSymbol Meta_L NoSymbol Meta_L
|
||||||
|
keycode 206 = NoSymbol Super_L NoSymbol Super_L
|
||||||
|
keycode 207 = NoSymbol Hyper_L NoSymbol Hyper_L
|
||||||
|
keycode 208 = XF86AudioPlay NoSymbol XF86AudioPlay
|
||||||
|
keycode 209 = XF86AudioPause NoSymbol XF86AudioPause
|
||||||
|
keycode 210 = XF86Launch3 NoSymbol XF86Launch3
|
||||||
|
keycode 211 = XF86Launch4 NoSymbol XF86Launch4
|
||||||
|
keycode 212 = XF86LaunchB NoSymbol XF86LaunchB
|
||||||
|
keycode 213 = XF86Suspend NoSymbol XF86Suspend
|
||||||
|
keycode 214 = XF86Close NoSymbol XF86Close
|
||||||
|
keycode 215 = XF86AudioPlay NoSymbol XF86AudioPlay
|
||||||
|
keycode 216 = XF86AudioForward NoSymbol XF86AudioForward
|
||||||
|
keycode 217 =
|
||||||
|
keycode 218 = Print NoSymbol Print
|
||||||
|
keycode 219 =
|
||||||
|
keycode 220 = XF86WebCam NoSymbol XF86WebCam
|
||||||
|
keycode 221 = XF86AudioPreset NoSymbol XF86AudioPreset
|
||||||
|
keycode 222 =
|
||||||
|
keycode 223 = XF86Mail NoSymbol XF86Mail
|
||||||
|
keycode 224 = XF86Messenger NoSymbol XF86Messenger
|
||||||
|
keycode 225 = XF86Search NoSymbol XF86Search
|
||||||
|
keycode 226 = XF86Go NoSymbol XF86Go
|
||||||
|
keycode 227 = XF86Finance NoSymbol XF86Finance
|
||||||
|
keycode 228 = XF86Game NoSymbol XF86Game
|
||||||
|
keycode 229 = XF86Shop NoSymbol XF86Shop
|
||||||
|
keycode 230 =
|
||||||
|
keycode 231 = Cancel NoSymbol Cancel
|
||||||
|
keycode 232 = XF86MonBrightnessDown NoSymbol XF86MonBrightnessDown
|
||||||
|
keycode 233 = XF86MonBrightnessUp NoSymbol XF86MonBrightnessUp
|
||||||
|
keycode 234 = XF86AudioMedia NoSymbol XF86AudioMedia
|
||||||
|
keycode 235 = XF86Display NoSymbol XF86Display
|
||||||
|
keycode 236 = XF86KbdLightOnOff NoSymbol XF86KbdLightOnOff
|
||||||
|
keycode 237 = XF86KbdBrightnessDown NoSymbol XF86KbdBrightnessDown
|
||||||
|
keycode 238 = XF86KbdBrightnessUp NoSymbol XF86KbdBrightnessUp
|
||||||
|
keycode 239 = XF86Send NoSymbol XF86Send
|
||||||
|
keycode 240 = XF86Reply NoSymbol XF86Reply
|
||||||
|
keycode 241 = XF86MailForward NoSymbol XF86MailForward
|
||||||
|
keycode 242 = XF86Save NoSymbol XF86Save
|
||||||
|
keycode 243 = XF86Documents NoSymbol XF86Documents
|
||||||
|
keycode 244 = XF86Battery NoSymbol XF86Battery
|
||||||
|
keycode 245 = XF86Bluetooth NoSymbol XF86Bluetooth
|
||||||
|
keycode 246 = XF86WLAN NoSymbol XF86WLAN
|
||||||
|
keycode 247 =
|
||||||
|
keycode 248 =
|
||||||
|
keycode 249 =
|
||||||
|
keycode 250 =
|
||||||
|
keycode 251 = XF86MonBrightnessCycle NoSymbol XF86MonBrightnessCycle
|
||||||
|
keycode 252 =
|
||||||
|
keycode 253 =
|
||||||
|
keycode 254 = XF86WWAN NoSymbol XF86WWAN
|
||||||
|
keycode 255 = XF86RFKill NoSymbol XF86RFKill
|
||||||
6
bash_logout
Normal file
6
bash_logout
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
# /etc/skel/.bash_logout
|
||||||
|
|
||||||
|
# This file is sourced when a login shell terminates.
|
||||||
|
|
||||||
|
# Clear the screen for security's sake.
|
||||||
|
clear
|
||||||
11
bash_profile
Normal file
11
bash_profile
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
# /etc/skel/.bash_profile
|
||||||
|
|
||||||
|
# This file is sourced by bash for login shells. The following line
|
||||||
|
# runs your .bashrc and is recommended by the bash info pages.
|
||||||
|
if [[ -f ~/.bashrc ]] ; then
|
||||||
|
. ~/.bashrc
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -f ~/.profile ]] ; then
|
||||||
|
. ~/.profile
|
||||||
|
fi
|
||||||
19
bashrc
Normal file
19
bashrc
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
# /etc/skel/.bashrc
|
||||||
|
#
|
||||||
|
# This file is sourced by all *interactive* bash shells on startup,
|
||||||
|
# including some apparently interactive shells such as scp and rcp
|
||||||
|
# that can't tolerate any output. So make sure this doesn't display
|
||||||
|
# anything or bad things will happen !
|
||||||
|
|
||||||
|
|
||||||
|
# Test for an interactive shell. There is no need to set anything
|
||||||
|
# past this point for scp and rcp, and it's important to refrain from
|
||||||
|
# outputting anything in those cases.
|
||||||
|
if [[ $- != *i* ]] ; then
|
||||||
|
# Shell is non-interactive. Be done now!
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# Put your fun stuff here.
|
||||||
|
[ -f /home/krsh/.config/cani/completions/_cani.bash ] && source /home/krsh/.config/cani/completions/_cani.bash
|
||||||
@@ -1,9 +1,14 @@
|
|||||||
---
|
---
|
||||||
BUNDLE_BUILD__NOKOGIRI: "--use-system-libraries"
|
BUNDLE_BUILD__NOKOGIRI: "--use-system-libraries"
|
||||||
|
BUNDLE_BUILD__SASSC: "--disable-lto"
|
||||||
BUNDLE_PATH: "vendor/bundle"
|
BUNDLE_PATH: "vendor/bundle"
|
||||||
BUNDLE_GEM__COC: "0"
|
BUNDLE_GEM__COC: "0"
|
||||||
BUNDLE_GEM__MIT: "1"
|
BUNDLE_GEM__MIT: "1"
|
||||||
BUNDLE_GEM__TEST: "rspec"
|
BUNDLE_GEM__TEST: "minitest"
|
||||||
BUNDLE_GIT__ALLOW_INSECURE: "true"
|
BUNDLE_GIT__ALLOW_INSECURE: "true"
|
||||||
BUNDLE_PREFER_GEMS_RB: "true"
|
BUNDLE_PREFER_GEMS_RB: "true"
|
||||||
BUNDLE_INIT_GEMS_RB: "true"
|
BUNDLE_INIT_GEMS_RB: "true"
|
||||||
|
BUNDLE_JOBS: "4"
|
||||||
|
BUNDLE_GEM__CI: "github"
|
||||||
|
BUNDLE_GEM__CHANGELOG: "false"
|
||||||
|
BUNDLE_GEM__LINTER: "false"
|
||||||
11
cargo/env
Normal file
11
cargo/env
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# rustup shell setup
|
||||||
|
# affix colons on either side of $PATH to simplify matching
|
||||||
|
case ":${PATH}:" in
|
||||||
|
*:"$HOME/.cargo/bin":*)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
# Prepending path in case a system-installed rustc needs to be overridden
|
||||||
|
export PATH="$HOME/.cargo/bin:$PATH"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
665
config/alacritty/alacritty.yml
Normal file
665
config/alacritty/alacritty.yml
Normal file
@@ -0,0 +1,665 @@
|
|||||||
|
# Configuration for Alacritty, the GPU enhanced terminal emulator.
|
||||||
|
|
||||||
|
# Any items in the `env` entry below will be added as
|
||||||
|
# environment variables. Some entries may override variables
|
||||||
|
# set by alacritty itself.
|
||||||
|
#env:
|
||||||
|
# TERM variable
|
||||||
|
#
|
||||||
|
# This value is used to set the `$TERM` environment variable for
|
||||||
|
# each instance of Alacritty. If it is not present, alacritty will
|
||||||
|
# check the local terminfo database and use `alacritty` if it is
|
||||||
|
# available, otherwise `xterm-256color` is used.
|
||||||
|
#TERM: alacritty
|
||||||
|
env:
|
||||||
|
TERM: xterm-256color
|
||||||
|
|
||||||
|
#window:
|
||||||
|
# Window dimensions (changes require restart)
|
||||||
|
#
|
||||||
|
# Specified in number of columns/lines, not pixels.
|
||||||
|
# If both are `0`, this setting is ignored.
|
||||||
|
#dimensions:
|
||||||
|
# columns: 0
|
||||||
|
# lines: 0
|
||||||
|
|
||||||
|
# Window position (changes require restart)
|
||||||
|
#
|
||||||
|
# Specified in number of pixels.
|
||||||
|
# If the position is not set, the window manager will handle the placement.
|
||||||
|
#position:
|
||||||
|
# x: 0
|
||||||
|
# y: 0
|
||||||
|
|
||||||
|
# Window padding (changes require restart)
|
||||||
|
#
|
||||||
|
# Blank space added around the window in pixels. This padding is scaled
|
||||||
|
# by DPI and the specified value is always added at both opposing sides.
|
||||||
|
#padding:
|
||||||
|
# x: 0
|
||||||
|
# y: 0
|
||||||
|
|
||||||
|
# Spread additional padding evenly around the terminal content.
|
||||||
|
#dynamic_padding: false
|
||||||
|
|
||||||
|
# Window decorations
|
||||||
|
#
|
||||||
|
# Values for `decorations`:
|
||||||
|
# - full: Borders and title bar
|
||||||
|
# - none: Neither borders nor title bar
|
||||||
|
#
|
||||||
|
# Values for `decorations` (macOS only):
|
||||||
|
# - transparent: Title bar, transparent background and title bar buttons
|
||||||
|
# - buttonless: Title bar, transparent background, but no title bar buttons
|
||||||
|
#decorations: full
|
||||||
|
|
||||||
|
# Startup Mode (changes require restart)
|
||||||
|
#
|
||||||
|
# Values for `startup_mode`:
|
||||||
|
# - Windowed
|
||||||
|
# - Maximized
|
||||||
|
# - Fullscreen
|
||||||
|
#
|
||||||
|
# Values for `startup_mode` (macOS only):
|
||||||
|
# - SimpleFullscreen
|
||||||
|
#startup_mode: Windowed
|
||||||
|
|
||||||
|
# Window title
|
||||||
|
#title: Alacritty
|
||||||
|
|
||||||
|
# Window class (Linux/BSD only):
|
||||||
|
#class:
|
||||||
|
# Application instance name
|
||||||
|
#instance: Alacritty
|
||||||
|
# General application class
|
||||||
|
#general: Alacritty
|
||||||
|
|
||||||
|
# GTK theme variant (Linux/BSD only)
|
||||||
|
#
|
||||||
|
# Override the variant of the GTK theme. Commonly supported values are `dark` and `light`.
|
||||||
|
# Set this to `None` to use the default theme variant.
|
||||||
|
#gtk_theme_variant: None
|
||||||
|
|
||||||
|
#scrolling:
|
||||||
|
# Maximum number of lines in the scrollback buffer.
|
||||||
|
# Specifying '0' will disable scrolling.
|
||||||
|
#history: 10000
|
||||||
|
|
||||||
|
# Number of lines the viewport will move for every line scrolled when
|
||||||
|
# scrollback is enabled (history > 0).
|
||||||
|
#multiplier: 3
|
||||||
|
|
||||||
|
# Font configuration
|
||||||
|
#font:
|
||||||
|
# Normal (roman) font face
|
||||||
|
#normal:
|
||||||
|
# Font family
|
||||||
|
#
|
||||||
|
# Default:
|
||||||
|
# - (macOS) Menlo
|
||||||
|
# - (Linux/BSD) monospace
|
||||||
|
# - (Windows) Consolas
|
||||||
|
#family: monospace
|
||||||
|
|
||||||
|
# The `style` can be specified to pick a specific face.
|
||||||
|
#style: Regular
|
||||||
|
|
||||||
|
# Bold font face
|
||||||
|
#bold:
|
||||||
|
# Font family
|
||||||
|
#
|
||||||
|
# If the bold family is not specified, it will fall back to the
|
||||||
|
# value specified for the normal font.
|
||||||
|
#family: monospace
|
||||||
|
|
||||||
|
# The `style` can be specified to pick a specific face.
|
||||||
|
#style: Bold
|
||||||
|
|
||||||
|
# Italic font face
|
||||||
|
#italic:
|
||||||
|
# Font family
|
||||||
|
#
|
||||||
|
# If the italic family is not specified, it will fall back to the
|
||||||
|
# value specified for the normal font.
|
||||||
|
#family: monospace
|
||||||
|
|
||||||
|
# The `style` can be specified to pick a specific face.
|
||||||
|
#style: Italic
|
||||||
|
|
||||||
|
# Bold italic font face
|
||||||
|
#bold_italic:
|
||||||
|
# Font family
|
||||||
|
#
|
||||||
|
# If the bold italic family is not specified, it will fall back to the
|
||||||
|
# value specified for the normal font.
|
||||||
|
#family: monospace
|
||||||
|
|
||||||
|
# The `style` can be specified to pick a specific face.
|
||||||
|
#style: Bold Italic
|
||||||
|
|
||||||
|
# Point size
|
||||||
|
#size: 11.0
|
||||||
|
|
||||||
|
# Offset is the extra space around each character. `offset.y` can be thought of
|
||||||
|
# as modifying the line spacing, and `offset.x` as modifying the letter spacing.
|
||||||
|
#offset:
|
||||||
|
# x: 0
|
||||||
|
# y: 0
|
||||||
|
|
||||||
|
# Glyph offset determines the locations of the glyphs within their cells with
|
||||||
|
# the default being at the bottom. Increasing `x` moves the glyph to the right,
|
||||||
|
# increasing `y` moves the glyph upwards.
|
||||||
|
#glyph_offset:
|
||||||
|
# x: 0
|
||||||
|
# y: 0
|
||||||
|
|
||||||
|
# Thin stroke font rendering (macOS only)
|
||||||
|
#
|
||||||
|
# Thin strokes are suitable for retina displays, but for non-retina screens
|
||||||
|
# it is recommended to set `use_thin_strokes` to `false`
|
||||||
|
#
|
||||||
|
# macOS >= 10.14.x:
|
||||||
|
#
|
||||||
|
# If the font quality on non-retina display looks bad then set
|
||||||
|
# `use_thin_strokes` to `true` and enable font smoothing by running the
|
||||||
|
# following command:
|
||||||
|
# `defaults write -g CGFontRenderingFontSmoothingDisabled -bool NO`
|
||||||
|
#
|
||||||
|
# This is a global setting and will require a log out or restart to take
|
||||||
|
# effect.
|
||||||
|
#use_thin_strokes: true
|
||||||
|
|
||||||
|
font:
|
||||||
|
size: 9
|
||||||
|
normal:
|
||||||
|
family: Iosevka Term
|
||||||
|
style: Medium
|
||||||
|
bold:
|
||||||
|
family: Iosevka Term
|
||||||
|
style: Heavy
|
||||||
|
italic:
|
||||||
|
family: Iosevka Term
|
||||||
|
style: Medium Oblique
|
||||||
|
bold_italic:
|
||||||
|
family: Iosevka Term
|
||||||
|
style: Heavy Oblique
|
||||||
|
|
||||||
|
# If `true`, bold text is drawn using the bright color variants.
|
||||||
|
draw_bold_text_with_bright_colors: false
|
||||||
|
|
||||||
|
# Colors (Tomorrow Night Bright)
|
||||||
|
#colors:
|
||||||
|
# Default colors
|
||||||
|
#primary:
|
||||||
|
# background: '#000000'
|
||||||
|
# foreground: '#eaeaea'
|
||||||
|
|
||||||
|
# Bright and dim foreground colors
|
||||||
|
#
|
||||||
|
# The dimmed foreground color is calculated automatically if it is not present.
|
||||||
|
# If the bright foreground color is not set, or `draw_bold_text_with_bright_colors`
|
||||||
|
# is `false`, the normal foreground color will be used.
|
||||||
|
#dim_foreground: '#9a9a9a'
|
||||||
|
#bright_foreground: '#ffffff'
|
||||||
|
|
||||||
|
# Cursor colors
|
||||||
|
#
|
||||||
|
# Colors which should be used to draw the terminal cursor. If these are unset,
|
||||||
|
# the cursor color will be the inverse of the cell color.
|
||||||
|
#cursor:
|
||||||
|
# text: '#000000'
|
||||||
|
# cursor: '#ffffff'
|
||||||
|
|
||||||
|
# Selection colors
|
||||||
|
#
|
||||||
|
# Colors which should be used to draw the selection area. If selection
|
||||||
|
# background is unset, selection color will be the inverse of the cell colors.
|
||||||
|
# If only text is unset the cell text color will remain the same.
|
||||||
|
#selection:
|
||||||
|
# text: '#eaeaea'
|
||||||
|
# background: '#404040'
|
||||||
|
|
||||||
|
# Normal colors
|
||||||
|
#normal:
|
||||||
|
# black: '#000000'
|
||||||
|
# red: '#d54e53'
|
||||||
|
# green: '#b9ca4a'
|
||||||
|
# yellow: '#e6c547'
|
||||||
|
# blue: '#7aa6da'
|
||||||
|
# magenta: '#c397d8'
|
||||||
|
# cyan: '#70c0ba'
|
||||||
|
# white: '#eaeaea'
|
||||||
|
|
||||||
|
# Bright colors
|
||||||
|
#bright:
|
||||||
|
# black: '#666666'
|
||||||
|
# red: '#ff3334'
|
||||||
|
# green: '#9ec400'
|
||||||
|
# yellow: '#e7c547'
|
||||||
|
# blue: '#7aa6da'
|
||||||
|
# magenta: '#b77ee0'
|
||||||
|
# cyan: '#54ced6'
|
||||||
|
# white: '#ffffff'
|
||||||
|
|
||||||
|
# Dim colors
|
||||||
|
#
|
||||||
|
# If the dim colors are not set, they will be calculated automatically based
|
||||||
|
# on the `normal` colors.
|
||||||
|
#dim:
|
||||||
|
# black: '#000000'
|
||||||
|
# red: '#8c3336'
|
||||||
|
# green: '#7a8530'
|
||||||
|
# yellow: '#97822e'
|
||||||
|
# blue: '#506d8f'
|
||||||
|
# magenta: '#80638e'
|
||||||
|
# cyan: '#497e7a'
|
||||||
|
# white: '#9a9a9a'
|
||||||
|
|
||||||
|
# Indexed Colors
|
||||||
|
#
|
||||||
|
# The indexed colors include all colors from 16 to 256.
|
||||||
|
# When these are not set, they're filled with sensible defaults.
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# `- { index: 16, color: '#ff00ff' }`
|
||||||
|
#
|
||||||
|
#indexed_colors: []
|
||||||
|
|
||||||
|
# Colors (Gruvbox dark)
|
||||||
|
# colors:
|
||||||
|
# # Default colors
|
||||||
|
# primary:
|
||||||
|
# background: '#1d2021'
|
||||||
|
# foreground: '#d5c4a1'
|
||||||
|
#
|
||||||
|
# # Normal colors
|
||||||
|
# normal:
|
||||||
|
# black: '#1d2021'
|
||||||
|
# red: '#fb4934'
|
||||||
|
# green: '#b8bb26'
|
||||||
|
# yellow: '#fabd2f'
|
||||||
|
# blue: '#83a598'
|
||||||
|
# magenta: '#d3869b'
|
||||||
|
# cyan: '#8ec07c'
|
||||||
|
# white: '#d5c4a1'
|
||||||
|
#
|
||||||
|
# # Bright colors
|
||||||
|
# bright:
|
||||||
|
# black: '#665c54'
|
||||||
|
# red: '#fb4934'
|
||||||
|
# green: '#b8bb26'
|
||||||
|
# yellow: '#fabd2f'
|
||||||
|
# blue: '#83a598'
|
||||||
|
# magenta: '#d3869b'
|
||||||
|
# cyan: '#8ec07c'
|
||||||
|
# white: '#d5c4a1'
|
||||||
|
|
||||||
|
colors:
|
||||||
|
# Default colors
|
||||||
|
primary:
|
||||||
|
# background: '#282828'
|
||||||
|
# hard contrast:
|
||||||
|
background: '#1d2021'
|
||||||
|
# soft contrast: background = '#32302f'
|
||||||
|
foreground: '#d5c4a1'
|
||||||
|
|
||||||
|
# Normal colors
|
||||||
|
# normal:
|
||||||
|
# black: '#282828'
|
||||||
|
# red: '#cc241d'
|
||||||
|
# green: '#98971a'
|
||||||
|
# yellow: '#d79921'
|
||||||
|
# blue: '#458588'
|
||||||
|
# magenta: '#b16286'
|
||||||
|
# cyan: '#689d6a'
|
||||||
|
# white: '#a89984'
|
||||||
|
|
||||||
|
normal:
|
||||||
|
black: '#1d2021'
|
||||||
|
red: '#fb4934'
|
||||||
|
green: '#b8bb26'
|
||||||
|
yellow: '#fabd2f'
|
||||||
|
blue: '#83a598'
|
||||||
|
magenta: '#d3869b'
|
||||||
|
cyan: '#8ec07c'
|
||||||
|
white: '#ebdbb2'
|
||||||
|
|
||||||
|
# Bright colors
|
||||||
|
bright:
|
||||||
|
black: '#665c54'
|
||||||
|
red: '#fb4934'
|
||||||
|
green: '#b8bb26'
|
||||||
|
yellow: '#fabd2f'
|
||||||
|
blue: '#83a598'
|
||||||
|
magenta: '#d3869b'
|
||||||
|
cyan: '#8ec07c'
|
||||||
|
white: '#fbf1c7'
|
||||||
|
|
||||||
|
# Visual Bell
|
||||||
|
#
|
||||||
|
# Any time the BEL code is received, Alacritty "rings" the visual bell. Once
|
||||||
|
# rung, the terminal background will be set to white and transition back to the
|
||||||
|
# default background color. You can control the rate of this transition by
|
||||||
|
# setting the `duration` property (represented in milliseconds). You can also
|
||||||
|
# configure the transition function by setting the `animation` property.
|
||||||
|
#
|
||||||
|
# Values for `animation`:
|
||||||
|
# - Ease
|
||||||
|
# - EaseOut
|
||||||
|
# - EaseOutSine
|
||||||
|
# - EaseOutQuad
|
||||||
|
# - EaseOutCubic
|
||||||
|
# - EaseOutQuart
|
||||||
|
# - EaseOutQuint
|
||||||
|
# - EaseOutExpo
|
||||||
|
# - EaseOutCirc
|
||||||
|
# - Linear
|
||||||
|
#
|
||||||
|
# Specifying a `duration` of `0` will disable the visual bell.
|
||||||
|
#visual_bell:
|
||||||
|
# animation: EaseOutExpo
|
||||||
|
# duration: 0
|
||||||
|
# color: '#ffffff'
|
||||||
|
|
||||||
|
visual_bell:
|
||||||
|
animation: EaseOutExpo
|
||||||
|
duration: 100
|
||||||
|
color: '#292d2e'
|
||||||
|
|
||||||
|
# Background opacity
|
||||||
|
#
|
||||||
|
# Window opacity as a floating point number from `0.0` to `1.0`.
|
||||||
|
# The value `0.0` is completely transparent and `1.0` is opaque.
|
||||||
|
#background_opacity: 1.0
|
||||||
|
|
||||||
|
#selection:
|
||||||
|
#semantic_escape_chars: ",│`|:\"' ()[]{}<>\t"
|
||||||
|
|
||||||
|
# When set to `true`, selected text will be copied to the primary clipboard.
|
||||||
|
#save_to_clipboard: false
|
||||||
|
|
||||||
|
# Allow terminal applications to change Alacritty's window title.
|
||||||
|
#dynamic_title: true
|
||||||
|
|
||||||
|
#cursor:
|
||||||
|
# Cursor style
|
||||||
|
#
|
||||||
|
# Values for `style`:
|
||||||
|
# - ▇ Block
|
||||||
|
# - _ Underline
|
||||||
|
# - | Beam
|
||||||
|
#style: Block
|
||||||
|
|
||||||
|
# If this is `true`, the cursor will be rendered as a hollow box when the
|
||||||
|
# window is not focused.
|
||||||
|
#unfocused_hollow: true
|
||||||
|
|
||||||
|
# Live config reload (changes require restart)
|
||||||
|
live_config_reload: false
|
||||||
|
|
||||||
|
# Shell
|
||||||
|
#
|
||||||
|
# You can set `shell.program` to the path of your favorite shell, e.g. `/bin/fish`.
|
||||||
|
# Entries in `shell.args` are passed unmodified as arguments to the shell.
|
||||||
|
#
|
||||||
|
# Default:
|
||||||
|
# - (macOS) /bin/bash --login
|
||||||
|
# - (Linux/BSD) user login shell
|
||||||
|
# - (Windows) powershell
|
||||||
|
#shell:
|
||||||
|
# program: /bin/bash
|
||||||
|
# args:
|
||||||
|
# - --login
|
||||||
|
shell:
|
||||||
|
program: shell
|
||||||
|
|
||||||
|
# Startup directory
|
||||||
|
#
|
||||||
|
# Directory the shell is started in. If this is unset, or `None`, the working
|
||||||
|
# directory of the parent process will be used.
|
||||||
|
#working_directory: None
|
||||||
|
|
||||||
|
# WinPTY backend (Windows only)
|
||||||
|
#
|
||||||
|
# Alacritty defaults to using the newer ConPTY backend if it is available,
|
||||||
|
# since it resolves a lot of bugs and is quite a bit faster. If it is not
|
||||||
|
# available, the the WinPTY backend will be used instead.
|
||||||
|
#
|
||||||
|
# Setting this option to `true` makes Alacritty use the legacy WinPTY backend,
|
||||||
|
# even if the ConPTY backend is available.
|
||||||
|
#winpty_backend: false
|
||||||
|
|
||||||
|
# Send ESC (\x1b) before characters when alt is pressed.
|
||||||
|
#alt_send_esc: true
|
||||||
|
|
||||||
|
#mouse:
|
||||||
|
# Click settings
|
||||||
|
#
|
||||||
|
# The `double_click` and `triple_click` settings control the time
|
||||||
|
# alacritty should wait for accepting multiple clicks as one double
|
||||||
|
# or triple click.
|
||||||
|
#double_click: { threshold: 300 }
|
||||||
|
#triple_click: { threshold: 300 }
|
||||||
|
|
||||||
|
# If this is `true`, the cursor is temporarily hidden when typing.
|
||||||
|
#hide_when_typing: false
|
||||||
|
|
||||||
|
#url:
|
||||||
|
# URL launcher
|
||||||
|
#
|
||||||
|
# This program is executed when clicking on a text which is recognized as a URL.
|
||||||
|
# The URL is always added to the command as the last parameter.
|
||||||
|
#
|
||||||
|
# When set to `None`, URL launching will be disabled completely.
|
||||||
|
#
|
||||||
|
# Default:
|
||||||
|
# - (macOS) open
|
||||||
|
# - (Linux/BSD) xdg-open
|
||||||
|
# - (Windows) explorer
|
||||||
|
#launcher:
|
||||||
|
# program: xdg-open
|
||||||
|
# args: []
|
||||||
|
|
||||||
|
# URL modifiers
|
||||||
|
#
|
||||||
|
# These are the modifiers that need to be held down for opening URLs when clicking
|
||||||
|
# on them. The available modifiers are documented in the key binding section.
|
||||||
|
#modifiers: None
|
||||||
|
|
||||||
|
# Mouse bindings
|
||||||
|
#
|
||||||
|
# Mouse bindings are specified as a list of objects, much like the key
|
||||||
|
# bindings further below.
|
||||||
|
#
|
||||||
|
# To trigger mouse bindings when an application running within Alacritty captures the mouse, the
|
||||||
|
# `Shift` modifier is automatically added as a requirement.
|
||||||
|
#
|
||||||
|
# Each mouse binding will specify a:
|
||||||
|
#
|
||||||
|
# - `mouse`:
|
||||||
|
#
|
||||||
|
# - Middle
|
||||||
|
# - Left
|
||||||
|
# - Right
|
||||||
|
# - Numeric identifier such as `5`
|
||||||
|
#
|
||||||
|
# - `action` (see key bindings)
|
||||||
|
#
|
||||||
|
# And optionally:
|
||||||
|
#
|
||||||
|
# - `mods` (see key bindings)
|
||||||
|
|
||||||
|
mouse_bindings:
|
||||||
|
- { mouse: Middle, action: PasteSelection }
|
||||||
|
|
||||||
|
# Key bindings
|
||||||
|
#
|
||||||
|
# Key bindings are specified as a list of objects. For example, this is the
|
||||||
|
# default paste binding:
|
||||||
|
#
|
||||||
|
# `- { key: V, mods: Control|Shift, action: Paste }`
|
||||||
|
#
|
||||||
|
# Each key binding will specify a:
|
||||||
|
#
|
||||||
|
# - `key`: Identifier of the key pressed
|
||||||
|
#
|
||||||
|
# - A-Z
|
||||||
|
# - F1-F24
|
||||||
|
# - Key0-Key9
|
||||||
|
#
|
||||||
|
# A full list with available key codes can be found here:
|
||||||
|
# https://docs.rs/glutin/*/glutin/event/enum.VirtualKeyCode.html#variants
|
||||||
|
#
|
||||||
|
# Instead of using the name of the keys, the `key` field also supports using
|
||||||
|
# the scancode of the desired key. Scancodes have to be specified as a
|
||||||
|
# decimal number. This command will allow you to display the hex scancodes
|
||||||
|
# for certain keys:
|
||||||
|
#
|
||||||
|
# `showkey --scancodes`.
|
||||||
|
#
|
||||||
|
# Then exactly one of:
|
||||||
|
#
|
||||||
|
# - `chars`: Send a byte sequence to the running application
|
||||||
|
#
|
||||||
|
# The `chars` field writes the specified string to the terminal. This makes
|
||||||
|
# it possible to pass escape sequences. To find escape codes for bindings
|
||||||
|
# like `PageUp` (`"\x1b[5~"`), you can run the command `showkey -a` outside
|
||||||
|
# of tmux. Note that applications use terminfo to map escape sequences back
|
||||||
|
# to keys. It is therefore required to update the terminfo when changing an
|
||||||
|
# escape sequence.
|
||||||
|
#
|
||||||
|
# - `action`: Execute a predefined action
|
||||||
|
#
|
||||||
|
# - Copy
|
||||||
|
# - Paste
|
||||||
|
# - PasteSelection
|
||||||
|
# - IncreaseFontSize
|
||||||
|
# - DecreaseFontSize
|
||||||
|
# - ResetFontSize
|
||||||
|
# - ScrollPageUp
|
||||||
|
# - ScrollPageDown
|
||||||
|
# - ScrollLineUp
|
||||||
|
# - ScrollLineDown
|
||||||
|
# - ScrollToTop
|
||||||
|
# - ScrollToBottom
|
||||||
|
# - ClearHistory
|
||||||
|
# - Hide
|
||||||
|
# - Minimize
|
||||||
|
# - Quit
|
||||||
|
# - ToggleFullscreen
|
||||||
|
# - SpawnNewInstance
|
||||||
|
# - ClearLogNotice
|
||||||
|
# - ReceiveChar
|
||||||
|
# - None
|
||||||
|
#
|
||||||
|
# (macOS only):
|
||||||
|
# - ToggleSimpleFullscreen: Enters fullscreen without occupying another space
|
||||||
|
#
|
||||||
|
# - `command`: Fork and execute a specified command plus arguments
|
||||||
|
#
|
||||||
|
# The `command` field must be a map containing a `program` string and an
|
||||||
|
# `args` array of command line parameter strings. For example:
|
||||||
|
# `{ program: "alacritty", args: ["-e", "vttest"] }`
|
||||||
|
#
|
||||||
|
# And optionally:
|
||||||
|
#
|
||||||
|
# - `mods`: Key modifiers to filter binding actions
|
||||||
|
#
|
||||||
|
# - Command
|
||||||
|
# - Control
|
||||||
|
# - Option
|
||||||
|
# - Super
|
||||||
|
# - Shift
|
||||||
|
# - Alt
|
||||||
|
#
|
||||||
|
# Multiple `mods` can be combined using `|` like this:
|
||||||
|
# `mods: Control|Shift`.
|
||||||
|
# Whitespace and capitalization are relevant and must match the example.
|
||||||
|
#
|
||||||
|
# - `mode`: Indicate a binding for only specific terminal reported modes
|
||||||
|
#
|
||||||
|
# This is mainly used to send applications the correct escape sequences
|
||||||
|
# when in different modes.
|
||||||
|
#
|
||||||
|
# - AppCursor
|
||||||
|
# - AppKeypad
|
||||||
|
# - Alt
|
||||||
|
#
|
||||||
|
# A `~` operator can be used before a mode to apply the binding whenever
|
||||||
|
# the mode is *not* active, e.g. `~Alt`.
|
||||||
|
#
|
||||||
|
# Bindings are always filled by default, but will be replaced when a new
|
||||||
|
# binding with the same triggers is defined. To unset a default binding, it can
|
||||||
|
# be mapped to the `ReceiveChar` action. Alternatively, you can use `None` for
|
||||||
|
# a no-op if you do not wish to receive input characters for that binding.
|
||||||
|
#
|
||||||
|
# If the same trigger is assigned to multiple actions, all of them are executed
|
||||||
|
# at once.
|
||||||
|
#key_bindings:
|
||||||
|
# (Windows, Linux, and BSD only)
|
||||||
|
#- { key: V, mods: Control|Shift, action: Paste }
|
||||||
|
#- { key: C, mods: Control|Shift, action: Copy }
|
||||||
|
#- { key: Insert, mods: Shift, action: PasteSelection }
|
||||||
|
#- { key: Key0, mods: Control, action: ResetFontSize }
|
||||||
|
#- { key: Equals, mods: Control, action: IncreaseFontSize }
|
||||||
|
#- { key: Add, mods: Control, action: IncreaseFontSize }
|
||||||
|
#- { key: Subtract, mods: Control, action: DecreaseFontSize }
|
||||||
|
#- { key: Minus, mods: Control, action: DecreaseFontSize }
|
||||||
|
|
||||||
|
# (Windows only)
|
||||||
|
#- { key: Return, mods: Alt, action: ToggleFullscreen }
|
||||||
|
|
||||||
|
# (macOS only)
|
||||||
|
#- { key: Key0, mods: Command, action: ResetFontSize }
|
||||||
|
#- { key: Equals, mods: Command, action: IncreaseFontSize }
|
||||||
|
#- { key: Add, mods: Command, action: IncreaseFontSize }
|
||||||
|
#- { key: Minus, mods: Command, action: DecreaseFontSize }
|
||||||
|
#- { key: K, mods: Command, action: ClearHistory }
|
||||||
|
#- { key: K, mods: Command, chars: "\x0c" }
|
||||||
|
#- { key: V, mods: Command, action: Paste }
|
||||||
|
#- { key: C, mods: Command, action: Copy }
|
||||||
|
#- { key: H, mods: Command, action: Hide }
|
||||||
|
#- { key: M, mods: Command, action: Minimize }
|
||||||
|
#- { key: Q, mods: Command, action: Quit }
|
||||||
|
#- { key: W, mods: Command, action: Quit }
|
||||||
|
#- { key: F, mods: Command|Control, action: ToggleFullscreen }
|
||||||
|
|
||||||
|
#- { key: Paste, action: Paste }
|
||||||
|
#- { key: Copy, action: Copy }
|
||||||
|
#- { key: L, mods: Control, action: ClearLogNotice }
|
||||||
|
#- { key: L, mods: Control, chars: "\x0c" }
|
||||||
|
#- { key: PageUp, mods: Shift, action: ScrollPageUp, mode: ~Alt }
|
||||||
|
#- { key: PageDown, mods: Shift, action: ScrollPageDown, mode: ~Alt }
|
||||||
|
#- { key: Home, mods: Shift, action: ScrollToTop, mode: ~Alt }
|
||||||
|
#- { key: End, mods: Shift, action: ScrollToBottom, mode: ~Alt }
|
||||||
|
|
||||||
|
key_bindings:
|
||||||
|
- { key: V, mods: Control|Shift, action: Paste }
|
||||||
|
- { key: C, mods: Control|Shift, action: Copy }
|
||||||
|
- { key: Insert, mods: Shift, action: PasteSelection }
|
||||||
|
- { key: Key0, mods: Control, action: ResetFontSize }
|
||||||
|
- { key: Equals, mods: Control, action: IncreaseFontSize }
|
||||||
|
- { key: Add, mods: Control, action: IncreaseFontSize }
|
||||||
|
- { key: Subtract, mods: Control, action: DecreaseFontSize }
|
||||||
|
- { key: Minus, mods: Control, action: DecreaseFontSize }
|
||||||
|
|
||||||
|
#debug:
|
||||||
|
# Display the time it takes to redraw each frame.
|
||||||
|
#render_timer: false
|
||||||
|
|
||||||
|
# Keep the log file after quitting Alacritty.
|
||||||
|
#persistent_logging: false
|
||||||
|
|
||||||
|
# Log level
|
||||||
|
#
|
||||||
|
# Values for `log_level`:
|
||||||
|
# - None
|
||||||
|
# - Error
|
||||||
|
# - Warn
|
||||||
|
# - Info
|
||||||
|
# - Debug
|
||||||
|
# - Trace
|
||||||
|
#log_level: Warn
|
||||||
|
|
||||||
|
# Print all received window events.
|
||||||
|
#print_events: false
|
||||||
254
config/btop/btop.conf
Normal file
254
config/btop/btop.conf
Normal file
@@ -0,0 +1,254 @@
|
|||||||
|
#? Config file for btop v. 1.4.4
|
||||||
|
|
||||||
|
#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes.
|
||||||
|
#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes"
|
||||||
|
color_theme = "/usr/share/btop/themes/gruvbox_dark.theme"
|
||||||
|
|
||||||
|
#* If the theme set background should be shown, set to False if you want terminal background transparency.
|
||||||
|
theme_background = False
|
||||||
|
|
||||||
|
#* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false.
|
||||||
|
truecolor = True
|
||||||
|
|
||||||
|
#* Set to true to force tty mode regardless if a real tty has been detected or not.
|
||||||
|
#* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols.
|
||||||
|
force_tty = False
|
||||||
|
|
||||||
|
#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets.
|
||||||
|
#* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box.
|
||||||
|
#* Use whitespace " " as separator between different presets.
|
||||||
|
#* Example: "cpu:0:default,mem:0:tty,proc:1:default cpu:0:braille,proc:0:tty"
|
||||||
|
presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:default cpu:0:block,net:0:tty"
|
||||||
|
|
||||||
|
#* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists.
|
||||||
|
#* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift.
|
||||||
|
vim_keys = True
|
||||||
|
|
||||||
|
#* Rounded corners on boxes, is ignored if TTY mode is ON.
|
||||||
|
rounded_corners = True
|
||||||
|
|
||||||
|
#* Default symbols to use for graph creation, "braille", "block" or "tty".
|
||||||
|
#* "braille" offers the highest resolution but might not be included in all fonts.
|
||||||
|
#* "block" has half the resolution of braille but uses more common characters.
|
||||||
|
#* "tty" uses only 3 different symbols but will work with most fonts and should work in a real TTY.
|
||||||
|
#* Note that "tty" only has half the horizontal resolution of the other two, so will show a shorter historical view.
|
||||||
|
graph_symbol = "braille"
|
||||||
|
|
||||||
|
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
|
||||||
|
graph_symbol_cpu = "default"
|
||||||
|
|
||||||
|
# Graph symbol to use for graphs in gpu box, "default", "braille", "block" or "tty".
|
||||||
|
graph_symbol_gpu = "default"
|
||||||
|
|
||||||
|
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
|
||||||
|
graph_symbol_mem = "default"
|
||||||
|
|
||||||
|
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
|
||||||
|
graph_symbol_net = "default"
|
||||||
|
|
||||||
|
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
|
||||||
|
graph_symbol_proc = "default"
|
||||||
|
|
||||||
|
#* Manually set which boxes to show. Available values are "cpu mem net proc" and "gpu0" through "gpu5", separate values with whitespace.
|
||||||
|
shown_boxes = "mem proc cpu net"
|
||||||
|
|
||||||
|
#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs.
|
||||||
|
update_ms = 1000
|
||||||
|
|
||||||
|
#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct",
|
||||||
|
#* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly.
|
||||||
|
proc_sorting = "cpu direct"
|
||||||
|
|
||||||
|
#* Reverse sorting order, True or False.
|
||||||
|
proc_reversed = False
|
||||||
|
|
||||||
|
#* Show processes as a tree.
|
||||||
|
proc_tree = False
|
||||||
|
|
||||||
|
#* Use the cpu graph colors in the process list.
|
||||||
|
proc_colors = True
|
||||||
|
|
||||||
|
#* Use a darkening gradient in the process list.
|
||||||
|
proc_gradient = True
|
||||||
|
|
||||||
|
#* If process cpu usage should be of the core it's running on or usage of the total available cpu power.
|
||||||
|
proc_per_core = True
|
||||||
|
|
||||||
|
#* Show process memory as bytes instead of percent.
|
||||||
|
proc_mem_bytes = True
|
||||||
|
|
||||||
|
#* Show cpu graph for each process.
|
||||||
|
proc_cpu_graphs = True
|
||||||
|
|
||||||
|
#* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate)
|
||||||
|
proc_info_smaps = False
|
||||||
|
|
||||||
|
#* Show proc box on left side of screen instead of right.
|
||||||
|
proc_left = False
|
||||||
|
|
||||||
|
#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop).
|
||||||
|
proc_filter_kernel = False
|
||||||
|
|
||||||
|
#* In tree-view, always accumulate child process resources in the parent process.
|
||||||
|
proc_aggregate = False
|
||||||
|
|
||||||
|
#* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available.
|
||||||
|
#* Select from a list of detected attributes from the options menu.
|
||||||
|
cpu_graph_upper = "total"
|
||||||
|
|
||||||
|
#* Sets the CPU stat shown in lower half of the CPU graph, "total" is always available.
|
||||||
|
#* Select from a list of detected attributes from the options menu.
|
||||||
|
cpu_graph_lower = "total"
|
||||||
|
|
||||||
|
#* If gpu info should be shown in the cpu box. Available values = "Auto", "On" and "Off".
|
||||||
|
show_gpu_info = "Auto"
|
||||||
|
|
||||||
|
#* Toggles if the lower CPU graph should be inverted.
|
||||||
|
cpu_invert_lower = True
|
||||||
|
|
||||||
|
#* Set to True to completely disable the lower CPU graph.
|
||||||
|
cpu_single_graph = False
|
||||||
|
|
||||||
|
#* Show cpu box at bottom of screen instead of top.
|
||||||
|
cpu_bottom = False
|
||||||
|
|
||||||
|
#* Shows the system uptime in the CPU box.
|
||||||
|
show_uptime = True
|
||||||
|
|
||||||
|
#* Show cpu temperature.
|
||||||
|
check_temp = True
|
||||||
|
|
||||||
|
#* Which sensor to use for cpu temperature, use options menu to select from list of available sensors.
|
||||||
|
cpu_sensor = "Auto"
|
||||||
|
|
||||||
|
#* Show temperatures for cpu cores also if check_temp is True and sensors has been found.
|
||||||
|
show_coretemp = True
|
||||||
|
|
||||||
|
#* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core.
|
||||||
|
#* Use lm-sensors or similar to see which cores are reporting temperatures on your machine.
|
||||||
|
#* Format "x:y" x=core with wrong temp, y=core with correct temp, use space as separator between multiple entries.
|
||||||
|
#* Example: "4:0 5:1 6:3"
|
||||||
|
cpu_core_map = ""
|
||||||
|
|
||||||
|
#* Which temperature scale to use, available values: "celsius", "fahrenheit", "kelvin" and "rankine".
|
||||||
|
temp_scale = "celsius"
|
||||||
|
|
||||||
|
#* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024.
|
||||||
|
base_10_sizes = False
|
||||||
|
|
||||||
|
#* Show CPU frequency.
|
||||||
|
show_cpu_freq = True
|
||||||
|
|
||||||
|
#* Draw a clock at top of screen, formatting according to strftime, empty string to disable.
|
||||||
|
#* Special formatting: /host = hostname | /user = username | /uptime = system uptime
|
||||||
|
clock_format = "%X"
|
||||||
|
|
||||||
|
#* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort.
|
||||||
|
background_update = True
|
||||||
|
|
||||||
|
#* Custom cpu model name, empty string to disable.
|
||||||
|
custom_cpu_name = ""
|
||||||
|
|
||||||
|
#* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ".
|
||||||
|
#* Only disks matching the filter will be shown. Prepend exclude= to only show disks not matching the filter. Examples: disk_filter="/boot /home/user", disks_filter="exclude=/boot /home/user"
|
||||||
|
disks_filter = ""
|
||||||
|
|
||||||
|
#* Show graphs instead of meters for memory values.
|
||||||
|
mem_graphs = True
|
||||||
|
|
||||||
|
#* Show mem box below net box instead of above.
|
||||||
|
mem_below_net = False
|
||||||
|
|
||||||
|
#* Count ZFS ARC in cached and available memory.
|
||||||
|
zfs_arc_cached = True
|
||||||
|
|
||||||
|
#* If swap memory should be shown in memory box.
|
||||||
|
show_swap = True
|
||||||
|
|
||||||
|
#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk.
|
||||||
|
swap_disk = True
|
||||||
|
|
||||||
|
#* If mem box should be split to also show disks info.
|
||||||
|
show_disks = False
|
||||||
|
|
||||||
|
#* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar.
|
||||||
|
only_physical = True
|
||||||
|
|
||||||
|
#* Read disks list from /etc/fstab. This also disables only_physical.
|
||||||
|
use_fstab = True
|
||||||
|
|
||||||
|
#* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool)
|
||||||
|
zfs_hide_datasets = False
|
||||||
|
|
||||||
|
#* Set to true to show available disk space for privileged users.
|
||||||
|
disk_free_priv = False
|
||||||
|
|
||||||
|
#* Toggles if io activity % (disk busy time) should be shown in regular disk usage view.
|
||||||
|
show_io_stat = True
|
||||||
|
|
||||||
|
#* Toggles io mode for disks, showing big graphs for disk read/write speeds.
|
||||||
|
io_mode = False
|
||||||
|
|
||||||
|
#* Set to True to show combined read/write io graphs in io mode.
|
||||||
|
io_graph_combined = False
|
||||||
|
|
||||||
|
#* Set the top speed for the io graphs in MiB/s (100 by default), use format "mountpoint:speed" separate disks with whitespace " ".
|
||||||
|
#* Example: "/mnt/media:100 /:20 /boot:1".
|
||||||
|
io_graph_speeds = ""
|
||||||
|
|
||||||
|
#* Set fixed values for network graphs in Mebibits. Is only used if net_auto is also set to False.
|
||||||
|
net_download = 100
|
||||||
|
|
||||||
|
net_upload = 100
|
||||||
|
|
||||||
|
#* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest.
|
||||||
|
net_auto = True
|
||||||
|
|
||||||
|
#* Sync the auto scaling for download and upload to whichever currently has the highest scale.
|
||||||
|
net_sync = True
|
||||||
|
|
||||||
|
#* Starts with the Network Interface specified here.
|
||||||
|
net_iface = ""
|
||||||
|
|
||||||
|
#* "True" shows bitrates in base 10 (Kbps, Mbps). "False" shows bitrates in binary sizes (Kibps, Mibps, etc.). "Auto" uses base_10_sizes.
|
||||||
|
base_10_bitrate = "Auto"
|
||||||
|
|
||||||
|
#* Show battery stats in top right if battery is present.
|
||||||
|
show_battery = True
|
||||||
|
|
||||||
|
#* Which battery to use if multiple are present. "Auto" for auto detection.
|
||||||
|
selected_battery = "Auto"
|
||||||
|
|
||||||
|
#* Show power stats of battery next to charge indicator.
|
||||||
|
show_battery_watts = True
|
||||||
|
|
||||||
|
#* Set loglevel for "~/.config/btop/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG".
|
||||||
|
#* The level set includes all lower levels, i.e. "DEBUG" will show all logging info.
|
||||||
|
log_level = "WARNING"
|
||||||
|
|
||||||
|
#* Measure PCIe throughput on NVIDIA cards, may impact performance on certain cards.
|
||||||
|
nvml_measure_pcie_speeds = True
|
||||||
|
|
||||||
|
#* Measure PCIe throughput on AMD cards, may impact performance on certain cards.
|
||||||
|
rsmi_measure_pcie_speeds = True
|
||||||
|
|
||||||
|
#* Horizontally mirror the GPU graph.
|
||||||
|
gpu_mirror_graph = True
|
||||||
|
|
||||||
|
#* Custom gpu0 model name, empty string to disable.
|
||||||
|
custom_gpu_name0 = ""
|
||||||
|
|
||||||
|
#* Custom gpu1 model name, empty string to disable.
|
||||||
|
custom_gpu_name1 = ""
|
||||||
|
|
||||||
|
#* Custom gpu2 model name, empty string to disable.
|
||||||
|
custom_gpu_name2 = ""
|
||||||
|
|
||||||
|
#* Custom gpu3 model name, empty string to disable.
|
||||||
|
custom_gpu_name3 = ""
|
||||||
|
|
||||||
|
#* Custom gpu4 model name, empty string to disable.
|
||||||
|
custom_gpu_name4 = ""
|
||||||
|
|
||||||
|
#* Custom gpu5 model name, empty string to disable.
|
||||||
|
custom_gpu_name5 = ""
|
||||||
19
config/direnv/direnvrc
Normal file
19
config/direnv/direnvrc
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
use_ruby() {
|
||||||
|
local ruby_root=$HOME/.ruby/$1
|
||||||
|
load_prefix "$ruby_root"
|
||||||
|
layout_ruby
|
||||||
|
}
|
||||||
|
|
||||||
|
check_env() {
|
||||||
|
local ret=0; for var in "$@"; do [[ -v $var ]] || { echo "$var is missing"; ret=1; }; done; return $ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
use_nvm() {
|
||||||
|
local node_version=$1
|
||||||
|
|
||||||
|
nvm_sh=~/.config/nvm/nvm.sh
|
||||||
|
if [[ -e $nvm_sh ]]; then
|
||||||
|
source $nvm_sh
|
||||||
|
nvm use $node_version
|
||||||
|
fi
|
||||||
|
}
|
||||||
476
config/dunst/dunstrc
Normal file
476
config/dunst/dunstrc
Normal file
@@ -0,0 +1,476 @@
|
|||||||
|
# vim: ft=cfg
|
||||||
|
[global]
|
||||||
|
### Display ###
|
||||||
|
|
||||||
|
# Which monitor should the notifications be displayed on.
|
||||||
|
monitor = 0
|
||||||
|
|
||||||
|
# Display notification on focused monitor. Possible modes are:
|
||||||
|
# mouse: follow mouse pointer
|
||||||
|
# keyboard: follow window with keyboard focus
|
||||||
|
# none: don't follow anything
|
||||||
|
#
|
||||||
|
# "keyboard" needs a window manager that exports the
|
||||||
|
# _NET_ACTIVE_WINDOW property.
|
||||||
|
# This should be the case for almost all modern window managers.
|
||||||
|
#
|
||||||
|
# If this option is set to mouse or keyboard, the monitor option
|
||||||
|
# will be ignored.
|
||||||
|
follow = mouse
|
||||||
|
|
||||||
|
# The geometry of the window:
|
||||||
|
# [{width}]x{height}[+/-{x}+/-{y}]
|
||||||
|
# The geometry of the message window.
|
||||||
|
# The height is measured in number of notifications everything else
|
||||||
|
# in pixels. If the width is omitted but the height is given
|
||||||
|
# ("-geometry x2"), the message window expands over the whole screen
|
||||||
|
# (dmenu-like). If width is 0, the window expands to the longest
|
||||||
|
# message displayed. A positive x is measured from the left, a
|
||||||
|
# negative from the right side of the screen. Y is measured from
|
||||||
|
# the top and down respectively.
|
||||||
|
# The width can be negative. In this case the actual width is the
|
||||||
|
# screen width minus the width defined in within the geometry option.
|
||||||
|
geometry = "300x5-30+20"
|
||||||
|
|
||||||
|
# Turn on the progess bar
|
||||||
|
progress_bar = true
|
||||||
|
|
||||||
|
# Set the progress bar height. This includes the frame, so make sure
|
||||||
|
# it's at least twice as big as the frame width.
|
||||||
|
progress_bar_height = 10
|
||||||
|
|
||||||
|
# Set the frame width of the progress bar
|
||||||
|
progress_bar_frame_width = 1
|
||||||
|
|
||||||
|
# Set the minimum width for the progress bar
|
||||||
|
progress_bar_min_width = 150
|
||||||
|
|
||||||
|
# Set the maximum width for the progress bar
|
||||||
|
progress_bar_max_width = 300
|
||||||
|
|
||||||
|
|
||||||
|
# Show how many messages are currently hidden (because of geometry).
|
||||||
|
indicate_hidden = yes
|
||||||
|
|
||||||
|
# Shrink window if it's smaller than the width. Will be ignored if
|
||||||
|
# width is 0.
|
||||||
|
shrink = no
|
||||||
|
|
||||||
|
# The transparency of the window. Range: [0; 100].
|
||||||
|
# This option will only work if a compositing window manager is
|
||||||
|
# present (e.g. xcompmgr, compiz, etc.).
|
||||||
|
transparency = 0
|
||||||
|
|
||||||
|
# The height of the entire notification. If the height is smaller
|
||||||
|
# than the font height and padding combined, it will be raised
|
||||||
|
# to the font height and padding.
|
||||||
|
notification_height = 0
|
||||||
|
|
||||||
|
# Draw a line of "separator_height" pixel height between two
|
||||||
|
# notifications.
|
||||||
|
# Set to 0 to disable.
|
||||||
|
separator_height = 2
|
||||||
|
|
||||||
|
# Padding between text and separator.
|
||||||
|
padding = 8
|
||||||
|
|
||||||
|
# Horizontal padding.
|
||||||
|
horizontal_padding = 8
|
||||||
|
|
||||||
|
# Padding between text and icon.
|
||||||
|
text_icon_padding = 0
|
||||||
|
|
||||||
|
# Defines width in pixels of frame around the notification window.
|
||||||
|
# Set to 0 to disable.
|
||||||
|
frame_width = 0
|
||||||
|
|
||||||
|
# Sort messages by urgency.
|
||||||
|
sort = yes
|
||||||
|
|
||||||
|
# Don't remove messages, if the user is idle (no mouse or keyboard input)
|
||||||
|
# for longer than idle_threshold seconds.
|
||||||
|
# Set to 0 to disable.
|
||||||
|
# A client can set the 'transient' hint to bypass this. See the rules
|
||||||
|
# section for how to disable this if necessary
|
||||||
|
idle_threshold = 120
|
||||||
|
|
||||||
|
### Text ###
|
||||||
|
|
||||||
|
font = Droid Sans Mono 10
|
||||||
|
|
||||||
|
# The spacing between lines. If the height is smaller than the
|
||||||
|
# font height, it will get raised to the font height.
|
||||||
|
line_height = 0
|
||||||
|
|
||||||
|
# Possible values are:
|
||||||
|
# full: Allow a small subset of html markup in notifications:
|
||||||
|
# <b>bold</b>
|
||||||
|
# <i>italic</i>
|
||||||
|
# <s>strikethrough</s>
|
||||||
|
# <u>underline</u>
|
||||||
|
#
|
||||||
|
# For a complete reference see
|
||||||
|
# <https://developer.gnome.org/pango/stable/pango-Markup.html>.
|
||||||
|
#
|
||||||
|
# strip: This setting is provided for compatibility with some broken
|
||||||
|
# clients that send markup even though it's not enabled on the
|
||||||
|
# server. Dunst will try to strip the markup but the parsing is
|
||||||
|
# simplistic so using this option outside of matching rules for
|
||||||
|
# specific applications *IS GREATLY DISCOURAGED*.
|
||||||
|
#
|
||||||
|
# no: Disable markup parsing, incoming notifications will be treated as
|
||||||
|
# plain text. Dunst will not advertise that it has the body-markup
|
||||||
|
# capability if this is set as a global setting.
|
||||||
|
#
|
||||||
|
# It's important to note that markup inside the format option will be parsed
|
||||||
|
# regardless of what this is set to.
|
||||||
|
markup = full
|
||||||
|
|
||||||
|
# The format of the message. Possible variables are:
|
||||||
|
# %a appname
|
||||||
|
# %s summary
|
||||||
|
# %b body
|
||||||
|
# %i iconname (including its path)
|
||||||
|
# %I iconname (without its path)
|
||||||
|
# %p progress value if set ([ 0%] to [100%]) or nothing
|
||||||
|
# %n progress value if set without any extra characters
|
||||||
|
# %% Literal %
|
||||||
|
# Markup is allowed
|
||||||
|
format = "<b>%s</b>\n%b"
|
||||||
|
|
||||||
|
# Alignment of message text.
|
||||||
|
# Possible values are "left", "center" and "right".
|
||||||
|
alignment = left
|
||||||
|
|
||||||
|
# Vertical alignment of message text and icon.
|
||||||
|
# Possible values are "top", "center" and "bottom".
|
||||||
|
vertical_alignment = center
|
||||||
|
|
||||||
|
# Show age of message if message is older than show_age_threshold
|
||||||
|
# seconds.
|
||||||
|
# Set to -1 to disable.
|
||||||
|
show_age_threshold = 60
|
||||||
|
|
||||||
|
# Split notifications into multiple lines if they don't fit into
|
||||||
|
# geometry.
|
||||||
|
word_wrap = yes
|
||||||
|
|
||||||
|
# When word_wrap is set to no, specify where to make an ellipsis in long lines.
|
||||||
|
# Possible values are "start", "middle" and "end".
|
||||||
|
ellipsize = middle
|
||||||
|
|
||||||
|
# Ignore newlines '\n' in notifications.
|
||||||
|
ignore_newline = no
|
||||||
|
|
||||||
|
# Stack together notifications with the same content
|
||||||
|
stack_duplicates = true
|
||||||
|
|
||||||
|
# Hide the count of stacked notifications with the same content
|
||||||
|
hide_duplicate_count = false
|
||||||
|
|
||||||
|
# Display indicators for URLs (U) and actions (A).
|
||||||
|
show_indicators = yes
|
||||||
|
|
||||||
|
### Icons ###
|
||||||
|
|
||||||
|
# Align icons left/right/off
|
||||||
|
icon_position = left
|
||||||
|
|
||||||
|
# Scale small icons up to this size, set to 0 to disable. Helpful
|
||||||
|
# for e.g. small files or high-dpi screens. In case of conflict,
|
||||||
|
# max_icon_size takes precedence over this.
|
||||||
|
min_icon_size = 0
|
||||||
|
|
||||||
|
# Scale larger icons down to this size, set to 0 to disable
|
||||||
|
max_icon_size = 32
|
||||||
|
|
||||||
|
# Paths to default icons.
|
||||||
|
icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
|
||||||
|
|
||||||
|
### History ###
|
||||||
|
|
||||||
|
# Should a notification popped up from history be sticky or timeout
|
||||||
|
# as if it would normally do.
|
||||||
|
sticky_history = yes
|
||||||
|
|
||||||
|
# Maximum amount of notifications kept in history
|
||||||
|
history_length = 50
|
||||||
|
|
||||||
|
### Misc/Advanced ###
|
||||||
|
|
||||||
|
# dmenu path.
|
||||||
|
dmenu = /usr/bin/dmenu -p dunst:
|
||||||
|
|
||||||
|
# Browser for opening urls in context menu.
|
||||||
|
browser = /usr/bin/firefox -new-tab
|
||||||
|
|
||||||
|
# Always run rule-defined scripts, even if the notification is suppressed
|
||||||
|
always_run_script = true
|
||||||
|
|
||||||
|
# Define the title of the windows spawned by dunst
|
||||||
|
title = Dunst
|
||||||
|
|
||||||
|
# Define the class of the windows spawned by dunst
|
||||||
|
class = Dunst
|
||||||
|
|
||||||
|
# Print a notification on startup.
|
||||||
|
# This is mainly for error detection, since dbus (re-)starts dunst
|
||||||
|
# automatically after a crash.
|
||||||
|
startup_notification = false
|
||||||
|
|
||||||
|
# Manage dunst's desire for talking
|
||||||
|
# Can be one of the following values:
|
||||||
|
# crit: Critical features. Dunst aborts
|
||||||
|
# warn: Only non-fatal warnings
|
||||||
|
# mesg: Important Messages
|
||||||
|
# info: all unimportant stuff
|
||||||
|
# debug: all less than unimportant stuff
|
||||||
|
verbosity = mesg
|
||||||
|
|
||||||
|
# Define the corner radius of the notification window
|
||||||
|
# in pixel size. If the radius is 0, you have no rounded
|
||||||
|
# corners.
|
||||||
|
# The radius will be automatically lowered if it exceeds half of the
|
||||||
|
# notification height to avoid clipping text and/or icons.
|
||||||
|
corner_radius = 0
|
||||||
|
|
||||||
|
# Ignore the dbus closeNotification message.
|
||||||
|
# Useful to enforce the timeout set by dunst configuration. Without this
|
||||||
|
# parameter, an application may close the notification sent before the
|
||||||
|
# user defined timeout.
|
||||||
|
ignore_dbusclose = false
|
||||||
|
|
||||||
|
### Wayland ###
|
||||||
|
# These settings are Wayland-specific. They have no effect when using X11
|
||||||
|
|
||||||
|
# Uncomment this if you want to let notications appear under fullscreen
|
||||||
|
# applications (default: overlay)
|
||||||
|
# layer = top
|
||||||
|
|
||||||
|
# Set this to true to use X11 output on Wayland.
|
||||||
|
force_xwayland = false
|
||||||
|
|
||||||
|
### Legacy
|
||||||
|
|
||||||
|
# Use the Xinerama extension instead of RandR for multi-monitor support.
|
||||||
|
# This setting is provided for compatibility with older nVidia drivers that
|
||||||
|
# do not support RandR and using it on systems that support RandR is highly
|
||||||
|
# discouraged.
|
||||||
|
#
|
||||||
|
# By enabling this setting dunst will not be able to detect when a monitor
|
||||||
|
# is connected or disconnected which might break follow mode if the screen
|
||||||
|
# layout changes.
|
||||||
|
force_xinerama = false
|
||||||
|
|
||||||
|
### mouse
|
||||||
|
|
||||||
|
# Defines list of actions for each mouse event
|
||||||
|
# Possible values are:
|
||||||
|
# * none: Don't do anything.
|
||||||
|
# * do_action: If the notification has exactly one action, or one is marked as default,
|
||||||
|
# invoke it. If there are multiple and no default, open the context menu.
|
||||||
|
# * close_current: Close current notification.
|
||||||
|
# * close_all: Close all notifications.
|
||||||
|
# These values can be strung together for each mouse event, and
|
||||||
|
# will be executed in sequence.
|
||||||
|
mouse_left_click = do_action, close_current
|
||||||
|
mouse_middle_click = close_current
|
||||||
|
mouse_right_click = close_all
|
||||||
|
|
||||||
|
# Experimental features that may or may not work correctly. Do not expect them
|
||||||
|
# to have a consistent behaviour across releases.
|
||||||
|
[experimental]
|
||||||
|
# Calculate the dpi to use on a per-monitor basis.
|
||||||
|
# If this setting is enabled the Xft.dpi value will be ignored and instead
|
||||||
|
# dunst will attempt to calculate an appropriate dpi value for each monitor
|
||||||
|
# using the resolution and physical size. This might be useful in setups
|
||||||
|
# where there are multiple screens with very different dpi values.
|
||||||
|
per_monitor_dpi = false
|
||||||
|
|
||||||
|
# The internal keyboard shortcut support in dunst is now considered deprecated
|
||||||
|
# and should be replaced by dunstctl calls. You can use the configuration of your
|
||||||
|
# WM or DE to bind these to shortcuts of your choice.
|
||||||
|
# Check the dunstctl manual page for more info.
|
||||||
|
[shortcuts]
|
||||||
|
|
||||||
|
# Shortcuts are specified as [modifier+][modifier+]...key
|
||||||
|
# Available modifiers are "ctrl", "mod1" (the alt-key), "mod2",
|
||||||
|
# "mod3" and "mod4" (windows-key).
|
||||||
|
# Xev might be helpful to find names for keys.
|
||||||
|
|
||||||
|
# Close notification. Equivalent dunstctl command:
|
||||||
|
# dunstctl close
|
||||||
|
# close = ctrl+space
|
||||||
|
|
||||||
|
# Close all notifications. Equivalent dunstctl command:
|
||||||
|
# dunstctl close-all
|
||||||
|
# close_all = ctrl+shift+space
|
||||||
|
|
||||||
|
# Redisplay last message(s). Equivalent dunstctl command:
|
||||||
|
# dunstctl history-pop
|
||||||
|
# history = ctrl+grave
|
||||||
|
|
||||||
|
# Context menu. Equivalent dunstctl command:
|
||||||
|
# dunstctl context
|
||||||
|
# context = ctrl+shift+period
|
||||||
|
|
||||||
|
# [urgency_low]
|
||||||
|
# # IMPORTANT: colors have to be defined in quotation marks.
|
||||||
|
# # Otherwise the "#" and following would be interpreted as a comment.
|
||||||
|
# background = "#222222"
|
||||||
|
# foreground = "#888888"
|
||||||
|
# timeout = 10
|
||||||
|
# # Icon for notifications with low urgency, uncomment to enable
|
||||||
|
# #icon = /path/to/icon
|
||||||
|
#
|
||||||
|
# [urgency_normal]
|
||||||
|
# background = "#285577"
|
||||||
|
# foreground = "#ffffff"
|
||||||
|
# timeout = 10
|
||||||
|
# # Icon for notifications with normal urgency, uncomment to enable
|
||||||
|
# #icon = /path/to/icon
|
||||||
|
#
|
||||||
|
# [urgency_critical]
|
||||||
|
# background = "#900000"
|
||||||
|
# foreground = "#ffffff"
|
||||||
|
# frame_color = "#ff0000"
|
||||||
|
# timeout = 0
|
||||||
|
# # Icon for notifications with critical urgency, uncomment to enable
|
||||||
|
# #icon = /path/to/icon
|
||||||
|
|
||||||
|
# Every section that isn't one of the above is interpreted as a rules to
|
||||||
|
# override settings for certain messages.
|
||||||
|
#
|
||||||
|
# Messages can be matched by
|
||||||
|
# appname (discouraged, see desktop_entry)
|
||||||
|
# body
|
||||||
|
# category
|
||||||
|
# desktop_entry
|
||||||
|
# icon
|
||||||
|
# match_transient
|
||||||
|
# msg_urgency
|
||||||
|
# stack_tag
|
||||||
|
# summary
|
||||||
|
#
|
||||||
|
# and you can override the
|
||||||
|
# background
|
||||||
|
# foreground
|
||||||
|
# format
|
||||||
|
# frame_color
|
||||||
|
# fullscreen
|
||||||
|
# new_icon
|
||||||
|
# set_stack_tag
|
||||||
|
# set_transient
|
||||||
|
# timeout
|
||||||
|
# urgency
|
||||||
|
#
|
||||||
|
# Shell-like globbing will get expanded.
|
||||||
|
#
|
||||||
|
# Instead of the appname filter, it's recommended to use the desktop_entry filter.
|
||||||
|
# GLib based applications export their desktop-entry name. In comparison to the appname,
|
||||||
|
# the desktop-entry won't get localized.
|
||||||
|
#
|
||||||
|
# SCRIPTING
|
||||||
|
# You can specify a script that gets run when the rule matches by
|
||||||
|
# setting the "script" option.
|
||||||
|
# The script will be called as follows:
|
||||||
|
# script appname summary body icon urgency
|
||||||
|
# where urgency can be "LOW", "NORMAL" or "CRITICAL".
|
||||||
|
#
|
||||||
|
# NOTE: if you don't want a notification to be displayed, set the format
|
||||||
|
# to "".
|
||||||
|
# NOTE: It might be helpful to run dunst -print in a terminal in order
|
||||||
|
# to find fitting options for rules.
|
||||||
|
|
||||||
|
# Disable the transient hint so that idle_threshold cannot be bypassed from the
|
||||||
|
# client
|
||||||
|
#[transient_disable]
|
||||||
|
# match_transient = yes
|
||||||
|
# set_transient = no
|
||||||
|
#
|
||||||
|
# Make the handling of transient notifications more strict by making them not
|
||||||
|
# be placed in history.
|
||||||
|
#[transient_history_ignore]
|
||||||
|
# match_transient = yes
|
||||||
|
# history_ignore = yes
|
||||||
|
|
||||||
|
# fullscreen values
|
||||||
|
# show: show the notifications, regardless if there is a fullscreen window opened
|
||||||
|
# delay: displays the new notification, if there is no fullscreen window active
|
||||||
|
# If the notification is already drawn, it won't get undrawn.
|
||||||
|
# pushback: same as delay, but when switching into fullscreen, the notification will get
|
||||||
|
# withdrawn from screen again and will get delayed like a new notification
|
||||||
|
#[fullscreen_delay_everything]
|
||||||
|
# fullscreen = delay
|
||||||
|
#[fullscreen_show_critical]
|
||||||
|
# msg_urgency = critical
|
||||||
|
# fullscreen = show
|
||||||
|
|
||||||
|
#[espeak]
|
||||||
|
# summary = "*"
|
||||||
|
# script = dunst_espeak.sh
|
||||||
|
|
||||||
|
#[script-test]
|
||||||
|
# summary = "*script*"
|
||||||
|
# script = dunst_test.sh
|
||||||
|
|
||||||
|
#[ignore]
|
||||||
|
# # This notification will not be displayed
|
||||||
|
# summary = "foobar"
|
||||||
|
# format = ""
|
||||||
|
|
||||||
|
#[history-ignore]
|
||||||
|
# # This notification will not be saved in history
|
||||||
|
# summary = "foobar"
|
||||||
|
# history_ignore = yes
|
||||||
|
|
||||||
|
#[skip-display]
|
||||||
|
# # This notification will not be displayed, but will be included in the history
|
||||||
|
# summary = "foobar"
|
||||||
|
# skip_display = yes
|
||||||
|
|
||||||
|
#[signed_on]
|
||||||
|
# appname = Pidgin
|
||||||
|
# summary = "*signed on*"
|
||||||
|
# urgency = low
|
||||||
|
#
|
||||||
|
#[signed_off]
|
||||||
|
# appname = Pidgin
|
||||||
|
# summary = *signed off*
|
||||||
|
# urgency = low
|
||||||
|
#
|
||||||
|
#[says]
|
||||||
|
# appname = Pidgin
|
||||||
|
# summary = *says*
|
||||||
|
# urgency = critical
|
||||||
|
#
|
||||||
|
#[twitter]
|
||||||
|
# appname = Pidgin
|
||||||
|
# summary = *twitter.com*
|
||||||
|
# urgency = normal
|
||||||
|
#
|
||||||
|
#[stack-volumes]
|
||||||
|
# appname = "some_volume_notifiers"
|
||||||
|
# set_stack_tag = "volume"
|
||||||
|
#
|
||||||
|
|
||||||
|
# Source: https://github.com/khamer/base16-dunst/blob/master/themes/base16-gruvbox-dark-hard.dunstrc
|
||||||
|
separator_color = "#d5c4a1"
|
||||||
|
|
||||||
|
[base16_low]
|
||||||
|
msg_urgency = low
|
||||||
|
background = "#3c3836"
|
||||||
|
foreground = "#665c54"
|
||||||
|
timeout = 10
|
||||||
|
|
||||||
|
[base16_normal]
|
||||||
|
msg_urgency = normal
|
||||||
|
background = "#504945"
|
||||||
|
foreground = "#d5c4a1"
|
||||||
|
timeout = 10
|
||||||
|
|
||||||
|
[base16_critical]
|
||||||
|
msg_urgency = critical
|
||||||
|
background = "#fb4934"
|
||||||
|
foreground = "#1d2021"
|
||||||
|
timeout = 0
|
||||||
33
config/fd/ignore
Normal file
33
config/fd/ignore
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
*.swp
|
||||||
|
.git/
|
||||||
|
.hg/
|
||||||
|
.bundle/
|
||||||
|
.vim/
|
||||||
|
npm-debug.log
|
||||||
|
vendor/bundle/
|
||||||
|
vendor/cache/
|
||||||
|
.sass-cache/
|
||||||
|
node_modules/
|
||||||
|
yarn-error.log
|
||||||
|
.env.local
|
||||||
|
*.gem
|
||||||
|
.pgsync.yml
|
||||||
|
stats.json
|
||||||
|
tags
|
||||||
|
.ctags.d/
|
||||||
|
|
||||||
|
.direnv/
|
||||||
|
*.pid
|
||||||
|
*.sock
|
||||||
|
|
||||||
|
report*.json
|
||||||
|
.clinic/
|
||||||
|
|
||||||
|
.elixir_ls/
|
||||||
|
_build/
|
||||||
|
deps/
|
||||||
|
|
||||||
|
priv/static
|
||||||
|
.ccls-cache/
|
||||||
|
.pio/
|
||||||
|
.cache/
|
||||||
24
config/firejail/neomutt.profile
Normal file
24
config/firejail/neomutt.profile
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
ignore private-etc
|
||||||
|
|
||||||
|
noblacklist ${HOME}/bin/preview-html
|
||||||
|
noblacklist ${HOME}/.mbsyncrc
|
||||||
|
noblacklist ${HOME}/.password-store
|
||||||
|
noblacklist ${HOME}/.msmtprc
|
||||||
|
noblacklist ${HOME}/.config/msmtp
|
||||||
|
noblacklist ${HOME}/.config/nvim
|
||||||
|
noblacklist /usr/share/nvim
|
||||||
|
noblacklist ${HOME}/.local/share/nvim/
|
||||||
|
|
||||||
|
include /etc/firejail/neomutt.profile
|
||||||
|
|
||||||
|
include whitelist-dotfiles.inc
|
||||||
|
include whitelist-dotfiles-private.inc
|
||||||
|
|
||||||
|
whitelist ${HOME}/bin/preview-html
|
||||||
|
whitelist ${HOME}/.mbsyncrc
|
||||||
|
whitelist ${HOME}/.password-store
|
||||||
|
whitelist ${HOME}/.msmtprc
|
||||||
|
whitelist ${HOME}/.config/msmtp
|
||||||
|
whitelist ${HOME}/.config/nvim
|
||||||
|
whitelist /usr/share/nvim
|
||||||
|
whitelist ${HOME}/.local/share/nvim/
|
||||||
1
config/firejail/whitelist-dotfiles-private.inc
Normal file
1
config/firejail/whitelist-dotfiles-private.inc
Normal file
@@ -0,0 +1 @@
|
|||||||
|
whitelist ${HOME}/.dotfiles-private
|
||||||
1
config/firejail/whitelist-dotfiles.inc
Normal file
1
config/firejail/whitelist-dotfiles.inc
Normal file
@@ -0,0 +1 @@
|
|||||||
|
whitelist ${HOME}/.dotfiles
|
||||||
1
config/fish/completions/fisher.fish
Normal file
1
config/fish/completions/fisher.fish
Normal file
@@ -0,0 +1 @@
|
|||||||
|
fisher complete
|
||||||
235
config/fish/completions/git-lfs.fish
Normal file
235
config/fish/completions/git-lfs.fish
Normal file
@@ -0,0 +1,235 @@
|
|||||||
|
# fish completion for git-lfs -*- shell-script -*-
|
||||||
|
|
||||||
|
function __git_lfs_debug
|
||||||
|
set -l file "$BASH_COMP_DEBUG_FILE"
|
||||||
|
if test -n "$file"
|
||||||
|
echo "$argv" >> $file
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function __git_lfs_perform_completion
|
||||||
|
__git_lfs_debug "Starting __git_lfs_perform_completion"
|
||||||
|
|
||||||
|
# Extract all args except the last one
|
||||||
|
set -l args (commandline -opc)
|
||||||
|
# Extract the last arg and escape it in case it is a space
|
||||||
|
set -l lastArg (string escape -- (commandline -ct))
|
||||||
|
|
||||||
|
__git_lfs_debug "args: $args"
|
||||||
|
__git_lfs_debug "last arg: $lastArg"
|
||||||
|
|
||||||
|
# Disable ActiveHelp which is not supported for fish shell
|
||||||
|
set -l requestComp "GIT_LFS_ACTIVE_HELP=0 $args[1] __completeNoDesc $args[2..-1] $lastArg"
|
||||||
|
|
||||||
|
__git_lfs_debug "Calling $requestComp"
|
||||||
|
set -l results (eval $requestComp 2> /dev/null)
|
||||||
|
|
||||||
|
# Some programs may output extra empty lines after the directive.
|
||||||
|
# Let's ignore them or else it will break completion.
|
||||||
|
# Ref: https://github.com/spf13/cobra/issues/1279
|
||||||
|
for line in $results[-1..1]
|
||||||
|
if test (string trim -- $line) = ""
|
||||||
|
# Found an empty line, remove it
|
||||||
|
set results $results[1..-2]
|
||||||
|
else
|
||||||
|
# Found non-empty line, we have our proper output
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
set -l comps $results[1..-2]
|
||||||
|
set -l directiveLine $results[-1]
|
||||||
|
|
||||||
|
# For Fish, when completing a flag with an = (e.g., <program> -n=<TAB>)
|
||||||
|
# completions must be prefixed with the flag
|
||||||
|
set -l flagPrefix (string match -r -- '-.*=' "$lastArg")
|
||||||
|
|
||||||
|
__git_lfs_debug "Comps: $comps"
|
||||||
|
__git_lfs_debug "DirectiveLine: $directiveLine"
|
||||||
|
__git_lfs_debug "flagPrefix: $flagPrefix"
|
||||||
|
|
||||||
|
for comp in $comps
|
||||||
|
printf "%s%s\n" "$flagPrefix" "$comp"
|
||||||
|
end
|
||||||
|
|
||||||
|
printf "%s\n" "$directiveLine"
|
||||||
|
end
|
||||||
|
|
||||||
|
# this function limits calls to __git_lfs_perform_completion, by caching the result behind $__git_lfs_perform_completion_once_result
|
||||||
|
function __git_lfs_perform_completion_once
|
||||||
|
__git_lfs_debug "Starting __git_lfs_perform_completion_once"
|
||||||
|
|
||||||
|
if test -n "$__git_lfs_perform_completion_once_result"
|
||||||
|
__git_lfs_debug "Seems like a valid result already exists, skipping __git_lfs_perform_completion"
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
|
||||||
|
set --global __git_lfs_perform_completion_once_result (__git_lfs_perform_completion)
|
||||||
|
if test -z "$__git_lfs_perform_completion_once_result"
|
||||||
|
__git_lfs_debug "No completions, probably due to a failure"
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
|
||||||
|
__git_lfs_debug "Performed completions and set __git_lfs_perform_completion_once_result"
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
|
||||||
|
# this function is used to clear the $__git_lfs_perform_completion_once_result variable after completions are run
|
||||||
|
function __git_lfs_clear_perform_completion_once_result
|
||||||
|
__git_lfs_debug ""
|
||||||
|
__git_lfs_debug "========= clearing previously set __git_lfs_perform_completion_once_result variable =========="
|
||||||
|
set --erase __git_lfs_perform_completion_once_result
|
||||||
|
__git_lfs_debug "Succesfully erased the variable __git_lfs_perform_completion_once_result"
|
||||||
|
end
|
||||||
|
|
||||||
|
function __git_lfs_requires_order_preservation
|
||||||
|
__git_lfs_debug ""
|
||||||
|
__git_lfs_debug "========= checking if order preservation is required =========="
|
||||||
|
|
||||||
|
__git_lfs_perform_completion_once
|
||||||
|
if test -z "$__git_lfs_perform_completion_once_result"
|
||||||
|
__git_lfs_debug "Error determining if order preservation is required"
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
|
||||||
|
set -l directive (string sub --start 2 $__git_lfs_perform_completion_once_result[-1])
|
||||||
|
__git_lfs_debug "Directive is: $directive"
|
||||||
|
|
||||||
|
set -l shellCompDirectiveKeepOrder 32
|
||||||
|
set -l keeporder (math (math --scale 0 $directive / $shellCompDirectiveKeepOrder) % 2)
|
||||||
|
__git_lfs_debug "Keeporder is: $keeporder"
|
||||||
|
|
||||||
|
if test $keeporder -ne 0
|
||||||
|
__git_lfs_debug "This does require order preservation"
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
|
||||||
|
__git_lfs_debug "This doesn't require order preservation"
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
# This function does two things:
|
||||||
|
# - Obtain the completions and store them in the global __git_lfs_comp_results
|
||||||
|
# - Return false if file completion should be performed
|
||||||
|
function __git_lfs_prepare_completions
|
||||||
|
__git_lfs_debug ""
|
||||||
|
__git_lfs_debug "========= starting completion logic =========="
|
||||||
|
|
||||||
|
# Start fresh
|
||||||
|
set --erase __git_lfs_comp_results
|
||||||
|
|
||||||
|
__git_lfs_perform_completion_once
|
||||||
|
__git_lfs_debug "Completion results: $__git_lfs_perform_completion_once_result"
|
||||||
|
|
||||||
|
if test -z "$__git_lfs_perform_completion_once_result"
|
||||||
|
__git_lfs_debug "No completion, probably due to a failure"
|
||||||
|
# Might as well do file completion, in case it helps
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
|
||||||
|
set -l directive (string sub --start 2 $__git_lfs_perform_completion_once_result[-1])
|
||||||
|
set --global __git_lfs_comp_results $__git_lfs_perform_completion_once_result[1..-2]
|
||||||
|
|
||||||
|
__git_lfs_debug "Completions are: $__git_lfs_comp_results"
|
||||||
|
__git_lfs_debug "Directive is: $directive"
|
||||||
|
|
||||||
|
set -l shellCompDirectiveError 1
|
||||||
|
set -l shellCompDirectiveNoSpace 2
|
||||||
|
set -l shellCompDirectiveNoFileComp 4
|
||||||
|
set -l shellCompDirectiveFilterFileExt 8
|
||||||
|
set -l shellCompDirectiveFilterDirs 16
|
||||||
|
|
||||||
|
if test -z "$directive"
|
||||||
|
set directive 0
|
||||||
|
end
|
||||||
|
|
||||||
|
set -l compErr (math (math --scale 0 $directive / $shellCompDirectiveError) % 2)
|
||||||
|
if test $compErr -eq 1
|
||||||
|
__git_lfs_debug "Received error directive: aborting."
|
||||||
|
# Might as well do file completion, in case it helps
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
|
||||||
|
set -l filefilter (math (math --scale 0 $directive / $shellCompDirectiveFilterFileExt) % 2)
|
||||||
|
set -l dirfilter (math (math --scale 0 $directive / $shellCompDirectiveFilterDirs) % 2)
|
||||||
|
if test $filefilter -eq 1; or test $dirfilter -eq 1
|
||||||
|
__git_lfs_debug "File extension filtering or directory filtering not supported"
|
||||||
|
# Do full file completion instead
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
|
||||||
|
set -l nospace (math (math --scale 0 $directive / $shellCompDirectiveNoSpace) % 2)
|
||||||
|
set -l nofiles (math (math --scale 0 $directive / $shellCompDirectiveNoFileComp) % 2)
|
||||||
|
|
||||||
|
__git_lfs_debug "nospace: $nospace, nofiles: $nofiles"
|
||||||
|
|
||||||
|
# If we want to prevent a space, or if file completion is NOT disabled,
|
||||||
|
# we need to count the number of valid completions.
|
||||||
|
# To do so, we will filter on prefix as the completions we have received
|
||||||
|
# may not already be filtered so as to allow fish to match on different
|
||||||
|
# criteria than the prefix.
|
||||||
|
if test $nospace -ne 0; or test $nofiles -eq 0
|
||||||
|
set -l prefix (commandline -t | string escape --style=regex)
|
||||||
|
__git_lfs_debug "prefix: $prefix"
|
||||||
|
|
||||||
|
set -l completions (string match -r -- "^$prefix.*" $__git_lfs_comp_results)
|
||||||
|
set --global __git_lfs_comp_results $completions
|
||||||
|
__git_lfs_debug "Filtered completions are: $__git_lfs_comp_results"
|
||||||
|
|
||||||
|
# Important not to quote the variable for count to work
|
||||||
|
set -l numComps (count $__git_lfs_comp_results)
|
||||||
|
__git_lfs_debug "numComps: $numComps"
|
||||||
|
|
||||||
|
if test $numComps -eq 1; and test $nospace -ne 0
|
||||||
|
# We must first split on \t to get rid of the descriptions to be
|
||||||
|
# able to check what the actual completion will be.
|
||||||
|
# We don't need descriptions anyway since there is only a single
|
||||||
|
# real completion which the shell will expand immediately.
|
||||||
|
set -l split (string split --max 1 \t $__git_lfs_comp_results[1])
|
||||||
|
|
||||||
|
# Fish won't add a space if the completion ends with any
|
||||||
|
# of the following characters: @=/:.,
|
||||||
|
set -l lastChar (string sub -s -1 -- $split)
|
||||||
|
if not string match -r -q "[@=/:.,]" -- "$lastChar"
|
||||||
|
# In other cases, to support the "nospace" directive we trick the shell
|
||||||
|
# by outputting an extra, longer completion.
|
||||||
|
__git_lfs_debug "Adding second completion to perform nospace directive"
|
||||||
|
set --global __git_lfs_comp_results $split[1] $split[1].
|
||||||
|
__git_lfs_debug "Completions are now: $__git_lfs_comp_results"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if test $numComps -eq 0; and test $nofiles -eq 0
|
||||||
|
# To be consistent with bash and zsh, we only trigger file
|
||||||
|
# completion when there are no other completions
|
||||||
|
__git_lfs_debug "Requesting file completion"
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
|
||||||
|
# Since Fish completions are only loaded once the user triggers them, we trigger them ourselves
|
||||||
|
# so we can properly delete any completions provided by another script.
|
||||||
|
# Only do this if the program can be found, or else fish may print some errors; besides,
|
||||||
|
# the existing completions will only be loaded if the program can be found.
|
||||||
|
if type -q "git-lfs"
|
||||||
|
# The space after the program name is essential to trigger completion for the program
|
||||||
|
# and not completion of the program name itself.
|
||||||
|
# Also, we use '> /dev/null 2>&1' since '&>' is not supported in older versions of fish.
|
||||||
|
complete --do-complete "git-lfs " > /dev/null 2>&1
|
||||||
|
end
|
||||||
|
|
||||||
|
# Remove any pre-existing completions for the program since we will be handling all of them.
|
||||||
|
complete -c git-lfs -e
|
||||||
|
|
||||||
|
# this will get called after the two calls below and clear the $__git_lfs_perform_completion_once_result global
|
||||||
|
complete -c git-lfs -n '__git_lfs_clear_perform_completion_once_result'
|
||||||
|
# The call to __git_lfs_prepare_completions will setup __git_lfs_comp_results
|
||||||
|
# which provides the program's completion choices.
|
||||||
|
# If this doesn't require order preservation, we don't use the -k flag
|
||||||
|
complete -c git-lfs -n 'not __git_lfs_requires_order_preservation && __git_lfs_prepare_completions' -f -a '$__git_lfs_comp_results'
|
||||||
|
# otherwise we use the -k flag
|
||||||
|
complete -k -c git-lfs -n '__git_lfs_requires_order_preservation && __git_lfs_prepare_completions' -f -a '$__git_lfs_comp_results'
|
||||||
6
config/fish/completions/kitty.fish
Normal file
6
config/fish/completions/kitty.fish
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
function __kitty_completions
|
||||||
|
# Send all words up to the one before the cursor
|
||||||
|
commandline -cop | kitty +complete fish
|
||||||
|
end
|
||||||
|
|
||||||
|
complete -f -c kitty -a "(__kitty_completions)"
|
||||||
1
config/fish/completions/pio.fish
Normal file
1
config/fish/completions/pio.fish
Normal file
@@ -0,0 +1 @@
|
|||||||
|
eval (env _PIO_COMPLETE=fish_source pio)
|
||||||
199
config/fish/completions/rustup.fish
Normal file
199
config/fish/completions/rustup.fish
Normal file
@@ -0,0 +1,199 @@
|
|||||||
|
complete -c rustup -n "__fish_use_subcommand" -s v -l verbose -d 'Enable verbose output'
|
||||||
|
complete -c rustup -n "__fish_use_subcommand" -s q -l quiet -d 'Disable progress output'
|
||||||
|
complete -c rustup -n "__fish_use_subcommand" -s h -l help -d 'Prints help information'
|
||||||
|
complete -c rustup -n "__fish_use_subcommand" -s V -l version -d 'Prints version information'
|
||||||
|
complete -c rustup -n "__fish_use_subcommand" -f -a "dump-testament" -d 'Dump information about the build'
|
||||||
|
complete -c rustup -n "__fish_use_subcommand" -f -a "show" -d 'Show the active and installed toolchains or profiles'
|
||||||
|
complete -c rustup -n "__fish_use_subcommand" -f -a "install" -d 'Update Rust toolchains'
|
||||||
|
complete -c rustup -n "__fish_use_subcommand" -f -a "uninstall" -d 'Uninstall Rust toolchains'
|
||||||
|
complete -c rustup -n "__fish_use_subcommand" -f -a "update" -d 'Update Rust toolchains and rustup'
|
||||||
|
complete -c rustup -n "__fish_use_subcommand" -f -a "check" -d 'Check for updates to Rust toolchains and rustup'
|
||||||
|
complete -c rustup -n "__fish_use_subcommand" -f -a "default" -d 'Set the default toolchain'
|
||||||
|
complete -c rustup -n "__fish_use_subcommand" -f -a "toolchain" -d 'Modify or query the installed toolchains'
|
||||||
|
complete -c rustup -n "__fish_use_subcommand" -f -a "target" -d 'Modify a toolchain\'s supported targets'
|
||||||
|
complete -c rustup -n "__fish_use_subcommand" -f -a "component" -d 'Modify a toolchain\'s installed components'
|
||||||
|
complete -c rustup -n "__fish_use_subcommand" -f -a "override" -d 'Modify directory toolchain overrides'
|
||||||
|
complete -c rustup -n "__fish_use_subcommand" -f -a "run" -d 'Run a command with an environment configured for a given toolchain'
|
||||||
|
complete -c rustup -n "__fish_use_subcommand" -f -a "which" -d 'Display which binary will be run for a given command'
|
||||||
|
complete -c rustup -n "__fish_use_subcommand" -f -a "doc" -d 'Open the documentation for the current toolchain'
|
||||||
|
complete -c rustup -n "__fish_use_subcommand" -f -a "man" -d 'View the man page for a given command'
|
||||||
|
complete -c rustup -n "__fish_use_subcommand" -f -a "self" -d 'Modify the rustup installation'
|
||||||
|
complete -c rustup -n "__fish_use_subcommand" -f -a "set" -d 'Alter rustup settings'
|
||||||
|
complete -c rustup -n "__fish_use_subcommand" -f -a "completions" -d 'Generate tab-completion scripts for your shell'
|
||||||
|
complete -c rustup -n "__fish_use_subcommand" -f -a "help" -d 'Prints this message or the help of the given subcommand(s)'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from dump-testament" -s h -l help -d 'Prints help information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from dump-testament" -s V -l version -d 'Prints version information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from show" -s h -l help -d 'Prints help information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from show" -s V -l version -d 'Prints version information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from show" -f -a "active-toolchain" -d 'Show the active toolchain'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from show" -f -a "home" -d 'Display the computed value of RUSTUP_HOME'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from show" -f -a "profile" -d 'Show the current profile'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from show" -f -a "keys" -d 'Display the known PGP keys'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from show" -f -a "help" -d 'Prints this message or the help of the given subcommand(s)'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from active-toolchain" -s v -l verbose -d 'Enable verbose output with rustc information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from active-toolchain" -s h -l help -d 'Prints help information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from active-toolchain" -s V -l version -d 'Prints version information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from home" -s h -l help -d 'Prints help information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from home" -s V -l version -d 'Prints version information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from profile" -s h -l help -d 'Prints help information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from profile" -s V -l version -d 'Prints version information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from keys" -s h -l help -d 'Prints help information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from keys" -s V -l version -d 'Prints version information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from help" -s h -l help -d 'Prints help information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from help" -s V -l version -d 'Prints version information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from install" -l profile -r -f -a "minimal default complete"
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from install" -l no-self-update -d 'Don\'t perform self-update when running the `rustup install` command'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from install" -l force -d 'Force an update, even if some components are missing'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from install" -s h -l help -d 'Prints help information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from install" -s V -l version -d 'Prints version information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from uninstall" -s h -l help -d 'Prints help information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from uninstall" -s V -l version -d 'Prints version information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from update" -l no-self-update -d 'Don\'t perform self update when running the `rustup update` command'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from update" -l force -d 'Force an update, even if some components are missing'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from update" -l force-non-host -d 'Install toolchains that require an emulator. See https://github.com/rust-lang/rustup/wiki/Non-host-toolchains'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from update" -s h -l help -d 'Prints help information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from update" -s V -l version -d 'Prints version information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from check" -s h -l help -d 'Prints help information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from check" -s V -l version -d 'Prints version information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from default" -s h -l help -d 'Prints help information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from default" -s V -l version -d 'Prints version information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from toolchain" -s h -l help -d 'Prints help information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from toolchain" -s V -l version -d 'Prints version information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from toolchain" -f -a "list" -d 'List installed toolchains'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from toolchain" -f -a "install" -d 'Install or update a given toolchain'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from toolchain" -f -a "uninstall" -d 'Uninstall a toolchain'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from toolchain" -f -a "link" -d 'Create a custom toolchain by symlinking to a directory'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from toolchain" -f -a "help" -d 'Prints this message or the help of the given subcommand(s)'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from list" -s v -l verbose -d 'Enable verbose output with toolchain information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from list" -s h -l help -d 'Prints help information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from list" -s V -l version -d 'Prints version information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from install" -l profile -r -f -a "minimal default complete"
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from install" -s c -l component -d 'Add specific components on installation'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from install" -s t -l target -d 'Add specific targets on installation'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from install" -l no-self-update -d 'Don\'t perform self update when running the`rustup toolchain install` command'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from install" -l force -d 'Force an update, even if some components are missing'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from install" -l allow-downgrade -d 'Allow rustup to downgrade the toolchain to satisfy your component choice'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from install" -s h -l help -d 'Prints help information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from install" -s V -l version -d 'Prints version information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from uninstall" -s h -l help -d 'Prints help information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from uninstall" -s V -l version -d 'Prints version information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from link" -s h -l help -d 'Prints help information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from link" -s V -l version -d 'Prints version information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from help" -s h -l help -d 'Prints help information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from help" -s V -l version -d 'Prints version information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from target" -s h -l help -d 'Prints help information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from target" -s V -l version -d 'Prints version information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from target" -f -a "list" -d 'List installed and available targets'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from target" -f -a "add" -d 'Add a target to a Rust toolchain'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from target" -f -a "remove" -d 'Remove a target from a Rust toolchain'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from target" -f -a "help" -d 'Prints this message or the help of the given subcommand(s)'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from list" -l toolchain -d 'Toolchain name, such as \'stable\', \'nightly\', or \'1.8.0\'. For more information see `rustup help toolchain`'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from list" -l installed -d 'List only installed targets'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from list" -s h -l help -d 'Prints help information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from list" -s V -l version -d 'Prints version information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from add" -l toolchain -d 'Toolchain name, such as \'stable\', \'nightly\', or \'1.8.0\'. For more information see `rustup help toolchain`'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from add" -s h -l help -d 'Prints help information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from add" -s V -l version -d 'Prints version information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from remove" -l toolchain -d 'Toolchain name, such as \'stable\', \'nightly\', or \'1.8.0\'. For more information see `rustup help toolchain`'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from remove" -s h -l help -d 'Prints help information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from remove" -s V -l version -d 'Prints version information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from help" -s h -l help -d 'Prints help information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from help" -s V -l version -d 'Prints version information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from component" -s h -l help -d 'Prints help information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from component" -s V -l version -d 'Prints version information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from component" -f -a "list" -d 'List installed and available components'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from component" -f -a "add" -d 'Add a component to a Rust toolchain'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from component" -f -a "remove" -d 'Remove a component from a Rust toolchain'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from component" -f -a "help" -d 'Prints this message or the help of the given subcommand(s)'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from list" -l toolchain -d 'Toolchain name, such as \'stable\', \'nightly\', or \'1.8.0\'. For more information see `rustup help toolchain`'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from list" -l installed -d 'List only installed components'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from list" -s h -l help -d 'Prints help information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from list" -s V -l version -d 'Prints version information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from add" -l toolchain -d 'Toolchain name, such as \'stable\', \'nightly\', or \'1.8.0\'. For more information see `rustup help toolchain`'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from add" -l target
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from add" -s h -l help -d 'Prints help information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from add" -s V -l version -d 'Prints version information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from remove" -l toolchain -d 'Toolchain name, such as \'stable\', \'nightly\', or \'1.8.0\'. For more information see `rustup help toolchain`'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from remove" -l target
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from remove" -s h -l help -d 'Prints help information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from remove" -s V -l version -d 'Prints version information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from help" -s h -l help -d 'Prints help information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from help" -s V -l version -d 'Prints version information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from override" -s h -l help -d 'Prints help information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from override" -s V -l version -d 'Prints version information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from override" -f -a "list" -d 'List directory toolchain overrides'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from override" -f -a "set" -d 'Set the override toolchain for a directory'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from override" -f -a "unset" -d 'Remove the override toolchain for a directory'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from override" -f -a "help" -d 'Prints this message or the help of the given subcommand(s)'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from list" -s h -l help -d 'Prints help information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from list" -s V -l version -d 'Prints version information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from set" -l path -d 'Path to the directory'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from set" -s h -l help -d 'Prints help information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from set" -s V -l version -d 'Prints version information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from unset" -l path -d 'Path to the directory'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from unset" -l nonexistent -d 'Remove override toolchain for all nonexistent directories'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from unset" -s h -l help -d 'Prints help information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from unset" -s V -l version -d 'Prints version information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from help" -s h -l help -d 'Prints help information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from help" -s V -l version -d 'Prints version information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from run" -l install -d 'Install the requested toolchain if needed'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from run" -s h -l help -d 'Prints help information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from run" -s V -l version -d 'Prints version information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from which" -l toolchain -d 'Toolchain name, such as \'stable\', \'nightly\', or \'1.8.0\'. For more information see `rustup help toolchain`'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from which" -s h -l help -d 'Prints help information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from which" -s V -l version -d 'Prints version information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from doc" -l toolchain -d 'Toolchain name, such as \'stable\', \'nightly\', or \'1.8.0\'. For more information see `rustup help toolchain`'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from doc" -l path -d 'Only print the path to the documentation'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from doc" -l alloc -d 'The Rust core allocation and collections library'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from doc" -l book -d 'The Rust Programming Language book'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from doc" -l cargo -d 'The Cargo Book'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from doc" -l core -d 'The Rust Core Library'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from doc" -l edition-guide -d 'The Rust Edition Guide'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from doc" -l nomicon -d 'The Dark Arts of Advanced and Unsafe Rust Programming'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from doc" -l proc_macro -d 'A support library for macro authors when defining new macros'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from doc" -l reference -d 'The Rust Reference'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from doc" -l rust-by-example -d 'A collection of runnable examples that illustrate various Rust concepts and standard libraries'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from doc" -l rustc -d 'The compiler for the Rust programming language'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from doc" -l rustdoc -d 'Generate documentation for Rust projects'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from doc" -l std -d 'Standard library API documentation'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from doc" -l test -d 'Support code for rustc\'s built in unit-test and micro-benchmarking framework'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from doc" -l unstable-book -d 'The Unstable Book'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from doc" -l embedded-book -d 'The Embedded Rust Book'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from doc" -s h -l help -d 'Prints help information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from doc" -s V -l version -d 'Prints version information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from man" -l toolchain -d 'Toolchain name, such as \'stable\', \'nightly\', or \'1.8.0\'. For more information see `rustup help toolchain`'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from man" -s h -l help -d 'Prints help information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from man" -s V -l version -d 'Prints version information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from self" -s h -l help -d 'Prints help information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from self" -s V -l version -d 'Prints version information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from self" -f -a "update" -d 'Download and install updates to rustup'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from self" -f -a "uninstall" -d 'Uninstall rustup.'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from self" -f -a "upgrade-data" -d 'Upgrade the internal data format.'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from self" -f -a "help" -d 'Prints this message or the help of the given subcommand(s)'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from update" -s h -l help -d 'Prints help information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from update" -s V -l version -d 'Prints version information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from uninstall" -s y
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from uninstall" -s h -l help -d 'Prints help information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from uninstall" -s V -l version -d 'Prints version information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from upgrade-data" -s h -l help -d 'Prints help information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from upgrade-data" -s V -l version -d 'Prints version information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from help" -s h -l help -d 'Prints help information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from help" -s V -l version -d 'Prints version information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from set" -s h -l help -d 'Prints help information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from set" -s V -l version -d 'Prints version information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from set" -f -a "default-host" -d 'The triple used to identify toolchains when not specified'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from set" -f -a "profile" -d 'The default components installed'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from set" -f -a "auto-self-update" -d 'The rustup auto self update mode'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from set" -f -a "help" -d 'Prints this message or the help of the given subcommand(s)'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from default-host" -s h -l help -d 'Prints help information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from default-host" -s V -l version -d 'Prints version information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from profile" -s h -l help -d 'Prints help information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from profile" -s V -l version -d 'Prints version information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from auto-self-update" -s h -l help -d 'Prints help information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from auto-self-update" -s V -l version -d 'Prints version information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from help" -s h -l help -d 'Prints help information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from help" -s V -l version -d 'Prints version information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from completions" -s h -l help -d 'Prints help information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from completions" -s V -l version -d 'Prints version information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from help" -s h -l help -d 'Prints help information'
|
||||||
|
complete -c rustup -n "__fish_seen_subcommand_from help" -s V -l version -d 'Prints version information'
|
||||||
4
config/fish/completions/spark.fish
Normal file
4
config/fish/completions/spark.fish
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
complete --command spark --exclusive --long min --description "Minimum range"
|
||||||
|
complete --command spark --exclusive --long max --description "Maximum range"
|
||||||
|
complete --command spark --exclusive --long version --description "Print version"
|
||||||
|
complete --command spark --exclusive --long help --description "Print this help message"
|
||||||
320
config/fish/completions/task.fish
Normal file
320
config/fish/completions/task.fish
Normal file
@@ -0,0 +1,320 @@
|
|||||||
|
# Taskwarrior completions for the Fish shell <http://fishshell.org>
|
||||||
|
#
|
||||||
|
# taskwarrior - a command line task list manager.
|
||||||
|
#
|
||||||
|
# Completions should work out of box. If it isn't, fill the bug report on your
|
||||||
|
# operation system bug tracker.
|
||||||
|
#
|
||||||
|
# As a workaround you can copy this script to
|
||||||
|
# ~/.config/fish/completions/task.fish, and open a new shell.
|
||||||
|
#
|
||||||
|
# Objects completed:
|
||||||
|
# * Commands
|
||||||
|
# * Projects
|
||||||
|
# * Priorities
|
||||||
|
# * Tags
|
||||||
|
# * Attribute names and modifiers
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# You can override some default options in your config.fish:
|
||||||
|
#
|
||||||
|
# # Tab-completion of task descriptions.
|
||||||
|
# # Warning: This often creates a list of suggestions which spans several pages,
|
||||||
|
# # and it usually pushes some of the commands and attributes to the end of the
|
||||||
|
# # list.
|
||||||
|
# set -g task_complete_task yes
|
||||||
|
#
|
||||||
|
# # Tab-completion of task IDs outside of the "depends" attribute.
|
||||||
|
# # Warning: This often creates a list of suggestions which spans several pages,
|
||||||
|
# # and it pushes all commands and attributes to the end of the list.
|
||||||
|
# set -g task_complete_id yes
|
||||||
|
#
|
||||||
|
# # Attribute modifiers (DEPRECATED since 2.4.0)
|
||||||
|
# set -g task_complete_attribute_modifiers yes
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Copyright 2014 - 2019, Roman Inflianskas <infroma@gmail.com>
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
# in the Software without restriction, including without limitation the rights
|
||||||
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included
|
||||||
|
# in all copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# 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 OR COPYRIGHT HOLDERS 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.
|
||||||
|
#
|
||||||
|
# https://www.opensource.org/licenses/mit-license.php
|
||||||
|
|
||||||
|
# NOTE: remember that sed on OS X is different in some aspects. E.g. it does
|
||||||
|
# not understand \t for tabs.
|
||||||
|
|
||||||
|
# convinience functions
|
||||||
|
|
||||||
|
function __fish.task.log
|
||||||
|
for line in $argv
|
||||||
|
echo $line >&2
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fish.task.partial
|
||||||
|
set wrapped $argv[1]
|
||||||
|
set what $argv[2]
|
||||||
|
set -q argv[3]; and set f_argv $argv[3..-1]
|
||||||
|
set f __fish.task.$wrapped.$what
|
||||||
|
functions -q $f; and eval $f $f_argv
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fish.task.zsh
|
||||||
|
set -q argv[2]; and set task_argv $argv[2..-1]
|
||||||
|
task _zsh$argv[1] $task_argv | sed 's/:/ /'
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
# command line state detection
|
||||||
|
|
||||||
|
function __fish.task.bare
|
||||||
|
test (count (commandline -c -o)) -eq 1
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fish.task.current.command
|
||||||
|
# find command in commandline by list intersection
|
||||||
|
begin; commandline -pco; and __fish.task.list._command all | cut -d ' ' -f 1; end | sort | uniq -d | xargs
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fish.task.before_command
|
||||||
|
test -z (__fish.task.current.command)
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
# checking need to complete
|
||||||
|
|
||||||
|
function __fish.task.need_to_complete.attr_name
|
||||||
|
__fish.task.need_to_complete.filter; or contains (__fish.task.current.command) (__fish.task.list.command_mods)
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fish.task.need_to_complete.attr_value
|
||||||
|
__fish.task.need_to_complete.attr_name
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fish.task.need_to_complete.command
|
||||||
|
switch $argv
|
||||||
|
case all
|
||||||
|
__fish.task.bare
|
||||||
|
case filter
|
||||||
|
__fish.task.before_command
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fish.task.need_to_complete.config
|
||||||
|
contains (__fish.task.current.command) 'config' 'show'
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fish.task.need_to_complete.filter
|
||||||
|
__fish.task.before_command
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fish.task.need_to_complete.id
|
||||||
|
__fish.task.need_to_complete.filter
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fish.task.need_to_complete.task
|
||||||
|
__fish.task.need_to_complete.filter
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fish.task.need_to_complete
|
||||||
|
__fish.task.partial need_to_complete $argv
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
# list printers
|
||||||
|
|
||||||
|
function __fish.task.token_clean
|
||||||
|
sed 's/[^a-z_.]//g; s/^\.$//g'
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fish.task.list.attr_name
|
||||||
|
task _columns | sed 's/$/: attribute/g'
|
||||||
|
# BUG: doesn't support file completion
|
||||||
|
echo rc
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fish.task.list.attr_value
|
||||||
|
set token (commandline -ct | cut -d ':' -f 1 | cut -d '.' -f 1 | __fish.task.token_clean)
|
||||||
|
if test -n $token
|
||||||
|
set attr_names (__fish.task.list.attr_name | sed 's/: / /g' | grep '^'$token | cut -d ' ' -f 1)
|
||||||
|
for attr_name in $attr_names
|
||||||
|
if test -n $attr_name
|
||||||
|
__fish.task.list.attr_value_by_name $attr_name
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
__fish.task.list.tag
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fish.task.list.attr_value_by_name
|
||||||
|
set attr $argv[1]
|
||||||
|
switch $attr
|
||||||
|
case 'rc'
|
||||||
|
__fish.task.list.rc
|
||||||
|
case 'depends' 'limit' 'priority' 'status'
|
||||||
|
__fish.task.combos_simple $attr (__fish.task.list $attr)
|
||||||
|
# case 'description' 'due' 'entry' 'end' 'start' 'project' 'recur' 'until' 'wait'
|
||||||
|
case '*'
|
||||||
|
if [ "$task_complete_attribute_modifiers" = 'yes' ]; and echo (commandline -ct) | grep -q '\.'
|
||||||
|
__fish.task.combos_with_mods $attr (__fish.task.list $attr)
|
||||||
|
else
|
||||||
|
__fish.task.combos_simple $attr (__fish.task.list $attr)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fish.task.list._command
|
||||||
|
# Removed args until TW-1404 is fixed.
|
||||||
|
#__fish.task.zsh commands $argv
|
||||||
|
__fish.task.zsh commands
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fish.task.list.command
|
||||||
|
# ignore special commands
|
||||||
|
__fish.task.list._command $argv | command grep -Ev '^_'
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fish.task.list.command_mods
|
||||||
|
for command in 'add' 'annotate' 'append' 'delete' 'done' 'duplicate' 'log' 'modify' 'prepend' 'start' 'stop'
|
||||||
|
echo $command
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fish.task.list.config
|
||||||
|
task _config
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fish.task.list.depends
|
||||||
|
__fish.task.list.id with_description
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fish.task.list.description
|
||||||
|
__fish.task.zsh ids $argv | cut -d ' ' -f 2-
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fish.task.list.id
|
||||||
|
set show_type $argv[1]
|
||||||
|
if test -z $show_type
|
||||||
|
task _ids
|
||||||
|
else if [ $show_type = 'with_description' ]
|
||||||
|
__fish.task.zsh ids
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# Attribure modifiers (DEPRECATED since 2.4.0)
|
||||||
|
function __fish.task.list.mod
|
||||||
|
for mod in 'before' 'after' 'over' 'under' 'none' 'is' 'isnt' 'has' 'hasnt' 'startswith' 'endswith' 'word' 'noword'
|
||||||
|
echo $mod
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fish.task.list.priority
|
||||||
|
for priority in 'H' 'M' 'L'
|
||||||
|
echo $priority
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fish.task.list.project
|
||||||
|
task _projects
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fish.task.list.rc
|
||||||
|
for value in (task _config)
|
||||||
|
echo rc.$value:
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fish.task.list.status
|
||||||
|
echo pending
|
||||||
|
echo completed
|
||||||
|
echo deleted
|
||||||
|
echo waiting
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fish.task.list.tag
|
||||||
|
for tag in (task _tags)
|
||||||
|
echo +$tag
|
||||||
|
echo -$tag
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fish.task.list.task
|
||||||
|
__fish.task.zsh ids | sed -E 's/^(.*) (.*)$/\2 task [id = \1]/g'
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fish.task.list
|
||||||
|
__fish.task.partial list $argv
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fish.task.results_var_name
|
||||||
|
echo $argv | sed 's/^/__fish.task.list /g; s/$/ results/g; s/[ .]/_/g;'
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fish.task.list_results
|
||||||
|
set var_name (__fish.task.results_var_name $name)
|
||||||
|
for line in $$var_name
|
||||||
|
echo $line
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
# working with attributes
|
||||||
|
|
||||||
|
function __fish.task.combos_simple
|
||||||
|
set attr_name $argv[1]
|
||||||
|
set -q argv[2]; and set attr_values $argv[2..-1]
|
||||||
|
if [ (count $attr_values) -gt 0 ]
|
||||||
|
for attr_value in $attr_values
|
||||||
|
echo "$attr_name:$attr_value"
|
||||||
|
end
|
||||||
|
else
|
||||||
|
echo "$attr_name:"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# Attribure modifiers (DEPRECATED since 2.4.0)
|
||||||
|
function __fish.task.combos_with_mods
|
||||||
|
__fish.task.combos_simple $argv
|
||||||
|
for mod in (__fish.task.list.mod)
|
||||||
|
__fish.task.combos_simple $argv[1].$mod $argv[2..-1]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
# actual completion
|
||||||
|
|
||||||
|
function __fish.task.complete
|
||||||
|
set what $argv
|
||||||
|
set list_command "__fish.task.list $what"
|
||||||
|
set check_function "__fish.task.need_to_complete $what"
|
||||||
|
complete -c task -u -f -n $check_function -a "(eval $list_command)"
|
||||||
|
end
|
||||||
|
|
||||||
|
__fish.task.complete command all
|
||||||
|
__fish.task.complete command filter
|
||||||
|
__fish.task.complete attr_value
|
||||||
|
__fish.task.complete attr_name
|
||||||
|
__fish.task.complete config
|
||||||
|
|
||||||
|
if [ "$task_complete_task" = 'yes' ]
|
||||||
|
__fish.task.complete task
|
||||||
|
end
|
||||||
|
|
||||||
|
if [ "$task_complete_id" = 'yes' ]
|
||||||
|
__fish.task.complete id with_description
|
||||||
|
end
|
||||||
28
config/fish/conf.d/aliases.fish
Normal file
28
config/fish/conf.d/aliases.fish
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
# aliases
|
||||||
|
alias sdr='screen -aAdr'
|
||||||
|
alias ls='eza'
|
||||||
|
alias la='eza -a'
|
||||||
|
alias ll='eza -laF'
|
||||||
|
alias mkpasswd='head -c16 /dev/urandom | xxd -ps'
|
||||||
|
alias mc='mc -b'
|
||||||
|
alias cdp='cd (~/bin/cdp); clear'
|
||||||
|
alias cx='container exec'
|
||||||
|
|
||||||
|
alias rgrep='grep --exclude-dir=Godeps --exclude-dir=node_modules --exclude-dir=log --exclude-dir=vendor --exclude-dir=tmp --exclude-dir=public --exclude-dir=.git --exclude=.swp -rn'
|
||||||
|
alias grep='grep --exclude-dir=.git --color=auto'
|
||||||
|
|
||||||
|
alias ag='ag --path-to-ignore $HOME/.agignore --nogroup'
|
||||||
|
|
||||||
|
# Typos
|
||||||
|
alias igt='git'
|
||||||
|
alias gti='git'
|
||||||
|
alias gitst='git st'
|
||||||
|
|
||||||
|
# Ledger
|
||||||
|
# alias ledger='noglob ledger'
|
||||||
|
# alias 'bin/ledger'='noglob bin/ledger'
|
||||||
|
#
|
||||||
|
# alias icat='kitty +kitten icat'
|
||||||
|
|
||||||
|
alias dark="/usr/bin/kitty +kitten themes --reload-in=all Gruvbox Dark"
|
||||||
|
alias light="/usr/bin/kitty +kitten themes --reload-in=all Gruvbox Light"
|
||||||
63
config/fish/conf.d/fzf.fish
Normal file
63
config/fish/conf.d/fzf.fish
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
set -q FZF_TMUX_HEIGHT; or set -U FZF_TMUX_HEIGHT "40%"
|
||||||
|
set -q FZF_DEFAULT_OPTS; or set -U FZF_DEFAULT_OPTS "--height $FZF_TMUX_HEIGHT"
|
||||||
|
set -q FZF_LEGACY_KEYBINDINGS; or set -U FZF_LEGACY_KEYBINDINGS 1
|
||||||
|
set -q FZF_DISABLE_KEYBINDINGS; or set -U FZF_DISABLE_KEYBINDINGS 0
|
||||||
|
set -q FZF_PREVIEW_FILE_CMD; or set -U FZF_PREVIEW_FILE_CMD "head -n 10"
|
||||||
|
set -q FZF_PREVIEW_DIR_CMD; or set -U FZF_PREVIEW_DIR_CMD "ls"
|
||||||
|
|
||||||
|
if test "$FZF_DISABLE_KEYBINDINGS" -ne 1
|
||||||
|
if test "$FZF_LEGACY_KEYBINDINGS" -eq 1
|
||||||
|
bind \ct '__fzf_find_file'
|
||||||
|
bind \cr '__fzf_reverse_isearch'
|
||||||
|
bind \ec '__fzf_cd'
|
||||||
|
bind \eC '__fzf_cd --hidden'
|
||||||
|
bind \cg '__fzf_open'
|
||||||
|
bind \co '__fzf_open --editor'
|
||||||
|
|
||||||
|
if ! test "$fish_key_bindings" = fish_default_key_bindings
|
||||||
|
bind -M insert \ct '__fzf_find_file'
|
||||||
|
bind -M insert \cr '__fzf_reverse_isearch'
|
||||||
|
bind -M insert \ec '__fzf_cd'
|
||||||
|
bind -M insert \eC '__fzf_cd --hidden'
|
||||||
|
bind -M insert \cg '__fzf_open'
|
||||||
|
bind -M insert \co '__fzf_open --editor'
|
||||||
|
end
|
||||||
|
else
|
||||||
|
bind \co '__fzf_find_file'
|
||||||
|
bind \cr '__fzf_reverse_isearch'
|
||||||
|
bind \ec '__fzf_cd'
|
||||||
|
bind \eC '__fzf_cd --hidden'
|
||||||
|
bind \eO '__fzf_open'
|
||||||
|
bind \eo '__fzf_open --editor'
|
||||||
|
|
||||||
|
if ! test "$fish_key_bindings" = fish_default_key_bindings
|
||||||
|
bind -M insert \co '__fzf_find_file'
|
||||||
|
bind -M insert \cr '__fzf_reverse_isearch'
|
||||||
|
bind -M insert \ec '__fzf_cd'
|
||||||
|
bind -M insert \eC '__fzf_cd --hidden'
|
||||||
|
bind -M insert \eO '__fzf_open'
|
||||||
|
bind -M insert \eo '__fzf_open --editor'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if not bind --user \t >/dev/null 2>/dev/null
|
||||||
|
if set -q FZF_COMPLETE
|
||||||
|
bind \t '__fzf_complete'
|
||||||
|
if ! test "$fish_key_bindings" = fish_default_key_bindings
|
||||||
|
bind -M insert \t '__fzf_complete'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function _fzf_uninstall -e fzf_uninstall
|
||||||
|
bind --user \
|
||||||
|
| string replace --filter --regex -- "bind (.+)( '?__fzf.*)" 'bind -e $1' \
|
||||||
|
| source
|
||||||
|
|
||||||
|
set --names \
|
||||||
|
| string replace --filter --regex '(^FZF)' 'set --erase $1' \
|
||||||
|
| source
|
||||||
|
|
||||||
|
functions --erase _fzf_uninstall
|
||||||
|
end
|
||||||
49
config/fish/conf.d/fzf_key_bindings.fish
Normal file
49
config/fish/conf.d/fzf_key_bindings.fish
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
if test "$FZF_LEGACY_KEYBINDINGS" -eq 1
|
||||||
|
bind \ct '__fzf_find_file'
|
||||||
|
bind \cr '__fzf_reverse_isearch'
|
||||||
|
bind \ec '__fzf_cd'
|
||||||
|
bind \eC '__fzf_cd --hidden'
|
||||||
|
bind \cg '__fzf_open'
|
||||||
|
bind \co '__fzf_open --editor'
|
||||||
|
|
||||||
|
if bind -M insert >/dev/null 2>/dev/null
|
||||||
|
bind -M insert \ct '__fzf_find_file'
|
||||||
|
bind -M insert \cr '__fzf_reverse_isearch'
|
||||||
|
bind -M insert \ec '__fzf_cd'
|
||||||
|
bind -M insert \eC '__fzf_cd --hidden'
|
||||||
|
bind -M insert \cg '__fzf_open'
|
||||||
|
bind -M insert \co '__fzf_open --editor'
|
||||||
|
end
|
||||||
|
else
|
||||||
|
bind \cf '__fzf_find_file'
|
||||||
|
bind \cr '__fzf_reverse_isearch'
|
||||||
|
bind \eo '__fzf_cd'
|
||||||
|
bind \eO '__fzf_cd --hidden'
|
||||||
|
bind \cg '__fzf_open'
|
||||||
|
bind \co '__fzf_open --editor'
|
||||||
|
|
||||||
|
if bind -M insert >/dev/null 2>/dev/null
|
||||||
|
bind -M insert \cf '__fzf_find_file'
|
||||||
|
bind -M insert \cr '__fzf_reverse_isearch'
|
||||||
|
bind -M insert \eo '__fzf_cd'
|
||||||
|
bind -M insert \eO '__fzf_cd --hidden'
|
||||||
|
bind -M insert \cg '__fzf_open'
|
||||||
|
bind -M insert \co '__fzf_open --editor'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if set -q FZF_COMPLETE
|
||||||
|
bind \t '__fzf_complete'
|
||||||
|
if bind -M insert >/dev/null 2>/dev/null
|
||||||
|
bind -M insert \t '__fzf_complete'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function fzf_key_bindings_uninstall -e fzf_key_bindings_uninstall
|
||||||
|
# disabled until we figure out a sensible way to ensure user overrides
|
||||||
|
# are not erased
|
||||||
|
# set -l _bindings (bind -a | sed -En "s/(')?__fzf.*\$//p" | sed 's/bind/bind -e/')
|
||||||
|
# for binding in $_bindings
|
||||||
|
# eval $binding
|
||||||
|
# end
|
||||||
|
end
|
||||||
11
config/fish/config.fish
Normal file
11
config/fish/config.fish
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
#!/bin/fish
|
||||||
|
|
||||||
|
# direnv
|
||||||
|
set -x DIRENV_LOG_FORMAT ""
|
||||||
|
direnv hook fish | source
|
||||||
|
|
||||||
|
# rbenv
|
||||||
|
# status --is-interactive; and rbenv init - fish | source
|
||||||
|
|
||||||
|
# You must call it on initialization or listening to directory switching won't work
|
||||||
|
# load_nvm > /dev/stderr
|
||||||
5
config/fish/fish_plugins
Normal file
5
config/fish/fish_plugins
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
jorgebucaran/fisher
|
||||||
|
jethrokuan/fzf
|
||||||
|
jorgebucaran/spark.fish
|
||||||
|
franciscolourenco/done
|
||||||
|
edc/bass
|
||||||
54
config/fish/fish_variables
Normal file
54
config/fish/fish_variables
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
# This file contains fish universal variable definitions.
|
||||||
|
# VERSION: 3.0
|
||||||
|
SETUVAR FZF_DEFAULT_OPTS:\x2d\x2dheight\x2040\x25
|
||||||
|
SETUVAR FZF_DISABLE_KEYBINDINGS:0
|
||||||
|
SETUVAR FZF_LEGACY_KEYBINDINGS:1
|
||||||
|
SETUVAR FZF_PREVIEW_DIR_CMD:ls
|
||||||
|
SETUVAR FZF_PREVIEW_FILE_CMD:head\x20\x2dn\x2010
|
||||||
|
SETUVAR FZF_TMUX_HEIGHT:40\x25
|
||||||
|
SETUVAR __done_notification_urgency_level:low
|
||||||
|
SETUVAR __done_notification_urgency_level_failure:normal
|
||||||
|
SETUVAR __fish_init_2_39_8:\x1d
|
||||||
|
SETUVAR __fish_init_2_3_0:\x1d
|
||||||
|
SETUVAR __fish_init_3_x:\x1d
|
||||||
|
SETUVAR __fish_initialized:3400
|
||||||
|
SETUVAR _fisher_edc_2F_bass_files:\x7e/\x2econfig/fish/functions/__bass\x2epy\x1e\x7e/\x2econfig/fish/functions/bass\x2efish
|
||||||
|
SETUVAR _fisher_franciscolourenco_2F_done_files:\x7e/\x2econfig/fish/conf\x2ed/done\x2efish
|
||||||
|
SETUVAR _fisher_jethrokuan_2F_fzf_files:\x7e/\x2econfig/fish/functions/__fzf_cd\x2efish\x1e\x7e/\x2econfig/fish/functions/__fzf_complete\x2efish\x1e\x7e/\x2econfig/fish/functions/__fzf_complete_preview\x2efish\x1e\x7e/\x2econfig/fish/functions/__fzf_find_file\x2efish\x1e\x7e/\x2econfig/fish/functions/__fzf_get_dir\x2efish\x1e\x7e/\x2econfig/fish/functions/__fzf_open\x2efish\x1e\x7e/\x2econfig/fish/functions/__fzf_parse_commandline\x2efish\x1e\x7e/\x2econfig/fish/functions/__fzf_reverse_isearch\x2efish\x1e\x7e/\x2econfig/fish/functions/__fzfcmd\x2efish\x1e\x7e/\x2econfig/fish/conf\x2ed/fzf\x2efish
|
||||||
|
SETUVAR _fisher_jorgebucaran_2F_fisher_files:\x7e/\x2econfig/fish/functions/fisher\x2efish\x1e\x7e/\x2econfig/fish/completions/fisher\x2efish
|
||||||
|
SETUVAR _fisher_jorgebucaran_2F_spark_2E_fish_files:\x7e/\x2econfig/fish/functions/spark\x2efish\x1e\x7e/\x2econfig/fish/completions/spark\x2efish
|
||||||
|
SETUVAR _fisher_plugins:jorgebucaran/fisher\x1ejethrokuan/fzf\x1ejorgebucaran/spark\x2efish\x1efranciscolourenco/done\x1eedc/bass
|
||||||
|
SETUVAR _fisher_upgraded_to_4_4:\x1d
|
||||||
|
SETUVAR fish_color_autosuggestion:969896
|
||||||
|
SETUVAR fish_color_cancel:\x2dr
|
||||||
|
SETUVAR fish_color_command:7aa6da
|
||||||
|
SETUVAR fish_color_comment:2a2a2a
|
||||||
|
SETUVAR fish_color_cwd:green
|
||||||
|
SETUVAR fish_color_cwd_root:red
|
||||||
|
SETUVAR fish_color_end:e7c547
|
||||||
|
SETUVAR fish_color_error:d54e53
|
||||||
|
SETUVAR fish_color_escape:00a6b2
|
||||||
|
SETUVAR fish_color_history_current:\x2d\x2dbold
|
||||||
|
SETUVAR fish_color_host:normal
|
||||||
|
SETUVAR fish_color_host_remote:yellow
|
||||||
|
SETUVAR fish_color_match:\x2d\x2dbackground\x3dbrblue
|
||||||
|
SETUVAR fish_color_normal:normal
|
||||||
|
SETUVAR fish_color_operator:00a6b2
|
||||||
|
SETUVAR fish_color_param:b9ca4a
|
||||||
|
SETUVAR fish_color_quote:e78c45
|
||||||
|
SETUVAR fish_color_redirection:c397d8
|
||||||
|
SETUVAR fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dbrblack
|
||||||
|
SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack
|
||||||
|
SETUVAR fish_color_status:red
|
||||||
|
SETUVAR fish_color_user:brgreen
|
||||||
|
SETUVAR fish_color_valid_path:\x2d\x2dunderline
|
||||||
|
SETUVAR fish_greeting:\x1d
|
||||||
|
SETUVAR fish_key_bindings:fish_default_key_bindings
|
||||||
|
SETUVAR fish_pager_color_completion:normal
|
||||||
|
SETUVAR fish_pager_color_description:B3A06D\x1eyellow
|
||||||
|
SETUVAR fish_pager_color_prefix:white\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
|
||||||
|
SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan
|
||||||
|
SETUVAR fish_pager_color_selected_background:\x2dr
|
||||||
|
SETUVAR --export fish_user_paths:/home/krsh/\x2erbenv/bin
|
||||||
|
SETUVAR grc_plugin_execs:cat\x1ecvs\x1edf\x1ediff\x1edig\x1egcc\x1eg\x2b\x2b\x1eifconfig\x1emake\x1emount\x1emtr\x1enetstat\x1eping\x1eps\x1etail\x1etraceroute\x1ewdiff\x1eblkid\x1edu\x1ednf\x1edocker\x1edocker\x2dcompose\x1edocker\x2dmachine\x1eenv\x1eid\x1eip\x1eiostat\x1ejournalctl\x1ekubectl\x1elast\x1elsattr\x1elsblk\x1elspci\x1elsmod\x1elsof\x1egetfacl\x1egetsebool\x1eulimit\x1euptime\x1enmap\x1efdisk\x1efindmnt\x1efree\x1esemanage\x1esar\x1ess\x1esysctl\x1esystemctl\x1estat\x1eshowmount\x1etcpdump\x1etune2fs\x1evmstat\x1ew\x1ewho\x1esockstat
|
||||||
|
SETUVAR pure_version:2\x2e1\x2e8
|
||||||
2
config/fish/fishfile
Normal file
2
config/fish/fishfile
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
rbenv/fish-rbenv
|
||||||
|
jethrokuan/fzf
|
||||||
140
config/fish/functions/__bass.py
Normal file
140
config/fish/functions/__bass.py
Normal file
@@ -0,0 +1,140 @@
|
|||||||
|
"""
|
||||||
|
To be used with a companion fish function like this:
|
||||||
|
|
||||||
|
function refish
|
||||||
|
set -l _x (python /tmp/bass.py source ~/.nvm/nvim.sh ';' nvm use iojs); source $_x; and rm -f $_x
|
||||||
|
end
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
from __future__ import print_function
|
||||||
|
|
||||||
|
import json
|
||||||
|
import os
|
||||||
|
import signal
|
||||||
|
import subprocess
|
||||||
|
import sys
|
||||||
|
import traceback
|
||||||
|
|
||||||
|
|
||||||
|
BASH = 'bash'
|
||||||
|
|
||||||
|
FISH_READONLY = [
|
||||||
|
'PWD', 'SHLVL', 'history', 'pipestatus', 'status', 'version',
|
||||||
|
'FISH_VERSION', 'fish_pid', 'hostname', '_', 'fish_private_mode'
|
||||||
|
]
|
||||||
|
|
||||||
|
IGNORED = [
|
||||||
|
'PS1', 'XPC_SERVICE_NAME'
|
||||||
|
]
|
||||||
|
|
||||||
|
def ignored(name):
|
||||||
|
if name == 'PWD': # this is read only, but has special handling
|
||||||
|
return False
|
||||||
|
# ignore other read only variables
|
||||||
|
if name in FISH_READONLY:
|
||||||
|
return True
|
||||||
|
if name in IGNORED or name.startswith("BASH_FUNC"):
|
||||||
|
return True
|
||||||
|
if name.startswith('%'):
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
|
def escape(string):
|
||||||
|
# use json.dumps to reliably escape quotes and backslashes
|
||||||
|
return json.dumps(string).replace(r'$', r'\$')
|
||||||
|
|
||||||
|
def escape_identifier(word):
|
||||||
|
return escape(word.replace('?', '\\?'))
|
||||||
|
|
||||||
|
def comment(string):
|
||||||
|
return '\n'.join(['# ' + line for line in string.split('\n')])
|
||||||
|
|
||||||
|
def gen_script():
|
||||||
|
# Use the following instead of /usr/bin/env to read environment so we can
|
||||||
|
# deal with multi-line environment variables (and other odd cases).
|
||||||
|
env_reader = "%s -c 'import os,json; print(json.dumps({k:v for k,v in os.environ.items()}))'" % (sys.executable)
|
||||||
|
args = [BASH, '-c', env_reader]
|
||||||
|
output = subprocess.check_output(args, universal_newlines=True)
|
||||||
|
old_env = output.strip()
|
||||||
|
|
||||||
|
pipe_r, pipe_w = os.pipe()
|
||||||
|
if sys.version_info >= (3, 4):
|
||||||
|
os.set_inheritable(pipe_w, True)
|
||||||
|
command = 'eval $1 && ({}; alias) >&{}'.format(
|
||||||
|
env_reader,
|
||||||
|
pipe_w
|
||||||
|
)
|
||||||
|
args = [BASH, '-c', command, 'bass', ' '.join(sys.argv[1:])]
|
||||||
|
p = subprocess.Popen(args, universal_newlines=True, close_fds=False)
|
||||||
|
os.close(pipe_w)
|
||||||
|
with os.fdopen(pipe_r) as f:
|
||||||
|
new_env = f.readline()
|
||||||
|
alias_str = f.read()
|
||||||
|
if p.wait() != 0:
|
||||||
|
raise subprocess.CalledProcessError(
|
||||||
|
returncode=p.returncode,
|
||||||
|
cmd=' '.join(sys.argv[1:]),
|
||||||
|
output=new_env + alias_str
|
||||||
|
)
|
||||||
|
new_env = new_env.strip()
|
||||||
|
|
||||||
|
old_env = json.loads(old_env)
|
||||||
|
new_env = json.loads(new_env)
|
||||||
|
|
||||||
|
script_lines = []
|
||||||
|
|
||||||
|
for k, v in new_env.items():
|
||||||
|
if ignored(k):
|
||||||
|
continue
|
||||||
|
v1 = old_env.get(k)
|
||||||
|
if not v1:
|
||||||
|
script_lines.append(comment('adding %s=%s' % (k, v)))
|
||||||
|
elif v1 != v:
|
||||||
|
script_lines.append(comment('updating %s=%s -> %s' % (k, v1, v)))
|
||||||
|
# process special variables
|
||||||
|
if k == 'PWD':
|
||||||
|
script_lines.append('cd %s' % escape(v))
|
||||||
|
continue
|
||||||
|
else:
|
||||||
|
continue
|
||||||
|
if k == 'PATH':
|
||||||
|
value = ' '.join([escape(directory)
|
||||||
|
for directory in v.split(':')])
|
||||||
|
else:
|
||||||
|
value = escape(v)
|
||||||
|
script_lines.append('set -g -x %s %s' % (k, value))
|
||||||
|
|
||||||
|
for var in set(old_env.keys()) - set(new_env.keys()):
|
||||||
|
script_lines.append(comment('removing %s' % var))
|
||||||
|
script_lines.append('set -e %s' % var)
|
||||||
|
|
||||||
|
script = '\n'.join(script_lines)
|
||||||
|
|
||||||
|
alias_lines = []
|
||||||
|
for line in alias_str.splitlines():
|
||||||
|
_, rest = line.split(None, 1)
|
||||||
|
k, v = rest.split("=", 1)
|
||||||
|
alias_lines.append("alias " + escape_identifier(k) + "=" + v)
|
||||||
|
alias = '\n'.join(alias_lines)
|
||||||
|
|
||||||
|
return script + '\n' + alias
|
||||||
|
|
||||||
|
script_file = os.fdopen(3, 'w')
|
||||||
|
|
||||||
|
if not sys.argv[1:]:
|
||||||
|
print('__bass_usage', file=script_file, end='')
|
||||||
|
sys.exit(0)
|
||||||
|
|
||||||
|
try:
|
||||||
|
script = gen_script()
|
||||||
|
except subprocess.CalledProcessError as e:
|
||||||
|
sys.exit(e.returncode)
|
||||||
|
except Exception:
|
||||||
|
print('Bass internal error!', file=sys.stderr)
|
||||||
|
raise # traceback will output to stderr
|
||||||
|
except KeyboardInterrupt:
|
||||||
|
signal.signal(signal.SIGINT, signal.SIG_DFL)
|
||||||
|
os.kill(os.getpid(), signal.SIGINT)
|
||||||
|
else:
|
||||||
|
script_file.write(script)
|
||||||
49
config/fish/functions/__fzf_cd.fish
Normal file
49
config/fish/functions/__fzf_cd.fish
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
function __fzf_cd -d "Change directory"
|
||||||
|
set -l commandline (__fzf_parse_commandline)
|
||||||
|
set -l dir $commandline[1]
|
||||||
|
set -l fzf_query $commandline[2]
|
||||||
|
|
||||||
|
if not type -q argparse
|
||||||
|
# Fallback for fish shell version < 2.7
|
||||||
|
function argparse
|
||||||
|
functions -e argparse # deletes itself
|
||||||
|
end
|
||||||
|
if contains -- --hidden $argv; or contains -- -h $argv
|
||||||
|
set _flag_hidden "yes"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# Fish shell version >= v2.7, use argparse
|
||||||
|
set -l options "h/hidden"
|
||||||
|
argparse $options -- $argv
|
||||||
|
|
||||||
|
set -l COMMAND
|
||||||
|
|
||||||
|
set -q FZF_CD_COMMAND
|
||||||
|
or set -l FZF_CD_COMMAND "
|
||||||
|
command find -L \$dir -mindepth 1 \\( -path \$dir'*/\\.*' -o -fstype 'sysfs' -o -fstype 'devfs' -o -fstype 'devtmpfs' \\) -prune \
|
||||||
|
-o -type d -print 2> /dev/null | sed 's@^\./@@'"
|
||||||
|
|
||||||
|
set -q FZF_CD_WITH_HIDDEN_COMMAND
|
||||||
|
or set -l FZF_CD_WITH_HIDDEN_COMMAND "
|
||||||
|
command find -L \$dir \
|
||||||
|
\\( -path '*/\\.git*' -o -fstype 'dev' -o -fstype 'proc' \\) -prune \
|
||||||
|
-o -type d -print 2> /dev/null | sed 1d | cut -b3-"
|
||||||
|
|
||||||
|
if set -q _flag_hidden
|
||||||
|
set COMMAND $FZF_CD_WITH_HIDDEN_COMMAND
|
||||||
|
else
|
||||||
|
set COMMAND $FZF_CD_COMMAND
|
||||||
|
end
|
||||||
|
|
||||||
|
eval "$COMMAND | "(__fzfcmd)" +m $FZF_DEFAULT_OPTS $FZF_CD_OPTS --query \"$fzf_query\"" | read -l select
|
||||||
|
|
||||||
|
if not test -z "$select"
|
||||||
|
builtin cd "$select"
|
||||||
|
|
||||||
|
# Remove last token from commandline.
|
||||||
|
commandline -t ""
|
||||||
|
end
|
||||||
|
|
||||||
|
commandline -f repaint
|
||||||
|
end
|
||||||
168
config/fish/functions/__fzf_complete.fish
Normal file
168
config/fish/functions/__fzf_complete.fish
Normal file
@@ -0,0 +1,168 @@
|
|||||||
|
##
|
||||||
|
# Use fzf as fish completion widget.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# When FZF_COMPLETE variable is set, fzf is used as completion
|
||||||
|
# widget for the fish shell by binding the TAB key.
|
||||||
|
#
|
||||||
|
# FZF_COMPLETE can have some special numeric values:
|
||||||
|
#
|
||||||
|
# `set FZF_COMPLETE 0` basic widget accepts with TAB key
|
||||||
|
# `set FZF_COMPLETE 1` extends 0 with candidate preview window
|
||||||
|
# `set FZF_COMPLETE 2` same as 1 but TAB walks on candidates
|
||||||
|
# `set FZF_COMPLETE 3` multi TAB selection, RETURN accepts selected ones.
|
||||||
|
#
|
||||||
|
# Any other value of FZF_COMPLETE is given directly as options to fzf.
|
||||||
|
#
|
||||||
|
# If you prefer to set more advanced options, take a look at the
|
||||||
|
# `__fzf_complete_opts` function and override that in your environment.
|
||||||
|
|
||||||
|
|
||||||
|
# modified from https://github.com/junegunn/fzf/wiki/Examples-(fish)#completion
|
||||||
|
function __fzf_complete -d 'fzf completion and print selection back to commandline'
|
||||||
|
# As of 2.6, fish's "complete" function does not understand
|
||||||
|
# subcommands. Instead, we use the same hack as __fish_complete_subcommand and
|
||||||
|
# extract the subcommand manually.
|
||||||
|
set -l cmd (commandline -co) (commandline -ct)
|
||||||
|
|
||||||
|
switch $cmd[1]
|
||||||
|
case env sudo
|
||||||
|
for i in (seq 2 (count $cmd))
|
||||||
|
switch $cmd[$i]
|
||||||
|
case '-*'
|
||||||
|
case '*=*'
|
||||||
|
case '*'
|
||||||
|
set cmd $cmd[$i..-1]
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
set -l cmd_lastw $cmd[-1]
|
||||||
|
set cmd (string join -- ' ' $cmd)
|
||||||
|
|
||||||
|
set -l initial_query ''
|
||||||
|
test -n "$cmd_lastw"; and set initial_query --query="$cmd_lastw"
|
||||||
|
|
||||||
|
set -l complist (complete -C$cmd)
|
||||||
|
set -l result
|
||||||
|
|
||||||
|
# do nothing if there is nothing to select from
|
||||||
|
test -z "$complist"; and return
|
||||||
|
|
||||||
|
set -l compwc (echo $complist | wc -w)
|
||||||
|
if test $compwc -eq 1
|
||||||
|
# if there is only one option dont open fzf
|
||||||
|
set result "$complist"
|
||||||
|
else
|
||||||
|
|
||||||
|
set -l query
|
||||||
|
string join -- \n $complist \
|
||||||
|
| eval (__fzfcmd) (string escape --no-quoted -- $initial_query) --print-query (__fzf_complete_opts) \
|
||||||
|
| cut -f1 \
|
||||||
|
| while read -l r
|
||||||
|
# first line is the user entered query
|
||||||
|
if test -z "$query"
|
||||||
|
set query $r
|
||||||
|
# rest of lines are selected candidates
|
||||||
|
else
|
||||||
|
set result $result $r
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# exit if user canceled
|
||||||
|
if test -z "$query" ;and test -z "$result"
|
||||||
|
commandline -f repaint
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
# if user accepted but no candidate matches, use the input as result
|
||||||
|
if test -z "$result"
|
||||||
|
set result $query
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
set prefix (string sub -s 1 -l 1 -- (commandline -t))
|
||||||
|
for i in (seq (count $result))
|
||||||
|
set -l r $result[$i]
|
||||||
|
switch $prefix
|
||||||
|
case "'"
|
||||||
|
commandline -t -- (string escape -- $r)
|
||||||
|
case '"'
|
||||||
|
if string match '*"*' -- $r >/dev/null
|
||||||
|
commandline -t -- (string escape -- $r)
|
||||||
|
else
|
||||||
|
commandline -t -- '"'$r'"'
|
||||||
|
end
|
||||||
|
case '~'
|
||||||
|
commandline -t -- (string sub -s 2 (string escape -n -- $r))
|
||||||
|
case '*'
|
||||||
|
commandline -t -- $r
|
||||||
|
end
|
||||||
|
[ $i -lt (count $result) ]; and commandline -i ' '
|
||||||
|
end
|
||||||
|
|
||||||
|
commandline -f repaint
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fzf_complete_opts_common
|
||||||
|
if set -q FZF_DEFAULT_OPTS
|
||||||
|
echo $FZF_DEFAULT_OPTS
|
||||||
|
end
|
||||||
|
echo --cycle --reverse --inline-info
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fzf_complete_opts_tab_accepts
|
||||||
|
echo --bind tab:accept,btab:cancel
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fzf_complete_opts_tab_walks
|
||||||
|
echo --bind tab:down,btab:up
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fzf_complete_opts_preview
|
||||||
|
set -l file (status -f)
|
||||||
|
echo --with-nth=1 --preview-window=right:wrap --preview="fish\ '$file'\ __fzf_complete_preview\ '{1}'\ '{2..}'"
|
||||||
|
end
|
||||||
|
|
||||||
|
test "$argv[1]" = "__fzf_complete_preview"; and __fzf_complete_preview $argv[2..3]
|
||||||
|
|
||||||
|
function __fzf_complete_opts_0 -d 'basic single selection with tab accept'
|
||||||
|
__fzf_complete_opts_common
|
||||||
|
echo --no-multi
|
||||||
|
__fzf_complete_opts_tab_accepts
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fzf_complete_opts_1 -d 'single selection with preview and tab accept'
|
||||||
|
__fzf_complete_opts_0
|
||||||
|
__fzf_complete_opts_preview
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fzf_complete_opts_2 -d 'single selection with preview and tab walks'
|
||||||
|
__fzf_complete_opts_1
|
||||||
|
__fzf_complete_opts_tab_walks
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fzf_complete_opts_3 -d 'multi selection with preview'
|
||||||
|
__fzf_complete_opts_common
|
||||||
|
echo --multi
|
||||||
|
__fzf_complete_opts_preview
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fzf_complete_opts -d 'fzf options for fish tab completion'
|
||||||
|
switch $FZF_COMPLETE
|
||||||
|
case 0
|
||||||
|
__fzf_complete_opts_0
|
||||||
|
case 1
|
||||||
|
__fzf_complete_opts_1
|
||||||
|
case 2
|
||||||
|
__fzf_complete_opts_2
|
||||||
|
case 3
|
||||||
|
__fzf_complete_opts_3
|
||||||
|
case '*'
|
||||||
|
echo $FZF_COMPLETE
|
||||||
|
end
|
||||||
|
if set -q FZF_COMPLETE_OPTS
|
||||||
|
echo $FZF_COMPLETE_OPTS
|
||||||
|
end
|
||||||
|
end
|
||||||
31
config/fish/functions/__fzf_complete_preview.fish
Normal file
31
config/fish/functions/__fzf_complete_preview.fish
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
function __fzf_complete_preview -d 'generate preview for completion widget.
|
||||||
|
argv[1] is the currently selected candidate in fzf
|
||||||
|
argv[2] is a string containing the rest of the output produced by `complete -Ccmd`
|
||||||
|
'
|
||||||
|
|
||||||
|
if test "$argv[2]" = "Redefine variable"
|
||||||
|
# show environment variables current value
|
||||||
|
set -l evar (echo $argv[1] | cut -d= -f1)
|
||||||
|
echo $argv[1]$$evar
|
||||||
|
else
|
||||||
|
echo $argv[1]
|
||||||
|
end
|
||||||
|
|
||||||
|
set -l path (string replace "~" $HOME -- $argv[1])
|
||||||
|
|
||||||
|
# list directories on preview
|
||||||
|
if test -d "$path"
|
||||||
|
eval $FZF_PREVIEW_DIR_CMD (string escape $path)
|
||||||
|
end
|
||||||
|
|
||||||
|
# show ten lines of non-binary files preview
|
||||||
|
if test -f "$path"; and grep -qI . "$path"
|
||||||
|
eval $FZF_PREVIEW_FILE_CMD (string escape $path)
|
||||||
|
end
|
||||||
|
|
||||||
|
# if fish knows about it, let it show info
|
||||||
|
type -q "$path" 2>/dev/null; and type -a "$path"
|
||||||
|
|
||||||
|
# show aditional data
|
||||||
|
echo $argv[2]
|
||||||
|
end
|
||||||
29
config/fish/functions/__fzf_find_file.fish
Normal file
29
config/fish/functions/__fzf_find_file.fish
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
function __fzf_find_file -d "List files and folders"
|
||||||
|
set -l commandline (__fzf_parse_commandline)
|
||||||
|
set -l dir $commandline[1]
|
||||||
|
set -l fzf_query $commandline[2]
|
||||||
|
|
||||||
|
set -q FZF_FIND_FILE_COMMAND
|
||||||
|
or set -l FZF_FIND_FILE_COMMAND "
|
||||||
|
command find -L \$dir -mindepth 1 \\( -path \$dir'*/\\.*' -o -fstype 'sysfs' -o -fstype 'devfs' -o -fstype 'devtmpfs' \\) -prune \
|
||||||
|
-o -type f -print \
|
||||||
|
-o -type d -print \
|
||||||
|
-o -type l -print 2> /dev/null | sed 's@^\./@@'"
|
||||||
|
|
||||||
|
begin
|
||||||
|
eval "$FZF_FIND_FILE_COMMAND | "(__fzfcmd) "-m $FZF_DEFAULT_OPTS $FZF_FIND_FILE_OPTS --query \"$fzf_query\"" | while read -l s; set results $results $s; end
|
||||||
|
end
|
||||||
|
|
||||||
|
if test -z "$results"
|
||||||
|
commandline -f repaint
|
||||||
|
return
|
||||||
|
else
|
||||||
|
commandline -t ""
|
||||||
|
end
|
||||||
|
|
||||||
|
for result in $results
|
||||||
|
commandline -it -- (string escape $result)
|
||||||
|
commandline -it -- " "
|
||||||
|
end
|
||||||
|
commandline -f repaint
|
||||||
|
end
|
||||||
17
config/fish/functions/__fzf_get_dir.fish
Normal file
17
config/fish/functions/__fzf_get_dir.fish
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
function __fzf_get_dir -d 'Find the longest existing filepath from input string'
|
||||||
|
set dir $argv
|
||||||
|
|
||||||
|
# Strip all trailing slashes. Ignore if $dir is root dir (/)
|
||||||
|
if test (string length $dir) -gt 1
|
||||||
|
set dir (string replace -r '/*$' '' $dir)
|
||||||
|
end
|
||||||
|
|
||||||
|
# Iteratively check if dir exists and strip tail end of path
|
||||||
|
while test ! -d "$dir"
|
||||||
|
# If path is absolute, this can keep going until ends up at /
|
||||||
|
# If path is relative, this can keep going until entire input is consumed, dirname returns "."
|
||||||
|
set dir (dirname "$dir")
|
||||||
|
end
|
||||||
|
|
||||||
|
echo $dir
|
||||||
|
end
|
||||||
63
config/fish/functions/__fzf_open.fish
Normal file
63
config/fish/functions/__fzf_open.fish
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
function __fzf_open -d "Open files and directories."
|
||||||
|
function __fzf_open_get_open_cmd -d "Find appropriate open command."
|
||||||
|
if type -q xdg-open
|
||||||
|
echo "xdg-open"
|
||||||
|
else if type -q open
|
||||||
|
echo "open"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
set -l commandline (__fzf_parse_commandline)
|
||||||
|
set -l dir $commandline[1]
|
||||||
|
set -l fzf_query $commandline[2]
|
||||||
|
|
||||||
|
if not type -q argparse
|
||||||
|
set created_argparse
|
||||||
|
function argparse
|
||||||
|
functions -e argparse # deletes itself
|
||||||
|
end
|
||||||
|
if contains -- --editor $argv; or contains -- -e $argv
|
||||||
|
set _flag_editor "yes"
|
||||||
|
end
|
||||||
|
if contains -- --preview $argv; or contains -- -p $argv
|
||||||
|
set _flag_preview "yes"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
set -l options "e/editor" "p/preview=?"
|
||||||
|
argparse $options -- $argv
|
||||||
|
|
||||||
|
set -l preview_cmd
|
||||||
|
if set -q FZF_ENABLE_OPEN_PREVIEW
|
||||||
|
set preview_cmd "--preview-window=right:wrap --preview='fish -c \"__fzf_complete_preview {}\"'"
|
||||||
|
end
|
||||||
|
|
||||||
|
set -q FZF_OPEN_COMMAND
|
||||||
|
or set -l FZF_OPEN_COMMAND "
|
||||||
|
command find -L \$dir -mindepth 1 \\( -path \$dir'*/\\.*' -o -fstype 'sysfs' -o -fstype 'devfs' -o -fstype 'devtmpfs' \\) -prune \
|
||||||
|
-o -type f -print \
|
||||||
|
-o -type d -print \
|
||||||
|
-o -type l -print 2> /dev/null | sed 's@^\./@@'"
|
||||||
|
|
||||||
|
set -l select (eval "$FZF_OPEN_COMMAND | "(__fzfcmd) $preview_cmd "-m $FZF_DEFAULT_OPTS $FZF_OPEN_OPTS --query \"$fzf_query\"" | string escape)
|
||||||
|
|
||||||
|
# set how to open
|
||||||
|
set -l open_cmd
|
||||||
|
if set -q _flag_editor
|
||||||
|
set open_cmd "$EDITOR"
|
||||||
|
else
|
||||||
|
set open_cmd (__fzf_open_get_open_cmd)
|
||||||
|
if test -z "$open_cmd"
|
||||||
|
echo "Couldn't find appropriate open command to use. Do you have 'xdg-open' or 'open' installed?"; and return 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
set -l open_status 0
|
||||||
|
if not test -z "$select"
|
||||||
|
commandline "$open_cmd $select"; and commandline -f execute
|
||||||
|
set open_status $status
|
||||||
|
end
|
||||||
|
|
||||||
|
commandline -f repaint
|
||||||
|
return $open_status
|
||||||
|
end
|
||||||
23
config/fish/functions/__fzf_parse_commandline.fish
Normal file
23
config/fish/functions/__fzf_parse_commandline.fish
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
function __fzf_parse_commandline -d 'Parse the current command line token and return split of existing filepath and rest of token'
|
||||||
|
# eval is used to do shell expansion on paths
|
||||||
|
set -l commandline (eval "printf '%s' "(commandline -t))
|
||||||
|
|
||||||
|
if test -z $commandline
|
||||||
|
# Default to current directory with no --query
|
||||||
|
set dir '.'
|
||||||
|
set fzf_query ''
|
||||||
|
else
|
||||||
|
set dir (__fzf_get_dir $commandline)
|
||||||
|
|
||||||
|
if test "$dir" = "." -a (string sub -l 1 $commandline) != '.'
|
||||||
|
# if $dir is "." but commandline is not a relative path, this means no file path found
|
||||||
|
set fzf_query $commandline
|
||||||
|
else
|
||||||
|
# Also remove trailing slash after dir, to "split" input properly
|
||||||
|
set fzf_query (string replace -r "^$dir/?" '' "$commandline")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
echo $dir
|
||||||
|
echo $fzf_query
|
||||||
|
end
|
||||||
6
config/fish/functions/__fzf_reverse_isearch.fish
Normal file
6
config/fish/functions/__fzf_reverse_isearch.fish
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
function __fzf_reverse_isearch
|
||||||
|
history merge
|
||||||
|
history -z | eval (__fzfcmd) --read0 --print0 --tiebreak=index --toggle-sort=ctrl-r $FZF_DEFAULT_OPTS $FZF_REVERSE_ISEARCH_OPTS -q '(commandline)' | read -lz result
|
||||||
|
and commandline -- $result
|
||||||
|
commandline -f repaint
|
||||||
|
end
|
||||||
9
config/fish/functions/__fzfcmd.fish
Normal file
9
config/fish/functions/__fzfcmd.fish
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
function __fzfcmd
|
||||||
|
set -q FZF_TMUX; or set FZF_TMUX 0
|
||||||
|
set -q FZF_TMUX_HEIGHT; or set FZF_TMUX_HEIGHT 40%
|
||||||
|
if test $FZF_TMUX -eq 1
|
||||||
|
echo "fzf-tmux -d$FZF_TMUX_HEIGHT"
|
||||||
|
else
|
||||||
|
echo "fzf"
|
||||||
|
end
|
||||||
|
end
|
||||||
29
config/fish/functions/bass.fish
Normal file
29
config/fish/functions/bass.fish
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
function bass
|
||||||
|
set -l bash_args $argv
|
||||||
|
set -l bass_debug
|
||||||
|
if test "$bash_args[1]_" = '-d_'
|
||||||
|
set bass_debug true
|
||||||
|
set -e bash_args[1]
|
||||||
|
end
|
||||||
|
|
||||||
|
set -l script_file (mktemp)
|
||||||
|
if command -v python3 >/dev/null 2>&1
|
||||||
|
command python3 -sS (dirname (status -f))/__bass.py $bash_args 3>$script_file
|
||||||
|
else
|
||||||
|
command python -sS (dirname (status -f))/__bass.py $bash_args 3>$script_file
|
||||||
|
end
|
||||||
|
set -l bass_status $status
|
||||||
|
if test $bass_status -ne 0
|
||||||
|
return $bass_status
|
||||||
|
end
|
||||||
|
|
||||||
|
if test -n "$bass_debug"
|
||||||
|
cat $script_file
|
||||||
|
end
|
||||||
|
source $script_file
|
||||||
|
command rm $script_file
|
||||||
|
end
|
||||||
|
|
||||||
|
function __bass_usage
|
||||||
|
echo "Usage: bass [-d] <bash-command>"
|
||||||
|
end
|
||||||
3
config/fish/functions/bx.fish
Normal file
3
config/fish/functions/bx.fish
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
function bx
|
||||||
|
command bundle exec $argv
|
||||||
|
end
|
||||||
97
config/fish/functions/fish_prompt.fish
Normal file
97
config/fish/functions/fish_prompt.fish
Normal file
@@ -0,0 +1,97 @@
|
|||||||
|
function fish_prompt --description 'Write out the prompt'
|
||||||
|
set -l last_status $status
|
||||||
|
|
||||||
|
if not set -q __fish_git_prompt_show_informative_status
|
||||||
|
set -g __fish_git_prompt_show_informative_status 1
|
||||||
|
end
|
||||||
|
if not set -q __fish_git_prompt_hide_untrackedfiles
|
||||||
|
set -g __fish_git_prompt_hide_untrackedfiles 1
|
||||||
|
end
|
||||||
|
|
||||||
|
if not set -q __fish_git_prompt_color_branch
|
||||||
|
set -g __fish_git_prompt_color_branch magenta --bold
|
||||||
|
end
|
||||||
|
if not set -q __fish_git_prompt_showupstream
|
||||||
|
set -g __fish_git_prompt_showupstream "informative"
|
||||||
|
end
|
||||||
|
if not set -q __fish_git_prompt_char_upstream_ahead
|
||||||
|
set -g __fish_git_prompt_char_upstream_ahead "↑"
|
||||||
|
end
|
||||||
|
if not set -q __fish_git_prompt_char_upstream_behind
|
||||||
|
set -g __fish_git_prompt_char_upstream_behind "↓"
|
||||||
|
end
|
||||||
|
if not set -q __fish_git_prompt_char_upstream_prefix
|
||||||
|
set -g __fish_git_prompt_char_upstream_prefix ""
|
||||||
|
end
|
||||||
|
|
||||||
|
if not set -q __fish_git_prompt_char_stagedstate
|
||||||
|
set -g __fish_git_prompt_char_stagedstate "●"
|
||||||
|
end
|
||||||
|
if not set -q __fish_git_prompt_char_dirtystate
|
||||||
|
set -g __fish_git_prompt_char_dirtystate "✚"
|
||||||
|
end
|
||||||
|
if not set -q __fish_git_prompt_char_untrackedfiles
|
||||||
|
set -g __fish_git_prompt_char_untrackedfiles "…"
|
||||||
|
end
|
||||||
|
if not set -q __fish_git_prompt_char_invalidstate
|
||||||
|
set -g __fish_git_prompt_char_invalidstate "✖"
|
||||||
|
end
|
||||||
|
if not set -q __fish_git_prompt_char_cleanstate
|
||||||
|
set -g __fish_git_prompt_char_cleanstate "✔"
|
||||||
|
end
|
||||||
|
|
||||||
|
if not set -q __fish_git_prompt_color_dirtystate
|
||||||
|
set -g __fish_git_prompt_color_dirtystate blue
|
||||||
|
end
|
||||||
|
if not set -q __fish_git_prompt_color_stagedstate
|
||||||
|
set -g __fish_git_prompt_color_stagedstate yellow
|
||||||
|
end
|
||||||
|
if not set -q __fish_git_prompt_color_invalidstate
|
||||||
|
set -g __fish_git_prompt_color_invalidstate red
|
||||||
|
end
|
||||||
|
if not set -q __fish_git_prompt_color_untrackedfiles
|
||||||
|
set -g __fish_git_prompt_color_untrackedfiles $fish_color_normal
|
||||||
|
end
|
||||||
|
if not set -q __fish_git_prompt_color_cleanstate
|
||||||
|
set -g __fish_git_prompt_color_cleanstate green --bold
|
||||||
|
end
|
||||||
|
|
||||||
|
if not set -q __fish_prompt_normal
|
||||||
|
set -g __fish_prompt_normal (set_color normal)
|
||||||
|
end
|
||||||
|
|
||||||
|
set -l color_cwd
|
||||||
|
set -l prefix
|
||||||
|
set -l suffix
|
||||||
|
switch "$USER"
|
||||||
|
case root toor
|
||||||
|
if set -q fish_color_cwd_root
|
||||||
|
set color_cwd $fish_color_cwd_root
|
||||||
|
else
|
||||||
|
set color_cwd $fish_color_cwd
|
||||||
|
end
|
||||||
|
set suffix '#'
|
||||||
|
case '*'
|
||||||
|
set color_cwd $fish_color_cwd
|
||||||
|
set suffix '$'
|
||||||
|
end
|
||||||
|
|
||||||
|
# PWD
|
||||||
|
set_color $color_cwd
|
||||||
|
echo -n (prompt_pwd)
|
||||||
|
set_color normal
|
||||||
|
|
||||||
|
printf '%s ' (__fish_vcs_prompt)
|
||||||
|
|
||||||
|
if not test $last_status -eq 0
|
||||||
|
set_color $fish_color_error
|
||||||
|
echo -n "[$last_status] "
|
||||||
|
set_color normal
|
||||||
|
end
|
||||||
|
|
||||||
|
if set -q SSH_TTY
|
||||||
|
set -g fish_color_host brred
|
||||||
|
end
|
||||||
|
|
||||||
|
echo -n "$suffix "
|
||||||
|
end
|
||||||
430
config/fish/functions/fisher.fish
Normal file
430
config/fish/functions/fisher.fish
Normal file
@@ -0,0 +1,430 @@
|
|||||||
|
set -g fisher_version 3.2.9
|
||||||
|
|
||||||
|
function fisher -a cmd -d "fish package manager"
|
||||||
|
set -q XDG_CACHE_HOME; or set XDG_CACHE_HOME ~/.cache
|
||||||
|
set -q XDG_CONFIG_HOME; or set XDG_CONFIG_HOME ~/.config
|
||||||
|
|
||||||
|
set -g fish_config $XDG_CONFIG_HOME/fish
|
||||||
|
set -g fisher_cache $XDG_CACHE_HOME/fisher
|
||||||
|
set -g fisher_config $XDG_CONFIG_HOME/fisher
|
||||||
|
|
||||||
|
set -q fisher_path; or set -g fisher_path $fish_config
|
||||||
|
|
||||||
|
for path in {$fish_config,$fisher_path}/{functions,completions,conf.d} $fisher_cache
|
||||||
|
if test ! -d $path
|
||||||
|
command mkdir -p $path
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if test ! -e $fisher_path/completions/fisher.fish
|
||||||
|
echo "fisher complete" >$fisher_path/completions/fisher.fish
|
||||||
|
_fisher_complete
|
||||||
|
end
|
||||||
|
|
||||||
|
if test -e $fisher_path/conf.d/fisher.fish
|
||||||
|
switch "$version"
|
||||||
|
case \*-\*
|
||||||
|
command rm -f $fisher_path/conf.d/fisher.fish
|
||||||
|
case 2\*
|
||||||
|
case \*
|
||||||
|
command rm -f $fisher_path/conf.d/fisher.fish
|
||||||
|
end
|
||||||
|
else
|
||||||
|
switch "$version"
|
||||||
|
case \*-\*
|
||||||
|
case 2\*
|
||||||
|
echo "fisher copy-user-key-bindings" >$fisher_path/conf.d/fisher.fish
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
switch "$cmd"
|
||||||
|
case {,self-}complete
|
||||||
|
_fisher_complete
|
||||||
|
case copy-user-key-bindings
|
||||||
|
_fisher_copy_user_key_bindings
|
||||||
|
case ls
|
||||||
|
set -e argv[1]
|
||||||
|
if test -s "$fisher_path/fishfile"
|
||||||
|
set -l file (_fisher_fmt <$fisher_path/fishfile | _fisher_parse -R | command sed "s|@.*||")
|
||||||
|
_fisher_ls | _fisher_fmt | command awk -v FILE="$file" "
|
||||||
|
BEGIN { for (n = split(FILE, f); ++i <= n;) file[f[i]] } \$0 in file && /$argv[1]/
|
||||||
|
" | command sed "s|^$HOME|~|"
|
||||||
|
end
|
||||||
|
case self-update
|
||||||
|
_fisher_self_update (status -f)
|
||||||
|
case self-uninstall
|
||||||
|
_fisher_self_uninstall
|
||||||
|
case {,-}-v{ersion,}
|
||||||
|
echo "fisher version $fisher_version" (status -f | command sed "s|^$HOME|~|")
|
||||||
|
case {,-}-h{elp,}
|
||||||
|
_fisher_help
|
||||||
|
case ""
|
||||||
|
_fisher_commit --
|
||||||
|
case add rm
|
||||||
|
if not isatty
|
||||||
|
while read -l arg
|
||||||
|
set argv $argv $arg
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if test (count $argv) = 1
|
||||||
|
echo "fisher: invalid number of arguments" >&2
|
||||||
|
_fisher_help >&2
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
|
||||||
|
_fisher_commit $argv
|
||||||
|
case \*
|
||||||
|
echo "fisher: unknown flag or command \"$cmd\"" >&2
|
||||||
|
_fisher_help >&2
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function _fisher_complete
|
||||||
|
complete -ec fisher
|
||||||
|
complete -xc fisher -n __fish_use_subcommand -a add -d "Add packages"
|
||||||
|
complete -xc fisher -n __fish_use_subcommand -a rm -d "Remove packages"
|
||||||
|
complete -xc fisher -n __fish_use_subcommand -a ls -d "List installed packages matching REGEX"
|
||||||
|
complete -xc fisher -n __fish_use_subcommand -a --help -d "Show usage help"
|
||||||
|
complete -xc fisher -n __fish_use_subcommand -a --version -d "$fisher_version"
|
||||||
|
complete -xc fisher -n __fish_use_subcommand -a self-update -d "Update to the latest version"
|
||||||
|
for pkg in (fisher ls)
|
||||||
|
complete -xc fisher -n "__fish_seen_subcommand_from rm" -a $pkg
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function _fisher_copy_user_key_bindings
|
||||||
|
if functions -q fish_user_key_bindings
|
||||||
|
functions -c fish_user_key_bindings fish_user_key_bindings_copy
|
||||||
|
end
|
||||||
|
function fish_user_key_bindings
|
||||||
|
for file in $fisher_path/conf.d/*_key_bindings.fish
|
||||||
|
source $file >/dev/null 2>/dev/null
|
||||||
|
end
|
||||||
|
if functions -q fish_user_key_bindings_copy
|
||||||
|
fish_user_key_bindings_copy
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function _fisher_ls
|
||||||
|
for pkg in $fisher_config/*/*/*
|
||||||
|
command readlink $pkg; or echo $pkg
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function _fisher_fmt
|
||||||
|
command sed "s|^[[:space:]]*||;s|^$fisher_config/||;s|^~|$HOME|;s|^\.\/*|$PWD/|;s|^https*:/*||;s|^github\.com/||;s|/*\$||"
|
||||||
|
end
|
||||||
|
|
||||||
|
function _fisher_help
|
||||||
|
echo "usage: fisher add <package...> Add packages"
|
||||||
|
echo " fisher rm <package...> Remove packages"
|
||||||
|
echo " fisher Update all packages"
|
||||||
|
echo " fisher ls [<regex>] List installed packages matching <regex>"
|
||||||
|
echo " fisher --help Show this help"
|
||||||
|
echo " fisher --version Show the current version"
|
||||||
|
echo " fisher self-update Update to the latest version"
|
||||||
|
echo " fisher self-uninstall Uninstall from your system"
|
||||||
|
echo "examples:"
|
||||||
|
echo " fisher add jethrokuan/z rafaelrinaldi/pure"
|
||||||
|
echo " fisher add gitlab.com/foo/bar@v2"
|
||||||
|
echo " fisher add ~/path/to/local/pkg"
|
||||||
|
echo " fisher add <file"
|
||||||
|
echo " fisher rm rafaelrinaldi/pure"
|
||||||
|
echo " fisher ls | fisher rm"
|
||||||
|
echo " fisher ls fish-\*"
|
||||||
|
end
|
||||||
|
|
||||||
|
function _fisher_self_update -a file
|
||||||
|
set -l url "https://raw.githubusercontent.com/jorgebucaran/fisher/master/fisher.fish"
|
||||||
|
echo "fetching $url" >&2
|
||||||
|
command curl -s "$url?nocache" >$file.
|
||||||
|
|
||||||
|
set -l next_version (command awk '{ print $4 } { exit }' <$file.)
|
||||||
|
switch "$next_version"
|
||||||
|
case "" $fisher_version
|
||||||
|
command rm -f $file.
|
||||||
|
if test -z "$next_version"
|
||||||
|
echo "fisher: cannot update fisher -- are you offline?" >&2
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
echo "fisher is already up-to-date" >&2
|
||||||
|
case \*
|
||||||
|
echo "linking $file" | command sed "s|$HOME|~|" >&2
|
||||||
|
command mv -f $file. $file
|
||||||
|
source $file
|
||||||
|
echo "updated to fisher $fisher_version -- hooray!" >&2
|
||||||
|
_fisher_complete
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function _fisher_self_uninstall
|
||||||
|
for pkg in (_fisher_ls)
|
||||||
|
_fisher_rm $pkg
|
||||||
|
end
|
||||||
|
|
||||||
|
for file in $fisher_cache $fisher_config $fisher_path/{functions,completions,conf.d}/fisher.fish $fisher_path/fishfile
|
||||||
|
echo "removing $file"
|
||||||
|
command rm -Rf $file 2>/dev/null
|
||||||
|
end | command sed "s|$HOME|~|" >&2
|
||||||
|
|
||||||
|
for name in (set -n | command awk '/^fisher_/')
|
||||||
|
set -e "$name"
|
||||||
|
end
|
||||||
|
|
||||||
|
functions -e (functions -a | command awk '/^_fisher/') fisher
|
||||||
|
complete -c fisher --erase
|
||||||
|
end
|
||||||
|
|
||||||
|
function _fisher_commit -a cmd
|
||||||
|
set -e argv[1]
|
||||||
|
set -l elapsed (_fisher_now)
|
||||||
|
set -l fishfile $fisher_path/fishfile
|
||||||
|
|
||||||
|
if test ! -e "$fishfile"
|
||||||
|
command touch $fishfile
|
||||||
|
echo "created new fishfile in $fishfile" | command sed "s|$HOME|~|" >&2
|
||||||
|
end
|
||||||
|
|
||||||
|
set -l old_pkgs (_fisher_ls | _fisher_fmt)
|
||||||
|
for pkg in (_fisher_ls)
|
||||||
|
_fisher_rm $pkg
|
||||||
|
end
|
||||||
|
command rm -Rf $fisher_config
|
||||||
|
command mkdir -p $fisher_config
|
||||||
|
|
||||||
|
set -l next_pkgs (_fisher_fmt <$fishfile | _fisher_parse -R $cmd (printf "%s\n" $argv | _fisher_fmt))
|
||||||
|
set -l actual_pkgs (_fisher_fetch $next_pkgs)
|
||||||
|
set -l updated_pkgs
|
||||||
|
for pkg in $old_pkgs
|
||||||
|
if contains -- $pkg $actual_pkgs
|
||||||
|
set updated_pkgs $updated_pkgs $pkg
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if test -z "$actual_pkgs$updated_pkgs$old_pkgs$next_pkgs"
|
||||||
|
echo "fisher: nothing to commit -- try adding some packages" >&2
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
|
||||||
|
set -l out_pkgs
|
||||||
|
if test "$cmd" = "rm"
|
||||||
|
set out_pkgs $next_pkgs
|
||||||
|
else
|
||||||
|
for pkg in $next_pkgs
|
||||||
|
if contains -- (echo $pkg | command sed "s|@.*||") $actual_pkgs
|
||||||
|
set out_pkgs $out_pkgs $pkg
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
printf "%s\n" (_fisher_fmt <$fishfile | _fisher_parse -W $cmd $out_pkgs | command sed "s|^$HOME|~|") >$fishfile
|
||||||
|
|
||||||
|
_fisher_complete
|
||||||
|
|
||||||
|
command awk -v A=(count $actual_pkgs) -v U=(count $updated_pkgs) -v O=(count $old_pkgs) -v E=(_fisher_now $elapsed) '
|
||||||
|
BEGIN {
|
||||||
|
res = fmt("removed", O - U, fmt("updated", U, fmt("added", A - U)))
|
||||||
|
printf((res ? res : "done") " in %.2fs\n", E / 1000)
|
||||||
|
}
|
||||||
|
function fmt(action, n, s) {
|
||||||
|
return n ? (s ? s ", " : s) action " " n " package" (n > 1 ? "s" : "") : s
|
||||||
|
}
|
||||||
|
' >&2
|
||||||
|
end
|
||||||
|
|
||||||
|
function _fisher_parse -a mode cmd
|
||||||
|
set -e argv[1..2]
|
||||||
|
command awk -v FS="[[:space:]]*#+" -v MODE="$mode" -v CMD="$cmd" -v ARGSTR="$argv" '
|
||||||
|
BEGIN {
|
||||||
|
for (n = split(ARGSTR, a, " "); i++ < n;) pkgs[getkey(a[i])] = a[i]
|
||||||
|
}
|
||||||
|
!NF { next } { k = getkey($1) }
|
||||||
|
MODE == "-R" && !(k in pkgs) && $0 = $1
|
||||||
|
MODE == "-W" && (/^#/ || k in pkgs || CMD != "rm") { print pkgs[k] (sub($1, "") ? $0 : "") }
|
||||||
|
MODE == "-W" || CMD == "rm" { delete pkgs[k] }
|
||||||
|
END {
|
||||||
|
for (k in pkgs) {
|
||||||
|
if (CMD != "rm" || MODE == "-W") print pkgs[k]
|
||||||
|
else print "fisher: cannot remove \""k"\" -- package is not in fishfile" > "/dev/stderr"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function getkey(s, a) {
|
||||||
|
return (split(s, a, /@+|:/) > 2) ? a[2]"/"a[1]"/"a[3] : a[1]
|
||||||
|
}
|
||||||
|
'
|
||||||
|
end
|
||||||
|
|
||||||
|
function _fisher_fetch
|
||||||
|
set -l pkg_jobs
|
||||||
|
set -l out_pkgs
|
||||||
|
set -l next_pkgs
|
||||||
|
set -l local_pkgs
|
||||||
|
set -q fisher_user_api_token; and set -l curl_opts -u $fisher_user_api_token
|
||||||
|
|
||||||
|
for pkg in $argv
|
||||||
|
switch $pkg
|
||||||
|
case \~\* /\*
|
||||||
|
set -l path (echo "$pkg" | command sed "s|^~|$HOME|")
|
||||||
|
if test -e "$path"
|
||||||
|
set local_pkgs $local_pkgs $path
|
||||||
|
else
|
||||||
|
echo "fisher: cannot add \"$pkg\" -- is this a valid file?" >&2
|
||||||
|
end
|
||||||
|
continue
|
||||||
|
end
|
||||||
|
|
||||||
|
command awk -v PKG="$pkg" -v FS=/ '
|
||||||
|
BEGIN {
|
||||||
|
if (split(PKG, tmp, /@+|:/) > 2) {
|
||||||
|
if (tmp[4]) sub("@"tmp[4], "", PKG)
|
||||||
|
print PKG "\t" tmp[2]"/"tmp[1]"/"tmp[3] "\t" (tmp[4] ? tmp[4] : "master")
|
||||||
|
} else {
|
||||||
|
pkg = split(PKG, _, "/") <= 2 ? "github.com/"tmp[1] : tmp[1]
|
||||||
|
tag = tmp[2] ? tmp[2] : "master"
|
||||||
|
print (\
|
||||||
|
pkg ~ /^github/ ? "https://codeload."pkg"/tar.gz/"tag : \
|
||||||
|
pkg ~ /^gitlab/ ? "https://"pkg"/-/archive/"tag"/"tmp[split(pkg, tmp, "/")]"-"tag".tar.gz" : \
|
||||||
|
pkg ~ /^bitbucket/ ? "https://"pkg"/get/"tag".tar.gz" : pkg \
|
||||||
|
) "\t" pkg
|
||||||
|
}
|
||||||
|
}
|
||||||
|
' | read -l url pkg branch
|
||||||
|
|
||||||
|
if test ! -d "$fisher_config/$pkg"
|
||||||
|
fish -c "
|
||||||
|
echo fetching $url >&2
|
||||||
|
command mkdir -p $fisher_config/$pkg $fisher_cache/(command dirname $pkg)
|
||||||
|
if test ! -z \"$branch\"
|
||||||
|
command git clone $url $fisher_config/$pkg --branch $branch --depth 1 2>/dev/null
|
||||||
|
or echo fisher: cannot clone \"$url\" -- is this a valid url\? >&2
|
||||||
|
else if command curl $curl_opts -Ss -w \"\" $url 2>&1 | command tar -xzf- -C $fisher_config/$pkg 2>/dev/null
|
||||||
|
command rm -Rf $fisher_cache/$pkg
|
||||||
|
command mv -f $fisher_config/$pkg/* $fisher_cache/$pkg
|
||||||
|
command rm -Rf $fisher_config/$pkg
|
||||||
|
command cp -Rf {$fisher_cache,$fisher_config}/$pkg
|
||||||
|
else if test -d \"$fisher_cache/$pkg\"
|
||||||
|
echo fisher: cannot connect to server -- looking in \"$fisher_cache/$pkg\" | command sed 's|$HOME|~|' >&2
|
||||||
|
command cp -Rf $fisher_cache/$pkg $fisher_config/$pkg/..
|
||||||
|
else
|
||||||
|
command rm -Rf $fisher_config/$pkg
|
||||||
|
echo fisher: cannot add \"$pkg\" -- is this a valid package\? >&2
|
||||||
|
end
|
||||||
|
" >/dev/null &
|
||||||
|
set pkg_jobs $pkg_jobs (_fisher_jobs --last)
|
||||||
|
set next_pkgs $next_pkgs "$fisher_config/$pkg"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if set -q pkg_jobs[1]
|
||||||
|
while for job in $pkg_jobs
|
||||||
|
contains -- $job (_fisher_jobs); and break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
for pkg in $next_pkgs
|
||||||
|
if test -d "$pkg"
|
||||||
|
set out_pkgs $out_pkgs $pkg
|
||||||
|
_fisher_add $pkg
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
set -l local_prefix $fisher_config/local/$USER
|
||||||
|
if test ! -d "$local_prefix"
|
||||||
|
command mkdir -p $local_prefix
|
||||||
|
end
|
||||||
|
for pkg in $local_pkgs
|
||||||
|
set -l target $local_prefix/(command basename $pkg)
|
||||||
|
if test ! -L "$target"
|
||||||
|
command ln -sf $pkg $target
|
||||||
|
set out_pkgs $out_pkgs $pkg
|
||||||
|
_fisher_add $pkg --link
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if set -q out_pkgs[1]
|
||||||
|
_fisher_fetch (
|
||||||
|
for pkg in $out_pkgs
|
||||||
|
if test -s "$pkg/fishfile"
|
||||||
|
_fisher_fmt <$pkg/fishfile | _fisher_parse -R
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
printf "%s\n" $out_pkgs | _fisher_fmt
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function _fisher_add -a pkg opts
|
||||||
|
for src in $pkg/{functions,completions,conf.d}/**.* $pkg/*.fish
|
||||||
|
set -l target (command basename $src)
|
||||||
|
switch $src
|
||||||
|
case $pkg/conf.d\*
|
||||||
|
set target $fisher_path/conf.d/$target
|
||||||
|
case $pkg/completions\*
|
||||||
|
set target $fisher_path/completions/$target
|
||||||
|
case $pkg/{functions,}\*
|
||||||
|
switch $target
|
||||||
|
case uninstall.fish
|
||||||
|
continue
|
||||||
|
case {init,key_bindings}.fish
|
||||||
|
set target $fisher_path/conf.d/(command basename $pkg)\_$target
|
||||||
|
case \*
|
||||||
|
set target $fisher_path/functions/$target
|
||||||
|
end
|
||||||
|
end
|
||||||
|
echo "linking $target" | command sed "s|$HOME|~|" >&2
|
||||||
|
if set -q opts[1]
|
||||||
|
command ln -sf $src $target
|
||||||
|
else
|
||||||
|
command cp -f $src $target
|
||||||
|
end
|
||||||
|
switch $target
|
||||||
|
case \*.fish
|
||||||
|
source $target >/dev/null 2>/dev/null
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function _fisher_rm -a pkg
|
||||||
|
for src in $pkg/{conf.d,completions,functions}/**.* $pkg/*.fish
|
||||||
|
set -l target (command basename $src)
|
||||||
|
set -l filename (command basename $target .fish)
|
||||||
|
switch $src
|
||||||
|
case $pkg/conf.d\*
|
||||||
|
test "$filename.fish" = "$target"; and emit "$filename"_uninstall
|
||||||
|
set target conf.d/$target
|
||||||
|
case $pkg/completions\*
|
||||||
|
test "$filename.fish" = "$target"; and complete -ec $filename
|
||||||
|
set target completions/$target
|
||||||
|
case $pkg/{,functions}\*
|
||||||
|
test "$filename.fish" = "$target"; and functions -e $filename
|
||||||
|
switch $target
|
||||||
|
case uninstall.fish
|
||||||
|
source $src
|
||||||
|
continue
|
||||||
|
case {init,key_bindings}.fish
|
||||||
|
set target conf.d/(command basename $pkg)\_$target
|
||||||
|
case \*
|
||||||
|
set target functions/$target
|
||||||
|
end
|
||||||
|
end
|
||||||
|
command rm -f $fisher_path/$target
|
||||||
|
end
|
||||||
|
if not functions -q fish_prompt
|
||||||
|
source "$__fish_datadir$__fish_data_dir/functions/fish_prompt.fish"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function _fisher_jobs
|
||||||
|
jobs $argv | command awk '/^[0-9]+\t/ { print $1 }'
|
||||||
|
end
|
||||||
|
|
||||||
|
function _fisher_now -a elapsed
|
||||||
|
switch (command uname)
|
||||||
|
case Darwin \*BSD
|
||||||
|
command perl -MTime::HiRes -e 'printf("%.0f\n", (Time::HiRes::time() * 1000) - $ARGV[0])' $elapsed
|
||||||
|
case \*
|
||||||
|
math (command date "+%s%3N") - "0$elapsed"
|
||||||
|
end
|
||||||
|
end
|
||||||
9
config/fish/functions/fuck.fish
Normal file
9
config/fish/functions/fuck.fish
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
function fuck -d "Correct your previous console command"
|
||||||
|
set -l fucked_up_command $history[1]
|
||||||
|
env TF_SHELL=fish TF_ALIAS=fuck PYTHONIOENCODING=utf-8 thefuck $fucked_up_command | read -l unfucked_command
|
||||||
|
if [ "$unfucked_command" != "" ]
|
||||||
|
eval $unfucked_command
|
||||||
|
builtin history delete --exact --case-sensitive -- $fucked_up_command
|
||||||
|
builtin history merge ^ /dev/null
|
||||||
|
end
|
||||||
|
end
|
||||||
57
config/fish/functions/gh.fish
Normal file
57
config/fish/functions/gh.fish
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
# https://github.com/oguzbilgic/dotfiles/blob/master/config/fish/functions/gh.fish
|
||||||
|
# Save this as ./config/fish/functions/gh.fish
|
||||||
|
|
||||||
|
# Prints the remote url
|
||||||
|
# Example: git@github.com:oguzbilgic/dotfiles.git
|
||||||
|
function origin
|
||||||
|
echo (git remote get-url origin)
|
||||||
|
end
|
||||||
|
|
||||||
|
# Prints the origin and remote
|
||||||
|
# Example: oguzbilgic/dotfiles
|
||||||
|
function org_repo
|
||||||
|
echo (origin | python -c "import sys; url = sys.stdin.readlines()[0].strip(); print url.split(':')[1][:-4]")
|
||||||
|
end
|
||||||
|
|
||||||
|
# Prints the current branch name
|
||||||
|
# Example: master
|
||||||
|
function branch
|
||||||
|
echo (git rev-parse --abbrev-ref HEAD)
|
||||||
|
end
|
||||||
|
|
||||||
|
# Prints the current branch name
|
||||||
|
# Example: 2cc1aad3e961ca57f6d96498d5fe70a31d9f17f0
|
||||||
|
function commit
|
||||||
|
echo (git rev-parse HEAD)
|
||||||
|
end
|
||||||
|
|
||||||
|
# Easily open Github from your command line
|
||||||
|
#
|
||||||
|
# Commands:
|
||||||
|
# gh opens the current branch
|
||||||
|
# gh [file] opens the file for the current branch (ie. gh README.md)
|
||||||
|
# gh issues opens the issues page
|
||||||
|
# gh pulls opens the pull requests page
|
||||||
|
# gh actions opens the actions page
|
||||||
|
# gh compare opens the compare for the current branch
|
||||||
|
# gh commit opens the last commit of the current branch
|
||||||
|
# gh commits opens the commits page for the current branch
|
||||||
|
function gh
|
||||||
|
if test (count $argv) -lt 1
|
||||||
|
open "https://github.com/"(org_repo)"/tree/"(branch)
|
||||||
|
else if test -f $argv[1]
|
||||||
|
open "https://github.com/"(org_repo)"/blob/"(commit)"/"(echo $argv[1])
|
||||||
|
else if test $argv[1] = "issues"
|
||||||
|
open "https://github.com/"(org_repo)"/issues"
|
||||||
|
else if test $argv[1] = "pulls"
|
||||||
|
open "https://github.com/"(org_repo)"/issues"
|
||||||
|
else if test $argv[1] = "actions"
|
||||||
|
open "https://github.com/"(org_repo)"/issues"
|
||||||
|
else if test $argv[1] = "compare"
|
||||||
|
open "https://github.com/"(org_repo)"/compare/"(branch)
|
||||||
|
else if test $argv[1] = "commits"
|
||||||
|
open "https://github.com/"(org_repo)"/commits/"(branch)
|
||||||
|
else if test $argv[1] = "commit"
|
||||||
|
open "https://github.com/"(org_repo)"/commit/"(commit)
|
||||||
|
end
|
||||||
|
end
|
||||||
3
config/fish/functions/hors.fish
Normal file
3
config/fish/functions/hors.fish
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
function hors
|
||||||
|
command hors -c "$argv"
|
||||||
|
end
|
||||||
16
config/fish/functions/load_nvm.fish
Normal file
16
config/fish/functions/load_nvm.fish
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
function load_nvm --on-variable="PWD"
|
||||||
|
set -l default_node_version (nvm version default)
|
||||||
|
set -l node_version (nvm version)
|
||||||
|
set -l nvmrc_path (nvm_find_nvmrc)
|
||||||
|
if test -n "$nvmrc_path"
|
||||||
|
set -l nvmrc_node_version (nvm version (cat $nvmrc_path))
|
||||||
|
if test "$nvmrc_node_version" = "N/A"
|
||||||
|
nvm install (cat $nvmrc_path)
|
||||||
|
else if test "$nvmrc_node_version" != "$node_version"
|
||||||
|
nvm use $nvmrc_node_version
|
||||||
|
end
|
||||||
|
else if test "$node_version" != "$default_node_version"
|
||||||
|
echo "Reverting to default Node version"
|
||||||
|
nvm use default
|
||||||
|
end
|
||||||
|
end
|
||||||
3
config/fish/functions/nvm.fish
Normal file
3
config/fish/functions/nvm.fish
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
function nvm
|
||||||
|
bass source ~/.config/nvm/nvm.sh --no-use ';' nvm $argv
|
||||||
|
end
|
||||||
3
config/fish/functions/nvm_find_nvmrc.fish
Normal file
3
config/fish/functions/nvm_find_nvmrc.fish
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
function nvm_find_nvmrc
|
||||||
|
bass source ~/.config/nvm/nvm.sh --no-use ';' nvm_find_nvmrc
|
||||||
|
end
|
||||||
51
config/fish/functions/spark.fish
Normal file
51
config/fish/functions/spark.fish
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
set -g spark_version 1.0.0
|
||||||
|
|
||||||
|
complete -xc spark -n __fish_use_subcommand -a --help -d "Show usage help"
|
||||||
|
complete -xc spark -n __fish_use_subcommand -a --version -d "$spark_version"
|
||||||
|
complete -xc spark -n __fish_use_subcommand -a --min -d "Minimum range value"
|
||||||
|
complete -xc spark -n __fish_use_subcommand -a --max -d "Maximum range value"
|
||||||
|
|
||||||
|
function spark -d "sparkline generator"
|
||||||
|
if isatty
|
||||||
|
switch "$argv"
|
||||||
|
case {,-}-v{ersion,}
|
||||||
|
echo "spark version $spark_version"
|
||||||
|
case {,-}-h{elp,}
|
||||||
|
echo "usage: spark [--min=<n> --max=<n>] <numbers...> Draw sparklines"
|
||||||
|
echo "examples:"
|
||||||
|
echo " spark 1 2 3 4"
|
||||||
|
echo " seq 100 | sort -R | spark"
|
||||||
|
echo " awk \\\$0=length spark.fish | spark"
|
||||||
|
case \*
|
||||||
|
echo $argv | spark $argv
|
||||||
|
end
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
command awk -v FS="[[:space:],]*" -v argv="$argv" '
|
||||||
|
BEGIN {
|
||||||
|
min = match(argv, /--min=[0-9]+/) ? substr(argv, RSTART + 6, RLENGTH - 6) + 0 : ""
|
||||||
|
max = match(argv, /--max=[0-9]+/) ? substr(argv, RSTART + 6, RLENGTH - 6) + 0 : ""
|
||||||
|
}
|
||||||
|
{
|
||||||
|
for (i = j = 1; i <= NF; i++) {
|
||||||
|
if ($i ~ /^--/) continue
|
||||||
|
if ($i !~ /^-?[0-9]/) data[count + j++] = ""
|
||||||
|
else {
|
||||||
|
v = data[count + j++] = int($i)
|
||||||
|
if (max == "" && min == "") max = min = v
|
||||||
|
if (max < v) max = v
|
||||||
|
if (min > v ) min = v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
count += j - 1
|
||||||
|
}
|
||||||
|
END {
|
||||||
|
n = split(min == max && max ? "▅ ▅" : "▁ ▂ ▃ ▄ ▅ ▆ ▇ █", blocks, " ")
|
||||||
|
scale = (scale = int(256 * (max - min) / (n - 1))) ? scale : 1
|
||||||
|
for (i = 1; i <= count; i++)
|
||||||
|
out = out (data[i] == "" ? " " : blocks[idx = int(256 * (data[i] - min) / scale) + 1])
|
||||||
|
print out
|
||||||
|
}
|
||||||
|
'
|
||||||
|
end
|
||||||
3
config/fish/functions/su.fish
Normal file
3
config/fish/functions/su.fish
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
function su
|
||||||
|
command su --shell=/bin/fish $argv
|
||||||
|
end
|
||||||
3
config/fish/functions/sudosu.fish
Normal file
3
config/fish/functions/sudosu.fish
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
function sudosu
|
||||||
|
command sudo su --shell=/bin/fish -
|
||||||
|
end
|
||||||
3
config/fish/functions/time.fish
Normal file
3
config/fish/functions/time.fish
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
function time
|
||||||
|
command time --portability $argv
|
||||||
|
end
|
||||||
10
config/fontconfig/fonts.conf
Normal file
10
config/fontconfig/fonts.conf
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
<?xml version='1.0'?>
|
||||||
|
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
|
||||||
|
<fontconfig>
|
||||||
|
<match>
|
||||||
|
<test name="family"><string>Iosevka Term</string></test>
|
||||||
|
<edit name="family" mode="assign" binding="strong">
|
||||||
|
<string>Iosevka Custom</string>
|
||||||
|
</edit>
|
||||||
|
</match>
|
||||||
|
</fontconfig>
|
||||||
277
config/foot/foot.ini
Normal file
277
config/foot/foot.ini
Normal file
@@ -0,0 +1,277 @@
|
|||||||
|
# -*- conf -*-
|
||||||
|
|
||||||
|
shell=fish
|
||||||
|
term=xterm-256color
|
||||||
|
# term=foot (or xterm-256color if built with -Dterminfo=disabled)
|
||||||
|
# login-shell=no
|
||||||
|
|
||||||
|
# app-id=foot # globally set wayland app-id. Default values are "foot" and "footclient" for desktop and server mode
|
||||||
|
# title=foot
|
||||||
|
# locked-title=no
|
||||||
|
|
||||||
|
font=Iosevka Custom:size=12
|
||||||
|
# font-bold=<bold variant of regular font>
|
||||||
|
# font-italic=<italic variant of regular font>
|
||||||
|
# font-bold-italic=<bold+italic variant of regular font>
|
||||||
|
# font-size-adjustment=0.5
|
||||||
|
# line-height=0.9
|
||||||
|
# letter-spacing=0
|
||||||
|
# horizontal-letter-offset=0
|
||||||
|
# vertical-letter-offset=0
|
||||||
|
# underline-offset=<font metrics>
|
||||||
|
# underline-thickness=<font underline thickness>
|
||||||
|
# strikeout-thickness=<font strikeout thickness>
|
||||||
|
# box-drawings-uses-font-glyphs=no
|
||||||
|
# dpi-aware=no
|
||||||
|
|
||||||
|
# initial-window-size-pixels=700x500 # Or,
|
||||||
|
# initial-window-size-chars=<COLSxROWS>
|
||||||
|
# initial-window-mode=windowed
|
||||||
|
# pad=0x0 # optionally append 'center'
|
||||||
|
# resize-by-cells=yes
|
||||||
|
# resize-keep-grid=yes
|
||||||
|
# resize-delay-ms=100
|
||||||
|
|
||||||
|
# bold-text-in-bright=no
|
||||||
|
# word-delimiters=,│`|:"'()[]{}<>
|
||||||
|
# selection-target=primary
|
||||||
|
workers=4
|
||||||
|
# utmp-helper=/usr/lib/utempter/utempter # When utmp backend is ‘libutempter’ (Linux)
|
||||||
|
# utmp-helper=/usr/libexec/ulog-helper # When utmp backend is ‘ulog’ (FreeBSD)
|
||||||
|
|
||||||
|
[colors]
|
||||||
|
background=282828
|
||||||
|
foreground=ebdbb2
|
||||||
|
regular0=282828
|
||||||
|
regular1=cc241d
|
||||||
|
regular2=98971a
|
||||||
|
regular3=d79921
|
||||||
|
regular4=458588
|
||||||
|
regular5=b16286
|
||||||
|
regular6=689d6a
|
||||||
|
regular7=a89984
|
||||||
|
bright0=928374
|
||||||
|
bright1=fb4934
|
||||||
|
bright2=b8bb26
|
||||||
|
bright3=fabd2f
|
||||||
|
bright4=83a598
|
||||||
|
bright5=d3869b
|
||||||
|
bright6=8ec07c
|
||||||
|
bright7=ebdbb2
|
||||||
|
|
||||||
|
[environment]
|
||||||
|
# name=value
|
||||||
|
|
||||||
|
[bell]
|
||||||
|
# urgent=no
|
||||||
|
# notify=no
|
||||||
|
# visual=no
|
||||||
|
# command=
|
||||||
|
# command-focused=no
|
||||||
|
|
||||||
|
[desktop-notifications]
|
||||||
|
# command=notify-send --wait --app-name ${app-id} --icon ${app-id} --category ${category} --urgency ${urgency} --expire-time ${expire-time} --hint STRING:image-path:${icon} --hint BOOLEAN:suppress-sound:${muted} --hint STRING:sound-name:${sound-name} --replace-id ${replace-id} ${action-argument} --print-id -- ${title} ${body}
|
||||||
|
# command-action-argument=--action ${action-name}=${action-label}
|
||||||
|
# close=""
|
||||||
|
# inhibit-when-focused=yes
|
||||||
|
|
||||||
|
|
||||||
|
[scrollback]
|
||||||
|
# lines=1000
|
||||||
|
# multiplier=3.0
|
||||||
|
# indicator-position=relative
|
||||||
|
# indicator-format=""
|
||||||
|
|
||||||
|
[url]
|
||||||
|
# launch=xdg-open ${url}
|
||||||
|
# label-letters=sadfjklewcmpgh
|
||||||
|
# osc8-underline=url-mode
|
||||||
|
# protocols=http, https, ftp, ftps, file, gemini, gopher
|
||||||
|
# uri-characters=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.,~:;/?#@!$&%*+="'()[]
|
||||||
|
|
||||||
|
[cursor]
|
||||||
|
# style=block
|
||||||
|
# color=<inverse foreground/background>
|
||||||
|
# blink=no
|
||||||
|
# blink-rate=500
|
||||||
|
# beam-thickness=1.5
|
||||||
|
# underline-thickness=<font underline thickness>
|
||||||
|
|
||||||
|
[mouse]
|
||||||
|
# hide-when-typing=no
|
||||||
|
# alternate-scroll-mode=yes
|
||||||
|
|
||||||
|
[touch]
|
||||||
|
# long-press-delay=400
|
||||||
|
|
||||||
|
[colors]
|
||||||
|
alpha=0.9
|
||||||
|
# background=242424
|
||||||
|
# foreground=ffffff
|
||||||
|
# flash=7f7f00
|
||||||
|
# flash-alpha=0.5
|
||||||
|
|
||||||
|
## Normal/regular colors (color palette 0-7)
|
||||||
|
# regular0=242424 # black
|
||||||
|
# regular1=f62b5a # red
|
||||||
|
# regular2=47b413 # green
|
||||||
|
# regular3=e3c401 # yellow
|
||||||
|
# regular4=24acd4 # blue
|
||||||
|
# regular5=f2affd # magenta
|
||||||
|
# regular6=13c299 # cyan
|
||||||
|
# regular7=e6e6e6 # white
|
||||||
|
|
||||||
|
## Bright colors (color palette 8-15)
|
||||||
|
# bright0=616161 # bright black
|
||||||
|
# bright1=ff4d51 # bright red
|
||||||
|
# bright2=35d450 # bright green
|
||||||
|
# bright3=e9e836 # bright yellow
|
||||||
|
# bright4=5dc5f8 # bright blue
|
||||||
|
# bright5=feabf2 # bright magenta
|
||||||
|
# bright6=24dfc4 # bright cyan
|
||||||
|
# bright7=ffffff # bright white
|
||||||
|
|
||||||
|
## dimmed colors (see foot.ini(5) man page)
|
||||||
|
# dim0=<not set>
|
||||||
|
# ...
|
||||||
|
# dim7=<not-set>
|
||||||
|
|
||||||
|
## The remaining 256-color palette
|
||||||
|
# 16 = <256-color palette #16>
|
||||||
|
# ...
|
||||||
|
# 255 = <256-color palette #255>
|
||||||
|
|
||||||
|
## Sixel colors
|
||||||
|
# sixel0 = 000000
|
||||||
|
# sixel1 = 3333cc
|
||||||
|
# sixel2 = cc2121
|
||||||
|
# sixel3 = 33cc33
|
||||||
|
# sixel4 = cc33cc
|
||||||
|
# sixel5 = 33cccc
|
||||||
|
# sixel6 = cccc33
|
||||||
|
# sixel7 = 878787
|
||||||
|
# sixel8 = 424242
|
||||||
|
# sixel9 = 545499
|
||||||
|
# sixel10 = 994242
|
||||||
|
# sixel11 = 549954
|
||||||
|
# sixel12 = 995499
|
||||||
|
# sixel13 = 549999
|
||||||
|
# sixel14 = 999954
|
||||||
|
# sixel15 = cccccc
|
||||||
|
|
||||||
|
## Misc colors
|
||||||
|
# selection-foreground=<inverse foreground/background>
|
||||||
|
# selection-background=<inverse foreground/background>
|
||||||
|
# jump-labels=<regular0> <regular3> # black-on-yellow
|
||||||
|
# scrollback-indicator=<regular0> <bright4> # black-on-bright-blue
|
||||||
|
# search-box-no-match=<regular0> <regular1> # black-on-red
|
||||||
|
# search-box-match=<regular0> <regular3> # black-on-yellow
|
||||||
|
# urls=<regular3>
|
||||||
|
|
||||||
|
[csd]
|
||||||
|
# preferred=server
|
||||||
|
# size=26
|
||||||
|
# font=<primary font>
|
||||||
|
# color=<foreground color>
|
||||||
|
# hide-when-maximized=no
|
||||||
|
# double-click-to-maximize=yes
|
||||||
|
# border-width=0
|
||||||
|
# border-color=<csd.color>
|
||||||
|
# button-width=26
|
||||||
|
# button-color=<background color>
|
||||||
|
# button-minimize-color=<regular4>
|
||||||
|
# button-maximize-color=<regular2>
|
||||||
|
# button-close-color=<regular1>
|
||||||
|
|
||||||
|
[key-bindings]
|
||||||
|
# scrollback-up-page=Shift+Page_Up
|
||||||
|
# scrollback-up-half-page=none
|
||||||
|
# scrollback-up-line=none
|
||||||
|
# scrollback-down-page=Shift+Page_Down
|
||||||
|
# scrollback-down-half-page=none
|
||||||
|
# scrollback-down-line=none
|
||||||
|
# scrollback-home=none
|
||||||
|
# scrollback-end=none
|
||||||
|
# clipboard-copy=Control+Shift+c XF86Copy
|
||||||
|
# clipboard-paste=Control+Shift+v XF86Paste
|
||||||
|
# primary-paste=Shift+Insert
|
||||||
|
# search-start=Control+Shift+r
|
||||||
|
font-increase=Control+plus
|
||||||
|
font-decrease=Control+minus
|
||||||
|
font-reset=Control+equal
|
||||||
|
# spawn-terminal=Control+Shift+n
|
||||||
|
# minimize=none
|
||||||
|
# maximize=none
|
||||||
|
# fullscreen=none
|
||||||
|
# pipe-visible=[sh -c "xurls | fuzzel | xargs -r firefox"] none
|
||||||
|
# pipe-scrollback=[sh -c "xurls | fuzzel | xargs -r firefox"] none
|
||||||
|
# pipe-selected=[xargs -r firefox] none
|
||||||
|
# pipe-command-output=[wl-copy] none # Copy last command's output to the clipboard
|
||||||
|
# show-urls-launch=Control+Shift+o
|
||||||
|
# show-urls-copy=none
|
||||||
|
# show-urls-persistent=none
|
||||||
|
# prompt-prev=Control+Shift+z
|
||||||
|
# prompt-next=Control+Shift+x
|
||||||
|
# unicode-input=Control+Shift+u
|
||||||
|
# noop=none
|
||||||
|
|
||||||
|
[search-bindings]
|
||||||
|
# cancel=Control+g Control+c Escape
|
||||||
|
# commit=Return
|
||||||
|
# find-prev=Control+r
|
||||||
|
# find-next=Control+s
|
||||||
|
# cursor-left=Left Control+b
|
||||||
|
# cursor-left-word=Control+Left Mod1+b
|
||||||
|
# cursor-right=Right Control+f
|
||||||
|
# cursor-right-word=Control+Right Mod1+f
|
||||||
|
# cursor-home=Home Control+a
|
||||||
|
# cursor-end=End Control+e
|
||||||
|
# delete-prev=BackSpace
|
||||||
|
# delete-prev-word=Mod1+BackSpace Control+BackSpace
|
||||||
|
# delete-next=Delete
|
||||||
|
# delete-next-word=Mod1+d Control+Delete
|
||||||
|
# extend-char=Shift+Right
|
||||||
|
# extend-to-word-boundary=Control+w Control+Shift+Right
|
||||||
|
# extend-to-next-whitespace=Control+Shift+w
|
||||||
|
# extend-line-down=Shift+Down
|
||||||
|
# extend-backward-char=Shift+Left
|
||||||
|
# extend-backward-to-word-boundary=Control+Shift+Left
|
||||||
|
# extend-backward-to-next-whitespace=none
|
||||||
|
# extend-line-up=Shift+Up
|
||||||
|
# clipboard-paste=Control+v Control+Shift+v Control+y XF86Paste
|
||||||
|
# primary-paste=Shift+Insert
|
||||||
|
# unicode-input=none
|
||||||
|
# quit=none
|
||||||
|
# scrollback-up-page=Shift+Page_Up
|
||||||
|
# scrollback-up-half-page=none
|
||||||
|
# scrollback-up-line=none
|
||||||
|
# scrollback-down-page=Shift+Page_Down
|
||||||
|
# scrollback-down-half-page=none
|
||||||
|
# scrollback-down-line=none
|
||||||
|
# scrollback-home=none
|
||||||
|
# scrollback-end=none
|
||||||
|
|
||||||
|
[url-bindings]
|
||||||
|
# cancel=Control+g Control+c Control+d Escape
|
||||||
|
# toggle-url-visible=t
|
||||||
|
|
||||||
|
[text-bindings]
|
||||||
|
# \x03=Mod4+c # Map Super+c -> Ctrl+c
|
||||||
|
|
||||||
|
[mouse-bindings]
|
||||||
|
# scrollback-up-mouse=BTN_WHEEL_BACK
|
||||||
|
# scrollback-down-mouse=BTN_WHEEL_FORWARD
|
||||||
|
# font-increase=Control+BTN_WHEEL_BACK
|
||||||
|
# font-decrease=Control+BTN_WHEEL_FORWARD
|
||||||
|
# selection-override-modifiers=Shift
|
||||||
|
# primary-paste=BTN_MIDDLE
|
||||||
|
# select-begin=BTN_LEFT
|
||||||
|
# select-begin-block=Control+BTN_LEFT
|
||||||
|
# select-extend=BTN_RIGHT
|
||||||
|
# select-extend-character-wise=Control+BTN_RIGHT
|
||||||
|
# select-word=BTN_LEFT-2
|
||||||
|
# select-word-whitespace=Control+BTN_LEFT-2
|
||||||
|
# select-quote = BTN_LEFT-3
|
||||||
|
# select-row=BTN_LEFT-4
|
||||||
|
|
||||||
|
# vim: ft=dosini
|
||||||
12
config/gammastep/config.ini
Normal file
12
config/gammastep/config.ini
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
[general]
|
||||||
|
temp-day=6500
|
||||||
|
temp-night=4800
|
||||||
|
transition=0
|
||||||
|
brightness-night=0.9
|
||||||
|
gamma-night=0.9
|
||||||
|
location-provider=manual
|
||||||
|
adjustment-method=wayland
|
||||||
|
|
||||||
|
[manual]
|
||||||
|
lat=41.738013
|
||||||
|
lon=44.622852
|
||||||
61
config/htop/htoprc
Normal file
61
config/htop/htoprc
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
# Beware! This file is rewritten by htop when settings are changed in the interface.
|
||||||
|
# The parser is also very primitive, and not human-friendly.
|
||||||
|
htop_version=3.2.2
|
||||||
|
config_reader_min_version=3
|
||||||
|
fields=0 48 17 18 38 39 40 2 46 47 49 1
|
||||||
|
hide_kernel_threads=0
|
||||||
|
hide_userland_threads=0
|
||||||
|
hide_running_in_container=0
|
||||||
|
shadow_other_users=1
|
||||||
|
show_thread_names=0
|
||||||
|
show_program_path=1
|
||||||
|
highlight_base_name=1
|
||||||
|
highlight_deleted_exe=1
|
||||||
|
shadow_distribution_path_prefix=0
|
||||||
|
highlight_megabytes=1
|
||||||
|
highlight_threads=1
|
||||||
|
highlight_changes=0
|
||||||
|
highlight_changes_delay_secs=5
|
||||||
|
find_comm_in_cmdline=1
|
||||||
|
strip_exe_from_cmdline=1
|
||||||
|
show_merged_command=1
|
||||||
|
header_margin=1
|
||||||
|
screen_tabs=0
|
||||||
|
detailed_cpu_time=1
|
||||||
|
cpu_count_from_one=0
|
||||||
|
show_cpu_usage=1
|
||||||
|
show_cpu_frequency=0
|
||||||
|
update_process_names=0
|
||||||
|
account_guest_in_cpu_meter=0
|
||||||
|
color_scheme=0
|
||||||
|
enable_mouse=1
|
||||||
|
delay=15
|
||||||
|
hide_function_bar=0
|
||||||
|
header_layout=two_50_50
|
||||||
|
column_meters_0=AllCPUs2 Memory Swap
|
||||||
|
column_meter_modes_0=1 1 1
|
||||||
|
column_meters_1=Tasks LoadAverage Uptime
|
||||||
|
column_meter_modes_1=2 2 2
|
||||||
|
tree_view=0
|
||||||
|
sort_key=46
|
||||||
|
tree_sort_key=47
|
||||||
|
sort_direction=-1
|
||||||
|
tree_sort_direction=-1
|
||||||
|
tree_view_always_by_pid=0
|
||||||
|
all_branches_collapsed=0
|
||||||
|
screen:Main=PID USER PRIORITY NICE M_VIRT M_RESIDENT M_SHARE STATE PERCENT_CPU PERCENT_MEM TIME Command
|
||||||
|
.sort_key=PERCENT_CPU
|
||||||
|
.tree_sort_key=PERCENT_MEM
|
||||||
|
.tree_view=0
|
||||||
|
.tree_view_always_by_pid=0
|
||||||
|
.sort_direction=-1
|
||||||
|
.tree_sort_direction=-1
|
||||||
|
.all_branches_collapsed=0
|
||||||
|
screen:I/O=PID USER IO_PRIORITY IO_RATE IO_READ_RATE IO_WRITE_RATE
|
||||||
|
.sort_key=IO_RATE
|
||||||
|
.tree_sort_key=PID
|
||||||
|
.tree_view=0
|
||||||
|
.tree_view_always_by_pid=0
|
||||||
|
.sort_direction=-1
|
||||||
|
.tree_sort_direction=1
|
||||||
|
.all_branches_collapsed=0
|
||||||
BIN
config/i3/bg.jpg
Normal file
BIN
config/i3/bg.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.5 MiB |
330
config/i3/config
Normal file
330
config/i3/config
Normal file
@@ -0,0 +1,330 @@
|
|||||||
|
# This file has been auto-generated by i3-config-wizard(1).
|
||||||
|
# It will not be overwritten, so edit it as you like.
|
||||||
|
#
|
||||||
|
# Should you change your keyboard layout some time, delete
|
||||||
|
# this file and re-run i3-config-wizard(1).
|
||||||
|
#
|
||||||
|
|
||||||
|
# i3 config file (v4)
|
||||||
|
#
|
||||||
|
# Please see https://i3wm.org/docs/userguide.html for a complete reference!
|
||||||
|
|
||||||
|
set $mod Mod4
|
||||||
|
|
||||||
|
# Font for window titles. Will also be used by the bar unless a different font
|
||||||
|
# is used in the bar {} block below.
|
||||||
|
# font pango:Fixedsys Excelsior 10
|
||||||
|
font pango:DejaVu Sans Condensed Bold 8
|
||||||
|
|
||||||
|
################################
|
||||||
|
#### Gruvbox Material Light ####
|
||||||
|
################################
|
||||||
|
# set $bg #fbf1c7
|
||||||
|
# set $fg #654735
|
||||||
|
# set $red #c14a4a
|
||||||
|
# set $orange #c35e0a
|
||||||
|
# set $green #6c782e
|
||||||
|
# set $blue #45707a
|
||||||
|
# set $purple #945e80
|
||||||
|
# set $aqua #4c7a5d
|
||||||
|
# set $darkgray #fbf1c7
|
||||||
|
|
||||||
|
###############################
|
||||||
|
#### Gruvbox Material Dark ####
|
||||||
|
###############################
|
||||||
|
set $bg #282828
|
||||||
|
set $fg #d4be98
|
||||||
|
set $red #ea6962
|
||||||
|
set $orange #e78a4e
|
||||||
|
set $green #a9b665
|
||||||
|
set $blue #7daea3
|
||||||
|
set $purple #d3869b
|
||||||
|
set $aqua #89b482
|
||||||
|
set $darkgray #282828
|
||||||
|
|
||||||
|
gaps inner 6
|
||||||
|
smart_gaps on
|
||||||
|
|
||||||
|
# This font is widely installed, provides lots of unicode glyphs, right-to-left
|
||||||
|
# text rendering and scalability on retina/hidpi displays (thanks to pango).
|
||||||
|
#font pango:DejaVu Sans Mono 8
|
||||||
|
|
||||||
|
# Before i3 v4.8, we used to recommend this one as the default:
|
||||||
|
# font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
|
||||||
|
# The font above is very space-efficient, that is, it looks good, sharp and
|
||||||
|
# clear in small sizes. However, its unicode glyph coverage is limited, the old
|
||||||
|
# X core fonts rendering does not support right-to-left and this being a bitmap
|
||||||
|
# font, it doesn’t scale on retina/hidpi displays.
|
||||||
|
|
||||||
|
# Use Mouse+$mod to drag floating windows to their wanted position
|
||||||
|
floating_modifier $mod
|
||||||
|
|
||||||
|
default_border pixel 1
|
||||||
|
default_floating_border pixel 1
|
||||||
|
hide_edge_borders smart
|
||||||
|
focus_follows_mouse no
|
||||||
|
|
||||||
|
workspace_auto_back_and_forth no
|
||||||
|
workspace_layout default
|
||||||
|
|
||||||
|
for_window [class="(?i)firefox"] move container to workspace $ws1
|
||||||
|
for_window [title="(?i)Picture-in-Picture"] floating enable border none
|
||||||
|
for_window [class="(?i)telegram"] move container to workspace $ws2
|
||||||
|
for_window [class="mpv"] floating enable border none
|
||||||
|
for_window [class="(?i)zooout"] floating enable
|
||||||
|
for_window [class="(?i)netsurf"] floating enable
|
||||||
|
for_window [class="(?i)proton-bridge"] move container to workspace $ws9 floating enable border none
|
||||||
|
for_window [class="(?i)easyeffects"] move container to workspace $ws10
|
||||||
|
for_window [class="(?i)xterm-256color"] border none
|
||||||
|
|
||||||
|
# for_window [class="(?i)cadence"] move container to workspace $ws7 floating enable
|
||||||
|
# for_window [class="(?i)catia"] move container to workspace $ws7 floating enable
|
||||||
|
# for_window [class="(?i)reaper"] move container to workspace $ws7
|
||||||
|
# for_window [class="(?i)renoise"] move container to workspace $ws7
|
||||||
|
for_window [class="(?i)uvi"] floating enable
|
||||||
|
for_window [class="(?i)arturia"] floating enable
|
||||||
|
for_window [class="(?i)ilok"] floating enable
|
||||||
|
|
||||||
|
for_window [class="Space"] floating enable
|
||||||
|
|
||||||
|
# class border backgr. text indicator child_border
|
||||||
|
# client.focused #B8BB26 #B8BB26 #1D2021 #2e9ef4 #B8BB26
|
||||||
|
# client.focused_inactive #83A598 #83A598 #1D2021 #484e50 #83A598
|
||||||
|
# client.unfocused #333333 #222222 #bdae93 #292d2e #222222
|
||||||
|
# client.urgent #2f343a #900000 #fbf1c7 #900000 #900000
|
||||||
|
# client.placeholder #000000 #0c0c0c #fbf1c7 #000000 #0c0c0c
|
||||||
|
# client.background #ffffff
|
||||||
|
|
||||||
|
#######################
|
||||||
|
#### i3 appearance ####
|
||||||
|
#######################
|
||||||
|
# Gruvbox Theme brdr bg text indictr chld_brdr
|
||||||
|
client.focused $orange $orange $bg $green $orange
|
||||||
|
client.focused_inactive $blue $blue $bg $blue $blue
|
||||||
|
client.unfocused $bg $bg $bg $bg $bg
|
||||||
|
client.urgent $red $red $bg $red $red
|
||||||
|
client.placeholder $bg $bg $bg $bg $bg
|
||||||
|
client.background $bg
|
||||||
|
|
||||||
|
# start a terminal
|
||||||
|
bindsym $mod+Return exec terminal
|
||||||
|
|
||||||
|
# kill focused window
|
||||||
|
bindsym $mod+Shift+c kill
|
||||||
|
|
||||||
|
# start dmenu (a program launcher)
|
||||||
|
bindsym $mod+F2 exec "dmenu_run"
|
||||||
|
# There also is the (new) i3-dmenu-desktop which only displays applications
|
||||||
|
# shipping a .desktop file. It is a wrapper around dmenu, so you need that
|
||||||
|
# installed.
|
||||||
|
# bindsym $mod+d exec --no-startup-id i3-dmenu-desktop
|
||||||
|
|
||||||
|
bindsym $mod+F4 exec "x edit_project"
|
||||||
|
bindsym $mod+v exec "passmenu"
|
||||||
|
bindsym $mod+Shift+v exec "passotpmenu"
|
||||||
|
|
||||||
|
# change focus
|
||||||
|
# QWERTY
|
||||||
|
bindsym $mod+h focus left
|
||||||
|
bindsym $mod+j focus down
|
||||||
|
bindsym $mod+k focus up
|
||||||
|
bindsym $mod+l focus right
|
||||||
|
|
||||||
|
# colemak
|
||||||
|
# bindsym $mod+k focus left
|
||||||
|
# bindsym $mod+n focus down
|
||||||
|
# bindsym $mod+e focus up
|
||||||
|
# bindsym $mod+i focus right
|
||||||
|
|
||||||
|
# move focused window
|
||||||
|
# QWERTY
|
||||||
|
bindsym $mod+Shift+h move left
|
||||||
|
bindsym $mod+Shift+j move down
|
||||||
|
bindsym $mod+Shift+k move up
|
||||||
|
bindsym $mod+Shift+l move right
|
||||||
|
|
||||||
|
mode "split" {
|
||||||
|
# split in horizontal orientation
|
||||||
|
bindsym h split h mode "default"
|
||||||
|
bindsym $mod+h split h mode "default"
|
||||||
|
# split in vertical orientation
|
||||||
|
bindsym v split v mode "default"
|
||||||
|
bindsym $mod+v split v mode "default"
|
||||||
|
|
||||||
|
bindsym Escape mode "default"
|
||||||
|
bindsym Return mode "default"
|
||||||
|
}
|
||||||
|
|
||||||
|
bindsym $mod+s mode "split"
|
||||||
|
|
||||||
|
# enter fullscreen mode for the focused container
|
||||||
|
bindsym $mod+f fullscreen toggle
|
||||||
|
|
||||||
|
# change container layout (stacked, tabbed, toggle split)
|
||||||
|
bindsym $mod+Shift+q layout stacking
|
||||||
|
bindsym $mod+Shift+t layout tabbed
|
||||||
|
bindsym $mod+Shift+w layout toggle split
|
||||||
|
|
||||||
|
# toggle tiling / floating
|
||||||
|
bindsym $mod+Shift+space floating toggle
|
||||||
|
bindsym $mod+Shift+equal sticky toggle
|
||||||
|
# Make the currently focused window a scratchpad
|
||||||
|
bindsym $mod+Shift+minus move scratchpad
|
||||||
|
|
||||||
|
# Show the first scratchpad window
|
||||||
|
bindsym $mod+space scratchpad show
|
||||||
|
|
||||||
|
# change focus between tiling / floating windows
|
||||||
|
bindsym $mod+Tab focus mode_toggle
|
||||||
|
|
||||||
|
# focus the parent container
|
||||||
|
bindsym $mod+a focus parent
|
||||||
|
|
||||||
|
# focus the child container
|
||||||
|
bindsym $mod+d focus child
|
||||||
|
|
||||||
|
# Define names for default workspaces for which we configure key bindings later on.
|
||||||
|
# We use variables to avoid repeating the names in multiple places.
|
||||||
|
set $ws1 "1"
|
||||||
|
set $ws2 "2"
|
||||||
|
set $ws3 "3"
|
||||||
|
set $ws4 "4"
|
||||||
|
set $ws5 "5"
|
||||||
|
set $ws6 "6"
|
||||||
|
set $ws7 "7"
|
||||||
|
set $ws8 "8"
|
||||||
|
set $ws9 "9"
|
||||||
|
set $ws10 "10"
|
||||||
|
|
||||||
|
# switch to workspace
|
||||||
|
bindsym $mod+1 workspace $ws1
|
||||||
|
bindsym $mod+2 workspace $ws2
|
||||||
|
bindsym $mod+3 workspace $ws3
|
||||||
|
bindsym $mod+4 workspace $ws4
|
||||||
|
bindsym $mod+5 workspace $ws5
|
||||||
|
bindsym $mod+6 workspace $ws6
|
||||||
|
bindsym $mod+7 workspace $ws7
|
||||||
|
bindsym $mod+8 workspace $ws8
|
||||||
|
bindsym $mod+9 workspace $ws9
|
||||||
|
bindsym $mod+0 workspace $ws10
|
||||||
|
|
||||||
|
workspace $ws1
|
||||||
|
workspace $ws2
|
||||||
|
workspace $ws3
|
||||||
|
workspace $ws4
|
||||||
|
workspace $ws5
|
||||||
|
workspace $ws6
|
||||||
|
workspace $ws7
|
||||||
|
workspace $ws8
|
||||||
|
# workspace $ws9 output HDMI-1-0
|
||||||
|
workspace $ws9
|
||||||
|
# workspace $ws10 output eDP
|
||||||
|
workspace $ws10
|
||||||
|
|
||||||
|
# move focused container to workspace
|
||||||
|
bindsym $mod+Shift+1 move container to workspace $ws1
|
||||||
|
bindsym $mod+Shift+2 move container to workspace $ws2
|
||||||
|
bindsym $mod+Shift+3 move container to workspace $ws3
|
||||||
|
bindsym $mod+Shift+4 move container to workspace $ws4
|
||||||
|
bindsym $mod+Shift+5 move container to workspace $ws5
|
||||||
|
bindsym $mod+Shift+6 move container to workspace $ws6
|
||||||
|
bindsym $mod+Shift+7 move container to workspace $ws7
|
||||||
|
bindsym $mod+Shift+8 move container to workspace $ws8
|
||||||
|
bindsym $mod+Shift+9 move container to workspace $ws9
|
||||||
|
bindsym $mod+Shift+0 move container to workspace $ws10
|
||||||
|
|
||||||
|
# reload the configuration file
|
||||||
|
# bindsym $mod+Shift+e reload
|
||||||
|
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
|
||||||
|
bindsym $mod+Shift+r restart
|
||||||
|
# exit i3 (logs you out of your X session)
|
||||||
|
bindsym $mod+Shift+x exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'"
|
||||||
|
|
||||||
|
bindsym $mod+z exec "i3lock"
|
||||||
|
bindsym $mod+x exec "taskwarrior_stop"
|
||||||
|
bindsym $mod+Shift+z exec "suspend-and-lock"
|
||||||
|
|
||||||
|
# resize window (you can also use the mouse for that)
|
||||||
|
mode "resize" {
|
||||||
|
# These bindings trigger as soon as you enter the resize mode
|
||||||
|
|
||||||
|
bindsym Left resize shrink width 3 px or 3 ppt
|
||||||
|
bindsym Down resize grow height 3 px or 3 ppt
|
||||||
|
bindsym Up resize shrink height 3 px or 3 ppt
|
||||||
|
bindsym Right resize grow width 3 px or 3 ppt
|
||||||
|
|
||||||
|
bindsym h resize shrink width 3 px or 3 ppt
|
||||||
|
bindsym j resize grow height 3 px or 3 ppt
|
||||||
|
bindsym k resize shrink height 3 px or 3 ppt
|
||||||
|
bindsym l resize grow width 3 px or 3 ppt
|
||||||
|
|
||||||
|
# back to normal: Enter or Escape or $mod+r
|
||||||
|
bindsym Return mode "default"
|
||||||
|
bindsym Escape mode "default"
|
||||||
|
bindsym $mod+r mode "default"
|
||||||
|
}
|
||||||
|
|
||||||
|
bindsym $mod+r mode "resize"
|
||||||
|
|
||||||
|
# disable system tray
|
||||||
|
bar {
|
||||||
|
tray_output none
|
||||||
|
output nonprimary
|
||||||
|
font pango:Iosevka Term, FontAwesome Bold 12px
|
||||||
|
colors {
|
||||||
|
background $bg
|
||||||
|
statusline $fg
|
||||||
|
separator #666666
|
||||||
|
|
||||||
|
focused_workspace $orange $orange $bg
|
||||||
|
inactive_workspace $aqua $bg $aqua
|
||||||
|
active_workspace $aqua $aqua $bg
|
||||||
|
urgent_workspace $red $red $fg
|
||||||
|
binding_mode $red $red $bg
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Start i3bar to display a workspace bar (plus the system information i3status
|
||||||
|
# finds out, if available)
|
||||||
|
bar {
|
||||||
|
# strip_workspace_numbers yes
|
||||||
|
output primary
|
||||||
|
tray_output primary
|
||||||
|
status_command i3status-rs-with-env ~/.config/i3status-rust/config.toml
|
||||||
|
font pango:Iosevka Term, FontAwesome Bold 14px
|
||||||
|
colors {
|
||||||
|
background $bg
|
||||||
|
statusline $fg
|
||||||
|
separator #666666
|
||||||
|
|
||||||
|
focused_workspace $orange $orange $bg
|
||||||
|
inactive_workspace $aqua $bg $aqua
|
||||||
|
active_workspace $aqua $aqua $bg
|
||||||
|
urgent_workspace $red $red $fg
|
||||||
|
binding_mode $red $red $bg
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Backlight control
|
||||||
|
bindsym XF86MonBrightnessUp exec --no-startup-id doas /usr/bin/light -A 5
|
||||||
|
bindsym XF86MonBrightnessDown exec --no-startup-id doas /usr/bin/light -U 5
|
||||||
|
# bindsym XF86Search exec --no-startup-id suspend-and-lock
|
||||||
|
|
||||||
|
# Volume control
|
||||||
|
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +3%
|
||||||
|
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -3%
|
||||||
|
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle
|
||||||
|
|
||||||
|
# bindsym XF86AudioPrev exec --no-startup-id mpc prev
|
||||||
|
# bindsym XF86AudioPlay exec --no-startup-id mpc toggle
|
||||||
|
# bindsym XF86AudioStop exec --no-startup-id mpc stop
|
||||||
|
# bindsym XF86AudioNext exec --no-startup-id mpc next
|
||||||
|
|
||||||
|
bindsym $mod+Shift+o exec "display_switch"
|
||||||
|
|
||||||
|
bindsym $mod+minus exec "dunstctl close-all"
|
||||||
|
bindsym $mod+equal exec "dunstctl history-pop"
|
||||||
|
|
||||||
|
# Autorun
|
||||||
|
exec --no-startup-id feh --bg-fill ~/.config/i3/bg.jpg
|
||||||
|
exec --no-startup-id xautorun
|
||||||
19
config/kanshi/config
Normal file
19
config/kanshi/config
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
output "Chimei Innolux Corporation 0x15B1 Unknown" {
|
||||||
|
mode 1920x1080@60.006
|
||||||
|
scale 1
|
||||||
|
alias $M4700
|
||||||
|
}
|
||||||
|
|
||||||
|
output "Lenovi" {
|
||||||
|
mode 2560x1440@60.006
|
||||||
|
scale 1.25
|
||||||
|
alias $M4700
|
||||||
|
}
|
||||||
|
|
||||||
|
profile "M4700" {
|
||||||
|
output $M4700 enable
|
||||||
|
}
|
||||||
|
|
||||||
|
profile "T420" {
|
||||||
|
output $T420 enable
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user