87 Commits

Author SHA1 Message Date
ad3a58bcff Update 2026-04-01 17:33:34 +02:00
2963b7e45f Update 2026-03-30 12:01:01 +02:00
7f4dbfa408 Fuck that 2026-03-29 01:48:56 +01:00
a05f3ba3a4 Update 2026-03-13 15:16:44 +01:00
32658e9a77 Remove htoprc 2026-03-13 15:11:50 +01:00
4d3597c511 Update 2026-03-13 15:09:12 +01:00
70cce4a19a Update fish 2026-03-12 15:46:54 +01:00
12ba6d9f7a Use explicit version 2026-03-09 16:55:08 +01:00
95b8377c0f Update 2026-03-09 16:53:49 +01:00
7ae9f606e1 Remove kitty stuff 2026-03-06 06:51:41 +01:00
d78d91cb59 Clean up 2026-03-06 06:21:55 +01:00
762725e231 Update 2026-03-06 06:15:15 +01:00
185981025b Update 2026-03-06 05:42:46 +01:00
70c11fb375 Update 2026-03-06 05:40:58 +01:00
c2af917f01 UPdate waybar 2026-03-06 05:30:45 +01:00
af94397039 Update fish variables 2026-03-06 05:27:19 +01:00
b0e71513e7 Update 2026-03-06 05:27:03 +01:00
a67042070a Update 2026-03-04 14:33:29 +01:00
e4cac90f4a Update 2026-01-24 03:07:15 +04:00
49ae828c11 Let's do some C# 2026-01-21 11:04:18 +04:00
832429c4d8 Update 2026-01-19 02:26:39 +04:00
31dd1f30e9 Update 2026-01-16 11:57:36 +04:00
a5dc8c455c Add autocommands 2026-01-13 23:24:48 +04:00
9fe2c95291 Update 2026-01-13 23:24:10 +04:00
812e74c510 Update 2026-01-12 21:11:37 +04:00
ac85a15f6b Fix deprecation 2026-01-11 22:11:56 +04:00
3a3ea3fae3 Update 2026-01-05 16:24:59 +04:00
dc557284b6 Update 2026-01-01 22:58:38 +04:00
c842933094 Update 2025-11-25 16:43:33 +01:00
e95ab2fe98 Update 2025-10-21 20:58:38 +04:00
efc1dcddde Update 2025-10-13 22:39:16 +04:00
04e07cd38b Update 2025-10-12 20:48:18 +04:00
7009fefce6 Update 2025-10-12 20:47:19 +04:00
9ad34a63ee Remove 2025-10-12 20:47:19 +04:00
c7511cd5f7 Remove annoying mouse warp 2025-10-12 20:44:53 +04:00
e7f9ad68f0 Update 2025-10-12 16:40:18 +04:00
6a4ced0a9f Update 2025-10-03 19:11:35 +04:00
d0b318709e Update 2025-09-29 19:52:01 +04:00
7c4443945f Remove rbenv 2025-09-27 01:52:16 +04:00
972ba6c251 Add sway stuff 2025-09-27 01:49:16 +04:00
4dc5660e60 Update 2025-09-27 01:01:01 +04:00
959300bc41 Update 2025-09-24 18:21:18 +04:00
d40b9e0542 Update cfg 2025-09-22 18:38:33 +04:00
85cf9b60f7 Update 2025-09-21 22:20:06 +04:00
9872528929 Update 2025-06-16 20:13:57 +04:00
94c8a6dc2e Update 2025-05-19 17:08:20 +04:00
484e10675e Update 2024-09-21 00:31:30 +04:00
a4c819a30b Update 2023-10-13 01:47:33 +04:00
f43e88e7ee Add kitty colors 2022-06-06 23:51:52 +04:00
b5bd5b8e97 Update stuff 2022-06-06 23:38:10 +04:00
3cd7d3e61d Fuck git hooks 2022-05-12 21:43:42 +04:00
e364be1ffd Add firejail 2022-04-27 12:54:05 +04:00
ea1a173009 Update 2022-04-09 15:26:51 +04:00
d4d0ff6464 Add arkenfox stuff 2022-04-09 14:04:55 +04:00
e23614fa0f Update 2022-04-09 14:03:44 +04:00
58c24e5bec Update 2022-04-06 16:06:41 +04:00
d298bf577f Update 2022-04-05 23:06:09 +04:00
4e7550c40e Update 2022-03-31 22:58:34 +04:00
ba2eba85ac Update 2022-03-31 11:26:25 +04:00
0ee5219afa Update 2022-03-31 11:24:43 +04:00
099776ed43 Update 2022-03-23 19:38:43 +04:00
d8cf77a93a Update 2022-03-22 11:29:45 +04:00
3d6870653a Update 2022-03-20 20:32:47 +04:00
cfaab76060 Update 2022-03-18 15:44:38 +04:00
9d32b2fbfd Update 2022-03-10 12:08:44 +04:00
30238b5b40 Update 2022-03-05 14:03:09 +04:00
b9fe669dd8 Update 2022-01-27 15:21:21 +04:00
a6bdab5e49 Update 2021-11-17 17:32:34 +04:00
7d82e9c22e Update 2021-11-16 15:24:00 +04:00
d187cff810 Update 2021-11-15 14:59:10 +04:00
26ece42965 I don't use it anyway 2021-11-15 13:39:52 +04:00
081dc5ccc1 Update 2021-11-15 00:26:15 +04:00
8583c61d95 Disable some hotkeys 2021-11-14 21:25:44 +04:00
bf6d4b3316 Update 2021-11-14 21:22:27 +04:00
b81486ced0 Update 2021-10-20 19:44:24 +04:00
802f0166ed Update configuration 2021-10-11 11:18:48 +04:00
f8f6bd4616 Update stuff 2021-09-21 11:00:04 +04:00
0ac6ba4418 Update 2021-09-06 18:31:36 +04:00
86088f0767 Update 2021-06-26 02:06:43 +04:00
a140c1abf2 Update stuff 2021-02-14 00:05:33 +04:00
ad3ae94180 Update 2021-02-05 13:30:54 +04:00
c292200110 use dbus 2021-01-21 23:48:15 +04:00
bacee2ee4f Update 2021-01-12 14:12:47 +04:00
7c09fdf4d0 Update neovim config 2020-08-20 16:01:09 +04:00
1e84448fcc Add stuff 2020-08-12 02:56:32 +04:00
547a5b9f84 Migrate to rcm 2020-08-12 02:29:03 +04:00
d1b5037e15 Update config 2020-04-08 21:52:21 +04:00
437 changed files with 13261 additions and 9722 deletions

View File

@@ -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"

View File

@@ -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
View File

