- commit
- 06677c6
- parent
- 06677c6
- author
- Eric Bower
- date
- 2024-08-24 23:38:28 -0400 EDT
feat: init
+2,
-0
1@@ -0,0 +1,2 @@
2+*DS_Store
3+*.swp
+9,
-0
1@@ -0,0 +1,9 @@
2+#!/usr/bin/env bash
3+
4+docker run --rm -it \
5+ -v /home:/mnt/source/home:ro \
6+ -v /etc:/mnt/source/etc:ro \
7+ -v /home/erock/dev/dev/borg/config_fox.yaml:/etc/borgmatic.d/config.yaml \
8+ -v /home/erock/dev/dev/borg/crontab.txt:/etc/borgmatic.d/crontab.txt \
9+ -e TZ=America/Detroit \
10+ borgmatic borgmatic --create --prune --stats -v 2 2>&1
+3,
-0
1@@ -0,0 +1,3 @@
2+#!/usr/bin/env bash
3+
4+exec magrep -i from:"lilac lane" | mrefile $MDIR/Family
+10,
-0
1@@ -0,0 +1,10 @@
2+#!/bin/sh
3+# aerc filter which runs w3m using socksify (from the dante package) to prevent
4+# any phoning home by rendered emails
5+export SOCKS_SERVER="127.0.0.1:1"
6+exec socksify w3m \
7+ -T text/html \
8+ -cols $(tput cols) \
9+ -o display_image=false \
10+ -o display_link_number=true \
11+ -o confirm_qq=false
A
bin/einc
+3,
-0
1@@ -0,0 +1,3 @@
2+#!/usr/bin/env bash
3+
4+exec minc $MDIR/INBOX
+3,
-0
1@@ -0,0 +1,3 @@
2+#!/usr/bin/env bash
3+
4+exec mflag -S | mless
+13,
-0
1@@ -0,0 +1,13 @@
2+#!/usr/bin/env bash
3+
4+help() {
5+ echo "github-pr.sh <REMOTE> <PR-ID> <NEW-BRANCH>"
6+}
7+
8+if [ $# -eq 0 ]; then
9+ help
10+ exit
11+fi
12+
13+git fetch $1 pull/$2/head:$3
14+git checkout $3
+6,
-0
1@@ -0,0 +1,6 @@
2+#!/usr/bin/env sh
3+
4+pkill -9 gpg-agent
5+export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)
6+gpgconf --launch gpg-agent
7+gpg-connect-agent updatestartuptty /bye
+16,
-0
1@@ -0,0 +1,16 @@
2+#!/usr/bin/env bash
3+set -x
4+
5+chmod 700 ~/.ssh
6+chmod 644 ~/.ssh/id_ed25519.pub
7+chmod 600 ~/.ssh/id_ed25519
8+ssh-add -k
9+
10+#chmod 600 ~/.gnupg/*
11+chmod 700 ~/.gnupg
12+gpg --import ./keys/gpg_private.asc
13+gpg --list-secret-keys
14+expect -c "spawn gpg --edit-key 6A690E9AAD5A2AF29B2BBBD77A51A47D76D3FD02 trust quit; send \"5\ry\r\"; expect eof"
15+# echo "RUN gpg --edit-key {KEY}"
16+# echo "TYPE 'trust' AND THEN PRESS '5' AND THEN 'y'"
17+# echo "THEN type 'quit'"
+6,
-0
1@@ -0,0 +1,6 @@
2+#!/usr/bin/env bash
3+
4+echo "Syncing imap mail"
5+mbsync -a -V -q
6+
7+exit 0
+10,
-0
1@@ -0,0 +1,10 @@
2+#!/usr/bin/env bash
3+set -x
4+
5+#source ./load_keys.sh
6+
7+# tpm
8+git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
9+
10+nvim --headless "+Lazy! sync" +qa
11+~/.tmux/plugins/tpm/bin/install_plugins
+4,
-0
1@@ -0,0 +1,4 @@
2+#!/usr/bin/env bash
3+set +x
4+
5+vdirsyncer sync
+9,
-0
1@@ -0,0 +1,9 @@
2+[Personal]
3+source = maildir:///home/erock/mail
4+exclude-tags = Trash
5+outgoing = smtps+plain://me%40erock.io@smtp.fastmail.com
6+outgoing-cred-cmd = "pass logins/local-mail"
7+default = INBOX
8+from = Eric Bower <me@erock.io>
9+copy-to = Sent
10+
+31,
-0
1@@ -0,0 +1,31 @@
2+[ui]
3+index-columns = date<*,name<17,flags>4,subject<*
4+column-name = {{index (.From | names) 0}}
5+column-flags = {{.Flags | join ""}}
6+column-subject = {{.ThreadPrefix}}{{.Subject}}
7+column-date = {{.DateAutoFormat .Date.Local}}
8+
9+dirlist-left = {{.Folder}}
10+dirlist-right = {{if .Unread}}{{humanReadable .Unread}}/{{end}}{{if .Exists}}{{humanReadable .Exists}}{{end}}
11+
12+[viewer]
13+
14+[compose]
15+address-book-cmd=khard email --remove-first-line --parsable '%s'
16+
17+[filters]
18+text/plain=colorize
19+text/calendar=calendar
20+message/delivery-status=colorize
21+message/rfc822=colorize
22+#text/html=pandoc -f html -t plain | colorize
23+#text/html=html | colorize
24+#text/*=bat -fP --file-name="$AERC_FILENAME"
25+#application/x-sh=bat -fP -l sh
26+#image/*=catimg -w $(tput cols) -
27+#subject,~Git(hub|lab)=lolcat -f
28+#from,thatguywhodoesnothardwraphismessages=wrap -w 100 | colorize
29+
30+[triggers]
31+
32+[templates]
+103,
-0
1@@ -0,0 +1,103 @@
2+# Binds are of the form <key sequence> = <command to run>
3+# To use '=' in a key sequence, substitute it with "Eq": "<Ctrl+Eq>"
4+# If you wish to bind #, you can wrap the key sequence in quotes: "#" = quit
5+<C-p> = :prev-tab<Enter>
6+<C-n> = :next-tab<Enter>
7+<C-t> = :term<Enter>
8+
9+[messages]
10+q = :quit<Enter>
11+
12+j = :next<Enter>
13+<Down> = :next<Enter>
14+<C-d> = :next 50%<Enter>
15+<C-f> = :next 100%<Enter>
16+<PgDn> = :next -s 100%<Enter>
17+
18+k = :prev<Enter>
19+<Up> = :prev<Enter>
20+<C-u> = :prev 50%<Enter>
21+<C-b> = :prev 100%<Enter>
22+<PgUp> = :prev -s 100%<Enter>
23+g = :select 0<Enter>
24+G = :select -1<Enter>
25+
26+J = :next-folder<Enter>
27+K = :prev-folder<Enter>
28+
29+v = :mark -t<Enter>
30+V = :mark -v<Enter>
31+
32+<Enter> = :view<Enter>
33+d = :prompt 'Really delete this message?' 'delete-message'<Enter>
34+D = :delete<Enter>
35+A = :archive flat<Enter>
36+
37+C = :compose<Enter>
38+
39+rr = :reply -a<Enter>
40+rq = :reply -aq<Enter>
41+Rr = :reply<Enter>
42+Rq = :reply -q<Enter>
43+
44+c = :cf<space>
45+$ = :term<space>
46+! = :term<space>
47+| = :pipe<space>
48+
49+/ = :search<space>
50+\ = :filter<space>
51+n = :next-result<Enter>
52+N = :prev-result<Enter>
53+
54+[view]
55+q = :close<Enter>
56+| = :pipe<space>
57+D = :delete<Enter>
58+S = :save<space>
59+A = :archive flat<Enter>
60+
61+f = :forward<Enter>
62+rr = :reply -a<Enter>
63+rq = :reply -aq<Enter>
64+Rr = :reply<Enter>
65+Rq = :reply -q<Enter>
66+
67+H = :toggle-headers<Enter>
68+<C-k> = :prev-part<Enter>
69+<C-j> = :next-part<Enter>
70+J = :next<Enter>
71+K = :prev<Enter>
72+
73+[compose]
74+# Keybindings used when the embedded terminal is not selected in the compose
75+# view
76+$ex = <C-x>
77+<C-k> = :prev-field<Enter>
78+<C-j> = :next-field<Enter>
79+<tab> = :next-field<Enter>
80+
81+[compose::editor]
82+# Keybindings used when the embedded terminal is selected in the compose view
83+$noinherit = true
84+$ex = <C-x>
85+<C-k> = :prev-field<Enter>
86+<C-j> = :next-field<Enter>
87+<C-p> = :prev-tab<Enter>
88+<C-n> = :next-tab<Enter>
89+
90+[compose::review]
91+# Keybindings used when reviewing a message to be sent
92+y = :send<Enter>
93+n = :abort<Enter>
94+p = :postpone<Enter>
95+q = :abort<Enter>
96+e = :edit<Enter>
97+a = :attach<space>
98+
99+[terminal]
100+$noinherit = true
101+$ex = <C-x>
102+
103+<C-p> = :prev-tab<Enter>
104+<C-n> = :next-tab<Enter>
+9,
-0
1@@ -0,0 +1,9 @@
2+[font]
3+size = 12.0
4+
5+[keyboard]
6+bindings = [
7+ { key = "i", mods = "Control", action = "IncreaseFontSize" },
8+ { key = "o", mods = "Control", action = "DecreaseFontSize" },
9+ { key = "0", mods = "Control", action = "ResetFontSize" },
10+]
+2,
-0
1@@ -0,0 +1,2 @@
2+[global]
3+load_dotenv = true
+2,
-0
1@@ -0,0 +1,2 @@
2+--enable-features=UseOzonePlatform
3+--ozone-platform=wayland
+25,
-0
1@@ -0,0 +1,25 @@
2+fish_config theme choose "dracula"
3+
4+fish_add_path ~/.deno/bin ~/.yarn/bin ~/go/bin ~/.npm-packages/bin ~/bin
5+
6+set -xg EDITOR nvim
7+set -xg VISUAL nvim
8+set -xg GPG_TTY (tty)
9+set -xg XDG_CONFIG_HOME ~/.config
10+set -xg VDIRSYNCER_CONFIG ~/.config/vdirsyncer/config
11+set -xg MDIR ~/mail
12+
13+abbr -a gu git remote update --prune
14+abbr -a ga git add -A
15+abbr -a gm git commit -S
16+abbr -a gs git commit -S --amend --no-edit
17+abbr -a gl git --no-pager log --oneline -n 30
18+abbr -a gt git log --graph --oneline --all
19+abbr -a pushall "git remote | xargs git push"
20+abbr -a tmux tmux -u
21+abbr -a scratch nvim ~/scratch.md
22+abbr -a bcp rsync -avzu --progress
23+abbr -a weather curl wttr.in/Ann+Arbor+Michigan
24+abbr -a img img2sixel
25+
26+direnv hook fish | source
+55,
-0
1@@ -0,0 +1,55 @@
2+# Dracula Color Palette
3+#
4+# Foreground: f8f8f2
5+# Selection: 44475a
6+# Comment: 6272a4
7+# Red: ff5555
8+# Orange: ffb86c
9+# Yellow: f1fa8c
10+# Green: 50fa7b
11+# Purple: bd93f9
12+# Cyan: 8be9fd
13+# Pink: ff79c6
14+
15+# Syntax Highlighting Colors
16+fish_color_normal f8f8f2
17+fish_color_command 8be9fd
18+fish_color_keyword ff79c6
19+fish_color_quote f1fa8c
20+fish_color_redirection f8f8f2
21+fish_color_end ffb86c
22+fish_color_error ff5555
23+fish_color_param bd93f9
24+fish_color_comment 6272a4
25+fish_color_selection --background=44475a
26+fish_color_search_match --background=44475a
27+fish_color_operator 50fa7b
28+fish_color_escape ff79c6
29+fish_color_autosuggestion 6272a4
30+fish_color_cancel ff5555 --reverse
31+fish_color_option ffb86c
32+fish_color_history_current --bold
33+fish_color_status ff5555
34+fish_color_valid_path --underline
35+
36+# Default Prompt Colors
37+fish_color_cwd 50fa7b
38+fish_color_cwd_root red
39+fish_color_host bd93f9
40+fish_color_host_remote bd93f9
41+fish_color_user 8be9fd
42+
43+# Completion Pager Colors
44+fish_pager_color_progress 6272a4
45+fish_pager_color_background
46+fish_pager_color_prefix 8be9fd
47+fish_pager_color_completion f8f8f2
48+fish_pager_color_description 6272a4
49+fish_pager_color_selected_background --background=44475a
50+fish_pager_color_selected_prefix 8be9fd
51+fish_pager_color_selected_completion f8f8f2
52+fish_pager_color_selected_description 6272a4
53+fish_pager_color_secondary_background
54+fish_pager_color_secondary_prefix 8be9fd
55+fish_pager_color_secondary_completion f8f8f2
56+fish_pager_color_secondary_description 6272a4
+49,
-0
1@@ -0,0 +1,49 @@
2+#font=monospace:size=12
3+pad=2x2
4+dpi-aware=yes
5+[bell]
6+
7+[scrollback]
8+
9+[url]
10+launch=xdg-open ${url}
11+
12+[cursor]
13+color=282a36 f8f8f2
14+
15+[mouse]
16+
17+[colors]
18+alpha=1.00
19+foreground=f2f2f2
20+background=282a36
21+
22+regular0=000000 # black
23+regular1=ff7f7f # red
24+regular2=7bfb9c # green
25+regular3=cdaefa # yellow
26+regular4=8995bb # blue
27+regular5=ff9ad4 # magenta
28+regular6=a8eefd # cyan
29+regular7=ffffff # white
30+
31+bright0=808080 # bright black
32+bright1=ff5555 # bright red
33+bright2=50fa7b # bright green
34+bright3=bd93f9 # bright yellow
35+bright4=6272a4 # bright blue
36+bright5=ff79c6 # bright magenta
37+bright6=8be9fd # bright cyan
38+bright7=ffffff # bright white
39+
40+[csd]
41+
42+[key-bindings]
43+font-increase=Control+i
44+font-decrease=Control+o
45+
46+[search-bindings]
47+
48+[url-bindings]
49+
50+[mouse-bindings]
+1,
-0
1@@ -0,0 +1 @@
2+font-size = 18
+184,
-0
1@@ -0,0 +1,184 @@
2+# Please see https://i3wm.org/docs/userguide.html for a complete reference!
3+
4+set $mod Mod4
5+font pango:monospace 8
6+
7+# Start XDG autostart .desktop files using dex. See also
8+# https://wiki.archlinux.org/index.php/XDG_Autostart
9+exec --no-startup-id dex --autostart --environment i3
10+
11+# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the
12+# screen before suspend. Use loginctl lock-session to lock your screen.
13+exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
14+
15+# NetworkManager is the most popular way to manage wireless networks on Linux,
16+# and nm-applet is a desktop environment-independent system tray GUI for it.
17+exec --no-startup-id nm-applet
18+
19+# Use pactl to adjust volume in PulseAudio.
20+set $refresh_i3status killall -SIGUSR1 i3status
21+bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status
22+bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status
23+bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
24+bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status
25+
26+# Use Mouse+$mod to drag floating windows to their wanted position
27+floating_modifier $mod
28+
29+# start a terminal
30+bindsym $mod+Return exec alacritty
31+
32+# kill focused window
33+bindsym $mod+Shift+q kill
34+
35+bindsym $mod+d exec "dmenu_run -nf '#F8F8F2' -nb '#282A36' -sb '#6272A4' -sf '#F8F8F2' -fn 'monospace-10' -p 'dmenu%'"
36+
37+# change focus
38+bindsym $mod+h focus left
39+bindsym $mod+j focus down
40+bindsym $mod+k focus up
41+bindsym $mod+l focus right
42+
43+# alternatively, you can use the cursor keys:
44+bindsym $mod+Left focus left
45+bindsym $mod+Down focus down
46+bindsym $mod+Up focus up
47+bindsym $mod+Right focus right
48+
49+# move focused window
50+bindsym $mod+Shift+h move left
51+bindsym $mod+Shift+j move down
52+bindsym $mod+Shift+k move up
53+bindsym $mod+Shift+l move right
54+
55+# alternatively, you can use the cursor keys:
56+bindsym $mod+Shift+Left move left
57+bindsym $mod+Shift+Down move down
58+bindsym $mod+Shift+Up move up
59+bindsym $mod+Shift+Right move right
60+
61+# split in horizontal orientation
62+bindsym $mod+z split h
63+
64+# split in vertical orientation
65+bindsym $mod+x split v
66+
67+# enter fullscreen mode for the focused container
68+bindsym $mod+f fullscreen toggle
69+
70+# change container layout (stacked, tabbed, toggle split)
71+bindsym $mod+s layout stacking
72+bindsym $mod+w layout tabbed
73+bindsym $mod+e layout toggle split
74+
75+# toggle tiling / floating
76+bindsym $mod+Shift+space floating toggle
77+
78+# change focus between tiling / floating windows
79+bindsym $mod+space focus mode_toggle
80+
81+# focus the parent container
82+bindsym $mod+a focus parent
83+
84+# Define names for default workspaces for which we configure key bindings later on.
85+# We use variables to avoid repeating the names in multiple places.
86+set $ws1 "1"
87+set $ws2 "2"
88+set $ws3 "3"
89+set $ws4 "4"
90+set $ws5 "5"
91+set $ws6 "6"
92+set $ws7 "7"
93+set $ws8 "8"
94+set $ws9 "9"
95+set $ws10 "10"
96+
97+# switch to workspace
98+bindsym $mod+1 workspace number $ws1
99+bindsym $mod+2 workspace number $ws2
100+bindsym $mod+3 workspace number $ws3
101+bindsym $mod+4 workspace number $ws4
102+bindsym $mod+5 workspace number $ws5
103+bindsym $mod+6 workspace number $ws6
104+bindsym $mod+7 workspace number $ws7
105+bindsym $mod+8 workspace number $ws8
106+bindsym $mod+9 workspace number $ws9
107+bindsym $mod+0 workspace number $ws10
108+
109+# move focused container to workspace
110+bindsym $mod+Shift+1 move container to workspace number $ws1
111+bindsym $mod+Shift+2 move container to workspace number $ws2
112+bindsym $mod+Shift+3 move container to workspace number $ws3
113+bindsym $mod+Shift+4 move container to workspace number $ws4
114+bindsym $mod+Shift+5 move container to workspace number $ws5
115+bindsym $mod+Shift+6 move container to workspace number $ws6
116+bindsym $mod+Shift+7 move container to workspace number $ws7
117+bindsym $mod+Shift+8 move container to workspace number $ws8
118+bindsym $mod+Shift+9 move container to workspace number $ws9
119+bindsym $mod+Shift+0 move container to workspace number $ws10
120+
121+# reload the configuration file
122+bindsym $mod+Shift+c reload
123+# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
124+bindsym $mod+Shift+r restart
125+# exit i3 (logs you out of your X session)
126+bindsym $mod+Shift+e 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'"
127+
128+# resize window (you can also use the mouse for that)
129+mode "resize" {
130+ # These bindings trigger as soon as you enter the resize mode
131+
132+ # Pressing left will shrink the window’s width.
133+ # Pressing right will grow the window’s width.
134+ # Pressing up will shrink the window’s height.
135+ # Pressing down will grow the window’s height.
136+ bindsym j resize shrink width 10 px or 10 ppt
137+ bindsym k resize grow height 10 px or 10 ppt
138+ bindsym l resize shrink height 10 px or 10 ppt
139+ bindsym semicolon resize grow width 10 px or 10 ppt
140+
141+ # same bindings, but for the arrow keys
142+ bindsym Left resize shrink width 10 px or 10 ppt
143+ bindsym Down resize grow height 10 px or 10 ppt
144+ bindsym Up resize shrink height 10 px or 10 ppt
145+ bindsym Right resize grow width 10 px or 10 ppt
146+
147+ # back to normal: Enter or Escape or $mod+r
148+ bindsym Return mode "default"
149+ bindsym Escape mode "default"
150+ bindsym $mod+r mode "default"
151+}
152+
153+bindsym $mod+r mode "resize"
154+
155+bindsym $mod+Shift+minus move scratchpad
156+bindsym $mod+minus scratchpad show
157+
158+for_window [class="steam_app_1182480" title="Origin"] floating enable
159+for_window [instance="origin.exe"] floating enable
160+
161+# class border bground text indicator child_border
162+client.focused #6272A4 #6272A4 #F8F8F2 #6272A4 #6272A4
163+client.focused_inactive #44475A #44475A #F8F8F2 #44475A #44475A
164+client.unfocused #282A36 #282A36 #BFBFBF #282A36 #282A36
165+client.urgent #44475A #FF5555 #F8F8F2 #FF5555 #FF5555
166+client.placeholder #282A36 #282A36 #F8F8F2 #282A36 #282A36
167+
168+client.background #F8F8F2
169+
170+bar {
171+ status_command i3blocks
172+ colors {
173+ background #282A36
174+ statusline #F8F8F2
175+ separator #44475A
176+
177+ focused_workspace #44475A #44475A #F8F8F2
178+ active_workspace #282A36 #44475A #F8F8F2
179+ inactive_workspace #282A36 #282A36 #BFBFBF
180+ urgent_workspace #FF5555 #FF5555 #F8F8F2
181+ binding_mode #FF5555 #FF5555 #F8F8F2
182+ }
183+}
184+
185+exec_always = "xset r rate 300 30"
+11,
-0
1@@ -0,0 +1,11 @@
2+separator_block_width=15
3+markup=none
4+
5+[volume]
6+full_text=
7+command=pavucontrol
8+align=left
9+
10+[time]
11+command=date '+%Y-%m-%d %I:%M:%S'
12+interval=5
+7,
-0
1@@ -0,0 +1,7 @@
2+general {
3+ output_format = "i3bar"
4+ colors = true
5+ color_good = "#50FA7B"
6+ color_degraded = "#F1FA8C"
7+ color_bad = "#FF5555"
8+}
+14,
-0
1@@ -0,0 +1,14 @@
2+{
3+ "host": "imap.fastmail.com",
4+ "port": 993,
5+ "tls": true,
6+ "tlsOptions": {
7+ "rejectUnauthorized": false
8+ },
9+ "username": "me@erock.io",
10+ "password": "",
11+ "passwordCmd": "pass logins/local-mail",
12+ "onNewMail": "/home/erock/bin/mailsync",
13+ "onNewMailPost": "",
14+ "boxes": [ "INBOX" ]
15+}
+29,
-0
1@@ -0,0 +1,29 @@
2+[calendars]
3+
4+[[fastmail]]
5+path = /home/erock/.calendars/3b9b2f5e-cbc9-4f8a-8e54-f210dcb8b1a6
6+type = calendar
7+color = light blue
8+
9+[[shijing]]
10+path = /home/erock/.calendars/shijing
11+type = calendar
12+readonly = True
13+color = light green
14+
15+[[work]]
16+path = /home/erock/.calendars/work
17+type = calendar
18+readonly = True
19+color = light red
20+
21+[locale]
22+timeformat = %I:%M %p
23+dateformat = %m/%d/%Y
24+longdateformat = %m/%d/%Y
25+datetimeformat = %m/%d/%Y %I:%M %p
26+longdatetimeformat = %m/%d/%Y %I:%M %p
27+local_timezone=America/Detroit
28+
29+[default]
30+default_calendar = fastmail
+46,
-0
1@@ -0,0 +1,46 @@
2+# example configuration file for khard version > 0.14.0
3+# place it under ~/.config/khard/khard.conf
4+# This file is parsed by the configobj library. The syntax is described at
5+# https://configobj.readthedocs.io/en/latest/configobj.html#the-config-file-format
6+
7+[addressbooks]
8+[[contacts]]
9+path = ~/.contacts/Default/
10+
11+[general]
12+debug = no
13+default_action = list
14+# These are either strings or comma seperated lists
15+editor = vim, -i, NONE
16+merge_editor = vimdiff
17+
18+[contact table]
19+# display names by first or last name: first_name / last_name / formatted_name
20+display = first_name
21+# group by address book: yes / no
22+group_by_addressbook = no
23+# reverse table ordering: yes / no
24+reverse = no
25+# append nicknames to name column: yes / no
26+show_nicknames = no
27+# show uid table column: yes / no
28+show_uids = no
29+# sort by first or last name: first_name / last_name / formatted_name
30+sort = last_name
31+# localize dates: yes / no
32+localize_dates = yes
33+# set a comma separated list of preferred phone number types in descending priority
34+# or nothing for non-filtered alphabetical order
35+preferred_phone_number_type = pref, cell, home
36+# set a comma separated list of preferred email address types in descending priority
37+# or nothing for non-filtered alphabetical order
38+preferred_email_address_type = pref, work, home
39+
40+[vcard]
41+preferred_version = 3.0
42+# Look into source vcf files to speed up search queries: yes / no
43+search_in_source_files = no
44+# skip unparsable vcard files: yes / no
45+skip_unparsable = no
46+
47+
+5,
-0
1@@ -0,0 +1,5 @@
2+# Cycle right through sway workspaces
3+gesture: swipe right 3 swaymsg focus right
4+
5+# Cycle left through sway workspaces
6+gesture: swipe left 3 swaymsg focus left
+1,
-0
1@@ -0,0 +1 @@
2+vim.treesitter.start()
+10,
-0
1@@ -0,0 +1,10 @@
2+set termguicolors
3+set rtp+=/usr/local/opt/fzf
4+
5+let $FZF_DEFAULT_COMMAND = 'rg --files --hidden --glob "!.git/"'
6+let $NVIM_TUI_ENABLE_TRUE_COLOR=1
7+
8+" source our 'init.lua'
9+" https://github.com/nanotee/nvim-lua-guide#sourcing-a-lua-file-vs-calling-require
10+" luafile $XDG_CONFIG_HOME/nvim/lua/init.lua
11+lua require'init'
+48,
-0
1@@ -0,0 +1,48 @@
2+local api = vim.api
3+
4+-- Taken from https://github.com/norcalli/nvim_utils
5+local function nvim_create_augroups(definitions)
6+ for group_name, definition in pairs(definitions) do
7+ api.nvim_command('augroup '..group_name)
8+ api.nvim_command('autocmd!')
9+ for _, def in ipairs(definition) do
10+ local command = table.concat(vim.tbl_flatten{'autocmd', def}, ' ')
11+ api.nvim_command(command)
12+ end
13+ api.nvim_command('augroup END')
14+ end
15+end
16+
17+local autocmds = {
18+ language_spacing = {
19+ {
20+ 'BufRead,BufNewFile,BufEnter',
21+ 'make',
22+ 'setlocal tabstop=4 shiftwidth=4 softtabstop=4',
23+ },
24+ },
25+ golang = {
26+ {
27+ 'BufRead,BufNewFile,BufEnter',
28+ '*.go',
29+ 'setlocal noexpandtab copyindent preserveindent softtabstop=0 shiftwidth=4 tabstop=4',
30+ },
31+ },
32+ typescript = {
33+ { 'BufNewFile,BufRead', '*.ts,*.mts', 'setlocal filetype=typescript' },
34+ },
35+ markdown = {
36+ { 'BufNewFile,BufRead', '*.md,*.mdx', 'setlocal filetype=markdown' },
37+ },
38+ quickfix = {
39+ { 'FileType', 'qf', 'setlocal wrap' }
40+ },
41+ wrapmdfiles = {
42+ { 'FileType', 'markdown', 'setlocal wrap tw=79 formatoptions+=t tabstop=2 shiftwidth=2 softtabstop=2' },
43+ },
44+ wraptextfiles = {
45+ { 'FileType', 'text', 'setlocal wrap' },
46+ },
47+}
48+
49+nvim_create_augroups(autocmds)
+39,
-0
1@@ -0,0 +1,39 @@
2+local o = vim.o
3+o.termguicolors = true -- enable 24bit colors
4+o.background = 'dark'
5+o.encoding = 'utf-8'
6+o.fileencoding = 'utf-8'
7+o.number = true -- show absolute line no. at the cursor pos
8+o.tabstop = 2 -- Tab indentation levels every two columns
9+o.shiftwidth = 2 -- Indent/outdent by two columns
10+o.softtabstop = 2 -- Tab indentation when mixing tabs & spaces
11+o.expandtab = true -- Convert all tabs that are typed into spaces
12+o.colorcolumn = '72' -- Vertical column at 80 characters
13+o.laststatus = 2 -- always show status line
14+o.wrap = false -- wrap long lines
15+o.cursorline = false -- Show a line where the current cursor is
16+o.autoread = true -- auto read file if changed outside of vim
17+o.updatetime = 250 -- decrease update time
18+o.cursorline = false -- disable highlighting the current line
19+o.backspace = 'indent,eol,start'
20+o.completeopt = 'menuone,noselect'
21+o.signcolumn = 'yes'
22+
23+local g = vim.g
24+g.mapleader = ','
25+g.maplocalleader = ','
26+g.loaded_netrw = 1 -- disable netrw (nvim-tree)
27+g.loaded_netrwPlugin = 1
28+
29+local opts = { noremap=true, silent=true }
30+local set_keymap = vim.api.nvim_set_keymap
31+set_keymap('n', '<leader>b', '<C-O>', opts)
32+set_keymap('n', '<leader>s', ':FZF<CR>', opts)
33+set_keymap('n', '<leader>S', ':Rg!<CR>', opts)
34+set_keymap('n', '<leader>B', ':Buffers<CR>', opts)
35+set_keymap('n', 'Q', '<nop>', opts)
36+set_keymap('n', '<leader>w', ':!make fmt<CR>', opts)
37+vim.keymap.set('n', '<Esc>', [[<C-\><C-n>]], opts)
38+
39+require 'plugins'
40+require 'autocmd'
+234,
-0
1@@ -0,0 +1,234 @@
2+function setup_tree()
3+ local opts = { noremap=true, silent=true }
4+ vim.api.nvim_set_keymap('n', '<leader>t', ':NvimTreeToggle<CR>', opts)
5+ vim.api.nvim_set_keymap('n', '<leader>f', ':NvimTreeFindFile<CR>', opts)
6+
7+ require'nvim-tree'.setup {
8+ sort_by = "case_sensitive",
9+ auto_reload_on_write = true,
10+ view = {
11+ width = 30,
12+ side = 'left',
13+ },
14+ update_focused_file = {
15+ ignore_list = {'.git', 'node_modules', '.cache'},
16+ },
17+ renderer = {
18+ group_empty = true,
19+ },
20+ filters = {
21+ dotfiles = true,
22+ },
23+ }
24+
25+ -- open for directories and change neovim's directory
26+ local function open_nvim_tree(data)
27+ -- buffer is a directory
28+ local directory = vim.fn.isdirectory(data.file) == 1
29+
30+ if not directory then
31+ return
32+ end
33+
34+ -- change to the directory
35+ vim.cmd.cd(data.file)
36+
37+ -- open the tree
38+ require("nvim-tree.api").tree.open()
39+ end
40+
41+ vim.api.nvim_create_autocmd({ "VimEnter" }, { callback = open_nvim_tree })
42+end
43+
44+function setup_bufferline()
45+ require("bufferline").setup{
46+ options = {
47+ mode = "tabs",
48+ },
49+ }
50+end
51+
52+function setup_treesitter()
53+ require'nvim-treesitter.configs'.setup {
54+ ensure_installed = {
55+ "bash",
56+ "c",
57+ "cmake",
58+ "dockerfile",
59+ "git_config",
60+ "git_rebase",
61+ "gitattributes",
62+ "gitcommit",
63+ "gitignore",
64+ "glimmer",
65+ "go",
66+ "gomod",
67+ "gosum",
68+ "html",
69+ "javascript",
70+ "jq",
71+ "json",
72+ "json5",
73+ "lua",
74+ "make",
75+ "markdown",
76+ "nix",
77+ "python",
78+ "query",
79+ "r",
80+ "ruby",
81+ "rust",
82+ "scss",
83+ "sql",
84+ "svelte",
85+ "terraform",
86+ "toml",
87+ "tsx",
88+ "typescript",
89+ "vim",
90+ "vimdoc",
91+ "yaml",
92+ "zig",
93+ },
94+ highlight = {
95+ enable = true,
96+ },
97+ indent = {
98+ enable = true
99+ }
100+ }
101+end
102+
103+function setup_comp()
104+ local cmp = require'cmp'
105+ cmp.setup({
106+ snippet = {
107+ expand = function(args)
108+ vim.fn["vsnip#anonymous"](args.body)
109+ end,
110+ },
111+ mapping = {
112+ ['<C-p>'] = cmp.mapping.select_prev_item(),
113+ ['<C-n>'] = cmp.mapping.select_next_item(),
114+ ['<Tab>'] = function(fallback)
115+ if cmp.visible() then
116+ cmp.select_next_item()
117+ else
118+ fallback()
119+ end
120+ end,
121+ ['<S-Tab>'] = function(fallback)
122+ if cmp.visible() then
123+ cmp.select_prev_item()
124+ else
125+ fallback()
126+ end
127+ end,
128+ ['<C-Space>'] = cmp.mapping(cmp.mapping.complete(), { 'i', 'c' }),
129+ ['<CR>'] = cmp.mapping.confirm({ select = true }),
130+ },
131+ sources = {
132+ { name = 'nvim_lsp' },
133+ },
134+ })
135+end
136+
137+function setup_statusline()
138+ require('lualine').setup {
139+ options = {
140+ theme = 'dracula-nvim',
141+ },
142+ }
143+end
144+
145+function setup_lsp()
146+ local opts = { noremap=true, silent=true }
147+ vim.keymap.set('n', '<leader>e', vim.diagnostic.open_float, opts)
148+ vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, opts)
149+ vim.keymap.set('n', ']d', vim.diagnostic.goto_next, opts)
150+ vim.keymap.set('n', '<leader>q', vim.diagnostic.setloclist, opts)
151+ -- Use an on_attach function to only map the following keysk
152+ -- after the language server attaches to the current buffer
153+ local on_attach = function(client, bufnr)
154+ local bufopts = { noremap=true, silent=true, buffer=bufnr }
155+
156+ --Enable completion triggered by <c-x><c-o>
157+ vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc')
158+
159+ -- Mappings.
160+
161+ -- See `:help vim.lsp.*` for documentation on any of the below functions
162+ vim.keymap.set('n', '<leader>d', vim.lsp.buf.definition, bufopts)
163+ vim.keymap.set('n', '<leader>D', vim.lsp.buf.type_definition, bufopts)
164+ vim.keymap.set('n', '<leader>h', vim.lsp.buf.hover, bufopts)
165+ vim.keymap.set('n', '<leader>r', vim.lsp.buf.references, bufopts)
166+ vim.keymap.set('n', '<leader>k', vim.lsp.buf.signature_help, bufopts)
167+ vim.keymap.set('n', '<leader>i', vim.lsp.buf.implementation, bufopts)
168+ end
169+
170+ local nvim_lsp = require('lspconfig')
171+ local capabilities = vim.lsp.protocol.make_client_capabilities()
172+ capabilities = require('cmp_nvim_lsp').default_capabilities(capabilities)
173+ capabilities.textDocument.foldingRange = {
174+ dynamicRegistration = false,
175+ lineFoldingOnly = true
176+ }
177+
178+ function handler(server_name)
179+ local opts = {
180+ capabilities = capabilities,
181+ on_attach = on_attach,
182+ }
183+ if server_name == "denols" then
184+ opts.root_dir = nvim_lsp.util.root_pattern("deno.json", "deno.jsonc")
185+ elseif server_name == "tsserver" then
186+ opts.root_dir = nvim_lsp.util.root_pattern("package.json")
187+ -- https://github.com/neovim/nvim-lspconfig/issues/2507#issuecomment-1471438640
188+ opts.single_file_support = false
189+ end
190+ nvim_lsp[server_name].setup(opts)
191+ end
192+
193+ handler("tsserver")
194+ handler("denols")
195+ handler("gopls")
196+ handler("zls")
197+ handler("pyright")
198+ -- setup_folding()
199+end
200+
201+function setup_folding()
202+ vim.o.foldcolumn = '0' -- '0' is not bad
203+ vim.o.foldlevel = 99 -- Using ufo provider need a large value, feel free to decrease the value
204+ vim.o.foldlevelstart = 99
205+ vim.o.foldenable = true
206+ -- vim.o.fillchars = [[eob: ,fold: ,foldopen:,foldsep: ,foldclose:]]
207+
208+ -- `za` to toggle fold on cursor
209+ vim.keymap.set('n', '<leader>M', require('ufo').openAllFolds)
210+ vim.keymap.set('n', '<leader>m', require('ufo').closeAllFolds)
211+ require('ufo').setup()
212+end
213+
214+function setup_gitsigns()
215+ require('gitsigns').setup {}
216+end
217+
218+function setup_gitlinker()
219+ require"gitlinker".setup()
220+end
221+
222+function setup_tmux_nav()
223+ local nvim_tmux_nav = require('nvim-tmux-navigation')
224+
225+ nvim_tmux_nav.setup {
226+ disable_when_zoomed = true -- defaults to false
227+ }
228+
229+ vim.keymap.set('n', "<C-h>", nvim_tmux_nav.NvimTmuxNavigateLeft)
230+ vim.keymap.set('n', "<C-j>", nvim_tmux_nav.NvimTmuxNavigateDown)
231+ vim.keymap.set('n', "<C-k>", nvim_tmux_nav.NvimTmuxNavigateUp)
232+ vim.keymap.set('n', "<C-l>", nvim_tmux_nav.NvimTmuxNavigateRight)
233+ vim.keymap.set('n', "<C-\\>", nvim_tmux_nav.NvimTmuxNavigateLastActive)
234+ vim.keymap.set('n', "<C-Space>", nvim_tmux_nav.NvimTmuxNavigateNext)
235+end
+105,
-0
1@@ -0,0 +1,105 @@
2+local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
3+if not vim.loop.fs_stat(lazypath) then
4+ vim.fn.system({
5+ "git",
6+ "clone",
7+ "--filter=blob:none",
8+ "https://github.com/folke/lazy.nvim.git",
9+ "--branch=stable", -- latest stable release
10+ lazypath,
11+ })
12+end
13+vim.opt.rtp:prepend(lazypath)
14+
15+-- require functions used to configure plugins
16+require 'plugin_config'
17+
18+require("lazy").setup({
19+ {
20+ 'neovim/nvim-lspconfig',
21+ config = setup_lsp,
22+ },
23+ {
24+ 'nvim-treesitter/nvim-treesitter',
25+ build = ':TSUpdate',
26+ config = setup_treesitter
27+ },
28+ {
29+ "hrsh7th/nvim-cmp",
30+ dependencies = {
31+ "hrsh7th/cmp-buffer",
32+ "hrsh7th/cmp-vsnip",
33+ "hrsh7th/vim-vsnip"
34+ },
35+ config = setup_comp,
36+ },
37+ "hrsh7th/cmp-nvim-lsp",
38+ {
39+ "akinsho/bufferline.nvim",
40+ dependencies = 'nvim-tree/nvim-web-devicons',
41+ config = setup_bufferline,
42+ },
43+ {
44+ 'nvim-lualine/lualine.nvim',
45+ dependencies = {
46+ 'nvim-tree/nvim-web-devicons',
47+ lazy = true,
48+ },
49+ config = setup_statusline
50+ },
51+ {
52+ 'nvim-tree/nvim-tree.lua',
53+ config = setup_tree,
54+ dependencies = {
55+ 'nvim-tree/nvim-web-devicons',
56+ lazy = true,
57+ }
58+ },
59+ {
60+ 'lewis6991/gitsigns.nvim',
61+ config = setup_gitsigns,
62+ },
63+ 'lukas-reineke/indent-blankline.nvim',
64+ {
65+ 'ruifm/gitlinker.nvim',
66+ dependencies = 'nvim-lua/plenary.nvim',
67+ config = setup_gitlinker,
68+ },
69+ {
70+ 'rhysd/git-messenger.vim'
71+ },
72+ {
73+ 'junegunn/fzf',
74+ build = function()
75+ vim.fn['fzf#install']()
76+ end
77+ },
78+ 'junegunn/fzf.vim',
79+ {
80+ 'alexghergh/nvim-tmux-navigation',
81+ config = setup_tmux_nav,
82+ },
83+ {
84+ 'mg979/vim-visual-multi',
85+ branch = 'master',
86+ },
87+ {
88+ 'Shougo/vimproc.vim',
89+ build = 'make',
90+ },
91+ --{
92+ -- 'kevinhwang91/nvim-ufo',
93+ -- dependencies = 'kevinhwang91/promise-async',
94+ --},
95+ {
96+ 'Mofiqul/dracula.nvim',
97+ lazy = false,
98+ priority = 1000,
99+ config = function()
100+ require('dracula').setup({})
101+ vim.cmd[[colorscheme dracula]]
102+ end
103+ },
104+ 'ntpeters/vim-better-whitespace',
105+ 'psliwka/vim-smoothie'
106+})
+0,
-0
+156,
-0
1@@ -0,0 +1,156 @@
2+# Autogenerated config.py
3+#
4+# NOTE: config.py is intended for advanced users who are comfortable
5+# with manually migrating the config file on qutebrowser upgrades. If
6+# you prefer, you can also configure qutebrowser using the
7+# :set/:bind/:config-* commands without having to write a config.py
8+# file.
9+#
10+# Documentation:
11+# qute://help/configuring.html
12+# qute://help/settings.html
13+
14+# Change the argument to True to still load settings configured via autoconfig.yml
15+config.load_autoconfig(False)
16+config.set("url.searchengines", {
17+ "DEFAULT": "https://kagi.com/search?q={}",
18+ "brave": "https://search.brave.com/search?q={}",
19+})
20+config.set("url.start_pages", [
21+ "https://erock.lists.sh/bookmark-web"
22+])
23+config.set("url.default_page", "https://erock.lists.sh/bookmark-web")
24+config.set("colors.webpage.preferred_color_scheme", "dark")
25+# config.set("content.user_stylesheets", ["./theme.css"])
26+# config.set("content.user_stylesheets", ["./hn.css"])
27+config.set("content.user_stylesheets", ["./solarized-dark-all-sites.css"])
28+config.set("colors.webpage.bg", "black")
29+config.set("tabs.show", "multiple")
30+config.set("fonts.default_family", "FireCode")
31+config.set("fonts.default_size", "12pt")
32+# config.set("colors.webpage.darkmode.enabled", True)
33+
34+# Which cookies to accept. With QtWebEngine, this setting also controls
35+# other features with tracking capabilities similar to those of cookies;
36+# including IndexedDB, DOM storage, filesystem API, service workers, and
37+# AppCache. Note that with QtWebKit, only `all` and `never` are
38+# supported as per-domain values. Setting `no-3rdparty` or `no-
39+# unknown-3rdparty` per-domain on QtWebKit will have the same effect as
40+# `all`. If this setting is used with URL patterns, the pattern gets
41+# applied to the origin/first party URL of the page making the request,
42+# not the request URL. With QtWebEngine 5.15.0+, paths will be stripped
43+# from URLs, so URL patterns using paths will not match. With
44+# QtWebEngine 5.15.2+, subdomains are additionally stripped as well, so
45+# you will typically need to set this setting for `example.com` when the
46+# cookie is set on `somesubdomain.example.com` for it to work properly.
47+# To debug issues with this setting, start qutebrowser with `--debug
48+# --logfilter network --debug-flag log-cookies` which will show all
49+# cookies being set.
50+# Type: String
51+# Valid values:
52+# - all: Accept all cookies.
53+# - no-3rdparty: Accept cookies from the same origin only. This is known to break some sites, such as GMail.
54+# - no-unknown-3rdparty: Accept cookies from the same origin only, unless a cookie is already set for the domain. On QtWebEngine, this is the same as no-3rdparty.
55+# - never: Don't accept cookies at all.
56+config.set('content.cookies.accept', 'all', 'chrome-devtools://*')
57+
58+# Which cookies to accept. With QtWebEngine, this setting also controls
59+# other features with tracking capabilities similar to those of cookies;
60+# including IndexedDB, DOM storage, filesystem API, service workers, and
61+# AppCache. Note that with QtWebKit, only `all` and `never` are
62+# supported as per-domain values. Setting `no-3rdparty` or `no-
63+# unknown-3rdparty` per-domain on QtWebKit will have the same effect as
64+# `all`. If this setting is used with URL patterns, the pattern gets
65+# applied to the origin/first party URL of the page making the request,
66+# not the request URL. With QtWebEngine 5.15.0+, paths will be stripped
67+# from URLs, so URL patterns using paths will not match. With
68+# QtWebEngine 5.15.2+, subdomains are additionally stripped as well, so
69+# you will typically need to set this setting for `example.com` when the
70+# cookie is set on `somesubdomain.example.com` for it to work properly.
71+# To debug issues with this setting, start qutebrowser with `--debug
72+# --logfilter network --debug-flag log-cookies` which will show all
73+# cookies being set.
74+# Type: String
75+# Valid values:
76+# - all: Accept all cookies.
77+# - no-3rdparty: Accept cookies from the same origin only. This is known to break some sites, such as GMail.
78+# - no-unknown-3rdparty: Accept cookies from the same origin only, unless a cookie is already set for the domain. On QtWebEngine, this is the same as no-3rdparty.
79+# - never: Don't accept cookies at all.
80+config.set('content.cookies.accept', 'all', 'devtools://*')
81+
82+# Value to send in the `Accept-Language` header. Note that the value
83+# read from JavaScript is always the global value.
84+# Type: String
85+config.set('content.headers.accept_language', '', 'https://matchmaker.krunker.io/*')
86+
87+# User agent to send. The following placeholders are defined: *
88+# `{os_info}`: Something like "X11; Linux x86_64". * `{webkit_version}`:
89+# The underlying WebKit version (set to a fixed value with
90+# QtWebEngine). * `{qt_key}`: "Qt" for QtWebKit, "QtWebEngine" for
91+# QtWebEngine. * `{qt_version}`: The underlying Qt version. *
92+# `{upstream_browser_key}`: "Version" for QtWebKit, "Chrome" for
93+# QtWebEngine. * `{upstream_browser_version}`: The corresponding
94+# Safari/Chrome version. * `{qutebrowser_version}`: The currently
95+# running qutebrowser version. The default value is equal to the
96+# unchanged user agent of QtWebKit/QtWebEngine. Note that the value
97+# read from JavaScript is always the global value. With QtWebEngine
98+# between 5.12 and 5.14 (inclusive), changing the value exposed to
99+# JavaScript requires a restart.
100+# Type: FormatString
101+config.set('content.headers.user_agent', 'Mozilla/5.0 ({os_info}) AppleWebKit/{webkit_version} (KHTML, like Gecko) {upstream_browser_key}/{upstream_browser_version} Safari/{webkit_version}', 'https://web.whatsapp.com/')
102+
103+# User agent to send. The following placeholders are defined: *
104+# `{os_info}`: Something like "X11; Linux x86_64". * `{webkit_version}`:
105+# The underlying WebKit version (set to a fixed value with
106+# QtWebEngine). * `{qt_key}`: "Qt" for QtWebKit, "QtWebEngine" for
107+# QtWebEngine. * `{qt_version}`: The underlying Qt version. *
108+# `{upstream_browser_key}`: "Version" for QtWebKit, "Chrome" for
109+# QtWebEngine. * `{upstream_browser_version}`: The corresponding
110+# Safari/Chrome version. * `{qutebrowser_version}`: The currently
111+# running qutebrowser version. The default value is equal to the
112+# unchanged user agent of QtWebKit/QtWebEngine. Note that the value
113+# read from JavaScript is always the global value. With QtWebEngine
114+# between 5.12 and 5.14 (inclusive), changing the value exposed to
115+# JavaScript requires a restart.
116+# Type: FormatString
117+config.set('content.headers.user_agent', 'Mozilla/5.0 ({os_info}; rv:90.0) Gecko/20100101 Firefox/90.0', 'https://accounts.google.com/*')
118+
119+# User agent to send. The following placeholders are defined: *
120+# `{os_info}`: Something like "X11; Linux x86_64". * `{webkit_version}`:
121+# The underlying WebKit version (set to a fixed value with
122+# QtWebEngine). * `{qt_key}`: "Qt" for QtWebKit, "QtWebEngine" for
123+# QtWebEngine. * `{qt_version}`: The underlying Qt version. *
124+# `{upstream_browser_key}`: "Version" for QtWebKit, "Chrome" for
125+# QtWebEngine. * `{upstream_browser_version}`: The corresponding
126+# Safari/Chrome version. * `{qutebrowser_version}`: The currently
127+# running qutebrowser version. The default value is equal to the
128+# unchanged user agent of QtWebKit/QtWebEngine. Note that the value
129+# read from JavaScript is always the global value. With QtWebEngine
130+# between 5.12 and 5.14 (inclusive), changing the value exposed to
131+# JavaScript requires a restart.
132+# Type: FormatString
133+config.set('content.headers.user_agent', 'Mozilla/5.0 ({os_info}) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99 Safari/537.36', 'https://*.slack.com/*')
134+
135+# Load images automatically in web pages.
136+# Type: Bool
137+config.set('content.images', True, 'chrome-devtools://*')
138+
139+# Load images automatically in web pages.
140+# Type: Bool
141+config.set('content.images', True, 'devtools://*')
142+
143+# Enable JavaScript.
144+# Type: Bool
145+config.set('content.javascript.enabled', True, 'chrome-devtools://*')
146+
147+# Enable JavaScript.
148+# Type: Bool
149+config.set('content.javascript.enabled', True, 'devtools://*')
150+
151+# Enable JavaScript.
152+# Type: Bool
153+config.set('content.javascript.enabled', True, 'chrome://*/*')
154+
155+# Enable JavaScript.
156+# Type: Bool
157+config.set('content.javascript.enabled', True, 'qute://*/*')
+61,
-0
1@@ -0,0 +1,61 @@
2+/* ==UserStyle==
3+@name Oficial Dracula Theme
4+@namespace github.com/dracula/hacker-news
5+@version 1.0.0
6+@description A dark theme for Hacker News
7+@supportURL https://github.com/dracula/hacker-news/issues
8+@license MIT
9+==/UserStyle== */
10+#hnmain {
11+ background-color: #282a36;
12+}
13+#hnmain > tbody > tr:nth-child(1) > td {
14+ background-color: #282a36;
15+}
16+#hnmain > tbody > tr:nth-child(2) > td {
17+ background-color: #44475a;
18+}
19+a:link{
20+ color: #bd93f9;
21+}
22+.hnmore a:link, a:visited {
23+ color: #6272a4;
24+}
25+#hnmain > tbody > tr:nth-child(2) > td > table > tbody > tr > td:nth-child(2) > span > b > a {
26+ color: #50fa7b;
27+}
28+.comhead a:link, .subtext a:visited {
29+ color: #8be9fd;
30+}
31+.score {
32+ color: #ffb86c;
33+}
34+#karma {
35+ color: #ffb86c;
36+}
37+#hnmain > tbody > tr:nth-child(1) > td > table > tbody > tr > td:nth-child(3) > span {
38+ color: #ffb86c;
39+}
40+#hnmain > tbody > tr:nth-child(4) > td > center:nth-child(6) > form > input[type=text] {
41+ background-color: #44475a;
42+}
43+#hnmain > tbody > tr:nth-child(4) > td > center:nth-child(6) > form {
44+ color: #50fa7b;
45+}
46+.pagetop a:visited {
47+ color: #bd93f9;
48+}
49+.title {
50+ color: #6272a4;
51+}
52+body {
53+ background-color: #282a36;
54+}
55+.commtext {
56+ color: #f8f8f2
57+}
58+textarea, input {
59+ background-color: #282a36;
60+ color: #f8f8f2;
61+ border-color: #8be9fd
62+}
+0,
-0
+1712,
-0
1@@ -0,0 +1,1712 @@
2+* {
3+ border-color: #657b83 !important;
4+}
5+a {
6+ color: #268bd2 !important;
7+}
8+a:visited {
9+ color: #6c71c4 !important;
10+}
11+body {
12+ background-color: #002b36 !important;
13+ color: #839496 !important;
14+}
15+html {
16+ background-color: #002b36 !important;
17+}
18+input,
19+textarea {
20+ background-color: #073642 !important;
21+ color: #839496 !important;
22+}
23+blockquote,
24+pre {
25+ background-color: #073642 !important;
26+ color: #839496 !important;
27+}
28+.post-actions {
29+ background-color: #073642 !important;
30+}
31+.textarea-wrapper {
32+ background-color: #002b36 !important;
33+ color: #839496 !important;
34+}
35+.search--adv {
36+ background-color: #073642 !important;
37+}
38+.search__autocomplete > .acp-wrap {
39+ background-color: #002b36 !important;
40+}
41+.search__autocomplete > .acp-wrap > .acp--highlight {
42+ background-color: #073642 !important;
43+ color: #eee8d5 !important;
44+}
45+.search__autocomplete > .acp-wrap strong {
46+ color: #eee8d5 !important;
47+}
48+.site-wrapper > #header_wrapper {
49+ background-color: #002b36 !important;
50+}
51+.site-wrapper > #header_wrapper > #header {
52+ background-color: #002b36 !important;
53+}
54+.search--header {
55+ background-color: #073642 !important;
56+}
57+.zci {
58+ background-color: #073642 !important;
59+ color: #839496 !important;
60+}
61+.tile--info {
62+ background-color: #002b36 !important;
63+}
64+.tile--info__expand {
65+ background-color: #586e75 !important;
66+}
67+.tile--c {
68+ background-color: #586e75 !important;
69+ color: #eee8d5 !important;
70+}
71+.module__text {
72+ color: #839496 !important;
73+}
74+.about-info-box__heading {
75+ color: #93a1a1 !important;
76+}
77+.result.highlight {
78+ background-color: #073642 !important;
79+}
80+.result__snippet {
81+ color: #839496 !important;
82+}
83+.result__snippet b {
84+ color: #93a1a1 !important;
85+}
86+.btn--top {
87+ background-color: #073642 !important;
88+ color: #839496 !important;
89+}
90+.btn--top:hover {
91+ background-color: #586e75 !important;
92+}
93+.result--sep--hr:before {
94+ background-color: #586e75 !important;
95+}
96+* {
97+ border-color: #073642 !important;
98+}
99+.news .alert .pull-info {
100+ background-color: #083c4a !important;
101+}
102+.link-gray-dark,
103+.text-gray-dark {
104+ color: #839496 !important;
105+}
106+.bg-white {
107+ background-color: #002b36 !important;
108+}
109+.border {
110+ border-color: #657b83 !important;
111+}
112+.breadcrumb .repo-root.js-repo-root a {
113+ color: #268bd2 !important;
114+}
115+.breadcrumb strong.final-path {
116+ color: #839496 !important;
117+}
118+button.ajax-pagination-btn {
119+ background-color: #073642 !important;
120+ color: #93a1a1 !important;
121+}
122+button.ajax-pagination-btn:hover {
123+ background-color: #586e75 !important;
124+}
125+.comment-reactions .btn-link {
126+ color: #839496 !important;
127+}
128+.comment-reactions .user-has-reacted {
129+ background-color: #073642 !important;
130+}
131+.text-gray-dark {
132+ color: #839496 !important;
133+}
134+.contrib-number {
135+ color: #93a1a1 !important;
136+}
137+.counter {
138+ background-color: #094352 !important;
139+ color: #93a1a1 !important;
140+}
141+.diffstat-bar {
142+ color: #839496 !important;
143+}
144+.file-header {
145+ background-color: #073642 !important;
146+}
147+.file-history-tease .participation {
148+ background-color: #002b36 !important;
149+ color: #839496 !important;
150+}
151+.file-history-tease .participation .quickstat strong {
152+ color: #839496 !important;
153+}
154+.file-history-tease .participation a {
155+ color: #586e75 !important;
156+}
157+.file-history-tease .author a {
158+ color: #839496 !important;
159+}
160+.file-history-tease-header {
161+ background-color: #073642 !important;
162+}
163+.file-info-divider {
164+ background-color: #586e75 !important;
165+}
166+.file-wrap {
167+ color: #839496 !important;
168+}
169+.file-wrap * {
170+ background-color: transparent !important;
171+}
172+.filter-bar {
173+ background-color: #083c4a !important;
174+}
175+a.filter-item,
176+.filter-item {
177+ color: #839496 !important;
178+}
179+a.filter-item.selected,
180+.filter-item.selected {
181+ background-color: #073642 !important;
182+ color: #93a1a1 !important;
183+}
184+a.filter-item:hover,
185+.filter-item:hover {
186+ background-color: #586e75 !important;
187+ color: #93a1a1 !important;
188+}
189+.flash {
190+ background-color: #073642 !important;
191+ color: #93a1a1 !important;
192+}
193+.gh-header {
194+ background-color: #002b36 !important;
195+}
196+.gh-header-number {
197+ color: #586e75 !important;
198+}
199+.ellipsis-expander,
200+.hidden-text-expander a {
201+ background-color: #073642 !important;
202+}
203+.issue-meta {
204+ color: #586e75 !important;
205+}
206+.issues-listing a {
207+ color: #839496 !important;
208+}
209+.muted-link {
210+ color: #839496 !important;
211+}
212+.new-user-avatar-cta {
213+ background-color: #073642 !important;
214+ border-color: #586e75 !important;
215+ color: #93a1a1 !important;
216+}
217+.overall-summary {
218+ border-color: #586e75 !important;
219+}
220+.pinned-repo-item.border {
221+ border-color: #586e75 !important;
222+}
223+.progress-bar {
224+ background-color: #586e75 !important;
225+}
226+.simple-box {
227+ background-color: #073642 !important;
228+}
229+.social-count {
230+ background-color: #073642 !important;
231+ border-color: #586e75 !important;
232+ color: #93a1a1 !important;
233+}
234+.scope-badge {
235+ background-color: #586e75 !important;
236+ color: #93a1a1 !important;
237+}
238+.stats-switcher-wrapper {
239+ background-color: #002b36 !important;
240+}
241+.stats-switcher-wrapper .numbers-summary li a {
242+ color: #839496 !important;
243+}
244+.table-list-header-toggle .btn-link {
245+ color: #586e75 !important;
246+}
247+.table-list-header-toggle .btn-link.selected {
248+ color: #839496 !important;
249+}
250+.text-emphasized {
251+ color: #93a1a1 !important;
252+}
253+.text-diff-added {
254+ color: #859900 !important;
255+}
256+.text-diff-deleted {
257+ color: #dc322f !important;
258+}
259+.avatar,
260+.timeline-comment-avatar {
261+ filter: opacity(75%);
262+}
263+.blob-code {
264+ background-color: #002b36 !important;
265+ color: #839496 !important;
266+}
267+.blob-code-addition {
268+ background-color: rgba(232,255,77,0.1) !important;
269+}
270+.blob-code-addition .x {
271+ background-color: #647300 !important;
272+ color: #c1cacb !important;
273+}
274+.blob-code-deletion {
275+ background-color: rgba(220,50,47,0.2) !important;
276+}
277+.blob-code-deletion .x {
278+ background-color: #721513 !important;
279+ color: #c1cacb !important;
280+}
281+.blob-code-hunk {
282+ background-color: #073642 !important;
283+ border-color: #586e75 !important;
284+}
285+.blob-code-inner {
286+ color: #839496 !important;
287+}
288+.blob-num {
289+ background-color: #002b36 !important;
290+ color: #586e75 !important;
291+}
292+.file {
293+ color: #839496 !important;
294+}
295+.form-control {
296+ background-color: #073642 !important;
297+ border-color: #586e75 !important;
298+}
299+.pl-c {
300+ color: #586e75 !important;
301+}
302+.pl-c1 {
303+ color: #268bd2 !important;
304+}
305+.pl-e {
306+ color: #b58900 !important;
307+}
308+.pl-en {
309+ color: #268bd2 !important;
310+}
311+.pl-k {
312+ color: #859900 !important;
313+ font-weight: bold !important;
314+}
315+.pl-pds {
316+ color: #2aa198 !important;
317+}
318+.pl-s {
319+ color: #2aa198 !important;
320+}
321+.pl-smi {
322+ color: #839496 !important;
323+}
324+.pl-v {
325+ color: #859900 !important;
326+ font-weight: bold !important;
327+}
328+.pl-mi1 {
329+ color: #859900 !important;
330+ background-color: transparent !important;
331+}
332+.pl-md {
333+ color: #dc322f !important;
334+ background-color: transparent !important;
335+}
336+.border-bottom,
337+.border-top {
338+ border-color: #073642 !important;
339+}
340+.boxed-group * {
341+ border-color: #586e75 !important;
342+}
343+.boxed-group article {
344+ background-color: #002b36 !important;
345+ color: #839496 !important;
346+}
347+.boxed-group > h3 {
348+ background-color: #094352 !important;
349+ color: #93a1a1 !important;
350+}
351+.more-repos {
352+ background-color: #094352 !important;
353+ box-shadow: inset 0 1px 0 #586e75 !important;
354+}
355+.boxed-group-inner {
356+ background-color: #002b36 !important;
357+}
358+.branch-action-body {
359+ background-color: #073642 !important;
360+ border-color: #586e75 !important;
361+}
362+.branch-action-body div {
363+ border-color: #586e75 !important;
364+}
365+.branch-action-state-clean .branch-action-icon {
366+ background-color: #859900 !important;
367+}
368+.branch-action-state-dirty .branch-action-icon,
369+.branch-action-state-unstable .branch-action-icon,
370+.branch-action-state-unknown .branch-action-icon {
371+ background-color: #b58900 !important;
372+ color: #fff !important;
373+}
374+.text-shadow-light,
375+.branch-group-name,
376+.branch-summary {
377+ color: #839496 !important;
378+ text-shadow: none !important;
379+}
380+.branch-a-b-count .meter {
381+ background-color: #b58900 !important;
382+}
383+.more-branches,
384+.branch-group-heading,
385+.branch-infobar,
386+.branch-name {
387+ border-color: #586e75 !important;
388+ background-color: #073642 !important;
389+}
390+.State,
391+.State:visited {
392+ color: #fff !important;
393+}
394+.State--red {
395+ background-color: #dc322f !important;
396+ color: #002b36 !important;
397+}
398+.State--green {
399+ background-color: #859900 !important;
400+ color: #002b36 !important;
401+}
402+.select-menu-filters {
403+ background-color: #083c4a !important;
404+ color: #93a1a1 !important;
405+}
406+.js-select-menu-tab {
407+ background-color: #094352 !important;
408+ color: #93a1a1 !important;
409+}
410+.select-menu-tabs a.selected,
411+.select-menu-tab-nav.selected {
412+ background-color: #586e75 !important;
413+ color: #002b36 !important;
414+}
415+.signed-commit-header {
416+ background-color: #002b36 !important;
417+}
418+.build-status-item {
419+ background-color: #094352 !important;
420+ color: #93a1a1 !important;
421+}
422+.build-status-item .build-status-details {
423+ color: #268bd2 !important;
424+}
425+.capped-card h3 {
426+ background-color: #094352 !important;
427+}
428+.capped-card h3 a {
429+ color: #93a1a1 !important;
430+}
431+.capped-card-content {
432+ background-color: #002b36 !important;
433+}
434+.capped-list th {
435+ background-color: #083c4a !important;
436+ color: #93a1a1 !important;
437+}
438+.capped-list tr:nth-child(2n) {
439+ background-color: #073642 !important;
440+}
441+.commit,
442+.commit-meta,
443+.commit-icon .octicon,
444+.commit-group-title .octicon-git-commit {
445+ background-color: #002b36 !important;
446+}
447+.commit *,
448+.commit-meta *,
449+.commit-icon .octicon *,
450+.commit-group-title .octicon-git-commit * {
451+ border-color: #586e75 !important;
452+}
453+.commit-author {
454+ color: #839496 !important;
455+}
456+.commit-author-section {
457+ color: #839496 !important;
458+}
459+.commit-meta {
460+ color: #586e75 !important;
461+}
462+.commit-meta .sha-block {
463+ color: #586e75 !important;
464+}
465+.commit-meta .sha-block .sha {
466+ color: #839496 !important;
467+}
468+.commit-ref,
469+code.commit-sha {
470+ background-color: #073642 !important;
471+ color: #93a1a1 !important;
472+}
473+.commit-ref .user,
474+code.commit-sha .user {
475+ color: #2aa198 !important;
476+}
477+.commit-branches *,
478+.commit-tease,
479+.commit-title {
480+ background-color: rgba(190,255,255,0.2) !important;
481+ border: none !important;
482+}
483+.commit-branches * *,
484+.commit-tease *,
485+.commit-title * {
486+ color: #93a1a1 !important;
487+}
488+.commit-tease-contributors {
489+ background-color: #073642 !important;
490+}
491+div.commit-branches,
492+div.commit.full-commit p.commit-title,
493+qul.branches-list {
494+ background-color: #073642 !important;
495+ color: #93a1a1 !important;
496+}
497+div.commit-branches *,
498+div.commit.full-commit p.commit-title *,
499+qul.branches-list * {
500+ background-color: #073642 !important;
501+ color: #93a1a1 !important;
502+}
503+.commit-meta {
504+ background-color: #073642 !important;
505+ color: #839496 !important;
506+}
507+.commits-listing:before {
508+ background-color: #073642 !important;
509+}
510+.full-commit {
511+ background-color: #073642 !important;
512+ border-color: #586e75 !important;
513+}
514+.full-commit * {
515+ text-shadow: none !important;
516+}
517+.commit-desc pre {
518+ background-color: transparent !important;
519+ color: #839496 !important;
520+}
521+.commit.table-list-item {
522+ border-color: #073642 !important;
523+}
524+.commit-meta.commit-author-section {
525+ background-color: transparent !important;
526+ color: #839496 !important;
527+}
528+.table-list-cell .commit-title {
529+ background-color: transparent !important;
530+ color: #839496 !important;
531+}
532+.completeness-indicator-success {
533+ background-color: #859900 !important;
534+}
535+.completeness-indicator-problem {
536+ background-color: #b58900 !important;
537+ color: #fff !important;
538+}
539+.copyable-terminal {
540+ background-color: #073642 !important;
541+}
542+.blankslate {
543+ background-color: #073642 !important;
544+ color: #93a1a1 !important;
545+}
546+.comment-form-head.tabnav {
547+ background-color: #002b36 !important;
548+}
549+.conversation-list-heading .inner {
550+ background-color: #002b36 !important;
551+}
552+.discussion-item-closed .discussion-item-icon {
553+ background-color: #dc322f !important;
554+ color: #93a1a1 !important;
555+}
556+.discussion-item-icon {
557+ background-color: #586e75 !important;
558+ color: #93a1a1 !important;
559+}
560+.discussion-item-icon.octicon {
561+ color: #93a1a1 !important;
562+}
563+.discussion-item-entity,
564+.discussion-item .renamed-was,
565+.discussion-item .renamed-is {
566+ color: #93a1a1 !important;
567+}
568+.discussion-timeline:before {
569+ background-color: #657b83 !important;
570+}
571+.discussion-timeline-actions {
572+ background-color: #002b36 !important;
573+}
574+.drag-and-drop {
575+ background-color: #073642 !important;
576+}
577+.new-discussion-timeline .closed-banner {
578+ background-color: #657b83 !important;
579+ border-color: #002b36 !important;
580+}
581+.timeline-comment {
582+ background-color: #002b36 !important;
583+ border-color: #586e75 !important;
584+}
585+.timeline-comment-header {
586+ background-color: #073642 !important;
587+}
588+.timeline-comment-wrapper {
589+ border-color: #002b36 !important;
590+}
591+.donut-chart > .pending {
592+ fill: #b58900 !important;
593+}
594+.dropdown-divider {
595+ background-color: #657b83 !important;
596+}
597+.dropdown-item {
598+ color: #839496 !important;
599+}
600+.dropdown-item:hover {
601+ background-color: #586e75 !important;
602+ color: #93a1a1 !important;
603+}
604+.dropdown-menu {
605+ background-color: #094352 !important;
606+ color: #93a1a1 !important;
607+ border-color: #657b83 !important;
608+}
609+.files * {
610+ color: #839496 !important;
611+}
612+.files tbody tr {
613+ border-color: #073642 !important;
614+}
615+.files tbody tr:nth-child(even) {
616+ background-color: #00323f !important;
617+}
618+.files tbody tr:nth-child(odd) {
619+ background-color: #002b36 !important;
620+}
621+.files tbody tr:hover * {
622+ background-color: #094352 !important;
623+}
624+.btn {
625+ background-image: linear-gradient(to bottom, #586e75, #073642) !important;
626+ border-color: #586e75 !important;
627+ color: #93a1a1 !important;
628+}
629+.btn:hover {
630+ background-color: #083c4a !important;
631+}
632+.btn-primary,
633+.issues-listing .btn-primary {
634+ background-color: #859900 !important;
635+ background-image: linear-gradient(#859900, #424d00) !important;
636+ color: #000 !important;
637+ filter: opacity(62.5%);
638+}
639+.entry-title a {
640+ color: #268bd2 !important;
641+}
642+.Header {
643+ background-color: #083c4a !important;
644+ border-bottom-color: #586e75 !important;
645+}
646+.Header a {
647+ color: #93a1a1 !important;
648+}
649+.lang {
650+ color: #93a1a1 !important;
651+}
652+.reponav-item,
653+.pagehead-tabs-item {
654+ background-color: #073642 !important;
655+ border-color: transparent !important;
656+ color: #839496 !important;
657+}
658+.reponav-item:visited,
659+.pagehead-tabs-item:visited {
660+ color: #839496 !important;
661+}
662+.reponav-item.selected,
663+.pagehead-tabs-item.selected {
664+ background-color: #002b36 !important;
665+ border-color: #dc322f #094352 transparent !important;
666+}
667+.site-footer-links * {
668+ color: #839496 !important;
669+}
670+.Box-row--focus-gray.navigation-focus {
671+ background-color: #083c4a !important;
672+ color: #93a1a1 !important;
673+}
674+.js-directory-link {
675+ color: #268bd2 !important;
676+}
677+.js-site-search-form input,
678+.js-chromeless-input-container {
679+ background-color: #002b36 !important;
680+ border-color: #586e75 !important;
681+}
682+a.label {
683+ color: #000 !important;
684+ filter: opacity(75%);
685+}
686+.notifications-list a {
687+ color: #839496 !important;
688+}
689+.notifications-list li {
690+ background-color: #002b36 !important;
691+}
692+.octicon-repo {
693+ color: #93a1a1 !important;
694+}
695+.type-icon-state-closed {
696+ color: rgba(255,54,43,0.65) !important;
697+}
698+.type-icon-state-merged {
699+ color: #6c71c4 !important;
700+}
701+.type-icon-state-open {
702+ color: rgba(205,212,0,0.65) !important;
703+}
704+.octicon-alert {
705+ color: #fff !important;
706+}
707+.octicon-x {
708+ color: #dc322f !important;
709+}
710+.octicon-check {
711+ color: #859900 !important;
712+}
713+.octicon-primitive-dot {
714+ color: #b58900 !important;
715+}
716+.octicon-clippy {
717+ color: #93a1a1 !important;
718+}
719+.octicon-diff {
720+ color: #fff !important;
721+}
722+.octicon-markdown {
723+ color: #586e75 !important;
724+}
725+.orghead {
726+ background-color: #073642 !important;
727+ border-color: #657b83 !important;
728+ border-bottom: 0px !important;
729+ color: #93a1a1 !important;
730+}
731+.org-name {
732+ color: #93a1a1 !important;
733+}
734+.pagehead.orghead {
735+ background-color: #073642 !important;
736+}
737+.outline-box-highlighted {
738+ background-color: #073642 !important;
739+ color: #93a1a1 !important;
740+}
741+.pagination .current {
742+ background-color: #586e75 !important;
743+ color: #93a1a1 !important;
744+}
745+.pagination .disabled {
746+ background-color: #073642 !important;
747+ color: #586e75 !important;
748+}
749+.pagination .disabled:hover {
750+ background-color: #073642 !important;
751+}
752+.pagination .gap {
753+ background-color: #073642 !important;
754+ color: #586e75 !important;
755+}
756+.pagination a {
757+ background-color: #073642 !important;
758+ border-color: #002b36 !important;
759+ color: #839496 !important;
760+}
761+.pagination a:hover {
762+ background-color: #586e75 !important;
763+ color: #002b36 !important;
764+}
765+.empty-cell,
766+.diffbar {
767+ background-color: #002b36 !important;
768+}
769+.merge-status-item {
770+ background-color: #094352 !important;
771+}
772+.merge-message {
773+ background-color: #083c4a !important;
774+}
775+.pr-toolbar {
776+ background-color: #002b36 !important;
777+}
778+.review-thread-reply {
779+ background-color: #073642 !important;
780+}
781+.review-thread-reply .inline-comment-form {
782+ background-color: #002b36 !important;
783+}
784+.merged.octicon,
785+.octicon-git-merge {
786+ color: #6c71c4 !important;
787+}
788+.uploaded-files {
789+ background-color: #002b36 !important;
790+}
791+.upload-progress {
792+ background-color: #073642 !important;
793+ box-shadow: 1px 0px 0px #073642 inset;
794+}
795+#readme .plain {
796+ background-color: #002b36 !important;
797+}
798+.markdown-body,
799+.markdown-body table * {
800+ background-color: #002b36 !important;
801+ border-color: #657b83 !important;
802+ color: #839496 !important;
803+}
804+.markdown-body a,
805+.markdown-body table * a {
806+ color: #268bd2 !important;
807+}
808+.markdown-body code,
809+.markdown-body table * code,
810+.markdown-body pre,
811+.markdown-body table * pre {
812+ background-color: #073642 !important;
813+}
814+.markdown-body hr,
815+.markdown-body table * hr {
816+ background-color: #586e75 !important;
817+}
818+.markdown-body img,
819+.markdown-body table * img {
820+ background-color: #002b36 !important;
821+}
822+.task-list-item.hovered {
823+ background-color: #073642 !important;
824+}
825+.range-editor {
826+ background-color: #073642 !important;
827+}
828+.compare-pr-placeholder {
829+ background-color: #083c4a !important;
830+}
831+ul.comparison-list > li.title {
832+ background-color: #094352 !important;
833+}
834+ul.comparison-list {
835+ background-color: #083c4a !important;
836+}
837+.repository-description {
838+ color: #839496 !important;
839+}
840+.repository-meta .edit-repository-meta label {
841+ color: #839496 !important;
842+}
843+.pagehead.repohead {
844+ background-color: #073642 !important;
845+}
846+.repository-content .RecentBranches {
847+ background-color: #073642 !important;
848+ border-color: #657b83 !important;
849+}
850+.repohead-details-container a {
851+ color: #839496 !important;
852+}
853+.select-menu-modal {
854+ border-color: #839496 !important;
855+}
856+.select-menu-modal * {
857+ color: #839496 !important;
858+}
859+.select-menu-header,
860+.select-menu-header * {
861+ background-color: #073642 !important;
862+ color: #93a1a1 !important;
863+ text-shadow: none !important;
864+}
865+.select-menu-item {
866+ background-color: #002b36 !important;
867+}
868+.select-menu-item.navigation-focus,
869+.select-menu-item.navigation-focus.selected,
870+.select-menu-item.navigation-focus.select-menu-action,
871+.select-menu-item-text.navigation-focus {
872+ background-color: #586e75 !important;
873+ color: #93a1a1 !important;
874+}
875+.repository-sidebar {
876+ background-color: #002b36 !important;
877+}
878+.thread-subscription-status {
879+ background-color: #002b36 !important;
880+}
881+.sunken-menu {
882+ background-image: linear-gradient(to right, #073642 0%, #002b36 8px) !important;
883+ box-shadow: 1px 0px 0px #073642 inset;
884+}
885+.sunken-menu:before {
886+ background-image: linear-gradient(#002b36, transparent) !important;
887+}
888+.sunken-menu:after {
889+ background-image: linear-gradient(transparent, #002b36) !important;
890+}
891+.sunken-menu-item {
892+ border-color: #002b36 !important;
893+}
894+.sunken-menu-item.selected {
895+ background-color: #002b36 !important;
896+ border-color: #094352 !important;
897+ color: #93a1a1 !important;
898+}
899+.sunken-menu-item.selected:after {
900+ background-color: #cb4b16 !important;
901+}
902+.sunken-menu-separator:before {
903+ background-image: linear-gradient(to right, #073642 70%, #002b36 100%) !important;
904+}
905+.state {
906+ color: #93a1a1 !important;
907+}
908+.state-closed {
909+ background-color: #dc322f !important;
910+}
911+.state-open {
912+ background-color: #859900 !important;
913+}
914+.subnav-item {
915+ color: #839496 !important;
916+}
917+.subnav-item:hover {
918+ background-color: #083c4a !important;
919+}
920+.subnav-item:visited {
921+ color: #839496 !important;
922+}
923+.subnav-item.selected {
924+ background-color: #073642 !important;
925+}
926+.subnav-links a:hover {
927+ background-color: #073642 !important;
928+}
929+.subnav-search input {
930+ border-color: #586e75 !important;
931+}
932+.right .tabnav-extra {
933+ color: #586e75 !important;
934+}
935+a.tabnav-tab,
936+.tabnav-tab {
937+ border-color: transparent !important;
938+ color: #586e75 !important;
939+}
940+a.tabnav-tab.selected,
941+.tabnav-tab.selected {
942+ background-color: #002b36 !important;
943+ background-image: linear-gradient(#073642, #002b36) !important;
944+ border-color: #657b83 !important;
945+ color: #93a1a1 !important;
946+}
947+.table-list tr,
948+.table-list li {
949+ background-color: #002b36 !important;
950+}
951+.table-list tr:hover,
952+.table-list li:hover {
953+ background-color: #094352 !important;
954+}
955+.table-list-header {
956+ background-color: #073642 !important;
957+}
958+.text-pending {
959+ color: #b58900 !important;
960+}
961+.text-pending .octicon-primitive-dot {
962+ color: #b58900 !important;
963+}
964+.text-red {
965+ color: #dc322f !important;
966+}
967+.timeline-commits .commit-meta {
968+ background-color: #002b36 !important;
969+}
970+.timeline-commits .commit-meta .commit-id {
971+ color: #586e75 !important;
972+}
973+.topic-tag.topic-tag-link {
974+ background-color: #073642 !important;
975+ color: #839496 !important;
976+}
977+.underline-nav-item {
978+ color: #839496 !important;
979+}
980+.underline-nav-item.selected {
981+ border-bottom-color: #dc322f !important;
982+ color: #839496 !important;
983+}
984+.user-profile-nav {
985+ background-color: #073642 !important;
986+ border-color: #657b83 !important;
987+}
988+.user-profile-sticky-bar:after {
989+ background-color: #073642 !important;
990+ border-color: #657b83 !important;
991+}
992+.graphs .area {
993+ fill: #859900;
994+}
995+.summary-stats li .num {
996+ color: #93a1a1 !important;
997+}
998+.viz {
999+ background-color: #083c4a !important;
1000+}
1001+.facebox-popup {
1002+ color: #839496 !important;
1003+ background-color: #002b36 !important;
1004+}
1005+.facebox-popup .octicon {
1006+ color: #fff !important;
1007+}
1008+.facebox-popup .owner-select-target {
1009+ color: #839496 !important;
1010+ background-color: #073642 !important;
1011+}
1012+.facebox-popup .owner-select-target:hover {
1013+ background-color: #586e75 !important;
1014+}
1015+.suggester {
1016+ background-color: #094352 !important;
1017+}
1018+.suggester li.navigation-focus {
1019+ background-color: #586e75 !important;
1020+}
1021+.menu {
1022+ background-color: #073642 !important;
1023+}
1024+.menu-item.selected {
1025+ background-color: #094352 !important;
1026+}
1027+.menu-item:hover {
1028+ background-color: #586e75 !important;
1029+}
1030+.Box {
1031+ background-color: #002b36 !important;
1032+}
1033+.Box-header {
1034+ background-color: #073642 !important;
1035+}
1036+svg > * text {
1037+ color: #839496 !important;
1038+ fill: #839496 !important;
1039+}
1040+.insertions {
1041+ color: #859900 !important;
1042+}
1043+.deletions {
1044+ color: #dc322f !important;
1045+}
1046+.sfbgg {
1047+ background-color: #073642 !important;
1048+}
1049+.sbib_a {
1050+ background: linear-gradient(to bottom, #073642, #002b36) !important;
1051+}
1052+input#lst-ib,
1053+#sb_ifc0.sbib_b,
1054+#gs_taif0 {
1055+ background: transparent !important;
1056+}
1057+#lst-ib,
1058+.sbsb_a {
1059+ background-color: #002b36 !important;
1060+}
1061+.kpbb {
1062+ background-image: linear-gradient(to bottom, #59a9e1, #268bd2) !important;
1063+}
1064+#hdtbSum {
1065+ background-color: #002b36 !important;
1066+}
1067+#hdtbMenus.hdtb-td-o {
1068+ background-color: #002b36 !important;
1069+}
1070+#hdtb-tls.hdtb-tl {
1071+ background-image: linear-gradient(to bottom, #002b36, #073642) !important;
1072+}
1073+#hdtb-tls.hdtb-tl.hdtb-tl-sel {
1074+ background-image: linear-gradient(to bottom, #073642, #002b36) !important;
1075+}
1076+#abar_button_opt.ab_button {
1077+ background: linear-gradient(to bottom, #002b36, #073642) !important;
1078+}
1079+#appbar {
1080+ background-color: #002b36 !important;
1081+}
1082+cite {
1083+ color: #859900 !important;
1084+}
1085+.ab_dropdown {
1086+ background-color: #002b36 !important;
1087+}
1088+div.crp {
1089+ background-color: #002b36 !important;
1090+}
1091+#fbar {
1092+ background-color: #073642 !important;
1093+}
1094+tr.Even {
1095+ background-color: #073642 !important;
1096+}
1097+.BigQuote {
1098+ background-color: #073642 !important;
1099+ color: #cb4b16 !important;
1100+}
1101+.Cat1HL {
1102+ background-color: #586e75 !important;
1103+ color: #93a1a1 !important;
1104+}
1105+.Cat2HL {
1106+ background-color: #094352 !important;
1107+}
1108+.Cat3HL {
1109+ background-color: #083c4a !important;
1110+}
1111+.FeatureByline {
1112+ background-color: #073642 !important;
1113+ border: none !important;
1114+}
1115+.Headline {
1116+ background-color: #094352 !important;
1117+}
1118+.QuotedText {
1119+ color: #6c71c4 !important;
1120+}
1121+DIV.GAByline {
1122+ background-color: #073642 !important;
1123+ border: none !important;
1124+}
1125+table.OddEven tr:nth-child(even) {
1126+ background-color: #00323f !important;
1127+}
1128+table.OddEven tr:nth-child(odd) {
1129+ background-color: #002b36 !important;
1130+}
1131+DIV.CommentBox {
1132+ border-color: #073642 !important;
1133+}
1134+DIV.CommentBox P.CommentTitle {
1135+ background-color: #094352 !important;
1136+}
1137+#menu,
1138+.topnav-container {
1139+ background-color: #073642 !important;
1140+}
1141+.navmenu ul {
1142+ background-color: #073642 !important;
1143+}
1144+body * {
1145+ border-color: #094352 !important;
1146+}
1147+#content {
1148+ background-color: #002b36 !important;
1149+ color: #839496 !important;
1150+}
1151+#mw-head,
1152+#mw-panel {
1153+ background-color: #073642 !important;
1154+ color: #93a1a1 !important;
1155+}
1156+#mw-head div.portal,
1157+#mw-panel div.portal {
1158+ background-image: none !important;
1159+}
1160+#mw-head {
1161+ background-color: #073642 !important;
1162+ background-image: linear-gradient(to bottom, #002b36, #073642) !important;
1163+}
1164+#mw-panel,
1165+#p-logo {
1166+ background-image: linear-gradient(to right, #002b36, #073642) !important;
1167+}
1168+div.vectorTabs {
1169+ background-image: linear-gradient(to bottom, #002b36, #073642) !important;
1170+}
1171+div.vectorTabs ul {
1172+ background-image: linear-gradient(to bottom, #002b36, #073642) !important;
1173+}
1174+div.vectorTabs ul li {
1175+ background-color: #073642 !important;
1176+ background-image: none !important;
1177+ padding: 0px 1px 0px 1px !important;
1178+}
1179+div.vectorTabs span {
1180+ background-color: #073642 !important;
1181+ background-image: linear-gradient(to bottom, #002b36, #073642) !important;
1182+}
1183+div.vectorTabs li.selected,
1184+div.vectorTabs li.selected span {
1185+ background-color: transparent !important;
1186+ background-image: linear-gradient(to bottom, #073642, #002b36) !important;
1187+}
1188+.mw-wiki-logo {
1189+ filter: opacity(50%);
1190+}
1191+div#simpleSearch #searchInput {
1192+ background-color: #002b36 !important;
1193+ padding: 0.05em 0px 0.2em 0.2em !important;
1194+}
1195+.ambox,
1196+.infobox,
1197+#toc,
1198+#toctitle,
1199+.toclevel-1 {
1200+ background-color: #073642 !important;
1201+ border-color: #094352 !important;
1202+ color: #93a1a1 !important;
1203+}
1204+.catlinks {
1205+ background-color: #073642 !important;
1206+ border-color: #094352 !important;
1207+ color: #93a1a1 !important;
1208+}
1209+.navbox {
1210+ background-color: #073642 !important;
1211+ border-color: #094352 !important;
1212+ color: #93a1a1 !important;
1213+}
1214+.navbox .th,
1215+.navbox .navbox-title {
1216+ background-color: #094352 !important;
1217+}
1218+.navbox-abovebelow,
1219+th.navbox-group,
1220+.navbox-subgroup,
1221+.navbox-title {
1222+ background-color: #083c4a !important;
1223+}
1224+.navbox-even {
1225+ background-color: #002b36 !important;
1226+}
1227+h1,
1228+h2,
1229+h3,
1230+h4,
1231+h5,
1232+h6 {
1233+ border-color: #094352 !important;
1234+ color: #93a1a1 !important;
1235+}
1236+code {
1237+ background-color: #094352 !important;
1238+ border-color: #094352 !important;
1239+ color: #93a1a1 !important;
1240+}
1241+div.thumbinner {
1242+ background-color: #073642 !important;
1243+ border-color: #094352 !important;
1244+}
1245+img {
1246+ filter: opacity(75%);
1247+}
1248+img.thumbimage {
1249+ border-color: #094352 !important;
1250+}
1251+.mw-body .external {
1252+ opacity: 0.5 !important;
1253+}
1254+table.wikitable {
1255+ background-color: #002b36 !important;
1256+ border-color: #094352 !important;
1257+ color: #839496 !important;
1258+}
1259+table.wikitable > * > tr > th {
1260+ background-color: #073642 !important;
1261+}
1262+table {
1263+ background-color: #002b36 !important;
1264+}
1265+#hnmain > tbody:nth-child(1) > tr:nth-child(1) > td:nth-child(1) > tbody:nth-child(1) > tr:nth-child(1) > td:nth-child(1) > table,
1266+#hnmain > tbody:nth-child(1) > tr:nth-child(1) > td:nth-child(1) > table {
1267+ background-color: #cb4b16 !important;
1268+}
1269+#hnmain > tbody:nth-child(1) > tr:nth-child(1) > td:nth-child(1) > tbody:nth-child(1) > tr:nth-child(1) a,
1270+#hnmain > tbody:nth-child(1) > tr:nth-child(1) a {
1271+ color: #000 !important;
1272+}
1273+#hnmain > tbody:nth-child(1) > tr:nth-child(1) > td:nth-child(1) > tbody:nth-child(1) > tr:nth-child(2),
1274+#hnmain > tbody:nth-child(1) > tr:nth-child(2) {
1275+ background-color: #002b36 !important;
1276+}
1277+#hnmain > tbody:nth-child(1) > tr:nth-child(2) {
1278+ background-color: #002b36 !important;
1279+}
1280+.title a {
1281+ color: #839496 !important;
1282+}
1283+.title a:visited {
1284+ color: #586e75 !important;
1285+}
1286+a.storylink {
1287+ color: #93a1a1 !important;
1288+ font-weight: bold;
1289+}
1290+.sitestr {
1291+ color: #268bd2 !important;
1292+}
1293+#hnmain > tbody:nth-child(1) > tr:nth-child(3) > td:nth-child(1) {
1294+ background-color: #002b36 !important;
1295+}
1296+#hnmain .comhead {
1297+ color: #93a1a1 !important;
1298+}
1299+#hnmain .c00 {
1300+ color: #839496 !important;
1301+}
1302+#hnmain a.hnuser {
1303+ color: #b58900 !important;
1304+}
1305+#hnmain span.age a {
1306+ color: #586e75 !important;
1307+}
1308+.cdd {
1309+ color: rgba(255,54,43,0.65) !important;
1310+}
1311+.comment i {
1312+ color: #6c71c4 !important;
1313+}
1314+#hnmain > tbody:nth-child(1) > tr:nth-child(4) {
1315+ background-color: #002b36 !important;
1316+}
1317+#hnmain > tbody:nth-child(1) > tr:nth-child(4) > td:nth-child(1) > table:nth-child(2) > tbody:nth-child(1) > tr:nth-child(1) > td:nth-child(1) {
1318+ background-color: #cb4b16 !important;
1319+}
1320+div#page div#header {
1321+ background-color: #002b36 !important;
1322+}
1323+div#page div#header a {
1324+ color: #6c71c4 !important;
1325+}
1326+.post {
1327+ background-color: #002b36 !important;
1328+}
1329+.post * {
1330+ overflow: auto !important;
1331+}
1332+.post h2 {
1333+ background-color: #073642 !important;
1334+}
1335+.post h2 a {
1336+ color: #93a1a1 !important;
1337+}
1338+.post div.entry {
1339+ background-color: #002b36 !important;
1340+ color: #839496 !important;
1341+}
1342+.post div.entry blockquote {
1343+ background-color: #073642 !important;
1344+}
1345+.post div.entry kbd {
1346+ background-color: #073642 !important;
1347+ border-color: #586e75 !important;
1348+ box-shadow: none !important;
1349+ color: #93a1a1 !important;
1350+ text-shadow: 0px 1px 0px #000 !important;
1351+}
1352+.post pre.mode-line {
1353+ overflow: visible !important;
1354+}
1355+#sr-header-area {
1356+ background-color: #073642 !important;
1357+}
1358+#sr-header-area .srdrop .selected {
1359+ color: #839496 !important;
1360+}
1361+#sr-header-area #sr-more-link {
1362+ background-color: #073642 !important;
1363+}
1364+.link.promotedlink.promoted {
1365+ background-color: #073642 !important;
1366+}
1367+.link .usertext .md {
1368+ background-color: #073642 !important;
1369+}
1370+.linkinfo {
1371+ background-color: #073642 !important;
1372+}
1373+.linklisting .odd {
1374+ background-color: #073642 !important;
1375+}
1376+.thing .title {
1377+ color: #839496 !important;
1378+}
1379+div.md {
1380+ color: #839496 !important;
1381+}
1382+body.comment {
1383+ background-color: #002b36 !important;
1384+}
1385+.commentarea > .usertext {
1386+ background-color: #002b36 !important;
1387+}
1388+.commentarea .menuarea {
1389+ background-color: #002b36 !important;
1390+}
1391+.comments-page .panestack-title {
1392+ background-color: #002b36 !important;
1393+}
1394+.listing-chooser {
1395+ background-color: #002b36 !important;
1396+}
1397+.listing-chooser .intro {
1398+ background-color: #586e75 !important;
1399+ color: #93a1a1 !important;
1400+}
1401+.listing-chooser .grippy {
1402+ background-color: #002b36 !important;
1403+}
1404+.listing-chooser .grippy:after {
1405+ border-right: none !important;
1406+}
1407+.listing-chooser li {
1408+ background-color: #073642 !important;
1409+}
1410+.listing-chooser li.selected {
1411+ background-color: #586e75 !important;
1412+ box-shadow: none;
1413+}
1414+.listing-chooser li a {
1415+ color: #839496 !important;
1416+}
1417+.listing-chooser li a .description {
1418+ color: #93a1a1 !important;
1419+}
1420+.titlebox {
1421+ background-color: #073642 !important;
1422+}
1423+.titlebox form.toggle {
1424+ background-color: #073642 !important;
1425+ color: #839496 !important;
1426+}
1427+.side .usertext-body .md {
1428+ background-color: #073642 !important;
1429+}
1430+.side {
1431+ background-color: #073642 !important;
1432+}
1433+.sidebox .spacer {
1434+ background-color: #073642 !important;
1435+ color: #93a1a1 !important;
1436+}
1437+.tabmenu li a {
1438+ background-color: #073642 !important;
1439+}
1440+#header-bottom-right {
1441+ background-color: #073642 !important;
1442+}
1443+.morelink .nub {
1444+ background-color: #073642 !important;
1445+}
1446+* {
1447+ border-color: #657b83 !important;
1448+}
1449+a {
1450+ color: #268bd2 !important;
1451+}
1452+a:visited {
1453+ color: #6c71c4 !important;
1454+}
1455+body {
1456+ background-color: #002b36 !important;
1457+ color: #839496 !important;
1458+}
1459+html {
1460+ background-color: #002b36 !important;
1461+}
1462+input,
1463+textarea {
1464+ background-color: #073642 !important;
1465+ color: #839496 !important;
1466+}
1467+tr:hover,
1468+blockquote,
1469+pre {
1470+ background-color: #073642 !important;
1471+ color: #839496 !important;
1472+}
1473+#toolMenu li {
1474+ background-color: #002b36 !important;
1475+}
1476+.navPanel,
1477+.navIntraTool {
1478+ background-color: #002b36 !important;
1479+}
1480+.instruction,
1481+.sakaiCopyrightInfo {
1482+ color: #839496 !important;
1483+}
1484+.listHier th {
1485+ background-color: #094352 !important;
1486+}
1487+ul.makeMenu {
1488+ background-color: #094352 !important;
1489+ border: 1px solid #094352 !important;
1490+}
1491+tr.external {
1492+ background-color: #094352 !important;
1493+}
1494+hr {
1495+ background-color: #094352 !important;
1496+ color: #094352 !important;
1497+}
1498+.bounty-indicator,
1499+.bounty-indicator-tab {
1500+ background-color: #6c71c4 !important;
1501+}
1502+.bottom-notice {
1503+ background-color: #073642 !important;
1504+}
1505+.comments-link {
1506+ color: #859900 !important;
1507+}
1508+.page-numbers {
1509+ background-color: #859900 !important;
1510+ color: #eee8d5 !important;
1511+}
1512+.page-numbers.current {
1513+ background-color: #cb4b16 !important;
1514+ color: #002b36 !important;
1515+}
1516+.post-menu a {
1517+ color: #6c71c4 !important;
1518+}
1519+.question-status {
1520+ background-color: #073642 !important;
1521+}
1522+.bg-black-050 {
1523+ background-color: transparent !important;
1524+}
1525+.val-info {
1526+ background-color: transparent !important;
1527+ color: #839496 !important;
1528+}
1529+.s-label {
1530+ color: #839496 !important;
1531+}
1532+pre code {
1533+ background-color: #073642 !important;
1534+ color: #93a1a1 !important;
1535+}
1536+pre code .atn {
1537+ color: #268bd2 !important;
1538+}
1539+pre code .atv {
1540+ color: #2aa198 !important;
1541+}
1542+pre code .com {
1543+ color: #586e75 !important;
1544+}
1545+pre code .kwd {
1546+ color: #859900 !important;
1547+}
1548+pre code .lit {
1549+ color: #d33682 !important;
1550+}
1551+pre code .pln,
1552+pre code .pun {
1553+ color: #839496 !important;
1554+}
1555+pre code .str {
1556+ color: #2aa198 !important;
1557+}
1558+pre code .tag {
1559+ color: #859900 !important;
1560+}
1561+pre code .typ {
1562+ color: #b58900 !important;
1563+}
1564+#footer {
1565+ background-color: #083c4a !important;
1566+ color: #839496 !important;
1567+}
1568+#footer #footer-sites th {
1569+ color: #93a1a1 !important;
1570+}
1571+.top-footer-links a {
1572+ color: #859900 !important;
1573+}
1574+.so-header {
1575+ background-color: #094352 !important;
1576+ color: #93a1a1 !important;
1577+}
1578+.so-header a {
1579+ color: #859900 !important;
1580+}
1581+.so-header .navigation .-list .-item :hover {
1582+ background-color: #859900 !important;
1583+ color: #fdf6e3 !important;
1584+}
1585+.topbar-dialog {
1586+ background-color: #002b36 !important;
1587+ box-shadow: #586e75 5px 5px 5px;
1588+}
1589+.topbar-dialog .current-site-container {
1590+ background-color: #002b36 !important;
1591+}
1592+.topbar-dialog .header {
1593+ background-color: #073642 !important;
1594+}
1595+.topbar-dialog .header a {
1596+ color: #93a1a1 !important;
1597+}
1598+.topbar-dialog .site-link {
1599+ color: #93a1a1 !important;
1600+}
1601+#header {
1602+ background-color: #094352 !important;
1603+}
1604+#question-header .question-hyperlink {
1605+ color: #93a1a1 !important;
1606+}
1607+#hlogo a {
1608+ filter: opacity(75%);
1609+}
1610+.new-post-activity {
1611+ background-color: #073642 !important;
1612+}
1613+.tagged-interesting {
1614+ background-color: #094352 !important;
1615+}
1616+div.answered-accepted {
1617+ background-color: #859900 !important;
1618+ color: #eee8d5 !important;
1619+}
1620+div.answered-accepted .mini-counts {
1621+ background-color: #859900 !important;
1622+ color: #eee8d5 !important;
1623+}
1624+.answered .mini-counts span {
1625+ color: #859900 !important;
1626+}
1627+.unanswered .mini-counts span {
1628+ color: #839496 !important;
1629+}
1630+#hot-network-questions a {
1631+ color: #2aa198 !important;
1632+}
1633+#hot-network-questions h4 a.js-gps-track {
1634+ color: #93a1a1 !important;
1635+}
1636+#sidebar .community-bulletin .bulletin-item-content a {
1637+ color: #93a1a1 !important;
1638+}
1639+#sidebar .module.community-bulletin {
1640+ background-color: #073642 !important;
1641+ color: #93a1a1 !important;
1642+}
1643+#sidebar .question-hyperlink {
1644+ color: #2aa198 !important;
1645+}
1646+.newuser {
1647+ background-color: #073642 !important;
1648+ color: #93a1a1 !important;
1649+}
1650+.label-key {
1651+ color: #839496 !important;
1652+}
1653+.label-key b {
1654+ color: #93a1a1 !important;
1655+}
1656+#h-chat-link {
1657+ color: #93a1a1 !important;
1658+}
1659+.ad502-room {
1660+ background-color: #073642 !important;
1661+ box-shadow: #586e75 0px 1px 3px;
1662+ color: #93a1a1 !important;
1663+}
1664+#tabs a {
1665+ background-color: transparent !important;
1666+ background-image: linear-gradient(to bottom, #002b36, #073642);
1667+ color: #93a1a1 !important;
1668+}
1669+#tabs a.youarehere {
1670+ background-image: linear-gradient(to bottom, #cb4b16, #002b36);
1671+ color: #fdf6e3 !important;
1672+}
1673+.post-tag {
1674+ background-color: #586e75 !important;
1675+ color: #002b36 !important;
1676+}
1677+.post-tag::before {
1678+ background-color: #002b36 !important;
1679+}
1680+a.comment-user.owner {
1681+ background-color: #859900 !important;
1682+ color: #eee8d5 !important;
1683+}
1684+.post-signature {
1685+ background-color: #073642 !important;
1686+ color: #93a1a1 !important;
1687+}
1688+.post-signature a {
1689+ color: #2aa198 !important;
1690+}
1691+.post-signature.owner .user-info .user-details a {
1692+ color: #859900 !important;
1693+}
1694+.post-signature span.relativetime {
1695+ color: #93a1a1 !important;
1696+}
1697+.vote {
1698+ background-color: #073642 !important;
1699+}
1700+.vote .star-off {
1701+ filter: opacity(75%);
1702+}
1703+.vote .star-on {
1704+ filter: opacity(50%) !important;
1705+}
1706+.vote .vote-down-off,
1707+.vote .vote-up-off {
1708+ filter: opacity(50%);
1709+}
1710+.answer-votes {
1711+ background-color: #586e75 !important;
1712+ color: #002b36 !important;
1713+}
+0,
-0
+259,
-0
1@@ -0,0 +1,259 @@
2+# Read `man 5 sway` for a complete reference. exec wl-paste -t text --watch clipman store exec wl-paste -p -t text --watch clipman store -P --histpath="~/.local/share/clipman-primary.json" ## Variables
3+#
4+# Logo key. Use Mod1 for Alt.
5+set $mod Mod4
6+# Home row direction keys, like vim
7+set $left h
8+set $down j
9+set $up k
10+set $right l
11+# Your preferred terminal emulator
12+set $term foot
13+
14+set $background #282a36
15+set $color5 #bd93f9
16+set $menuargs --binding vim --no-exec --no-overlap --ignorecase --prompt '>>' --fn "FiraCode 15" --tf "$color5" --hf "$color5" --tb "$background" --fb "$background" --nb "$background" --ab "$background" --hb "$background"
17+set $menu bemenu-run $menuargs | xargs swaymsg exec --
18+
19+client.focused #bd93f9 #bd93f9 #414558 #50fa7b #bd93f9
20+client.unfocused #282a36 #282a36 #81859b #50fa7b #44475a
21+
22+default_border pixel 2
23+
24+### Output configuration
25+output * bg /home/erock/config/wallpapers/linux_dracula.png fill
26+
27+set $home DP-1
28+#output $home mode 2560x1440@144Hz
29+#output $home scale 1
30+
31+set $home3 DP-3
32+output $home3 mode 2560x1440@144Hz
33+output $home3 scale 1
34+
35+set $cahoots DP-4
36+# Dell Inc. DELL U2713HM JMPXK44LA7AL
37+output $cahoots mode 2560x1440@59.951Hz
38+output $cahoots scale 1.2
39+
40+#set $cahoots DP-3
41+#output $cahoots mode 3840x2160@120.000Hz
42+#output $cahoots scale 1.5
43+
44+set $laptop eDP-1
45+output $laptop mode 2256x1504@59.999Hz
46+output $laptop scale 1.5
47+
48+bindswitch lid:on output $laptop disable
49+bindswitch lid:off output $laptop enable
50+
51+# from /usr/include/xkbcommon/xkbcommon-keysyms.h
52+# RUN: `usermod -a -G video erock`
53+bindsym XF86MonBrightnessUp exec light -A 1
54+bindsym XF86MonBrightnessDown exec light -U 1
55+# RUN: pacman -S pamixer
56+bindsym XF86AudioMute exec pamixer --toggle-mute
57+bindsym XF86AudioLowerVolume exec pamixer -d 5
58+bindsym XF86AudioRaiseVolume exec pamixer -i 5
59+bindsym $mod+Shift+s exec grimshot --notify save area
60+
61+### Input configuration
62+#
63+# Example configuration:
64+#
65+# input "2:14:SynPS/2_Synaptics_TouchPad" {
66+# dwt enabled
67+# tap enabled
68+# natural_scroll enabled
69+# middle_emulation enabled
70+# }
71+#
72+# You can get the names of your inputs by running: swaymsg -t get_inputs
73+# Read `man 5 sway-input` for more information about this section.
74+
75+input "type:touchpad" {
76+ tap enabled
77+ natural_scroll disabled
78+ dwt disabled
79+ accel_profile "flat" # disable mouse acceleration (enabled by default; to set it manually, use "adaptive" instead of "flat")
80+ pointer_accel 0.0 # set mouse sensitivity (between -1 and 1)
81+}
82+
83+input "1149:8257:Kensington_Slimblade_Trackball" {
84+ # 272 (left) (phys: front-left)
85+ # 273 (right) (phys: front-right)
86+ # 274 (middle) (phys: back-left)
87+ # 275 (side) (phys: back-right)
88+}
89+
90+input "type:keyboard" {
91+ repeat_delay 300
92+ repeat_rate 30
93+}
94+
95+input "1:1:AT_Translated_Set_2_keyboard" {
96+ xkb_options "caps:escape,altwin:swap_alt_win"
97+}
98+
99+input "18003:1:foostan_Corne" {
100+}
101+
102+input "4152:5920:SteelSeries_SteelSeries_Rival_310_eSports_Mouse_Keyboard" {
103+ scroll_factor 1
104+}
105+
106+### Key bindings
107+#
108+# Basics:
109+#
110+ # Start a terminal
111+ bindsym $mod+Return exec $term
112+
113+ # Kill focused window
114+ bindsym $mod+Shift+q kill
115+
116+ # Start your launcher
117+ bindsym $mod+d exec $menu
118+
119+ # Drag floating windows by holding down $mod and left mouse button.
120+ # Resize them with right mouse button + $mod.
121+ # Despite the name, also works for non-floating windows.
122+ # Change normal to inverse to use left mouse button for resizing and right
123+ # mouse button for dragging.
124+ floating_modifier $mod normal
125+
126+ # Reload the configuration file
127+ bindsym $mod+Shift+c reload
128+
129+ # Exit sway (logs you out of your Wayland session)
130+ bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -b 'Yes, exit sway' 'swaymsg exit'
131+#
132+# Moving around:
133+#
134+ # Move your focus around
135+ bindsym $mod+$left focus left
136+ bindsym $mod+$down focus down
137+ bindsym $mod+$up focus up
138+ bindsym $mod+$right focus right
139+
140+ # Move the focused window with the same, but add Shift
141+ bindsym $mod+Shift+$left move left
142+ bindsym $mod+Shift+$down move down
143+ bindsym $mod+Shift+$up move up
144+ bindsym $mod+Shift+$right move right
145+#
146+# Workspaces:
147+#
148+ # Switch to workspace
149+ bindsym $mod+1 workspace number 1
150+ bindsym $mod+2 workspace number 2
151+ bindsym $mod+3 workspace number 3
152+ bindsym $mod+4 workspace number 4
153+ bindsym $mod+5 workspace number 5
154+ bindsym $mod+6 workspace number 6
155+ bindsym $mod+7 workspace number 7
156+ bindsym $mod+8 workspace number 8
157+ bindsym $mod+9 workspace number 9
158+ bindsym $mod+0 workspace number 10
159+ # Move focused container to workspace
160+ bindsym $mod+Shift+1 move container to workspace number 1
161+ bindsym $mod+Shift+2 move container to workspace number 2
162+ bindsym $mod+Shift+3 move container to workspace number 3
163+ bindsym $mod+Shift+4 move container to workspace number 4
164+ bindsym $mod+Shift+5 move container to workspace number 5
165+ bindsym $mod+Shift+6 move container to workspace number 6
166+ bindsym $mod+Shift+7 move container to workspace number 7
167+ bindsym $mod+Shift+8 move container to workspace number 8
168+ bindsym $mod+Shift+9 move container to workspace number 9
169+ bindsym $mod+Shift+0 move container to workspace number 10
170+ # Note: workspaces can have any name you want, not just numbers.
171+ # We just use 1-10 as the default.
172+
173+#
174+# Clipboard:
175+#
176+ bindsym $mod+c exec wl-copy
177+ bindsym $mod+v exec wl-paste
178+
179+#
180+# Layout stuff:
181+#
182+ # You can "split" the current object of your focus with
183+ # $mod+b or $mod+v, for horizontal and vertical splits
184+ # respectively.
185+ bindsym $mod+z splith
186+ bindsym $mod+x splitv
187+
188+ # Switch the current container between different layout styles
189+ bindsym $mod+s layout stacking
190+ bindsym $mod+w layout tabbed
191+ bindsym $mod+e layout toggle split
192+
193+ # Make the current focus fullscreen
194+ bindsym $mod+f fullscreen
195+
196+ # Toggle the current focus between tiling and floating mode
197+ bindsym $mod+Shift+space floating toggle
198+
199+ # Swap focus between the tiling area and the floating area
200+ bindsym $mod+space focus mode_toggle
201+
202+ # Move focus to the parent container
203+ bindsym $mod+a focus parent
204+#
205+# Scratchpad:
206+#
207+ # Sway has a "scratchpad", which is a bag of holding for windows.
208+ # You can send windows there and get them back later.
209+
210+ # Move the currently focused window to the scratchpad
211+ bindsym $mod+Shift+minus move scratchpad
212+
213+ # Show the next scratchpad window or hide the focused scratchpad window.
214+ # If there are multiple scratchpad windows, this command cycles through them.
215+ bindsym $mod+minus scratchpad show
216+#
217+# Resizing containers:
218+#
219+mode "resize" {
220+ # left will shrink the containers width
221+ # right will grow the containers width
222+ # up will shrink the containers height
223+ # down will grow the containers height
224+ bindsym $left resize shrink width 10px
225+ bindsym $down resize grow height 10px
226+ bindsym $up resize shrink height 10px
227+ bindsym $right resize grow width 10px
228+
229+ # Ditto, with arrow keys
230+ bindsym Left resize shrink width 10px
231+ bindsym Down resize grow height 10px
232+ bindsym Up resize shrink height 10px
233+ bindsym Right resize grow width 10px
234+
235+ # Return to default mode
236+ bindsym Return mode "default"
237+ bindsym Escape mode "default"
238+}
239+bindsym $mod+r mode "resize"
240+
241+#
242+# Status Bar:
243+#
244+# Read `man 5 sway-bar` for more information about this section.
245+bar {
246+ swaybar_command waybar
247+}
248+
249+include /etc/sway/config.d/*
250+
251+# exec swayidle
252+# flux alternative with hardcoded lat/long
253+# exec_always wlsunset -l 42.265385 -L -83.716557
254+
255+exec_always gammastep -l 42.265385:-83.716557 -t 6500:3500
256+
257+# notifications
258+exec mako
259+# swipe gestures
260+exec libinput-gestures-setup autostart start
+67,
-0
1@@ -0,0 +1,67 @@
2+[general]
3+status_path = "/home/erock/.vdirsyncer/status/"
4+
5+# CARDDAV
6+[pair contacts]
7+a = "contacts_local"
8+b = "contacts_remote"
9+collections = ["Default"]
10+conflict_resolution = "b wins"
11+metadata = ["displayname"]
12+
13+[storage contacts_local]
14+type = "filesystem"
15+path = "/home/erock/.contacts/"
16+fileext = ".vcf"
17+
18+[storage contacts_remote]
19+type = "carddav"
20+url = "https://carddav.fastmail.com/"
21+username = "me@erock.io"
22+password = "5cgeapsmpxwre55r"
23+
24+# CALDAV
25+[pair fastmail]
26+a = "fastmail_local"
27+b = "fastmail_remote"
28+collections = ["3b9b2f5e-cbc9-4f8a-8e54-f210dcb8b1a6"]
29+conflict_resolution = "b wins"
30+
31+[storage fastmail_local]
32+type = "filesystem"
33+path = "/home/erock/.calendars/"
34+fileext = ".ics"
35+
36+[storage fastmail_remote]
37+type = "caldav"
38+url = "https://caldav.fastmail.com/"
39+username = "me@erock.io"
40+password = "5cgeapsmpxwre55r"
41+
42+[pair shijing]
43+a = "shijing_local"
44+b = "shijing_remote"
45+collections = null
46+
47+[storage shijing_local]
48+type = "filesystem"
49+path = "/home/erock/.calendars/shijing"
50+fileext = ".ics"
51+
52+[storage shijing_remote]
53+type = "http"
54+url = "https://calendar.google.com/calendar/ical/shijingjia%40gmail.com/private-57f965d846f7fe37d857cd2f9af3d23b/basic.ics"
55+
56+[pair work]
57+a = "work_local"
58+b = "work_remote"
59+collections = null
60+
61+[storage work_local]
62+type = "filesystem"
63+path = "/home/erock/.calendars/work"
64+fileext = ".ics"
65+
66+[storage work_remote]
67+type = "http"
68+url = "https://calendar.google.com/calendar/ical/eric.bower%40aptible.com/private-74e695f18c814f2a16af258664c34ef0/basic.ics"
+51,
-0
1@@ -0,0 +1,51 @@
2+{
3+ "layer": "top",
4+ "position": "bottom",
5+ "modules-left": ["sway/workspaces"],
6+ "modules-center": ["sway/window"],
7+ "modules-right": ["battery", "backlight", "pulseaudio", "network", "clock"],
8+
9+ "pulseaudio": {
10+ "tooltip": false,
11+ "scroll-step": 5,
12+ "format": "{icon} {volume}%",
13+ "format-muted": "{icon} {volume}%",
14+ "on-click":"pavucontrol",
15+ "format-icons": {
16+ "default": [" ", " ", " "]
17+ }
18+ },
19+ "sway/workspaces": {
20+ "disable-scroll": true,
21+ "all-outputs": true,
22+ "format": "{name}"
23+ },
24+ "network": {
25+ "tooltip": false,
26+ "format-wifi": " {essid}",
27+ "format-ethernet": "",
28+ "on-click": "iwgtk"
29+ },
30+ "backlight": {
31+ "tooltip": false,
32+ "format": " {}%",
33+ "interval":1,
34+ "on-scroll-up": "light -A 5",
35+ "on-scroll-down": "light -U 5"
36+ },
37+ "battery": {
38+ "states": {
39+ "good": 95,
40+ "warning": 30,
41+ "critical": 20
42+ },
43+ "format": "{icon} {capacity}%",
44+ "format-charging": " {capacity}%",
45+ "format-plugged": " {capacity}%",
46+ "format-alt": "{time} {icon}",
47+ "format-icons": [" ", " ", " ", " ", " "]
48+ },
49+ "clock": {
50+ "format": "{:%I:%M %m/%d}"
51+ }
52+}
+93,
-0
1@@ -0,0 +1,93 @@
2+* {
3+ border: none;
4+ padding: 0;
5+ margin: 0;
6+ transition: none;
7+}
8+
9+window#waybar {
10+ background: #282a36;
11+ color: #f2f2f2;
12+}
13+
14+window#waybar.hidden {
15+ opacity: 0.2;
16+}
17+
18+#window {
19+}
20+
21+#workspaces {
22+ background: #161320;
23+}
24+
25+#workspaces button {
26+ padding: 0 5px;
27+ color: #B5E8E0;
28+ background: transparent;
29+ border: 2px solid black;
30+}
31+
32+#workspaces button.focused {
33+ color: #ABE9B3;
34+ border: 2px solid #ABE9B3;
35+}
36+
37+#workspaces button:hover {
38+ box-shadow: inherit;
39+ text-shadow: inherit;
40+ border: 2px solid #E8A2AF;
41+ color: #E8A2AF;
42+}
43+
44+#pulseaudio {
45+ padding: 0 10px;
46+ color: #1A1826;
47+ background: #FAE3B0;
48+}
49+
50+#backlight {
51+ padding: 0 10px;
52+ color: #161320;
53+ background: #F8BD96;
54+}
55+
56+#clock {
57+ padding: 0 10px;
58+ color: #161320;
59+ background: #ABE9B3;
60+}
61+
62+#network {
63+ padding: 0 10px;
64+ color: #161320;
65+ background: #DDB6F2;
66+}
67+
68+#battery {
69+ padding: 0 10px;
70+ color: #161320;
71+ background: #B5E8E0;
72+}
73+
74+#battery.charging, #battery.plugged {
75+ color: #161320;
76+ background-color: #B5E8E0;
77+}
78+
79+#battery.critical:not(.charging) {
80+ background-color: #B5E8E0;
81+ color: #161320;
82+ animation-name: blink;
83+ animation-duration: 0.5s;
84+ animation-timing-function: linear;
85+ animation-iteration-count: infinite;
86+ animation-direction: alternate;
87+}
88+
89+@keyframes blink {
90+ to {
91+ background-color: #BF616A;
92+ color: #B5E8E0;
93+ }
94+}
+4,
-0
1@@ -0,0 +1,4 @@
2+{
3+ "enable_autofix": false,
4+ "enable_build_on_save": true
5+}
+81,
-0
1@@ -0,0 +1,81 @@
2+#!/usr/bin/env bash
3+
4+TRACKED_FILES=(
5+ gitconfig
6+ tmux.conf
7+ mbsyncrc
8+ gpg-agent.conf
9+ bin/
10+ config/
11+ ssh_config
12+ mblaze
13+ msmtprc
14+ config/qutebrowser/
15+ npmrc
16+)
17+
18+TRACKED_LOCATIONS=(
19+ ~/.gitconfig
20+ ~/.tmux.conf
21+ ~/.mbsyncrc
22+ ~/.gnupg/gpg-agent.conf
23+ ~/bin/
24+ ~/.config/
25+ ~/.ssh/config
26+ ~/.mblaze/profile
27+ ~/.msmtprc
28+ ~/.qutebrowser/
29+ ~/.npmrc
30+)
31+
32+find_files() {
33+ if [[ ${TRACKED_FILES[$1]} == */ ]]; then
34+ find "$PWD/${TRACKED_FILES[$1]}" -type d -exec find {} -maxdepth 1 -type f \; | sed "s|$PWD/${TRACKED_FILES[$1]}||" | sed "s|^/||"
35+ fi
36+}
37+
38+link_file() {
39+ if [[ ! -L $2 && ! -f $2 && ! -d $2 ]]; then
40+ echo "Creating a link from $1 to $2"
41+ mkdir -p $2
42+ rmdir $2
43+ ln -s $1 $2
44+ fi
45+}
46+export -f link_file
47+
48+unlink_file() {
49+ if [[ -L $1 ]]; then
50+ echo "Unlinking $1"
51+ unlink "$1"
52+ fi
53+}
54+export -f unlink_file
55+
56+move_file() {
57+ if [[ ! -L $1 ]] && [[ -f $1 || -d $1 ]]; then
58+ echo "Moving $1 to backup/$1"
59+ mkdir -p "backup/$1"
60+ rmdir "backup/$1"
61+ mv $1 "backup/$1"
62+ fi
63+}
64+export -f move_file
65+
66+for ((i = 0; i < ${#TRACKED_FILES[@]}; ++i)); do
67+ if [ "$1" == "cleanup" ]; then
68+ unlink_file "${TRACKED_LOCATIONS[$i]}"
69+ find_files "$i" | xargs -I {} bash -c "unlink_file ${TRACKED_LOCATIONS[$i]}{}"
70+ continue
71+ fi
72+
73+ if [ "$1" == "override" ]; then
74+ move_file ${TRACKED_LOCATIONS[$i]}
75+ find_files "$i" | xargs -I {} bash -c "move_file ${TRACKED_LOCATIONS[$i]}{}"
76+ fi
77+
78+ if [ "$1" != "cleanup" ]; then
79+ link_file "$PWD/${TRACKED_FILES[$i]}" "${TRACKED_LOCATIONS[$i]}"
80+ find_files "$i" | xargs -I {} bash -c "link_file $PWD/${TRACKED_FILES[$i]}{} ${TRACKED_LOCATIONS[$i]}{}"
81+ fi
82+done
+20,
-0
1@@ -0,0 +1,20 @@
2+[gpg]
3+ program = gpg2
4+[user]
5+ signingkey = 7A51A47D76D3FD02
6+ name = Eric Bower
7+ email = me@erock.io
8+[pull]
9+ rebase = true
10+[sendemail]
11+ smtpserver = smtp.fastmail.com
12+ smtpuser = me@erock.io
13+ smtpencryption = tls
14+ smtpserverport = 587
15+ annotate = yes
16+[init]
17+ defaultBranch = main
18+[diff]
19+ renames = true
20+[format]
21+ useAutoBase = whenAble
+3,
-0
1@@ -0,0 +1,3 @@
2+default-cache-ttl 31536000
3+max-cache-ttl 31536000
4+enable-ssh-support
A
mblaze
+3,
-0
1@@ -0,0 +1,3 @@
2+Local-Mailbox: me@erock.io
3+Reply-From: me@erock.io
4+Outbox: ~/mail/Sent
A
mbsyncrc
+27,
-0
1@@ -0,0 +1,27 @@
2+IMAPAccount fastmail
3+# Address to connect to
4+Host imap.fastmail.com
5+User me@erock.io
6+PassCmd "pass logins/local-mail"
7+SSLType IMAPS
8+IMAPStore fastmail-remote
9+Account fastmail
10+MaildirStore fastmail-local
11+SubFolders Verbatim
12+# The trailing "/" is important
13+Path ~/mail/
14+Inbox ~/mail/INBOX
15+
16+Channel fastmail
17+Master :fastmail-remote:
18+Slave :fastmail-local:
19+# Exclude everything under the internal [Gmail] folder, except the interesting folders
20+# Patterns * ![Gmail]* "[Gmail]/Sent Mail" "[Gmail]/Starred" "[Gmail]/All Mail"
21+# Or include everything
22+Patterns *
23+# Automatically create missing mailboxes, both locally and on the server
24+Create Both
25+# Save the synchronization state files in the relevant directory
26+SyncState *
27+# Automatically delete messages on either side if they are found deleted on the other.
28+Expunge Both
A
msmtprc
+15,
-0
1@@ -0,0 +1,15 @@
2+# Set default values for all following accounts.
3+defaults
4+auth on
5+tls on
6+tls_trust_file /etc/ssl/certs/ca-certificates.crt
7+logfile ~/.msmtp.log
8+
9+account fastmail
10+host smtp.fastmail.com
11+port 587
12+from me@erock.io
13+user me@erock.io
14+passwordeval "pass logins/local-mail"
15+
16+account default : fastmail
A
npmrc
+1,
-0
1@@ -0,0 +1 @@
2+prefix = ${HOME}/.npm-packages
+148,
-0
1@@ -0,0 +1,148 @@
2+Host *
3+ StrictHostKeyChecking no
4+ PubkeyAcceptedKeyTypes +ssh-rsa
5+ AddKeysToAgent yes
6+
7+Host localhost
8+ UserKnownHostsFile /dev/null
9+
10+Host kings
11+ HostName 192.168.1.132
12+ User erock
13+ IdentityFile ~/.ssh/id_ed25519
14+
15+Host kings.zt
16+ HostName kings.zt.erock.io
17+ User erock
18+ IdentityFile ~/.ssh/id_ed25519
19+
20+Host dev
21+ HostName 192.168.1.242
22+ User erock
23+ IdentityFile ~/.ssh/id_ed25519
24+
25+Host dev.zt
26+ HostName 10.147.17.154
27+ User erock
28+ IdentityFile ~/.ssh/id_ed25519
29+
30+Host kings.zt
31+ HostName 10.147.17.159
32+ User erock
33+ IdentityFile ~/.ssh/id_ed25519
34+
35+Host gpu
36+ HostName 192.168.1.189
37+ User erock
38+ IdentityFile ~/.ssh/id_ed25519
39+
40+Host cpu
41+ HostName 192.168.1.193
42+ User erock
43+ IdentityFile ~/.ssh/id_ed25519
44+
45+Host pr
46+ HostName pr.pico.sh
47+ User erock
48+ IdentityFile ~/.ssh/id_ed25519
49+
50+Host git
51+ HostName 192.168.1.193
52+ User erock
53+ IdentityFile ~/.ssh/id_ed25519
54+
55+Host ui
56+ IdentitiesOnly yes
57+ IdentityFile ~/.ssh/id_ed25519
58+ User pico-ui
59+ Hostname pgs.sh
60+ LocalForward 0.0.0.0:1337 localhost:80
61+ SessionType none
62+
63+Host imgs
64+ IdentitiesOnly yes
65+ IdentityFile ~/.ssh/id_ed25519
66+ Hostname imgs.sh
67+ LocalForward 0.0.0.0:1338 localhost:80
68+ SessionType none
69+
70+Host p.ui
71+ IdentitiesOnly yes
72+ IdentityFile ~/.ssh/id_ed25519_pico
73+ User pico-ui
74+ Hostname pgs.sh
75+ LocalForward 0.0.0.0:1339 localhost:80
76+ SessionType none
77+
78+Host hey.*
79+ HostName %h.sh
80+ IdentitiesOnly yes
81+ IdentityFile ~/.ssh/id_ed25519_hey_bot
82+
83+Host pico.sh
84+ HostName pico.sh
85+ IdentitiesOnly yes
86+ IdentityFile ~/.ssh/id_ed25519
87+
88+Host ppico
89+ HostName pico.sh
90+ IdentitiesOnly yes
91+ IdentityFile ~/.ssh/id_ed25519_pico
92+
93+Host p.*
94+ HostName %h.sh
95+ IdentitiesOnly yes
96+ IdentityFile ~/.ssh/id_ed25519_pico
97+
98+Host erock.*
99+ HostName %h.sh
100+ IdentitiesOnly yes
101+ IdentityFile ~/.ssh/id_ed25519
102+
103+Host erock
104+ HostName 138.197.2.218
105+ User root
106+ IdentityFile ~/.ssh/id_ed25519
107+
108+Host aur.archlinux.org
109+ User aur
110+ IdentityFile ~/.ssh/id_ed25519
111+
112+Host pico.0
113+ HostName oracle0.ash.pico.sh
114+ Port 650
115+ User root
116+ IdentityFile ~/.ssh/id_ed25519
117+
118+Host pico.1
119+ HostName oracle1.ash.pico.sh
120+ Port 650
121+ User root
122+ IdentityFile ~/.ssh/id_ed25519
123+
124+Host pico.2
125+ HostName oracle2.ash.pico.sh
126+ Port 650
127+ User root
128+ IdentityFile ~/.ssh/id_ed25519
129+
130+Host pico.3
131+ HostName oracle3.ash.pico.sh
132+ Port 650
133+ User root
134+ IdentityFile ~/.ssh/id_ed25519
135+
136+Host pico.db
137+ HostName oracle0.ash.pico.sh
138+ Port 650
139+ User root
140+ IdentityFile ~/.ssh/id_ed25519
141+
142+Host tuns.sh
143+ HostName tuns.sh
144+ IdentityFile ~/.ssh/id_ed25519
145+
146+Host rsync
147+ HostName de2098.rsync.net
148+ User de2098
149+ IdentityFile ~/.ssh/id_ed25519
+37,
-0
1@@ -0,0 +1,37 @@
2+unbind C-b
3+set-option -g prefix C-Space
4+bind-key C-Space send-prefix
5+
6+set -ag terminal-overrides ",*256col*:colors=256:Tc"
7+set -g set-clipboard on
8+set-option -ga update-environment ' SWAYSOCK'
9+set-option -ga update-environment ' DISPLAY'
10+# https://stackoverflow.com/a/18953148
11+set-option -g renumber-windows on
12+# sane scrolling
13+bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'copy-mode -e; send-keys -M'"
14+# Set new panes to open in current directory
15+bind c new-window -c "#{pane_current_path}"
16+bind '"' split-window -c "#{pane_current_path}"
17+bind % split-window -h -c "#{pane_current_path}"
18+# fix highlight style
19+set-window-option -g mode-style "fg=default,bg=default,reverse"
20+
21+# List of plugins
22+set -g @plugin 'tmux-plugins/tpm'
23+set -g @plugin 'tmux-plugins/tmux-sensible'
24+set -g @plugin 'christoomey/vim-tmux-navigator'
25+set -g @plugin 'tmux-plugins/tmux-yank'
26+# set -g @plugin 'tmux-plugins/tmux-sensible'
27+set -g @plugin 'dracula/tmux'
28+set -g @dracula-plugins "time"
29+set -g @dracula-show-timezone false
30+set -g @dracula-day-month false
31+set -g @dracula-military-time false
32+set -g @dracula-show-powerline false
33+set -g @dracula-show-left-icon session
34+set -g @dracula-show-flags true
35+set -g @dracula-git-disable-status true
36+
37+# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
38+run '~/.tmux/plugins/tpm/tpm'
A
xinitrc
+39,
-0
1@@ -0,0 +1,39 @@
2+#!/bin/sh
3+
4+userresources=$HOME/.Xresources
5+usermodmap=$HOME/.Xmodmap
6+sysresources=/etc/X11/xinit/.Xresources
7+sysmodmap=/etc/X11/xinit/.Xmodmap
8+
9+# merge in defaults and keymaps
10+
11+if [ -f $sysresources ]; then
12+ xrdb -merge $sysresources
13+
14+fi
15+
16+if [ -f $sysmodmap ]; then
17+ xmodmap $sysmodmap
18+fi
19+
20+if [ -f "$userresources" ]; then
21+ xrdb -merge "$userresources"
22+fi
23+
24+if [ -f "$usermodmap" ]; then
25+ xmodmap "$usermodmap"
26+fi
27+
28+# start some nice programs
29+
30+if [ -d /etc/X11/xinit/xinitrc.d ] ; then
31+ for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do
32+ [ -x "$f" ] && . "$f"
33+ done
34+ unset f
35+fi
36+
37+xset r rate 300 30
38+xrandr --output DP-0 --mode 2560x1440 --rate 144.00
39+exec i3
40+xautolock -time 5 -locker i3lock &
A
zshrc
+88,
-0
1@@ -0,0 +1,88 @@
2+# Path to your oh-my-zsh installation.
3+export ZSH="$HOME/.oh-my-zsh"
4+export EDITOR="nvim"
5+export VISUAL="nvim"
6+export GPG_TTY=$(tty)
7+export ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=#bd93f9,underline"
8+export XDG_CONFIG_HOME="$HOME/.config"
9+
10+# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
11+ZSH_THEME="robbyrussell"
12+
13+# Required installations
14+# https://github.com/zsh-users/zsh-syntax-highlighting/blob/master/INSTALL.md#oh-my-zsh
15+# https://github.com/zsh-users/zsh-completions#oh-my-zsh
16+# https://github.com/zsh-users/zsh-autosuggestions/blob/master/INSTALL.md#oh-my-zsh
17+plugins=(zsh-completions zsh-autosuggestions zsh-syntax-highlighting docker-compose history bundler)
18+
19+source $ZSH/oh-my-zsh.sh
20+
21+# zsh-autosuggetion ctrl+space
22+bindkey '^ ' autosuggest-accept
23+# zsh-completions
24+autoload -U compinit && compinit
25+# load zsh completions
26+fpath=(~/.zsh.d/ $fpath)
27+# manual completions
28+zstyle ':completion:*:manuals' separate-sections true
29+zstyle ':completion:*:manuals.*' insert-sections true
30+zstyle ':completion:*:man:*' menu yes select
31+
32+alias vimdiff='nvim -d'
33+alias gu="git remote update --prune"
34+alias ga="git add -A"
35+alias gm="git commit -S"
36+alias gs="git commit -S --amend --no-edit"
37+alias gl="git --no-pager log --oneline -n 30"
38+alias gt="git log --graph --oneline --all"
39+alias pushall="git remote | xargs -I R git push R"
40+alias tmux="tmux -u"
41+alias scratch="nvim ~/scratch.md"
42+alias bcp='rsync -avzu --progress'
43+alias weather='curl wttr.in/Ann+Arbor+Michigan'
44+alias dhe="distrobox-host-exec"
45+alias img="img2sixel"
46+
47+export PATH="$PATH:/usr/local/bin:$HOME/.local/bin:$HOME/bin"
48+
49+case "$OSTYPE" in
50+ darwin*)
51+ setopt NO_NOMATCH
52+ alias aptible-login="aptible login --lifetime 7days --email eric.bower@aptible.com"
53+ alias pss='aws-vault exec prod ~/work/pancake/bin/pancake stack:ssh eric'
54+ alias aptible-eric="DOMAIN=aptible-sandbox.com SUBDOMAIN_SUFFIX=eric APTIBLE_AUTH_ROOT_URL=https://auth-eric.aptible-sandbox.com APTIBLE_API_ROOT_URL=https://api-eric.aptible-sandbox.com APTIBLE_REMOTE=eric"
55+ export PATH="/opt/homebrew/opt/libpq/bin:/opt/homebrew/bin:/Users/eric/.deno/bin:/usr/local/sbin:$PATH"
56+ export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)
57+ alias sbx-main='DOMAIN=aptible-sandbox.com SUBDOMAIN_SUFFIX=sbx-main APTIBLE_AUTH_ROOT_URL=https://auth-sbx-main.aptible-sandbox.com APTIBLE_API_ROOT_URL=https://api-sbx-main.aptible-sandbox.com APTIBLE_REMOTE=sbx-main'
58+ gpgconf --launch gpg-agent
59+
60+ source /opt/homebrew/opt/chruby/share/chruby/chruby.sh
61+
62+ export NVM_DIR="$HOME/.config/nvm"
63+ [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
64+ [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
65+ ;;
66+ linux*)
67+ # alias paclean="sudo pacman -Rs $(sudo pacman -Qqtd)"
68+ # ncdu to see folder sizes
69+ # imv for pictures
70+ # thunar for gui file manager
71+ # alias webcam="mpv --demuxer-lavf-format=video4linux2 --demuxer-lavf-o-set=input_format=mjpeg av://v4l2:/dev/video0"
72+ alias inbox="mlist $MDIR/INBOX"
73+
74+ export VDIRSYNCER_CONFIG="$HOME/.config/vdirsyncer/config"
75+ export MDIR="$HOME/mail"
76+ export MOZ_ENABLE_WAYLAND=1
77+ # https://github.com/qutebrowser/qutebrowser/discussions/7938#discussioncomment-8672918
78+ # export QT_SCALE_FACTOR_ROUNDING_POLICY=RoundPreferFloor
79+
80+ eval $(keychain --eval --quiet --agents ssh,gpg ~/.ssh/id_ed25519 76D3FD02)
81+ export PATH="/home/erock/.deno/bin:/home/erock/.yarn/bin:/home/erock/go/bin:/home/erock/.npm-packages/bin:/opt/nvim-linux64/bin:/home/erock/nvim/bin:$PATH"
82+ ;;
83+esac
84+
85+if [ -x "$(command -v direnv)" ]; then
86+ eval "$(direnv hook zsh)"
87+fi
88+
89+export PROMPT='%{$fg[yellow]%}@%M %{$fg_bold[green]%}%c%{$reset_color%} $(git_prompt_info)'