@@ -1,3 +1,5 @@
.notion/*.bkp
.notion/*session*
.notion/log.txt
mozilla/firefox/profile/userjs_backups/

View File

@@ -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

42
.taskrc
View File

@@ -1,42 +0,0 @@
# [Created by task 2.3.0 10/27/2014 13:01:27]
# Taskwarrior program configuration file.
# For more documentation, see http://taskwarrior.org or try 'man task', 'man task-faq',
# 'man task-tutorial', 'man task-color', 'man task-sync' or 'man taskrc'
# Here is an example of entries that use the default, override and blank values
# variable=foo -- By specifying a value, this overrides the default
# variable= -- By specifying no value, this means no default
# #variable=foo -- By commenting out the line, or deleting it, this uses the default
# Use the command 'task show' to see all defaults and overrides
# Files
data.location=~/.task
# Color theme (uncomment one to use)
# include /usr/share/task/light-16.theme
# include /usr/share/task/light-256.theme
# include /usr/share/task/dark-256.theme
# include /usr/share/task/dark-red-256.theme
# include /usr/share/task/dark-green-256.theme
# include /usr/share/task/dark-blue-256.theme
# include /usr/share/task/dark-violets-256.theme
include /usr/share/task/dark-yellow-green.theme
# include /usr/share/task/dark-gray-256.theme
# include /usr/share/task/solarized-dark-256.theme
alias.rm=delete
alias.mod=modify
uda.totalactivetime.type=duration
uda.totalactivetime.label=Total active time
uda.totalactivetime.values=
default.command=list
report.active.columns=id,project,description.truncated,start.age
report.active.labels=ID,Project,Description,Time
report.list.labels=ID,Active,Age,Time,D,P,Project,Tags,R,Sch,Due,Until,Description,Urg
report.list.columns=id,start.age,entry.age,totalactivetime,depends.indicator,priority,project,tags,recur.indicator,scheduled.countdown,due,until.remaining,description.count,urgency

View File

@@ -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
View File

@@ -0,0 +1,3 @@
Use [rcm](https://thoughtbot.github.io/rcm/rcm)
rcup -v

9
Xresources Normal file
View 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"

View 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 =

View File

@@ -8,33 +8,34 @@ st.termname: xterm-256color
! st.shell: /bin/sh
! 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
! Available cursor values: 2 4 6 7 = █ _ | ☃ ( 1 3 5 are blinking versions)
st.cursorshape: 2
! thickness of underline and bar cursors
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
! 0: cursor blinks with a constant interval; 1: blinking cycle resets on key input
st.cursorblinkontype: 1
st.bold_font: 1
st.xfps: 120
st.actionfps: 30
! Amount of lines scrolled
st.mouseScrollLines: 1
! Kerning / character bounding-box height multiplier
st.chscale: 1.0
st.chscale: 0.95
! st.chscale: 1.0
! Kerning / character bounding-box width multiplier
st.cwscale: 1.0
! blinking timeout for terminal and cursor blinking (0 disables)
st.blinktimeout: 800
! bell volume. Value between -100 and 100. (0 disables)
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: $
! This option is can be preedit style. Available values: `root` `overthespot` (Default taken `root`)
st.imstyle: root
! 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
View 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

View File

View File

6
bash_logout Normal file
View 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
View 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
View 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

View File

@@ -1,9 +1,14 @@
---
BUNDLE_BUILD__NOKOGIRI: "--use-system-libraries"
BUNDLE_BUILD__SASSC: "--disable-lto"
BUNDLE_PATH: "vendor/bundle"
BUNDLE_GEM__COC: "0"
BUNDLE_GEM__MIT: "1"
BUNDLE_GEM__TEST: "rspec"
BUNDLE_GEM__TEST: "minitest"
BUNDLE_GIT__ALLOW_INSECURE: "true"
BUNDLE_PREFER_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
View 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

View 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

19
config/direnv/direnvrc Normal file
View 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
View 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
View 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/

View 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/

View File

@@ -0,0 +1 @@
whitelist ${HOME}/.dotfiles-private

View File

@@ -0,0 +1 @@
whitelist ${HOME}/.dotfiles

View File

@@ -0,0 +1 @@
fisher complete

View 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'

View 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)"

View File

@@ -0,0 +1 @@
eval (env _PIO_COMPLETE=fish_source pio)

View 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'

View 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"

View 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

View 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"

View 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

View 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
View 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
View File

@@ -0,0 +1,5 @@
jorgebucaran/fisher
jethrokuan/fzf
jorgebucaran/spark.fish
franciscolourenco/done
edc/bass

View File

@@ -0,0 +1,30 @@
# 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:4300
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_greeting:\x1d
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\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
View File

@@ -0,0 +1,2 @@
jethrokuan/fzf

View 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)

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View File

@@ -0,0 +1,3 @@
function bx
command bundle exec $argv
end

View 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

View 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

View 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

View 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

View File

@@ -0,0 +1,3 @@
function hors
command hors -c "$argv"
end

View 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

View File

@@ -0,0 +1,3 @@
function nvm
bass source ~/.config/nvm/nvm.sh --no-use ';' nvm $argv
end

View File

@@ -0,0 +1,3 @@
function nvm_find_nvmrc
bass source ~/.config/nvm/nvm.sh --no-use ';' nvm_find_nvmrc
end

View 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

View File

@@ -0,0 +1,3 @@
function su
command su --shell=/bin/fish $argv
end

View File

@@ -0,0 +1,3 @@
function sudosu
command sudo su --shell=/bin/fish -
end

View File

@@ -0,0 +1,3 @@
function time
command time --portability $argv
end

View 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
View 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, codicon:size=12, Symbols Nerd Font Mono: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.95
# 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

330
config/i3/config Normal file
View 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 doesnt 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

24
config/kanshi/config Normal file
View File

@@ -0,0 +1,24 @@
profile "default" {
output "LG Electronics LG ULTRAFINE 210MABTPQU13" enable scale 1.25 position 0,0
}
profile "with kamwas" {
output "LG Electronics LG ULTRAFINE 210MABTPQU13" enable scale 1.25 position 0,0
# output "HAT Kamvas Pro 16 0x01010101" enable position 3072,0
output "HAT Kamvas Pro 16 0x01010101" enable position 0,1728
}
profile "laptop" {
output eDP-1 enable position 0,0
exec swaymsg focus output eDP-1
}
profile "laptop with kamwas" {
output eDP-1 enable position 0,0
output "HAT Kamvas Pro 16 0x01010101" enable position 2560,0
exec swaymsg focus output eDP-1
}

View File

@@ -0,0 +1,55 @@
# Based on https://github.com/morhetz/gruvbox by morhetz <morhetz@gmail.com>
# Adapted to kitty by wdomitrz <witekdomitrz@gmail.com>
cursor #928374
cursor_text_color background
url_color #83a598
visual_bell_color #8ec07c
bell_border_color #8ec07c
active_border_color #d3869b
inactive_border_color #665c54
background #282828
foreground #fbf1c7
selection_foreground #928374
selection_background #ebdbb2
active_tab_foreground #fbf1c7
active_tab_background #665c54
inactive_tab_foreground #a89984
inactive_tab_background #3c3836
# black
color0 #282828
color8 #7c6f64
# red
color1 #cc241d
color9 #fb4934
#: green
color2 #98971a
color10 #b8bb26
# yellow
color3 #d79921
color11 #fabd2f
# blue
color4 #458588
color12 #83a598
# purple
color5 #b16286
color13 #d3869b
# aqua
color6 #689d6a
color14 #8ec07c
# white
color7 #a89984
color15 #fbf1c7

78
config/kitty/kitty.conf Normal file
View File

@@ -0,0 +1,78 @@
shell fish
shell_integration no-sudo no-cursor
font_family Iosevka Custom Medium
font_size 12.0
bold_font Iosevka Custom Bold
italic_font Iosevka Custom Medium
bold_italic_font Iosevka Custom Bold
adjust_line_height 95%
cursor_shape block
scrollback_lines 5000
repaint_delay 10
input_delay 3
sync_to_monitor yes
remember_window_size no
window_padding_width 0
window_border_width 0
window_border_width 1
window_padding_width 0
window_margin_width 0
window_resize_step_cells 0
single_window_margin_width 0
draw_minimal_borders True
hide_window_decorations False
placement_strategy top-left
touch_scroll_multiplier 0
wheel_scroll_multiplier 0
wheel_scroll_min_lines 0
touch_scroll_min_lines 0
enable_audio_bell no
visual_bell_duration 0.2
# visual_bell_color #fb4934
tab_bar_style separator
tab_separator " ┇ "
term xterm-256color
map ctrl+shift+enter new_window_with_cwd
map ctrl+shift+t new_tab_with_cwd
map ctrl+shift+1 goto_tab 1
map ctrl+shift+2 goto_tab 2
map ctrl+shift+3 goto_tab 3
map ctrl+shift+4 goto_tab 4
map ctrl+shift+5 goto_tab 5
map ctrl+shift+6 goto_tab 6
map ctrl+shift+7 goto_tab 7
map ctrl+shift+8 goto_tab 8
map ctrl+shift+9 goto_tab 9
map ctrl+shift+equal no_op
map ctrl+shift+minus no_op
map ctrl+shift+backspace no_op
map ctrl+shift+w no_op
# Crutch to disable escaping space
# send_text all alt+space \x20\x7f
map ctrl+alt+equal change_font_size all +2.0
map ctrl+alt+minus change_font_size all -2.0
map ctrl+alt+0 change_font_size all 0
# Would open the scrollback buffer in a new window when you press the F1 key
map ctrl+shift+f1 pipe @ansi window less +G -R
# BEGIN_KITTY_THEME
# Gruvbox Dark
include current-theme.conf
# END_KITTY_THEME

View File

@@ -0,0 +1,78 @@
shell fish
shell_integration no-sudo no-cursor
font_family Iosevka Custom Medium
font_size 12.0
bold_font Iosevka Custom Bold
italic_font Iosevka Custom Medium
bold_italic_font Iosevka Custom Bold
adjust_line_height 98%
cursor_shape block
scrollback_lines 2000
repaint_delay 10
input_delay 3
sync_to_monitor yes
remember_window_size no
window_padding_width 0
window_border_width 0
window_border_width 1
window_padding_width 0
window_margin_width 0
window_resize_step_cells 0
single_window_margin_width 0
draw_minimal_borders True
hide_window_decorations False
placement_strategy top-left
touch_scroll_multiplier 0
wheel_scroll_multiplier 0
wheel_scroll_min_lines 0
touch_scroll_min_lines 0
enable_audio_bell no
visual_bell_duration 0.2
# visual_bell_color #fb4934
tab_bar_style separator
tab_separator " ┇ "
term xterm-256color
map ctrl+shift+enter new_window_with_cwd
map ctrl+shift+t new_tab_with_cwd
map ctrl+shift+1 goto_tab 1
map ctrl+shift+2 goto_tab 2
map ctrl+shift+3 goto_tab 3
map ctrl+shift+4 goto_tab 4
map ctrl+shift+5 goto_tab 5
map ctrl+shift+6 goto_tab 6
map ctrl+shift+7 goto_tab 7
map ctrl+shift+8 goto_tab 8
map ctrl+shift+9 goto_tab 9
map ctrl+shift+equal no_op
map ctrl+shift+minus no_op
map ctrl+shift+backspace no_op
map ctrl+shift+w no_op
# Crutch to disable escaping space
# send_text all alt+space \x20\x7f
map ctrl+alt+equal change_font_size all +2.0
map ctrl+alt+minus change_font_size all -2.0
map ctrl+alt+0 change_font_size all 0
# Would open the scrollback buffer in a new window when you press the F1 key
map ctrl+shift+f1 pipe @ansi window less +G -R
# BEGIN_KITTY_THEME
# Gruvbox Light
include current-theme.conf
# END_KITTY_THEME

40
config/mako/config Normal file
View File

@@ -0,0 +1,40 @@
sort=-time
layer=top
anchor=top-right
background-color=#2e3440
width=300
height=110
border-size=2
border-color=#88c0d0
icons=1
max-icon-size=64
default-timeout=5000
ignore-timeout=1
font=Iosevka Custom 10
[urgency=low]
border-color=#cccccc
[urgency=normal]
border-color=#d08770
[urgency=high]
border-color=#bf616a
default-timeout=0
# [category=mpd]
# default-timeout=2000
# group-by=category
[app-name=wp-vol]
layer=overlay
history=0
anchor=top-center
# Group all volume notifications together
group-by=app-name
# Hide the group-index
format=<b>%s</b>\n%b
[app-name=volume group-index=0]
# Only show last notification
invisible=0

423
config/mpd/mpd.conf Normal file
View File

@@ -0,0 +1,423 @@
# An example configuration file for MPD.
# Read the user manual for documentation: http://www.musicpd.org/doc/user/
# Files and directories #######################################################
#
# This setting controls the top directory which MPD will search to discover the
# available audio files and add them to the daemon's online database. This
# setting defaults to the XDG directory, otherwise the music directory will be
# be disabled and audio files will only be accepted over ipc socket (using
# file:// protocol) or streaming files over an accepted protocol.
music_directory "~/Music"
# This setting sets the MPD internal playlist directory. The purpose of this
# directory is storage for playlists created by MPD. The server will use
# playlist files not created by the server but only if they are in the MPD
# format. This setting defaults to playlist saving being disabled.
#
playlist_directory "~/Music/playlists"
#
# This setting sets the location of the MPD database. This file is used to
# load the database at server start up and store the database while the
# server is not up. This setting defaults to disabled which will allow
# MPD to accept files over ipc socket (using file:// protocol) or streaming
# files over an accepted protocol.
#
db_file "~/.local/share/mpd/database"
# These settings are the locations for the daemon log files for the daemon.
#
# The special value "syslog" makes MPD use the local syslog daemon. This
# setting defaults to logging to syslog.
#
# If you use systemd, do not configure a log_file. With systemd, MPD
# defaults to the systemd journal, which is fine.
#
log_file "~/.local/share/mpd/log"
# This setting sets the location of the file which stores the process ID
# for use of mpd --kill and some init scripts. This setting is disabled by
# default and the pid file will not be stored.
#
# If you use systemd, do not configure a pid_file.
#
pid_file "~/.local/share/mpd/pid"
# This setting sets the location of the file which contains information about
# most variables to get MPD back into the same general shape it was in before
# it was brought down. This setting is disabled by default and the server
# state will be reset on server start up.
#
state_file "~/.local/share/mpd/state"
#
# The location of the sticker database. This is a database which
# manages dynamic information attached to songs.
#
#sticker_file "~/.mpd/sticker.sql"
#
###############################################################################
# General music daemon options ################################################
#
# This setting specifies the user that MPD will run as. MPD should never run as
# root and you may use this setting to make MPD change its user ID after
# initialization. This setting is disabled by default and MPD is run as the
# current user.
#
user "krsh"
#
# This setting specifies the group that MPD will run as. If not specified
# primary group of user specified with "user" setting will be used (if set).
# This is useful if MPD needs to be a member of group such as "audio" to
# have permission to use sound card.
#
#group "nogroup"
#
# This setting sets the address for the daemon to listen on. Careful attention
# should be paid if this is assigned to anything other than the default, any.
# This setting can deny access to control of the daemon. Not effective if
# systemd socket activation is in use.
#
# For network
bind_to_address "localhost"
#
# And for Unix Socket
# bind_to_address "/var/lib/mpd/socket"
#
# This setting is the TCP port that is desired for the daemon to get assigned
# to.
#
#port "6600"
#
# Suppress all messages below the given threshold. Use "verbose" for
# troubleshooting. Available setting arguments are "notice", "info", "verbose",
# "warning" and "error".
#
#log_level "notice"
#
# Setting "restore_paused" to "yes" puts MPD into pause mode instead
# of starting playback after startup.
#
#restore_paused "no"
#
# This setting enables MPD to create playlists in a format usable by other
# music players.
#
#save_absolute_paths_in_playlists "no"
#
# This setting defines a list of tag types that will be extracted during the
# audio file discovery process. The complete list of possible values can be
# found in the user manual.
#metadata_to_use "artist,album,title,track,name,genre,date,composer,performer,disc"
#
# This example just enables the "comment" tag without disabling all
# the other supported tags:
#metadata_to_use "+comment"
#
# This setting enables automatic update of MPD's database when files in
# music_directory are changed.
#
#auto_update "yes"
#
# Limit the depth of the directories being watched, 0 means only watch
# the music directory itself. There is no limit by default.
#
#auto_update_depth "3"
#
###############################################################################
# Symbolic link behavior ######################################################
#
# If this setting is set to "yes", MPD will discover audio files by following
# symbolic links outside of the configured music_directory.
#
#follow_outside_symlinks "yes"
#
# If this setting is set to "yes", MPD will discover audio files by following
# symbolic links inside of the configured music_directory.
#
#follow_inside_symlinks "yes"
#
###############################################################################
# Zeroconf / Avahi Service Discovery ##########################################
#
# If this setting is set to "yes", service information will be published with
# Zeroconf / Avahi.
#
#zeroconf_enabled "yes"
#
# The argument to this setting will be the Zeroconf / Avahi unique name for
# this MPD server on the network. %h will be replaced with the hostname.
#
#zeroconf_name "Music Player @ %h"
#
###############################################################################
# Permissions #################################################################
#
# If this setting is set, MPD will require password authorization. The password
# setting can be specified multiple times for different password profiles.
#
#password "password@read,add,control,admin"
#
# This setting specifies the permissions a user has who has not yet logged in.
#
#default_permissions "read,add,control,admin"
#
###############################################################################
# Database #######################################################################
#
# An example of a database section instead of the old 'db_file' setting.
# It enables mounting other storages into the music directory.
#
#database {
# plugin "simple"
# path "~/.local/share/mpd/db"
# cache_directory "~/.local/share/mpd/cache"
#}
#
# An example of database config for a satellite setup
#
# music_directory "/var/lib/mpd/music"
#database {
# plugin "proxy"
# host "other.mpd.host"
# port "6600"
#}
# Input #######################################################################
#
input {
plugin "curl"
# proxy "proxy.isp.com:8080"
# proxy_user "user"
# proxy_password "password"
}
#
###############################################################################
# Audio Output ################################################################
#
# MPD supports various audio output types, as well as playing through multiple
# audio outputs at the same time, through multiple audio_output settings
# blocks. Setting this block is optional, though the server will only attempt
# autodetection for one sound card.
#
# An example of an ALSA output:
#
#audio_output {
# type "alsa"
# name "My ALSA Device"
## device "hw:0,0" # optional
## mixer_type "hardware" # optional
## mixer_device "default" # optional
## mixer_control "PCM" # optional
## mixer_index "0" # optional
#}
#
# An example of an OSS output:
#
#audio_output {
# type "oss"
# name "My OSS Device"
## device "/dev/dsp" # optional
## mixer_type "hardware" # optional
## mixer_device "/dev/mixer" # optional
## mixer_control "PCM" # optional
#}
#
# An example of a shout output (for streaming to Icecast):
#
#audio_output {
# type "shout"
# encoder "vorbis" # optional
# name "My Shout Stream"
# host "localhost"
# port "8000"
# mount "/mpd.ogg"
# password "hackme"
# quality "5.0"
# bitrate "128"
# format "44100:16:1"
## protocol "icecast2" # optional
## user "source" # optional
## description "My Stream Description" # optional
## url "http://example.com" # optional
## genre "jazz" # optional
## public "no" # optional
## timeout "2" # optional
## mixer_type "software" # optional
#}
#
# An example of a recorder output:
#
#audio_output {
# type "recorder"
# name "My recorder"
# encoder "vorbis" # optional, vorbis or lame
# path "/var/lib/mpd/recorder/mpd.ogg"
## quality "5.0" # do not define if bitrate is defined
# bitrate "128" # do not define if quality is defined
# format "44100:16:1"
#}
#
# An example of a httpd output (built-in HTTP streaming server):
#
#audio_output {
# type "httpd"
# name "My HTTP Stream"
# encoder "vorbis" # optional, vorbis or lame
# port "8000"
# bind_to_address "0.0.0.0" # optional, IPv4 or IPv6
## quality "5.0" # do not define if bitrate is defined
# bitrate "128" # do not define if quality is defined
# format "44100:16:1"
# max_clients "0" # optional 0=no limit
#}
#
# An example of a pulseaudio output (streaming to a remote pulseaudio server)
#
#audio_output {
# type "pulse"
# name "My Pulse Output"
## server "remote_server" # optional
## sink "remote_server_sink" # optional
## media_role "media_role" #optional
#}
#
# An example of a winmm output (Windows multimedia API).
#
#audio_output {
# type "winmm"
# name "My WinMM output"
## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional
# or
## device "0" # optional
## mixer_type "hardware" # optional
#}
#
# An example of a wasapi output (Windows multimedia API).
#
#audio_output {
# type "wasapi"
# name "My WASAPI output"
## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional
# or
## device "0" # optional
## Exclusive mode blocks all other audio source, and get best audio quality without resampling.
## exclusive "no" # optional
## Enumerate all devices in log.
## enumerate "no" # optional
#}
#
# An example of an openal output.
#
#audio_output {
# type "openal"
# name "My OpenAL output"
## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional
#}
#
# An example of an sndio output.
#
#audio_output {
# type "sndio"
# name "sndio output"
# mixer_type "hardware"
#}
#
# An example of an OS X output:
#
#audio_output {
# type "osx"
# name "My OS X Device"
## device "Built-in Output" # optional
## channel_map "-1,-1,0,1" # optional
#}
#
## Example "pipe" output:
#
#audio_output {
# type "pipe"
# name "my pipe"
# command "aplay -f cd 2>/dev/null"
## Or if you're want to use AudioCompress
# command "AudioCompress -m | aplay -f cd 2>/dev/null"
## Or to send raw PCM stream through PCM:
# command "nc example.org 8765"
# format "44100:16:2"
#}
#
## An example of a null output (for no audio output):
#
#audio_output {
# type "null"
# name "My Null Output"
# mixer_type "none" # optional
#}
#
###############################################################################
audio_output {
type "pipewire"
name "PipeWire Sound Server"
}
# Normalization automatic volume adjustments ##################################
#
# This setting specifies the type of ReplayGain to use. This setting can have
# the argument "off", "album", "track" or "auto". "auto" is a special mode that
# chooses between "track" and "album" depending on the current state of
# random playback. If random playback is enabled then "track" mode is used.
# See <https://wiki.hydrogenaud.io/index.php?title=Replaygain> for
# more details about ReplayGain.
# This setting is off by default.
#
#replaygain "album"
#
# This setting sets the pre-amp used for files that have ReplayGain tags. By
# default this setting is disabled.
#
#replaygain_preamp "0"
#
# This setting sets the pre-amp used for files that do NOT have ReplayGain tags.
# By default this setting is disabled.
#
#replaygain_missing_preamp "0"
#
# This setting enables or disables ReplayGain limiting.
# MPD calculates actual amplification based on the ReplayGain tags
# and replaygain_preamp / replaygain_missing_preamp setting.
# If replaygain_limit is enabled MPD will never amplify audio signal
# above its original level. If replaygain_limit is disabled such amplification
# might occur. By default this setting is enabled.
#
#replaygain_limit "yes"
#
# This setting enables on-the-fly normalization volume adjustment. This will
# result in the volume of all playing audio to be adjusted so the output has
# equal "loudness". This setting is disabled by default.
#
#volume_normalization "no"
#
###############################################################################
# Character Encoding ##########################################################
#
# If file or directory names do not display correctly for your locale then you
# may need to modify this setting.
#
filesystem_charset "UTF-8"
#
###############################################################################

62
config/mutt/colors Normal file
View File

@@ -0,0 +1,62 @@
source ~/.config/mutt/colors-gruvbox-shuber-transparent-bg.muttrc
# Sidebar
#
# Color of the highlighted, but not open, mailbox.
color sidebar_highlight black color8
# Color of the divider separating the Sidebar from NeoMutt panels
color sidebar_divider color8 default
# Color to give mailboxes containing flagged mail
color sidebar_flagged default default
# Color to give mailboxes containing new mail
color sidebar_new color108 default
# color sidebar_spoolfile green default
# color sidebar_spoolfile yellow default
# Color to give mailboxes containing no new/flagged mail, etc.
color sidebar_ordinary default default
# Color if the attachment is autoviewed
color attach_headers brightgreen default "Autoview"
# Color only the brackets around the headers
color attach_headers brightyellow default "^\\[--"
color attach_headers brightyellow default "--]$"
# Color the mime type and the size
color attach_headers green default "Type: [a-z]+/[a-z0-9\-]+"
color attach_headers green default "Size: [0-9\.]+[KM]"
# Color GPGME signature checks
color attach_headers brightgreen default "Good signature from.*"
color attach_headers brightred default "Bad signature from.*"
color attach_headers brightred default "BAD signature from.*"
color attach_headers brightred default "Note: This key has expired!"
color attach_headers brightmagenta default "Problem signature from.*"
color attach_headers brightmagenta default "WARNING: This key is not certified with a trusted signature!"
color attach_headers brightmagenta default " There is no indication that the signature belongs to the owner."
color attach_headers brightmagenta default "can't handle these multiple signatures"
color attach_headers brightmagenta default "signature verification suppressed"
color attach_headers brightmagenta default "invalid node with packet of type"
# Highlight a particular from (~f)
# color index_author brightyellow default '~fRay Charles'
# Message flags, %S %Z
# Highlight the flags for flagged (~F) emails
color index_flags default red '~F'
# Subject, %s
# Look for a particular subject (~s)
# color index_subject brightcyan default '~s\(closes #[0-9]+\)'
# Number of messages in a collapsed thread, %M
color index_collapsed default brightblue
# Date field
color index_date green default
# Message label, %y %Y
color index_label default brightgreen
# Message number, %C
color index_number red default
# Message size, %c %l
color index_size cyan default
# The 'progress' feature provides clear visual feedback for
# slow tasks, such as indexing a large folder over the net.
# Set the color of the progress bar
# White text on a red background
color progress white red

View File

@@ -0,0 +1,87 @@
# gruvbox dark (contrast dark):
# bg0 = 234
# bg1 = 237
# bg2 = 239
# bg3 = 241
# bg4 = 243
#
# gray = 245
#
# fg0 = 229
# fg1 = 223
# fg2 = 250
# fg3 = 248
# fg4 = 246
#
# red = 167
# green = 142
# yellow = 214
# blue = 109
# purple = 175
# aqua = 108
# orange = 208
# See http://www.mutt.org/doc/manual/#color
color attachment color109 default
color bold color229 default
color error color167 default
color hdrdefault color246 default
color indicator color223 default
color markers color243 default
color normal color223 default
color quoted color250 default
color quoted1 color108 default
color quoted2 color250 default
color quoted3 color108 default
color quoted4 color250 default
color quoted5 color108 default
color search color234 color208
color signature color108 default
color status color234 color250
color tilde color243 default
color tree color142 default
color underline color223 default
color sidebar_divider color250 default
color sidebar_new color142 default
color index color142 default ~N
color index color108 default ~O
color index color109 default ~P
color index color214 default ~F
color index color175 default ~Q
color index color167 default ~=
color index color234 color223 ~T
color index color234 color167 ~D
color header color214 default "^(To:|From:)"
color header color142 default "^Subject:"
color header color108 default "^X-Spam-Status:"
color header color108 default "^Received:"
color body color142 default "[a-z]{3,256}://[-a-zA-Z0-9@:%._\\+~#=/?&,]+"
#color body color142 default "[a-zA-Z]([-a-zA-Z0-9_]+\\.){2,256}[-a-zA-Z0-9_]{2,256}"
color body color208 default "[-a-z_0-9.%$]+@[-a-z_0-9.]+\\.[-a-z][-a-z]+"
color body color208 default "mailto:[-a-z_0-9.]+@[-a-z_0-9.]+"
color body color234 color214 "[;:]-*[)>(<lt;|]"
color body color229 default "\\*[- A-Za-z]+\\*"
color body color214 default "^-.*PGP.*-*"
color body color142 default "^gpg: Good signature from"
color body color167 default "^gpg: Can't.*$"
color body color214 default "^gpg: WARNING:.*$"
color body color167 default "^gpg: BAD signature from"
color body color167 default "^gpg: Note: This key has expired!"
color body color214 default "^gpg: There is no indication that the signature belongs to the owner."
color body color214 default "^gpg: can't handle these multiple signatures"
color body color214 default "^gpg: signature verification suppressed"
color body color214 default "^gpg: invalid node with packet of type"
color compose header color223 default
color compose security_encrypt color175 default
color compose security_sign color109 default
color compose security_both color142 default
color compose security_none color208 default

View File

@@ -0,0 +1,87 @@
# gruvbox dark (contrast dark):
# bg0 = 234
# bg1 = 237
# bg2 = 239
# bg3 = 241
# bg4 = 243
#
# gray = 245
#
# fg0 = 229
# fg1 = 223
# fg2 = 250
# fg3 = 248
# fg4 = 246
#
# red = 167
# green = 142
# yellow = 214
# blue = 109
# purple = 175
# aqua = 108
# orange = 208
# See http://www.mutt.org/doc/manual/#color
color attachment color109 color235
color bold color229 color235
color error color167 color235
color hdrdefault color246 color235
color indicator color223 color235
color markers color243 color235
color normal color223 color235
color quoted color250 color235
color quoted1 color108 color235
color quoted2 color250 color235
color quoted3 color108 color235
color quoted4 color250 color235
color quoted5 color108 color235
color search color234 color208
color signature color108 color235
color status color234 color250
color tilde color243 color235
color tree color142 color235
color underline color223 color235
color sidebar_divider color250 color235
color sidebar_new color142 color235
color index color142 color235 ~N
color index color108 color235 ~O
color index color109 color235 ~P
color index color214 color235 ~F
color index color175 color235 ~Q
color index color167 color235 ~=
color index color234 color223 ~T
color index color234 color167 ~D
color header color214 color235 "^(To:|From:)"
color header color142 color235 "^Subject:"
color header color108 color235 "^X-Spam-Status:"
color header color108 color235 "^Received:"
color body color142 color235 "[a-z]{3,256}://[-a-zA-Z0-9@:%._\\+~#=/?&,]+"
#color body color142 color235 "[a-zA-Z]([-a-zA-Z0-9_]+\\.){2,256}[-a-zA-Z0-9_]{2,256}"
color body color208 color235 "[-a-z_0-9.%$]+@[-a-z_0-9.]+\\.[-a-z][-a-z]+"
color body color208 color235 "mailto:[-a-z_0-9.]+@[-a-z_0-9.]+"
color body color234 color214 "[;:]-*[)>(<lt;|]"
color body color229 color235 "\\*[- A-Za-z]+\\*"
color body color214 color235 "^-.*PGP.*-*"
color body color142 color235 "^gpg: Good signature from"
color body color167 color235 "^gpg: Can't.*$"
color body color214 color235 "^gpg: WARNING:.*$"
color body color167 color235 "^gpg: BAD signature from"
color body color167 color235 "^gpg: Note: This key has expired!"
color body color214 color235 "^gpg: There is no indication that the signature belongs to the owner."
color body color214 color235 "^gpg: can't handle these multiple signatures"
color body color214 color235 "^gpg: signature verification suppressed"
color body color214 color235 "^gpg: invalid node with packet of type"
color compose header color223 color235
color compose security_encrypt color175 color235
color compose security_sign color109 color235
color compose security_both color142 color235
color compose security_none color208 color235

View File

@@ -0,0 +1,89 @@
# gruvbox dark (contrast dark):
# bg = 235 <
# bg0 = 234
# bg1 = 237
# bg2 = 239
# bg3 = 241
# bg4 = 243
#
# gray = 245
#
# fg0 = 229
# fg1 = 223 <
# fg2 = 250
# fg3 = 248
# fg4 = 246
#
# red = 167
# green = 142
# yellow = 214
# blue = 109
# purple = 175
# aqua = 108
# orange = 208
# See http://www.mutt.org/doc/manual/#color
color attachment color109 color235
color bold color229 color215
color error color167 color235
color hdrdefault color246 color235
color indicator color223 color238
color markers color243 color235
color normal color223 color235
color quoted color248 color235
color quoted1 color108 color235
color quoted2 color248 color235
color quoted3 color108 color235
color quoted4 color248 color235
color quoted5 color108 color235
color search color235 color208
color signature color108 color235
color status color235 color246
color tilde color243 color235
color tree color246 color235
color underline color223 color239
color sidebar_divider color246 color235
color sidebar_new color142 color235
color sidebar_unread color142 color235
color sidebar_highlight color208 color235
color index_number color240 color235
color index_author color214 color235 '.*'
color index_subject color142 color235 '.*'
color index brightcolor223 color235 '~N'
color index_flags brightcolor142 color235 '~N'
color index_author brightcolor214 color235 '~N'
color index_subject brightcolor142 color235 '~N'
color index color240 color235 '~D'
color index_flags color167 color235 '~D'
color index_author color240 color235 '~D'
color index_subject color240 color235 '~D'
color header color214 color235 "^From:"
color header color208 color235 "^(To:|Cc:)"
color header color142 color235 "^Subject:"
color header color108 color235 "^X-Spam-Status:"
color header color108 color235 "^Received:"
color compose header color223 color235
color compose security_encrypt color175 color235
color compose security_sign color109 color235
color compose security_both color142 color235
color compose security_none color208 color235
# URL
color body color175 color235 "[a-z]{3,256}://[-a-zA-Z0-9@:%._\\+~#=/?&,]+"
# email
color body color208 color235 "[-a-z_0-9.%$]+@[-a-z_0-9.]+\\.[-a-z][-a-z]+"
# mailto link
color body color208 color235 "mailto:[-a-z_0-9.]+@[-a-z_0-9.]+"
# smileys
color body color235 color214 "[;:]-[)(pPsS\|D]"
# *bold*
color body color229 color235 "\\*[-' A-Za-z0-9]+\\*"
# vim: filetype=neomuttrc

4
config/mutt/mailcap Normal file
View File

@@ -0,0 +1,4 @@
text/html; elinks %s; nametemplate=%s.html
text/html; elinks -dump %s; nametemplate=%s.html; copiousoutput
application/pdf; xdg-open %s; copiousoutput
image/*; xdg-open %s

181
config/mutt/muttrc Normal file
View File

@@ -0,0 +1,181 @@
## General options
set header_cache = "~/.cache/mutt"
set mbox_type = Maildir
set folder = ~/Mail
set include
set markers = no
set realname = "Sergey Besedin"
set confirmappend = no
set delete
set edit_headers
set fast_reply
set mail_check = 30
set move = no
set sort_browser = date
set sort = reverse-last-date-received
set editor = "nvim"
set send_charset = "utf-8"
set new_mail_command="notify-send 'New e-mail' '%n new messages, %u unread.' &"
# unset envelope_from_address
set reverse_name
set use_envelope_from
source ~/.config/mutt/colors
# notmuch configuration
# set nm_default_uri = "notmuch:///home/krsh/Mail"
# set virtual_spoolfile=yes
#
# virtual-mailboxes "inbox" "notmuch://?query=tag:inbox"
# virtual-mailboxes "archive" "notmuch://?query=tag:archive"
# virtual-mailboxes "sent" "notmuch://?query=tag:sent"
# virtual-mailboxes "newsletters" "notmuch://?query=tag:newsletters"
#
# macro index A "<modify-labels>+archive -unread -inbox\\n" "Archive message"
# macro index c "<change-vfolder>?" "Change to vfolder overview"
# macro index \\\\ "<vfolder-from-query>" "Search mailbox"
# set nm_db_limit = 0
# set nm_exclude_tags = "spam"
# set nm_query_type = "messages"
# The messages tagged with these tags are excluded and not loaded
# from notmuch DB to NeoMutt unless specified explicitly.
# # This option specifies timeout for Notmuch database. Default is 5 seconds.
# set nm_open_timeout = 5
# # This variable specifies notmuch query type, supported types: 'threads' and
# # 'messages'.
# set nm_query_type = messages
# # Add messages stored to the NeoMutt record (see $record in the NeoMutt docs)
# # also to notmuch DB. If you reply to an email then the new email inherits
# # tags from the original email.
# set nm_record = no
# # Tags that should be removed or added to the to the messages stored in the NeoMutt record.
# # example:
# # set record = "~/sent-mails"
# # set nm_record = yes
# # set nm_record_tags = "-inbox,archive,me"
# set nm_record_tags = ""
# # This variable specifies notmuch tag which is used for unread messages.
# set nm_unread_tag = unread
# # This variable allows you to customize the file browser display for virtual
# # folders to your personal taste.
# # %C current folder number
# # %f folder name (description)
# # %m number of messages in the mailbox *
# # %n number of unread messages in the mailbox *
# # %N N if mailbox has new mail, blank otherwise
# # %>X right justify the rest of the string and pad with character ``X''
# # %|X pad to the end of the line with character ``X''
# # %*X soft-fill with character ``X'' as pad
# set vfolder_format = "%6n(%6N) %f"
# # When set, NeoMutt will use the first virtual mailbox (see virtual-mailboxes)
# # as a spoolfile.
# set virtual_spoolfile = no
# setup time window preferences
# first setup the duration, and then the time unit of that duration
# when set to 0 (the default) the search window feature is disabled
# set nm_query_window_duration=1
# set nm_query_window_timebase="month" # or "hour", "day", "week", "month", "year"
# --------------------------------------------------------------------------
# FUNCTIONS shown with an example mapping
# --------------------------------------------------------------------------
# open a different virtual folder
# bind index,pager X change-vfolder
# read entire thread of the current message
# bind index,pager + entire-thread
# # generate virtual folder from query
# bind index,pager \eX vfolder-from-query
# # generate virtual folder from query with time window
# bind index < vfolder-window-backward
# bind index > vfolder-window-forward
set sidebar_width = 30
set sidebar_visible = no
# set sidebar_format = "%B%?F? ?%* %?N?%N/?%S"
set sidebar_format = "%B %* %?N?%N/?%?S?%S?"
set sidebar_new_mail_only = no
set sidebar_delim_chars = "/" # Delete everything up to the last / character
set sidebar_short_path = no
set sidebar_folder_indent # Indent folders whose names we've shortened
set sidebar_indent_string=" " # Indent with two spaces
set mail_check_stats
set pager_index_lines = 10
# The default index_format is:
# '%4C %Z %{%b %d} %-15.15L (%?l?%4l&%4c?) %s'
#
# We replace the date field '%{%b %d}', giving:
set index_format='%4C %Z %<[y?%<[m?%<[d?%[%H:%M ]&%[%a %d]>&%[%b %d]>&%[%m/%y ]> %-15.15L (%?l?%4l&%4c?) %s'
# Test Date Range Format String Example
# --------------------------------------------
# %[d Today %[%H:%M ] 12:34
# %[m This month %[%a %d] Thu 12
# %[y This year %[%b %d] Dec 10
# — Older %[%m/%y ] 06/15
# Limit view to current thread
# bind index <esc>L limit-current-thread
# The 'S' (skip-quoted) command scrolls the pager past the quoted text (usually
# indented with '> '. Setting 'skip_quoted_offset' leaves some lines of quoted
# text on screen for context.
# Show three quoted lines before the reply
set skip_quoted_offset = 3
# Macros
macro index Z "<shell-escape>mbsync -a<enter>" "Sync all"
# More vim-like bindings
# bind index i noop
bind attach,index g noop # clear for next binding
bind attach,index gg first-entry
bind attach,index G last-entry
bind index N search-opposite
# bind pager i exit
# bind pager q toggle-quoted
bind pager / search
# QWERTY
bind pager j next-line
bind pager k previous-line
bind pager g noop # clear for next binding
bind pager gg top
bind pager G bottom
bind index,pager \# noop
bind index,pager \& noop
bind index,pager R group-reply
## Keys
bind attach,index,pager \CD next-page
bind attach,index,pager \CU previous-page
bind index,pager B sidebar-toggle-visible
bind index,pager \CO sidebar-open
# QWERTY
bind index,pager \Ck sidebar-prev
bind index,pager \Cj sidebar-next
macro attach 'V' "<pipe-entry>cat > /tmp/mutt-preview.html && $HOME/bin/preview-html /tmp/mutt-preview.html; rm /tmp/mutt-preview.html<enter>"
macro index 'c' '<change-folder>?<change-dir><home>^K=<enter>'
set mailcap_path = ~/.config/mutt/mailcap
auto_view text/html
alternative_order text/plain text/html
folder-hook . 'set read_inc=1000'
# GnuPG bootstrap
# source ~/.mutt/gpg.rc
source ~/.config/mutt/mailboxes.muttrc

View File

@@ -5,8 +5,8 @@
# vim: set ai et fenc=utf-8 ft=conf nu si sts=0 sw=4 ts=8 tw=0 :
# ----------------------------------------------------------------------
auto-reload yes
browser qutebrowser
auto-reload no
browser firefox
cleanup-on-quit yes
feed-sort-order firsttag
max-downloads 4
@@ -27,8 +27,7 @@ feedlist-format "%4i %11u %T > %t"
define-filter "Only query feeds" "feedtitle =~ \"====\""
include "~/.newsboat/nextcloud"
include "~/.config/newsboat/nextcloud"
# binds ----------------------------------------------------------------
@@ -38,6 +37,18 @@ bind-key \ reload-all
bind-key "RIGHT" select-tag
bind-key "SPACE" open
# unbind keys
unbind-key ENTER
unbind-key j
unbind-key k
unbind-key J
unbind-key K
# bind keys - vim style
bind-key j down
bind-key k up
bind-key l open
bind-key h quit
# hide articles matching: ---------------------------------------------
@@ -67,3 +78,19 @@ highlight article ":.*\\(embedded flash\\)$" color74 default
color listnormal white default
color listfocus default color240
color info default color240
color background color236 default
color listnormal color248 default
color listnormal_unread color6 default
color listfocus color236 color12
color listfocus_unread color15 color12
color info color248 color236
color article color248 default
# highlights
highlight article "^(Feed|Link):.*$" color6 default bold
highlight article "^(Title|Date|Author):.*$" color6 default bold
highlight article "https?://[^ ]+" color10 default underline
highlight article "\\[[0-9]+\\]" color10 default bold
highlight article "\\[image\\ [0-9]+\\]" color10 default bold
highlight feedlist "^─.*$" color6 color236 bold

View File

@@ -0,0 +1,40 @@
{
"solargraph.diagnostics": true,
"solargraph.useBundler": false,
"solargraph.hover": true,
"solargraph.references": true,
"solargraph.definitions": true,
"diagnostic.errorSign": "E>",
"diagnostic.warningSign": "W>",
"diagnostic.infoSign": "I>",
"diagnostic.hintSign": "?>",
"diagnostic.locationlistUpdate": true,
"diagnostic.displayByAle": false,
"diagnostic.messageTarget": "float",
"diagnostic.messageDelay": 250,
"diagnostic.refreshOnInsertMode": false,
"highlight.disableLanguages": ["slim", "md"],
"coc.source.omni.filetypes": [],
"coc.source.omni.enable": false,
"tailwindCSS.emmetCompletions": true,
"languageserver": {
"golang": {
"command": "gopls",
"rootPatterns": ["go.mod", ".vim/", ".git/", ".hg/"],
"filetypes": ["go"],
"initializationOptions": {
"usePlaceholders": true
}
},
"godot": {
"host": "127.0.0.1",
"port": 6008,
"trace.server": "verbose",
"filetypes": ["gd", "tscn", "gdscript3"]
},
"erlang": {
"command": "erlang_ls",
"filetypes": ["erlang"]
}
}
}

View File

@@ -0,0 +1,6 @@
vim.treesitter.start()
vim.wo[0][0].foldexpr = 'v:lua.vim.treesitter.foldexpr()'
vim.wo[0][0].foldmethod = 'expr'
vim.bo.indentexpr = "v:lua.require'nvim-treesitter'.indentexpr()"

View File

@@ -0,0 +1,6 @@
vim.treesitter.start()
vim.wo[0][0].foldexpr = 'v:lua.vim.treesitter.foldexpr()'
vim.wo[0][0].foldmethod = 'expr'
vim.bo.indentexpr = "v:lua.require'nvim-treesitter'.indentexpr()"

View File

@@ -0,0 +1,2 @@
nnoremap <buffer> <C-5> :GodotRun<CR>
nnoremap <buffer> <C-6> :GodotRunCurrent<CR>

View File

@@ -0,0 +1,6 @@
vim.treesitter.start()
vim.wo[0][0].foldexpr = 'v:lua.vim.treesitter.foldexpr()'
vim.wo[0][0].foldmethod = 'expr'
vim.bo.indentexpr = "v:lua.require'nvim-treesitter'.indentexpr()"

View File

@@ -0,0 +1,6 @@
vim.treesitter.start()
vim.wo[0][0].foldexpr = 'v:lua.vim.treesitter.foldexpr()'
vim.wo[0][0].foldmethod = 'expr'
vim.bo.indentexpr = "v:lua.require'nvim-treesitter'.indentexpr()"

1030
config/nvim/init.vim Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -384,51 +384,51 @@ c.fonts.monospace = '"Iosevka Term", Terminus, Monospace, "DejaVu Sans Mono", Mo
# Font used in the completion widget.
# Type: Font
c.fonts.completion.entry = '12pt bold monospace'
c.fonts.completion.entry = '7pt bold monospace'
# Font used in the completion categories.
# Type: Font
c.fonts.completion.category = 'bold 12pt monospace'
c.fonts.completion.category = 'bold 7pt monospace'
# Font used for the debugging console.
# Type: QtFont
c.fonts.debug_console = '12pt bold monospace'
c.fonts.debug_console = '7pt bold monospace'
# Font used for the downloadbar.
# Type: Font
c.fonts.downloads = '12pt bold monospace'
c.fonts.downloads = '7pt bold monospace'
# Font used for the hints.
# Type: Font
c.fonts.hints = '12pt bold monospace'
c.fonts.hints = '7pt bold monospace'
# Font used in the keyhint widget.
# Type: Font
c.fonts.keyhint = '12pt bold monospace'
c.fonts.keyhint = '7pt bold monospace'
# Font used for error messages.
# Type: Font
c.fonts.messages.error = '12pt bold monospace'
c.fonts.messages.error = '7pt bold monospace'
# Font used for info messages.
# Type: Font
c.fonts.messages.info = '12pt bold monospace'
c.fonts.messages.info = '7pt bold monospace'
# Font used for warning messages.
# Type: Font
c.fonts.messages.warning = '12pt bold monospace'
c.fonts.messages.warning = '7pt bold monospace'
# Font used for prompts.
# Type: Font
c.fonts.prompts = '16pt sans-serif'
c.fonts.prompts = '10pt sans-serif'
# Font used in the statusbar.
# Type: Font
c.fonts.statusbar = '12pt bold monospace'
c.fonts.statusbar = '7pt bold monospace'
# Font used in the tab bar.
# Type: QtFont
c.fonts.tabs = '12pt bold monospace'
c.fonts.tabs = '7pt bold monospace'
# Font family for cursive fonts.
# Type: FontFamily

2
config/ranger/rc.conf Normal file
View File

@@ -0,0 +1,2 @@
set preview_images true
set show_hidden true

48
config/redshift.conf Normal file
View File

@@ -0,0 +1,48 @@
[redshift]
; Set the day and night screen temperatures
temp-day=6500
temp-night=4500
; Enable/Disable a smooth transition between day and night
; 0 will cause a direct change from day to night screen temperature.
; 1 will gradually increase or decrease the screen temperature
transition=0
; Set the screen brightness. Default is 1.0
;brightness=0.9
; It is also possible to use different settings for day and night since version 1.8.
;brightness-day=1.0
brightness-night=0.8
; Set the screen gamma (for all colors, or each color channel individually)
;gamma=0.9
gamma-night=0.9
;gamma=0.8:0.7:0.8
; Set the location-provider: 'geoclue', 'gnome-clock', 'manual'
; type 'redshift -l list' to see possible values
; The location provider settings are in a different section.
location-provider=manual
; Set the adjustment-method: 'randr', 'vidmode'
; type 'redshift -m list' to see all possible values
; 'randr' is the preferred method, 'vidmode' is an older API
; but works in some cases when 'randr' does not.
; The adjustment method settings are in a different section.
adjustment-method=randr
; Configuration of the location-provider:
; type 'redshift -l PROVIDER:help' to see the settings
; e.g. 'redshift -l manual:help'
[manual]
lat=41.738013
lon=44.622852
; Configuration of the adjustment-method
; type 'redshift -m METHOD:help' to see the settings
; ex: 'redshift -m randr:help'
; In this example, randr is configured to adjust screen 1.
; Note that the numbering starts from 0, so this is actually the second screen.
[randr]
screen=0
crtc=0

5
config/redshift/hooks Normal file
View File

@@ -0,0 +1,5 @@
#!/bin/sh
case $1 in
period-changed)
exec notify-send "Redshift" "Period changed to $3"
esac

176
config/rofi/config.rasi Normal file
View File

@@ -0,0 +1,176 @@
configuration {
font: "Iosevka 12";
/* modes: "window,drun,run,ssh";*/
/* location: 0;*/
/* yoffset: 0;*/
/* xoffset: 0;*/
/* fixed-num-lines: true;*/
/* show-icons: false;*/
/* preview-cmd: ;*/
/* on-selection-changed: ;*/
/* on-mode-changed: ;*/
/* on-entry-accepted: ;*/
/* on-menu-canceled: ;*/
/* on-menu-error: ;*/
/* on-screenshot-taken: ;*/
/* terminal: "rofi-sensible-terminal";*/
/* ssh-client: "ssh";*/
/* ssh-command: "{terminal} -e {ssh-client} {host} [-p {port}]";*/
/* run-command: "{cmd}";*/
/* run-list-command: "";*/
/* run-shell-command: "{terminal} -e {cmd}";*/
/* window-command: "wmctrl -i -R {window}";*/
/* window-match-fields: "all";*/
/* icon-theme: ;*/
/* drun-match-fields: "name,generic,exec,categories,keywords";*/
/* drun-categories: ;*/
/* drun-exclude-categories: ;*/
/* drun-show-actions: false;*/
/* drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]";*/
/* drun-url-launcher: "xdg-open";*/
/* disable-history: false;*/
/* ignored-prefixes: "";*/
/* sort: false;*/
/* sorting-method: "normal";*/
/* case-sensitive: false;*/
/* case-smart: false;*/
/* cycle: true;*/
/* sidebar-mode: false;*/
/* hover-select: false;*/
/* eh: 1;*/
/* auto-select: false;*/
/* parse-hosts: false;*/
/* parse-known-hosts: true;*/
/* combi-modes: "window,run";*/
/* matching: "normal";*/
/* tokenize: true;*/
/* m: "-5";*/
/* filter: ;*/
/* dpi: -1;*/
/* threads: 0;*/
/* scroll-method: 0;*/
/* window-format: "{w} {c} {t}";*/
/* click-to-exit: true;*/
/* max-history-size: 25;*/
/* combi-hide-mode-prefix: false;*/
/* combi-display-format: "{mode} {text}";*/
/* matching-negate-char: '-' /* unsupported */;*/
/* cache-dir: ;*/
/* window-thumbnail: false;*/
/* drun-use-desktop-cache: false;*/
/* drun-reload-desktop-cache: false;*/
/* normalize-match: false;*/
/* steal-focus: false;*/
/* application-fallback-icon: ;*/
/* refilter-timeout-limit: 300;*/
/* xserver-i300-workaround: false;*/
/* completer-mode: "filebrowser";*/
/* imdkit: true;*/
/* pid: "/run/user/1000/rofi.pid";*/
/* display-window: ;*/
/* display-windowcd: ;*/
/* display-run: ;*/
/* display-ssh: ;*/
/* display-drun: ;*/
/* display-combi: ;*/
/* display-keys: ;*/
/* display-filebrowser: ;*/
/* display-recursivebrowser: ;*/
/* kb-primary-paste: "Control+V,Shift+Insert";*/
/* kb-secondary-paste: "Control+v,Insert";*/
/* kb-secondary-copy: "Control+c";*/
/* kb-clear-line: "Control+w";*/
/* kb-move-front: "Control+a";*/
/* kb-move-end: "Control+e";*/
/* kb-move-word-back: "Alt+b,Control+Left";*/
/* kb-move-word-forward: "Alt+f,Control+Right";*/
/* kb-move-char-back: "Left,Control+b";*/
/* kb-move-char-forward: "Right,Control+f";*/
/* kb-remove-word-back: "Control+Alt+h,Control+BackSpace";*/
/* kb-remove-word-forward: "Control+Alt+d";*/
/* kb-remove-char-forward: "Delete,Control+d";*/
/* kb-remove-char-back: "BackSpace,Shift+BackSpace,Control+h";*/
/* kb-remove-to-eol: "Control+k";*/
/* kb-remove-to-sol: "Control+u";*/
/* kb-accept-entry: "Control+j,Control+m,Return,KP_Enter";*/
/* kb-accept-custom: "Control+Return";*/
/* kb-accept-custom-alt: "Control+Shift+Return";*/
/* kb-accept-alt: "Shift+Return";*/
/* kb-delete-entry: "Shift+Delete";*/
/* kb-mode-next: "Shift+Right,Control+Tab";*/
/* kb-mode-previous: "Shift+Left,Control+ISO_Left_Tab";*/
/* kb-mode-complete: "Control+l";*/
/* kb-row-left: "Control+Page_Up";*/
/* kb-row-right: "Control+Page_Down";*/
/* kb-row-up: "Up,Control+p";*/
/* kb-row-down: "Down,Control+n";*/
/* kb-row-tab: "";*/
/* kb-element-next: "Tab";*/
/* kb-element-prev: "ISO_Left_Tab";*/
/* kb-page-prev: "Page_Up";*/
/* kb-page-next: "Page_Down";*/
/* kb-row-first: "Home,KP_Home";*/
/* kb-row-last: "End,KP_End";*/
/* kb-row-select: "Control+space";*/
/* kb-screenshot: "Alt+S";*/
/* kb-ellipsize: "Alt+period";*/
/* kb-toggle-case-sensitivity: "grave,dead_grave";*/
/* kb-toggle-sort: "Alt+grave";*/
/* kb-cancel: "Escape,Control+g,Control+bracketleft";*/
/* kb-custom-1: "Alt+1";*/
/* kb-custom-2: "Alt+2";*/
/* kb-custom-3: "Alt+3";*/
/* kb-custom-4: "Alt+4";*/
/* kb-custom-5: "Alt+5";*/
/* kb-custom-6: "Alt+6";*/
/* kb-custom-7: "Alt+7";*/
/* kb-custom-8: "Alt+8";*/
/* kb-custom-9: "Alt+9";*/
/* kb-custom-10: "Alt+0";*/
/* kb-custom-11: "Alt+exclam";*/
/* kb-custom-12: "Alt+at";*/
/* kb-custom-13: "Alt+numbersign";*/
/* kb-custom-14: "Alt+dollar";*/
/* kb-custom-15: "Alt+percent";*/
/* kb-custom-16: "Alt+dead_circumflex";*/
/* kb-custom-17: "Alt+ampersand";*/
/* kb-custom-18: "Alt+asterisk";*/
/* kb-custom-19: "Alt+parenleft";*/
/* kb-select-1: "Super+1";*/
/* kb-select-2: "Super+2";*/
/* kb-select-3: "Super+3";*/
/* kb-select-4: "Super+4";*/
/* kb-select-5: "Super+5";*/
/* kb-select-6: "Super+6";*/
/* kb-select-7: "Super+7";*/
/* kb-select-8: "Super+8";*/
/* kb-select-9: "Super+9";*/
/* kb-select-10: "Super+0";*/
/* kb-entry-history-up: "Control+Up";*/
/* kb-entry-history-down: "Control+Down";*/
/* kb-matcher-up: "Super+equal";*/
/* kb-mather-down: "Super+minus";*/
/* ml-row-left: "ScrollLeft";*/
/* ml-row-right: "ScrollRight";*/
/* ml-row-up: "ScrollUp";*/
/* ml-row-down: "ScrollDown";*/
/* me-select-entry: "MousePrimary";*/
/* me-accept-entry: "MouseDPrimary";*/
/* me-accept-custom: "Control+MouseDPrimary";*/
timeout {
action: "kb-cancel";
delay: 0;
}
filebrowser {
directories-first: true;
sorting-method: "name";
}
}
//@theme "/usr/share/rofi/themes/gruvbox-dark-soft.rasi"
//@theme "/usr/share/rofi/themes/sidebar.rasi"
//@theme "/usr/share/rofi/themes/solarized.rasi"
@theme "/usr/share/rofi/themes/android_notification.rasi"

10
config/swappy/config Normal file
View File

@@ -0,0 +1,10 @@
[Default]
save_dir=$HOME/Screenshots
save_filename_format=swappy-%Y%m%d-%H%M%S.png
show_panel=true
line_size=5
text_size=20
text_font=sans-serif
paint_mode=brush
early_exit=false
fill_shape=false

40
config/sway/autostart Normal file
View File

@@ -0,0 +1,40 @@
# units
set $initialize_foot_server '[ -x "$(command -v foot)" ] && foot --server'
# set $initialize_swayr_daemon '[ -x "$(command -v swayrd)" ] && systemctl --now --user enable swayrd'
set $initialize_waybar '[ -x "$(command -v waybar)" ] && (pkill -U $USER waybar || exit 0) && $HOME/.local/share/sway/scripts/waybar.sh)'
set $initialize_workspace_icons '[ -x "$(command -v sworkstyle)" ] && sworkstyle'
set $initialize_poweralert_daemon '[ -x "$(command -v poweralertd)" ] && systemctl --now --user enable poweralertd'
set $initialize_idlehack_daemon '[ -x "$(command -v idlehack)" ] && systemctl --now --user enable idlehack'
set $initialize_idle_daemon '[ -x "$(command -v swayidle-conf)" ] && systemctl --now --user enable swayidle'
set $initialize_mounting_daemon '[ -x "$(command -v pcmanfm-qt)" ] || [ -x "$(command -v pcmanfm)" ] && systemctl --now --user enable pcmanfm'
set $initialize_way_displays '[ -x "$(command -v way-displays)" ] && systemctl --now --user enable way-displays'
set $initialize_flashfocus 'systemctl --now --user enable flashfocus'
# autostarts
set $autostart_dex '[ -x "$(command -v dex)" ] && gdbus wait --session org.kde.StatusNotifierWatcher && dex -a -e SWAY'
set $wlsunset '[ -x "$(command -v wlsunset)" ] && $HOME/.local/share/sway/scripts/sunset.sh "on"'
set $autotiling '[ -x "$(command -v autotiling)" ] && autotiling || [ -x "$(command -v autotiling-rs)" ] && autotiling-rs'
set $help_menu '[ -x "$(command -v nwg-wrapper)" ] && [ -f $HOME/.config/nwg-wrapper/help.sh ] && $HOME/.local/share/sway/scripts/help.sh'
set $kanshi '[ -x "$(command -v kanshi)" ] && pkill -U $USER -x kanshi; exec kanshi'
set $swayosd_server '[ -x "$(command -v swayosd-server)" ] && pkill -U $USER -x swayosd-server; exec swayosd-server'
set $xdg-dirs '[ -x "$(command -v xdg-user-dirs-update)" ] && exec xdg-user-dirs-update'
## apply the keyboard layout from localectl if no keyboard layout has been set via config.d
set $auto_xdg_keyboard 'grep -q xkb_layout ~/.config/sway/config.d/*.conf || $HOME/.local/share/sway/scripts/keyboard.sh'
set $enable_noisetorch '[ -x "$(command -v noisetorch)" ] && noisetorch -u && noisetorch -i'
set $disable_nm_applet_autostart '[ -x "$(command -v nm-applet)" ] && [ ! -f $HOME/.config/autostart/nm-applet.desktop ] && cp /etc/xdg/autostart/nm-applet.desktop $HOME/.config/autostart/nm-applet.desktop && echo "Hidden=true" >> $HOME/.config/autostart/nm-applet.desktop'
set $apply_background swaymsg 'output * bg $background fill'
## daemons
set $mako '[ -x "$(command -v mako)" ] && pkill -U $USER -x mako; $HOME/.local/share/sway/scripts/mako.sh'
# set $mako '[ -x "$(command -v mako)" ] && pkill -U $USER -x mako; $HOME/.local/share/sway/scripts/mako.sh --font "$term-font" --text-color "$text-color" --border-color "$accent-color" --background-color "$background-color" --border-size 3 --width 400 --height 200 --padding 20 --margin 20 --default-timeout 15000'
set $swappy_notify '[ -x "$(command -v swappy)" ] && $HOME/.local/share/sway/scripts/screenshot-notify.sh'
set $cliphist_watch '[ -x "$(command -v wl-paste)" ] && [ -x "$(command -v cliphist)" ] && wl-paste --watch waybar-signal clipboard'
set $cliphist_store '[ -x "$(command -v wl-paste)" ] && [ -x "$(command -v cliphist)" ] && wl-paste --watch cliphist store'
set $clip-persist '[ -x "$(command -v wl-clip-persist)" ] && pkill -U $USER -x wl-clip-persist; wl-clip-persist --clipboard regular --all-mime-type-regex \'(?i)^(?!image/x-inkscape-svg).+\''
set $calendar_daemon 'calcurse --daemon'
set $nm_applet '[ -x "$(command -v nm-applet)" ] && pkill -U $USER -x nm-applet && dbus-launch nm-applet'
set $watch_playerctl '[ -x "$(command -v playerctl)" ] && pkill -U $USER -x playerctl; playerctl -a metadata --format \"{{status}} {{title}}\" --follow | while read line; do waybar-signal playerctl; waybar-signal idle; done'

183
config/sway/config Normal file
View File

@@ -0,0 +1,183 @@
# Default config for sway
#
# Copy this to ~/.config/sway/config and edit it to your liking.
#
# Read `man 5 sway` for a complete reference.
# styles - set the folder for your theme definition file
set $theme $HOME/.config/sway/themes/my-gruvbox
# theme variables
include $theme/theme.conf
# global variables
include $HOME/.config/sway/definitions
include $HOME/.config/sway/inputs/*
# enable modes
include $HOME/.config/sway/modes/*
include $HOME/.config/sway/autostart
include $HOME/.config/sway/config.d/*
gaps inner 6
smart_gaps on
default_border pixel 2
default_floating_border pixel 1
hide_edge_borders smart
focus_follows_mouse no
mouse_warping output
workspace_auto_back_and_forth no
workspace_layout default
# only enable this if every app you use is compatible with wayland
# xwayland disable
# Default config for sway
#
# Copy this to ~/.config/sway/config and edit it to your liking.
#
# Read `man 5 sway` for a complete reference.
### Variables
#
# Logo key. Use Mod1 for Alt.
set $mod Mod4
# Home row direction keys, like vim
set $left h
set $down j
set $up k
set $right l
# Your preferred application launcher
### Output configuration
#
# Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/)
# output * bg $HOME/.local/share/wallpapers/20250607_192951_D4E78119.jpg fill
# output DP-1 pos 0 0
# output eDP-1 pos 3840 2160
# output HDMI-A-1 pos 0 2160
# focus output DP-1
# bindswitch lid:on output eDP-1 disable
# bindswitch lid:off output eDP-1 enable
#
# Example configuration:
#
# output HDMI-A-1 resolution 1920x1080 position 1920,0
#
# You can get the names of your outputs by running: swaymsg -t get_outputs
### Idle configuration
#
# Example configuration:
#
# exec swayidle -w \
# timeout 300 'swaylock -f -c 000000' \
# timeout 600 'swaymsg "output * power off"' resume 'swaymsg "output * power on"' \
# before-sleep 'swaylock -f -c 000000'
#
# This will lock your screen after 300 seconds of inactivity, then turn off
# your displays after another 300 seconds, and turn your screens back on when
# resumed. It will also lock your screen before your computer goes to sleep.
exec swayidle -w \
timeout 300 $locking \
timeout 600 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' \
before-sleep $locking
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)rhythm-space"] floating enable
# 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
for_window [class=".*"] inhibit_idle fullscreen
for_window [app_id=".*"] inhibit_idle fullscreen
#######################
#### sway appearance ####
#######################
font pango:DejaVu Sans Condensed Bold 8
#
# Utilities:
#
# Special keys to adjust volume via PulseAudio
# bindsym --locked XF86AudioMute exec pactl set-sink-mute \@DEFAULT_SINK@ toggle
# bindsym --locked XF86AudioLowerVolume exec pactl set-sink-volume \@DEFAULT_SINK@ -5%
# bindsym --locked XF86AudioRaiseVolume exec pactl set-sink-volume \@DEFAULT_SINK@ +5%
# bindsym --locked XF86AudioMicMute exec pactl set-source-mute \@DEFAULT_SOURCE@ toggle
# # Special keys to adjust brightness via brightnessctl
# bindsym --locked XF86MonBrightnessDown exec brightnessctl set 5%-
# bindsym --locked XF86MonBrightnessUp exec brightnessctl set 5%+
#
# Status Bar:
#
# Read `man 5 sway-bar` for more information about this section.
bar {
# Execute Waybar; Waybar restarts when Sway reloads.
status_command $HOME/.local/share/sway/scripts/waybar.sh
# Hide Sway's builtin status bar.
mode invisible
}
bindsym $mod+z exec $locking
# bindsym $mod+x exec "taskwarrior_stop"
# bindsym $mod+Shift+z exec "suspend-and-lock"
# OG
# bindsym XF86MonBrightnessUp exec --no-startup-id /usr/bin/light -A 5
# bindsym XF86MonBrightnessDown exec --no-startup-id /usr/bin/light -U 5
bindsym XF86MonBrightnessUp exec --no-startup-id swayosd-client --brightness raise
bindsym XF86MonBrightnessDown exec --no-startup-id swayosd-client --brightness lower
# OG
# 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 XF86AudioRaiseVolume exec --no-startup-id swayosd-client --output-volume raise
bindsym XF86AudioLowerVolume exec --no-startup-id swayosd-client --output-volume lower
bindsym XF86AudioMute exec --no-startup-id swayosd-client --output-volume mute-toggle
bindsym XF86AudioPlay exec swayosd-client --playerctl play-pause
bindsym XF86AudioNext exec swayosd-client --playerctl next
bindsym XF86AudioPrev exec swayosd-client --playerctl prev
# bindsym $mod+Shift+o exec "display_switch"
bindsym $mod+minus exec "makoctl dismiss"
bindsym $mod+equal exec "makoctl restore"
bindsym $mod+F4 exec "$term edit_project"
bindsym $mod+v exec "passmenu"
bindsym $mod+Shift+v exec "passotpmenu"
exec dbus-update-activation-environment DISPLAY I3SOCK SWAYSOCK WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway
exec --no-startup-id /usr/libexec/xdg-desktop-portal --replace
exec --no-startup-id xautorun

View File

@@ -0,0 +1,35 @@
# don't show gaps if there's only one window on the desktop
smart_gaps on
# set floating mode for generated windows
for_window [title="(?:Open|Save) (?:File|Folder|As)"] floating enable
for_window [title="(?:Open|Save) (?:File|Folder|As)"] resize set 800 600
for_window [window_role="pop-up"] floating enable
for_window [window_role="bubble"] floating enable
for_window [window_role="task_dialog"] floating enable
for_window [window_role="Preferences"] floating enable
for_window [window_type="dialog"] floating enable
for_window [window_type="menu"] floating enable
# set floating mode for specific applications
for_window [instance="lxappearance"] floating enable
for_window [app_id="pamac-manager"] floating enable
for_window [app_id="blueberry.py"] floating enable
for_window [app_id="dragon-drop"] floating enable, sticky enable
for_window [app_id="firefox" title="^Library$"] floating enable, border pixel 1, sticky enable
for_window [app_id="thunderbird" title=".*Reminder"] floating enable
for_window [app_id="floating_shell"] floating enable, border pixel 1, sticky enable
for_window [app_id="Manjaro.manjaro-settings-manager"] floating enable
for_window [app_id="" title="Picture in picture"] floating enable, sticky enable
for_window [app_id="" title="Picture-in-Picture"] floating enable, sticky enable
for_window [instance="around"] floating enable, sticky enable
for_window [app_id="xsensors"] floating enable
for_window [title="Save File"] floating enable
for_window [title="Firefox .*— Sharing Indicator"] floating enable, sticky enable, move to scratchpad
for_window [app_id="" title=".* is sharing your screen."] floating enable
for_window [title="^wlay$"] floating enable
# Don't allow applications to inhibit shortcuts, i.e. grab total control of the
# keyboard. Chrome currently abuses this by enabling it for all "--app=..."
# shortcuts.
seat * shortcuts_inhibitor disable

View File

@@ -0,0 +1,42 @@
# autostart background applications
# FIXME: exec /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
# autostarts
exec {
# $initialize_way_displays
$initialize_foot_server
# $initialize_mounting_daemon
# $initialize_poweralert_daemon
# $initialize_idlehack_daemon
$initialize_workspace_icons
# $initialize_swayr_daemon
# $initialize_idle_daemon
# $initialize_flashfocus
$xdg-dirs
# $swappy_notify
# $autostart_dex
# $wlsunset
# $autotiling
# $cliphist_store
# $cliphist_watch
}
# commands that "reload" something
exec_always {
$initialize_waybar
$apply_background
$help_menu
$kanshi
$swayosd_server
# $clip-persist
$mako
# $auto_xdg_keyboard
$watch_playerctl
# $calendar_daemon
# $enable_noisetorch
$onscreen_bar --refresh
$disable_nm_applet_autostart
$nm_applet
}

Some files were not shown because too many files have changed in this diff Show More