+3
.abuild/abuild.conf
+3
.abuild/abuild.conf
+14
.abuild/releases@andreijiroh.eu.org.rsa.pub
+14
.abuild/releases@andreijiroh.eu.org.rsa.pub
···
1
+
-----BEGIN PUBLIC KEY-----
2
+
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEApu7MTCq8sErwOzlwDRQq
3
+
63qs4REUM6d0Al8HGlYcke0h5RitvzIcr6oWpeKIW76TPSsyh5Tt50q7hKhdgogU
4
+
IApz+p0PNVgjyEosXuF6L/1GAbeNFNLf2Twwl+SH+3MlpJwRp7Gw7DdYBb1lm03q
5
+
I6WnGxcvQXdpVryesp04qzxR4wFVF4BVwBzLow3hbQ+CAwcP30e9MNHj+sqaJSzH
6
+
3QmMleWFtaAgZxEQ2D+xbpG48CjXF9ghp72DwfAK7vr1QAkRmBw/0zvcbHp9sw/j
7
+
d6wLR7AxKQ3nIg79xCHKAINfwhvXjbydw69jkIh5JU8FRGwQqOmWWh9rg1zFYEZt
8
+
5tGngGRdUmXw7UPRAGWzJrqfozqNYMBiwefx5Ic9MhURViaV3IjgCKSEL4VLttnH
9
+
W7XgJTFOsHwgCF96C5wN7ERxyEOZaeXtVSYYV4bc3p3jOLlkY78gITBke/2OnlkC
10
+
AVQHi0mxYVPvlqjOnlD9WKRUPWAbCrahOw8GGIEL2oNEilfGxVvcTaygOFux04IT
11
+
CpEpmbHAakkkgO2ALyOuFWY5mn3E6e6ufFE3yqHPqrW1sqoCcUIcWNTfAvH0GYY9
12
+
C0VFydGh8/0CUUTUvFBTi9//4Zvd5LEHZcHv0zXnkL4YClCHJzL7drJeQZfMle4T
13
+
lPJFZe/wkYhQyvp9VzG7A5sCAwEAAQ==
14
+
-----END PUBLIC KEY-----
+14
.abuild/releases@recaptime.eu.org.rsa.pub
+14
.abuild/releases@recaptime.eu.org.rsa.pub
···
1
+
-----BEGIN PUBLIC KEY-----
2
+
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtqqqI9kglbZKvC1iplJj
3
+
I5IfvaKdiHZjbZn4WyyJKsn2zUOdibBuPtenw4riH5GpkIYjRLO+rYataFl4JP3D
4
+
bPXtIiOxLs2CYPnIlPd/QS1bulqomxbz1W+fCGAmhZB/Z4ogUU7ntCdQJJpaCnLz
5
+
0BgqwkXW4aof5pvYBuS2Q30NL42FCxdNL09DAdPNC4T/h0pmT8vB5ZoKc69Okh/Y
6
+
3yyXq2V4FTlOSaio2NEsE4fGgPw3oYOtT2alJU3GQsLQ+uF7AO0+XYTPFdLhMjIm
7
+
vsB0ZZnpHLUtyiyuJYHRf2AJWTMQYG0xcHRdBjILv0IJSTJJ6lfcKGdg2MTe/Ixj
8
+
Hi2sasF0Up1A1oHe8rxJsTSMVyj2oGs8HNBFBwLhZnTQz3loZAhVINU/MFFu6i97
9
+
U6JBC8D9+2qthjHXQaklaZ8HrQklwGnmLPctFHdx3J9VD8+fAz8OrhcPHCyWP0Jk
10
+
m3XxpuUGXV87dcOMzXmnqr8tbN8x811gKzzvRJGHuWQE5Dt8EYmLweupTZ1TCZtt
11
+
cx60ODu0ttYxGTKHc2a0QHDJmzQHVA8IJjs8+XsKN/U3zUY3u+5uvp7kRRfW45cx
12
+
iVYPkjpfwYgLk0oDpxs4+NigSIeNcWNvbJjAlHlTdZ54oTdojlhAbA1tQVCHQCaa
13
+
2NxNzpEeQlFhrDXuMjw5znECAwEAAQ==
14
+
-----END PUBLIC KEY-----
+76
.bash_login
+76
.bash_login
···
1
+
#!/data/data/com.termux/files/usr/bin/env bash
2
+
# shellcheck disable=SC2046,SC1091,SC2155
3
+
4
+
# This is a minimal bash login scrupt for loading local
5
+
# configs as well as hooking in byobu on login.
6
+
7
+
# source local vars
8
+
# TODO: Hook up with dotenvx for decrypting encrypted secrets
9
+
source "$HOME/.env"
10
+
if [[ -f "$HOME/.env.local" ]]; then
11
+
source "$HOME/.env.local"
12
+
export LOCAL_DOTENV_LOADED=true
13
+
fi
14
+
15
+
# how about detecting local configs
16
+
if [ -f "$HOME/.config/localconfig.env" ]; then
17
+
. "$HOME/.config/localconfig.env"
18
+
fi
19
+
20
+
# Load bash
21
+
# shellcheck source=./.bashrc
22
+
source ./.bashrc
23
+
24
+
# set PATH so it includes user's private bin if it exists
25
+
if [ -d "$HOME/bin" ] ; then
26
+
PATH="$HOME/bin:$PATH"
27
+
fi
28
+
29
+
# set PATH so it includes user's private bin if it exists
30
+
if [ -d "$HOME/.local/bin" ] ; then
31
+
PATH="$HOME/.local/bin:$PATH"
32
+
fi
33
+
34
+
export PATH="/usr/local/bin:$HOME/.local/bin:$HOME/bin${PATH:+:}$PATH:$HOME/.local/share/JetBrains/Toolbox/scripts" # ~vern specifics and more
35
+
mesg n 2> /dev/null || true
36
+
37
+
# then import the rest
38
+
source "$HOME/.env"
39
+
source "$HOME/.config/aliases"
40
+
export POSIX_PROFILE_SOURCED=true
41
+
42
+
# how about detecting local configs
43
+
if [ -f "$HOME/.config/localconfig.env" ]; then
44
+
. "$HOME/.config/localconfig.env"
45
+
fi
46
+
47
+
##########################################################################################
48
+
# Code snippets from https://git.sr.ht/~sircmpwn/dotfiles/tree/db5945a4/item/.env
49
+
##########################################################################################
50
+
if ls --version 2>&1 | grep -i gnu >/dev/null
51
+
then
52
+
alias ls='ls --color=auto '
53
+
elif ls --version 2>&1 | grep -i busybox >/dev/null
54
+
then
55
+
alias ls='ls --color=auto '
56
+
fi
57
+
58
+
alias recent='ls -ltch'
59
+
60
+
# Add optmizations for multicore builds
61
+
if [ $(uname) = "Linux" ]
62
+
then
63
+
nproc=$(grep '^processor' /proc/cpuinfo | wc -l)
64
+
if [ $nproc -gt 4 ]
65
+
then
66
+
# Reserve two cores
67
+
nproc=$((nproc - 2))
68
+
fi
69
+
export MAKEFLAGS="-j$nproc"
70
+
export SAMUFLAGS="-j$nproc"
71
+
fi
72
+
##########################################################################################
73
+
74
+
if [[ $FF_BYOBU_ON_LOGIN == "true" || $LC_BYOBU == "1" ]]; then
75
+
_byobu_sourced=1 . /data/data/com.termux/files/usr/bin/byobu-launch 2>/dev/null || true
76
+
fi
+6
.bash_logout
+6
.bash_logout
+81
.bashrc
+81
.bashrc
···
1
+
#!/usr/bin/env bash
2
+
3
+
# This is my meta bashrc file, with oh-my-posh instead of zsh-specific
4
+
# oh-my-zsh, although I still use zsh as my default shell. Sorry for a
5
+
# lot of personal commentary and links hellscape here, it's there for
6
+
# in-code docs and for future me to not dig through 'git log' hell.
7
+
# SPDX-License-Identifier: MIT AND MPL-2.0
8
+
9
+
## Stage 0: Init keychain + GPG_TTY for pinentry hellscapes in TUI. ##
10
+
## This stage also initalizes oh-my-posh or custom
11
+
## PSI here. ##
12
+
export KEYCHAIN_PATH=$(command -v keychain)
13
+
14
+
if [[ $TERMUX_APP__PACKAGE_NAME ]]; then
15
+
eval $(keychain --agents ssh --eval)
16
+
else
17
+
# shellcheck disable=SC2155
18
+
eval $(keychain --agents gpg,ssh --eval)
19
+
fi
20
+
# shellcheck disable=SC2155
21
+
export GPG_TTY=$(tty)
22
+
23
+
# how about detecting local configs
24
+
if [ -f "$HOME/.config/localconfig.env" ]; then
25
+
. "$HOME/.config/localconfig.env"
26
+
fi
27
+
28
+
if command -v oh-my-posh >>/dev/null && [[ $FF_USE_OHMYPOSH != "false" ]]; then
29
+
eval "$(oh-my-posh init bash)"
30
+
else
31
+
if [[ $PROMPT_THEME == "disabled" ]]; then
32
+
true
33
+
elif [[ -f "$HOME/.config/bash/shell-prompts/${PROMPT_THEME}.bashrc" ]]; then
34
+
# shellcheck disable=SC1090
35
+
source "$HOME/.config/bash/shell-prompts/${PROMPT_THEME}.bashrc"
36
+
else
37
+
source "$HOME/.config/bash/shell-prompts/vern.bashrc"
38
+
fi
39
+
fi
40
+
41
+
## Stage 1: Init custom vars and shortcuts before anything else ##
42
+
## Note that ~/.env and ~/.env.local should be loaded eariler on ##
43
+
# Dotfiles stuff, maybe should be on ~/.env?
44
+
#export DOTFILES_HOME="$HOME/.dotfiles"
45
+
export DOTFILES_BIN="$DOTFILES_HOME/bin"
46
+
# gopath should be on ~/.local/share/go to not fuck up with local install
47
+
# at ~/go if exists
48
+
export GOPATH="$HOME/.local/share/go"
49
+
# Shut up, VS Code (not the OSS distributions off github:microsoft/vscode).
50
+
# Don't let me pay for JetBrains IDEs or go nuts with nvim (or emacs, since
51
+
# I'm both a bit neutral and off the rails at Vim vs Emacs debate). Also RIP
52
+
# to my first editor after Notepad that started my web dev + Linux journey,
53
+
# Atom (https://github.com/atom).
54
+
export EDITOR=nano
55
+
# Context: https://git.sr.ht/~sircmpwn/dotfiles/tree/master/item/.profile#L13-15
56
+
# and https://drewdevault.com/2021/08/06/goproxy-breaks-go.html
57
+
export GOPROXY=direct GOSUMDB=off
58
+
# nix profile install nixpkgs#glibcLocale
59
+
export LOCALE_ARCHIVE="$HOME/.nix-profile/lib/locale/locale-archive"
60
+
61
+
## Stage 2: Source literally everything else ##
62
+
if [[ -d "$HOME/.bashbox" ]]; then
63
+
# shellcheck disable=SC1091
64
+
source "$HOME/.bashbox/env"
65
+
fi
66
+
67
+
# Formerly: handle hostname generation for importing host-specific configs
68
+
# TODO: Handle detection across distributions without chaos, especially where
69
+
# Nix is installed (not NixOS)
70
+
if [[ $WSL_DISTRO_NAME ]] && [[ $WSL_INTEROP ]]; then
71
+
HOSTNAME_BASH="$(cat /etc/hostname)-wsl-${WSL_DISTRO_NAME}"
72
+
export WSL=1 # similar to CODESPACES and GITPOD_WORKSPACE_ID vars
73
+
else
74
+
HOSTNAME_BASH="$(cat /etc/hostname)"
75
+
fi
76
+
export HOSTNAME_BASH
77
+
78
+
for file in "$HOME/.config/bash/hosts/${HOSTNAME_BASH}.bashrc" "${HOME}/.config/bash/bashrc"; do
79
+
# shellcheck disable=SC1090
80
+
[ -f "$file" ] && . "$file"
81
+
done
.byobu/.screenrc
.byobu/.screenrc
This is a binary file and will not be displayed.
+30
.byobu/.tmux.conf
+30
.byobu/.tmux.conf
···
1
+
# make sure we can magically source config changes via <prefix>+R shortcut.
2
+
bind r source-file ~/.byobu/.tmux.conf
3
+
4
+
# split to either horizontally or vertically
5
+
bind h splitw -h
6
+
bind v splitw -v
7
+
## Quick shortcuts btw for some tools as new windows ##
8
+
bind -n M-h new-window htop
9
+
bind -n M-m new-window mocp
10
+
bind -n M-l new-window lynx
11
+
# Since M-p is parked for something else, we add Ctrl before Alt/Meta as a workaround.
12
+
bind -n C-M-p new-window pamix
13
+
bind -n M-n new-window nano
14
+
# also works via the default <prefix>+c
15
+
bind -n M-z new-window
16
+
bind t select-layout tiled
17
+
18
+
# adopt some bloody shortcuts from Terminator
19
+
bind -n M-Left select-pane -L
20
+
bind -n M-Right select-pane -R
21
+
bind -n M-Up select-pane -U
22
+
bind -n M-Down select-pane -D
23
+
24
+
# activity monitoring
25
+
setw -g monitor-activity on
26
+
set -g visual-activity on
27
+
28
+
# use mouse on tmux, and a bit to tweaks, since I'm using an terminal emulator/gotty most of the time
29
+
set -g mouse on
30
+
#set -g mouse-select-pane on
.byobu/.welcome-displayed
.byobu/.welcome-displayed
This is a binary file and will not be displayed.
+1
.byobu/backend
+1
.byobu/backend
···
1
+
BYOBU_BACKEND=tmux
+4
.byobu/color.tmux
+4
.byobu/color.tmux
+1
.byobu/keybindings
+1
.byobu/keybindings
···
1
+
source $BYOBU_PREFIX/share/byobu/keybindings/common
+4
.byobu/keybindings.tmux
+4
.byobu/keybindings.tmux
+1
.byobu/profile
+1
.byobu/profile
···
1
+
source $BYOBU_PREFIX/share/byobu/profiles/common
+1
.byobu/profile.tmux
+1
.byobu/profile.tmux
···
1
+
source $BYOBU_PREFIX/share/byobu/profiles/tmux
+1
.byobu/prompt
+1
.byobu/prompt
···
1
+
[ -r /usr/share/byobu/profiles/bashrc ] && . /usr/share/byobu/profiles/bashrc #byobu-prompt#
+37
.byobu/status
+37
.byobu/status
···
1
+
# status - Byobu's default status enabled/disabled settings
2
+
#
3
+
# Override these in $BYOBU_CONFIG_DIR/status
4
+
# where BYOBU_CONFIG_DIR is XDG_CONFIG_HOME if defined,
5
+
# and $HOME/.byobu otherwise.
6
+
#
7
+
# Copyright (C) 2009-2011 Canonical Ltd.
8
+
#
9
+
# Authors: Dustin Kirkland <kirkland@byobu.org>
10
+
#
11
+
# This program is free software: you can redistribute it and/or modify
12
+
# it under the terms of the GNU General Public License as published by
13
+
# the Free Software Foundation, version 3 of the License.
14
+
#
15
+
# This program is distributed in the hope that it will be useful,
16
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
17
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
+
# GNU General Public License for more details.
19
+
#
20
+
# You should have received a copy of the GNU General Public License
21
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
22
+
23
+
# Status beginning with '#' are disabled.
24
+
25
+
# Screen has two status lines, with 4 quadrants for status
26
+
screen_upper_left="color"
27
+
screen_upper_right="color whoami hostname ip_address menu"
28
+
screen_lower_left="color logo distro release #arch session"
29
+
screen_lower_right="color network #disk_io custom #entropy raid reboot_required updates_available #apport #services #mail users uptime #fan_speed #cpu_temp battery wifi_quality #processes load_average cpu_count cpu_freq memory #swap disk #time_utc date time"
30
+
31
+
# Tmux has one status line, with 2 halves for status
32
+
tmux_left=" logo #distro release arch session"
33
+
# You can have as many tmux right lines below here, and cycle through them using Shift-F5
34
+
tmux_right=" network #disk_io #custom entropy #raid reboot_required updates_available #apport #services #mail #users uptime #fan_speed #cpu_temp #battery wifi_quality #processes load_average cpu_count cpu_freq memory #swap disk whoami hostname #ip_address time_utc date #time"
35
+
#tmux_right="network #disk_io #custom entropy raid reboot_required updates_available #apport #services #mail users uptime fan_speed cpu_temp battery wifi_quality #processes load_average cpu_count cpu_freq memory #swap #disk whoami hostname ip_address #time_utc date time"
36
+
#tmux_right="network #disk_io custom #entropy raid reboot_required updates_available #apport #services #mail users uptime #fan_speed #cpu_temp battery wifi_quality #processes load_average cpu_count cpu_freq memory #swap #disk #whoami #hostname ip_address #time_utc date time"
37
+
#tmux_right="#network disk_io #custom entropy #raid #reboot_required #updates_available #apport #services #mail #users #uptime fan_speed cpu_temp #battery #wifi_quality #processes #load_average #cpu_count #cpu_freq #memory #swap whoami hostname ip_address #time_utc disk date time"
+78
.byobu/statusrc
+78
.byobu/statusrc
···
1
+
# statusrc - Byobu's default status configurations
2
+
#
3
+
# Override these in $BYOBU_CONFIG_DIR/statusrc
4
+
# where BYOBU_CONFIG_DIR is XDG_CONFIG_HOME if defined,
5
+
# and $HOME/.byobu otherwise.
6
+
#
7
+
# Copyright (C) 2009-2011 Canonical Ltd.
8
+
#
9
+
# Authors: Dustin Kirkland <kirkland@byobu.org>
10
+
#
11
+
# This program is free software: you can redistribute it and/or modify
12
+
# it under the terms of the GNU General Public License as published by
13
+
# the Free Software Foundation, version 3 of the License.
14
+
#
15
+
# This program is distributed in the hope that it will be useful,
16
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
17
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
+
# GNU General Public License for more details.
19
+
#
20
+
# You should have received a copy of the GNU General Public License
21
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
22
+
23
+
# Configurations that you can override; if you leave these commented out,
24
+
# Byobu will try to auto-detect them.
25
+
26
+
# This should be auto-detected for most distro, but setting it here will save
27
+
# some call to lsb_release and the like.
28
+
#BYOBU_DISTRO=Ubuntu
29
+
30
+
# Default: depends on the distro (which is either auto-detected, either set
31
+
# via $DISTRO)
32
+
#LOGO="\o/"
33
+
34
+
# Abbreviate the release to N characters
35
+
# By default, this is disabled. But if you set RELEASE_ABBREVIATED=1
36
+
# and your lsb_release is "precise", only "p" will be displayed
37
+
#RELEASE_ABBREVIATED=1
38
+
39
+
# Default: /
40
+
#MONITORED_DISK=/
41
+
42
+
# Minimum disk throughput that triggers the notification (in kB/s)
43
+
# Default: 50
44
+
#DISK_IO_THRESHOLD=50
45
+
46
+
# Default: eth0
47
+
#MONITORED_NETWORK=eth0
48
+
49
+
# Unit used for network throughput (either bits per second or bytes per second)
50
+
# Default: bits
51
+
#NETWORK_UNITS=bytes
52
+
53
+
# Minimum network throughput that triggers the notification (in kbit/s)
54
+
# Default: 20
55
+
#NETWORK_THRESHOLD=20
56
+
57
+
# You can add an additional source of temperature here
58
+
#MONITORED_TEMP=/proc/acpi/thermal_zone/THM0/temperature
59
+
60
+
# Default: C
61
+
#TEMP=F
62
+
63
+
#SERVICES="eucalyptus-nc|NC eucalyptus-cloud|CLC eucalyptus-walrus eucalyptus-cc|CC eucalyptus-sc|SC"
64
+
65
+
#FAN=$(find /sys -type f -name fan1_input | head -n1)
66
+
67
+
# You can set this to 1 to report your external/public ip address
68
+
# Default: 0
69
+
#IP_EXTERNAL=0
70
+
71
+
# The users notification normally counts ssh sessions; set this configuration to '1'
72
+
# to instead count number of distinct users logged onto the system
73
+
# Default: 0
74
+
#USERS_DISTINCT=0
75
+
76
+
# Set this to zero to hide seconds int the time display
77
+
# Default 1
78
+
#TIME_SECONDS=0
.byobu/windows
.byobu/windows
This is a binary file and will not be displayed.
.byobu/windows.tmux
.byobu/windows.tmux
This is a binary file and will not be displayed.
-63
.config/1Password/ssh/agent.toml
-63
.config/1Password/ssh/agent.toml
···
1
-
# SPDX-License-Identifier: MPL-2.0
2
-
# This is the 1Password SSH agent config file, which allows you to customize the
3
-
# behavior of the SSH agent running on this machine.
4
-
#
5
-
# You can use it to:
6
-
# * Enable keys from other vaults than the Private vault
7
-
# * Control the order in which keys are offered to SSH servers
8
-
#
9
-
# EXAMPLE
10
-
#
11
-
# By default, all keys in your Private vault(s) are enabled:
12
-
#
13
-
# [[ssh-keys]]
14
-
# vault = "Private"
15
-
#
16
-
# You can enable more keys by adding more `[[ssh-keys]]` entries.
17
-
# For example, to first enable item "My SSH Key" from "My Custom Vault":
18
-
#
19
-
# [[ssh-keys]]
20
-
# item = "My SSH Key"
21
-
# vault = "My Custom Vault"
22
-
#
23
-
# [[ssh-keys]]
24
-
# vault = "Private"
25
-
#
26
-
# You can test the result by running:
27
-
#
28
-
# SSH_AUTH_SOCK=~/.1password/agent.sock ssh-add -l
29
-
#
30
-
# More examples can be found here:
31
-
# https://developer.1password.com/docs/ssh/agent/config
32
-
"$schema" = "https://developer.1password.com/schema/ssh-agent-config.json"
33
-
34
-
## Personal ##
35
-
# releases
36
-
[[ssh-keys]]
37
-
vault = "sah2xx3ps2rfhyi2svj5yzv2qu"
38
-
item = "snnlyiqrvnfqycon7ackffb3ty"
39
-
account = "https://andreijiroh-dev.1password.com"
40
-
41
-
# main key since 2022
42
-
[[ssh-keys]]
43
-
vault = "apwipwtqx6l4eqa27su7hlczey"
44
-
item = "47mdejtly5eebvh74h3vvxr2ki"
45
-
account = "https://andreijiroh-dev.1password.com"
46
-
47
-
# launchpad.net
48
-
[[ssh-keys]]
49
-
vault = "apwipwtqx6l4eqa27su7hlczey"
50
-
item = "npdvnvxih5gsr3cxlonbkayoy4"
51
-
account = "https://andreijiroh-dev.1password.com"
52
-
53
-
[[ssh-keys]]
54
-
vault = "fykuds2mmz7iletnsxkl47slbi"
55
-
item = "ylcrbks3tkxtsgkc5gadm2dyqa"
56
-
account = "https://andreijiroh-dev.1password.com"
57
-
58
-
## RecapTime.dev ##
59
-
# crew.recaptime.dev
60
-
[[ssh-keys]]
61
-
vault = "Employee"
62
-
item = "wklfmur3fegpajjhrx4acwcscm"
63
-
account = "https://recaptime-dev.1password.com"
+1
.config/Code/User/profiles/-1f1e8b58/extensions.json
+1
.config/Code/User/profiles/-1f1e8b58/extensions.json
···
1
+
[{"identifier":{"id":"github.github-vscode-theme","uuid":"7328a705-91fc-49e6-8293-da6f112e482d"},"version":"6.3.4","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/github.github-vscode-theme-6.3.4","scheme":"file"},"relativeLocation":"github.github-vscode-theme-6.3.4","metadata":{"installedTimestamp":1721062992095,"pinned":false,"source":"gallery","id":"7328a705-91fc-49e6-8293-da6f112e482d","publisherId":"7c1c19cd-78eb-4dfb-8999-99caf7679002","publisherDisplayName":"GitHub","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"arcanis.vscode-zipfs","uuid":"b14d47f6-5230-4a65-9366-82edc70d5dfd"},"version":"3.0.0","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/arcanis.vscode-zipfs-3.0.0","scheme":"file"},"relativeLocation":"arcanis.vscode-zipfs-3.0.0","metadata":{"installedTimestamp":1721062992095,"pinned":false,"source":"gallery","id":"b14d47f6-5230-4a65-9366-82edc70d5dfd","publisherId":"659f24e1-7f98-4a8d-9904-b5f9064a1343","publisherDisplayName":"Maรซl Nison","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"socheatsok78-lab.dotenv-vscode-stripped","uuid":"3fe501a7-ae34-4706-b2d9-d05e65fdbe3c"},"version":"0.24.0","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/socheatsok78-lab.dotenv-vscode-stripped-0.24.0","scheme":"file"},"relativeLocation":"socheatsok78-lab.dotenv-vscode-stripped-0.24.0","metadata":{"installedTimestamp":1721062992095,"pinned":false,"source":"gallery","id":"3fe501a7-ae34-4706-b2d9-d05e65fdbe3c","publisherId":"ca374c13-597b-4ca6-9f1b-ea5ea16b6711","publisherDisplayName":"Socheat's Lab","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"esbenp.prettier-vscode","uuid":"96fa4707-6983-4489-b7c5-d5ffdfdcce90"},"version":"10.4.0","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/esbenp.prettier-vscode-10.4.0","scheme":"file"},"relativeLocation":"esbenp.prettier-vscode-10.4.0","metadata":{"installedTimestamp":1721062992095,"pinned":false,"source":"gallery","id":"96fa4707-6983-4489-b7c5-d5ffdfdcce90","publisherId":"d16f4e39-2ffb-44e3-9c0d-79d873570e3a","publisherDisplayName":"Prettier","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"xabikos.javascriptsnippets","uuid":"a2cec723-5349-460d-9de9-0fd1f8d3456f"},"version":"1.8.0","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/xabikos.javascriptsnippets-1.8.0","scheme":"file"},"relativeLocation":"xabikos.javascriptsnippets-1.8.0","metadata":{"installedTimestamp":1721062992095,"pinned":false,"source":"gallery","id":"a2cec723-5349-460d-9de9-0fd1f8d3456f","publisherId":"8961c3fe-3ec6-429d-886a-50b5af362a88","publisherDisplayName":"charalampos karypidis","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"bierner.github-markdown-preview","uuid":"9f5a5fc9-8b23-4484-85c4-1438b82d8634"},"version":"0.3.0","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/bierner.github-markdown-preview-0.3.0","scheme":"file"},"relativeLocation":"bierner.github-markdown-preview-0.3.0","metadata":{"installedTimestamp":1721062992095,"pinned":false,"source":"gallery","id":"9f5a5fc9-8b23-4484-85c4-1438b82d8634","publisherId":"f164f116-e2aa-496b-84dc-2451248e8beb","publisherDisplayName":"Matt Bierner","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"github.vscode-pull-request-github","uuid":"69ddd764-339a-4ecc-97c1-9c4ece58e36d"},"version":"0.92.0","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/github.vscode-pull-request-github-0.92.0","scheme":"file"},"relativeLocation":"github.vscode-pull-request-github-0.92.0","metadata":{"installedTimestamp":1721062992095,"pinned":false,"source":"gallery","id":"69ddd764-339a-4ecc-97c1-9c4ece58e36d","publisherId":"7c1c19cd-78eb-4dfb-8999-99caf7679002","publisherDisplayName":"GitHub","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"bierner.markdown-footnotes","uuid":"8c379296-feca-4544-853d-f085a1fc638f"},"version":"0.1.1","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/bierner.markdown-footnotes-0.1.1","scheme":"file"},"relativeLocation":"bierner.markdown-footnotes-0.1.1","metadata":{"installedTimestamp":1721062992095,"pinned":false,"source":"gallery","id":"8c379296-feca-4544-853d-f085a1fc638f","publisherId":"f164f116-e2aa-496b-84dc-2451248e8beb","publisherDisplayName":"Matt Bierner","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"bierner.markdown-checkbox","uuid":"b0db4123-c5d9-4f45-bd2e-70738ebbb304"},"version":"0.4.0","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/bierner.markdown-checkbox-0.4.0","scheme":"file"},"relativeLocation":"bierner.markdown-checkbox-0.4.0","metadata":{"installedTimestamp":1721062992095,"pinned":false,"source":"gallery","id":"b0db4123-c5d9-4f45-bd2e-70738ebbb304","publisherId":"f164f116-e2aa-496b-84dc-2451248e8beb","publisherDisplayName":"Matt Bierner","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"orta.vscode-jest","uuid":"7997a8ae-1fae-4022-b834-12f6318aeffd"},"version":"6.2.5","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/orta.vscode-jest-6.2.5","scheme":"file"},"relativeLocation":"orta.vscode-jest-6.2.5","metadata":{"installedTimestamp":1721062992095,"pinned":false,"source":"gallery","id":"7997a8ae-1fae-4022-b834-12f6318aeffd","publisherId":"c22b4001-1af3-48d1-87ed-490c6c3b747f","publisherDisplayName":"Orta","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"pkief.material-product-icons","uuid":"f797dacd-4e80-4f33-8b63-d665c0956013"},"version":"1.7.1","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/pkief.material-product-icons-1.7.1","scheme":"file"},"relativeLocation":"pkief.material-product-icons-1.7.1","metadata":{"installedTimestamp":1721062992095,"pinned":false,"source":"gallery","id":"f797dacd-4e80-4f33-8b63-d665c0956013","publisherId":"f9e5bc2f-fea1-4075-917f-d83e01e69f56","publisherDisplayName":"Philipp Kief","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"bierner.markdown-emoji","uuid":"f595c9c1-28b5-415e-a55f-2deb4a8c3abd"},"version":"0.3.0","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/bierner.markdown-emoji-0.3.0","scheme":"file"},"relativeLocation":"bierner.markdown-emoji-0.3.0","metadata":{"installedTimestamp":1721062992095,"pinned":false,"source":"gallery","id":"f595c9c1-28b5-415e-a55f-2deb4a8c3abd","publisherId":"f164f116-e2aa-496b-84dc-2451248e8beb","publisherDisplayName":"Matt Bierner","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"mikestead.dotenv","uuid":"532533c9-a894-4a58-9eee-bbfbe7c06f71"},"version":"1.0.1","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/mikestead.dotenv-1.0.1","scheme":"file"},"relativeLocation":"mikestead.dotenv-1.0.1","metadata":{"installedTimestamp":1721062992095,"pinned":false,"source":"gallery","id":"532533c9-a894-4a58-9eee-bbfbe7c06f71","publisherId":"b6aa9b98-56e5-4846-b7d2-600d45fc63fc","publisherDisplayName":"mikestead","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"dbaeumer.vscode-eslint","uuid":"583b2b34-2c1e-4634-8c0b-0b82e283ea3a"},"version":"3.0.10","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/dbaeumer.vscode-eslint-3.0.10","scheme":"file"},"relativeLocation":"dbaeumer.vscode-eslint-3.0.10","metadata":{"installedTimestamp":1721062992095,"pinned":false,"source":"gallery","id":"583b2b34-2c1e-4634-8c0b-0b82e283ea3a","publisherId":"29859a75-d81b-4f0e-8578-2c80ecee6f99","publisherDisplayName":"Microsoft","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"bierner.markdown-preview-github-styles","uuid":"5cbdf58a-694a-4aba-af08-61d00842eb03"},"version":"2.0.4","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/bierner.markdown-preview-github-styles-2.0.4","scheme":"file"},"relativeLocation":"bierner.markdown-preview-github-styles-2.0.4","metadata":{"installedTimestamp":1721062992095,"pinned":false,"source":"gallery","id":"5cbdf58a-694a-4aba-af08-61d00842eb03","publisherId":"f164f116-e2aa-496b-84dc-2451248e8beb","publisherDisplayName":"Matt Bierner","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"wakatime.vscode-wakatime","uuid":"f2fd462f-f1bd-4c62-b54f-59a4e5ffc6a3"},"version":"24.6.0","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/wakatime.vscode-wakatime-24.6.0","scheme":"file"},"relativeLocation":"wakatime.vscode-wakatime-24.6.0","metadata":{"installedTimestamp":1721062992095,"pinned":false,"source":"gallery","id":"f2fd462f-f1bd-4c62-b54f-59a4e5ffc6a3","publisherId":"27977793-9e84-451b-8977-744ce63f3d70","publisherDisplayName":"WakaTime","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"christian-kohler.npm-intellisense","uuid":"dff6b801-247e-40e9-82e8-8c9b1d19d1b8"},"version":"1.4.5","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/christian-kohler.npm-intellisense-1.4.5","scheme":"file"},"relativeLocation":"christian-kohler.npm-intellisense-1.4.5","metadata":{"installedTimestamp":1721062992095,"pinned":false,"source":"gallery","id":"dff6b801-247e-40e9-82e8-8c9b1d19d1b8","publisherId":"a892fb38-060b-475f-9e73-2e06a8a17a68","publisherDisplayName":"Christian Kohler","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"humao.rest-client","uuid":"dda49fd5-1f3b-4d25-bf61-4fc41905ede5"},"version":"0.25.1","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/humao.rest-client-0.25.1","scheme":"file"},"relativeLocation":"humao.rest-client-0.25.1","metadata":{"installedTimestamp":1721062992095,"pinned":false,"source":"gallery","id":"dda49fd5-1f3b-4d25-bf61-4fc41905ede5","publisherId":"aa260071-fe15-4a92-8990-7b8753d9cbc7","publisherDisplayName":"Huachao Mao","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"editorconfig.editorconfig","uuid":"f60a60a6-95ba-42d4-b41c-3d24c1b89588"},"version":"0.16.4","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/editorconfig.editorconfig-0.16.4","scheme":"file"},"relativeLocation":"editorconfig.editorconfig-0.16.4","metadata":{"installedTimestamp":1721062992095,"pinned":false,"source":"gallery","id":"f60a60a6-95ba-42d4-b41c-3d24c1b89588","publisherId":"1ed869e4-8588-4af4-a51e-9c1c86b034b9","publisherDisplayName":"EditorConfig","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"redhat.vscode-yaml","uuid":"2061917f-f76a-458a-8da9-f162de22b97e"},"version":"1.15.0","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/redhat.vscode-yaml-1.15.0","scheme":"file"},"relativeLocation":"redhat.vscode-yaml-1.15.0","metadata":{"installedTimestamp":1721062992095,"pinned":false,"source":"gallery","id":"2061917f-f76a-458a-8da9-f162de22b97e","publisherId":"eed56242-9699-4317-8bc7-e9f4b9bdd3ff","publisherDisplayName":"Red Hat","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"bierner.markdown-yaml-preamble","uuid":"b872af63-f9e1-438e-9462-0315abe9d3aa"},"version":"0.1.0","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/bierner.markdown-yaml-preamble-0.1.0","scheme":"file"},"relativeLocation":"bierner.markdown-yaml-preamble-0.1.0","metadata":{"installedTimestamp":1721062992095,"pinned":false,"source":"gallery","id":"b872af63-f9e1-438e-9462-0315abe9d3aa","publisherId":"f164f116-e2aa-496b-84dc-2451248e8beb","publisherDisplayName":"Matt Bierner","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"ms-vscode.vscode-github-issue-notebooks","uuid":"3be1cece-c179-4cd6-b59b-3bae29e1a166"},"version":"0.0.130","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/ms-vscode.vscode-github-issue-notebooks-0.0.130","scheme":"file"},"relativeLocation":"ms-vscode.vscode-github-issue-notebooks-0.0.130","metadata":{"installedTimestamp":1721062992095,"pinned":false,"source":"gallery","id":"3be1cece-c179-4cd6-b59b-3bae29e1a166","publisherId":"5f5636e7-69ed-4afe-b5d6-8d231fb3d3ee","publisherDisplayName":"Microsoft","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"ms-azuretools.vscode-docker","uuid":"0479fc1c-3d67-49f9-b087-fb9069afe48f"},"version":"1.29.1","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/ms-azuretools.vscode-docker-1.29.1","scheme":"file"},"relativeLocation":"ms-azuretools.vscode-docker-1.29.1","metadata":{"installedTimestamp":1721062992095,"pinned":false,"source":"gallery","id":"0479fc1c-3d67-49f9-b087-fb9069afe48f","publisherId":"52b787f2-79a9-4f32-99b4-393afe3005d3","publisherDisplayName":"Microsoft","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"bierner.markdown-mermaid","uuid":"f8d0ffc4-66bb-4a9c-8149-ef8f043691a1"},"version":"1.23.1","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/bierner.markdown-mermaid-1.23.1","scheme":"file"},"relativeLocation":"bierner.markdown-mermaid-1.23.1","metadata":{"installedTimestamp":1721062992095,"pinned":false,"source":"gallery","id":"f8d0ffc4-66bb-4a9c-8149-ef8f043691a1","publisherId":"f164f116-e2aa-496b-84dc-2451248e8beb","publisherDisplayName":"Matt Bierner","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"pkief.material-icon-theme","uuid":"5db78037-f674-459f-a236-db622c427c5b"},"version":"5.5.0","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/pkief.material-icon-theme-5.5.0","scheme":"file"},"relativeLocation":"pkief.material-icon-theme-5.5.0","metadata":{"installedTimestamp":1721062992095,"pinned":false,"source":"gallery","id":"5db78037-f674-459f-a236-db622c427c5b","publisherId":"f9e5bc2f-fea1-4075-917f-d83e01e69f56","publisherDisplayName":"Philipp Kief","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"tamasfe.even-better-toml","uuid":"b2215d5f-675e-4a2b-b6ac-1ca737518b78"},"version":"0.19.2","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/tamasfe.even-better-toml-0.19.2","scheme":"file"},"relativeLocation":"tamasfe.even-better-toml-0.19.2","metadata":{"installedTimestamp":1721065217294,"pinned":false,"source":"gallery","id":"b2215d5f-675e-4a2b-b6ac-1ca737518b78","publisherId":"78c2102e-13a2-49ea-ac79-8d1bbacbbf0e","publisherDisplayName":"tamasfe","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"codiium.wrangler","uuid":"3f62fc02-a5b7-48bd-8505-01a70338cf88"},"version":"0.0.1","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/codiium.wrangler-0.0.1","scheme":"file"},"relativeLocation":"codiium.wrangler-0.0.1","metadata":{"installedTimestamp":1721065234240,"pinned":false,"source":"gallery","id":"3f62fc02-a5b7-48bd-8505-01a70338cf88","publisherId":"684ef619-d4c1-4efb-ad1f-c76758dc36ad","publisherDisplayName":"Fisher","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"eamodio.gitlens","uuid":"4de763bd-505d-4978-9575-2b7696ecf94e"},"version":"15.2.0","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/eamodio.gitlens-15.2.0","scheme":"file"},"relativeLocation":"eamodio.gitlens-15.2.0","metadata":{"installedTimestamp":1721065950971,"pinned":false,"source":"gallery","id":"4de763bd-505d-4978-9575-2b7696ecf94e","publisherId":"678d198b-9b2e-49d3-96ff-6d801c9575df","publisherDisplayName":"GitKraken","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"ms-vscode-remote.remote-containers","uuid":"93ce222b-5f6f-49b7-9ab1-a0463c6238df"},"version":"0.375.1","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/ms-vscode-remote.remote-containers-0.375.1","scheme":"file"},"relativeLocation":"ms-vscode-remote.remote-containers-0.375.1","metadata":{"installedTimestamp":1721111493438,"pinned":false,"source":"gallery","id":"93ce222b-5f6f-49b7-9ab1-a0463c6238df","publisherId":"ac9410a2-0d75-40ec-90de-b59bb705801d","publisherDisplayName":"Microsoft","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"devfile.vscode-devfile","uuid":"70d17879-b4b4-490a-9b0e-d53eea36cb09"},"version":"0.0.2","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/devfile.vscode-devfile-0.0.2","scheme":"file"},"relativeLocation":"devfile.vscode-devfile-0.0.2","metadata":{"installedTimestamp":1721111518491,"pinned":false,"source":"gallery","id":"70d17879-b4b4-490a-9b0e-d53eea36cb09","publisherId":"0024dde8-60ee-4c45-bf62-236dbb9c13a5","publisherDisplayName":"Devfile","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"vivaxy.vscode-conventional-commits","uuid":"b6b26bce-33f4-4bce-bf92-89812388ed0a"},"version":"1.25.0","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/vivaxy.vscode-conventional-commits-1.25.0","scheme":"file"},"relativeLocation":"vivaxy.vscode-conventional-commits-1.25.0","metadata":{"installedTimestamp":1721148775087,"pinned":false,"source":"gallery","id":"b6b26bce-33f4-4bce-bf92-89812388ed0a","publisherId":"cd0bc23b-0195-4718-a6dd-c6611ee1c8bf","publisherDisplayName":"vivaxy","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"samdev.arcade-vsc","uuid":"e33b7e18-c35b-4c08-a34d-657e6ab28bc1"},"version":"0.6.4","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/samdev.arcade-vsc-0.6.4","scheme":"file"},"relativeLocation":"samdev.arcade-vsc-0.6.4","metadata":{"installedTimestamp":1721285662373,"pinned":false,"source":"gallery","id":"e33b7e18-c35b-4c08-a34d-657e6ab28bc1","publisherId":"06985fcc-99d2-463a-a49e-b8d30bd85394","publisherDisplayName":"samdev","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"github.vscode-github-actions","uuid":"04f49bfc-8330-4eee-8237-ea938fb755ef"},"version":"0.26.3","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/github.vscode-github-actions-0.26.3","scheme":"file"},"relativeLocation":"github.vscode-github-actions-0.26.3","metadata":{"installedTimestamp":1721292342494,"source":"gallery","id":"04f49bfc-8330-4eee-8237-ea938fb755ef","publisherId":"7c1c19cd-78eb-4dfb-8999-99caf7679002","publisherDisplayName":"GitHub","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"mtxr.sqltools","uuid":"6a2bbab0-d8f0-43fa-9b26-e6a3b7892a0b"},"version":"0.28.3","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/mtxr.sqltools-0.28.3","scheme":"file"},"relativeLocation":"mtxr.sqltools-0.28.3","metadata":{"installedTimestamp":1721674837616,"pinned":false,"source":"gallery","id":"6a2bbab0-d8f0-43fa-9b26-e6a3b7892a0b","publisherId":"952fc94a-735a-4caa-92ce-e1011fbc9780","publisherDisplayName":"Matheus Teixeira","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"mtxr.sqltools-driver-sqlite","uuid":"5862e2aa-ace9-476d-8b10-3b72fa494604"},"version":"0.5.1","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/mtxr.sqltools-driver-sqlite-0.5.1","scheme":"file"},"relativeLocation":"mtxr.sqltools-driver-sqlite-0.5.1","metadata":{"installedTimestamp":1721674862383,"pinned":false,"source":"gallery","id":"5862e2aa-ace9-476d-8b10-3b72fa494604","publisherId":"952fc94a-735a-4caa-92ce-e1011fbc9780","publisherDisplayName":"Matheus Teixeira","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false,"isApplicationScoped":false}},{"identifier":{"id":"mtxr.sqltools-driver-pg","uuid":"ff850146-c38e-4afe-8a34-705074ae16e2"},"version":"0.5.4","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/mtxr.sqltools-driver-pg-0.5.4","scheme":"file"},"relativeLocation":"mtxr.sqltools-driver-pg-0.5.4","metadata":{"installedTimestamp":1721674864405,"pinned":false,"source":"gallery","id":"ff850146-c38e-4afe-8a34-705074ae16e2","publisherId":"952fc94a-735a-4caa-92ce-e1011fbc9780","publisherDisplayName":"Matheus Teixeira","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"mtxr.sqltools-driver-mysql","uuid":"45e19ef7-c10a-44ce-8413-0d9edfbbdcaa"},"version":"0.6.3","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/mtxr.sqltools-driver-mysql-0.6.3","scheme":"file"},"relativeLocation":"mtxr.sqltools-driver-mysql-0.6.3","metadata":{"installedTimestamp":1721963860602,"pinned":false,"source":"gallery","id":"45e19ef7-c10a-44ce-8413-0d9edfbbdcaa","publisherId":"952fc94a-735a-4caa-92ce-e1011fbc9780","publisherDisplayName":"Matheus Teixeira","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"zamerick.vscode-caddyfile-syntax","uuid":"25ffd2ea-ef5b-4f40-9616-092c91332b2f"},"version":"1.0.4","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/zamerick.vscode-caddyfile-syntax-1.0.4","scheme":"file"},"relativeLocation":"zamerick.vscode-caddyfile-syntax-1.0.4","metadata":{"installedTimestamp":1722597317798,"pinned":false,"source":"gallery","id":"25ffd2ea-ef5b-4f40-9616-092c91332b2f","publisherId":"a3b54daa-6c4d-48a5-ae99-2d23a86d7d58","publisherDisplayName":"zamerick","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"matthewpi.caddyfile-support","uuid":"c1d1ec36-b62e-4046-b2e6-0e49df95a9f8"},"version":"0.4.0","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/matthewpi.caddyfile-support-0.4.0","scheme":"file"},"relativeLocation":"matthewpi.caddyfile-support-0.4.0","metadata":{"installedTimestamp":1722597317795,"pinned":false,"source":"gallery","id":"c1d1ec36-b62e-4046-b2e6-0e49df95a9f8","publisherId":"c4b57b1c-ba77-4527-8d3a-85be2eee3f08","publisherDisplayName":"matthewpi","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"prisma.prisma","uuid":"33ce9d6b-41cf-4972-a62b-386f7201981d"},"version":"5.18.0","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/prisma.prisma-5.18.0","scheme":"file"},"relativeLocation":"prisma.prisma-5.18.0","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1723272479974,"pinned":false,"source":"gallery","id":"33ce9d6b-41cf-4972-a62b-386f7201981d","publisherId":"2397d6f3-c7f1-4b03-9029-414f731a68ec","publisherDisplayName":"Prisma","targetPlatform":"undefined","updated":true,"isPreReleaseVersion":false,"hasPreReleaseVersion":false,"preRelease":false}},{"identifier":{"id":"bradlc.vscode-tailwindcss","uuid":"4db62a7c-7d70-419c-96d2-6c3a4dc77ea5"},"version":"0.12.6","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/bradlc.vscode-tailwindcss-0.12.6","scheme":"file"},"relativeLocation":"bradlc.vscode-tailwindcss-0.12.6","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1723272479968,"pinned":false,"source":"gallery","id":"4db62a7c-7d70-419c-96d2-6c3a4dc77ea5","publisherId":"84722833-669b-4c7d-920e-b60e43fae19a","publisherDisplayName":"Tailwind Labs","targetPlatform":"undefined","updated":true,"isPreReleaseVersion":false,"hasPreReleaseVersion":false,"preRelease":false}},{"identifier":{"id":"coolbear.systemd-unit-file","uuid":"fe20f03a-2abf-470a-ab23-d671ec38ce42"},"version":"1.0.6","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/coolbear.systemd-unit-file-1.0.6","scheme":"file"},"relativeLocation":"coolbear.systemd-unit-file-1.0.6","metadata":{"installedTimestamp":1723381910404,"pinned":false,"source":"gallery","id":"fe20f03a-2abf-470a-ab23-d671ec38ce42","publisherId":"73aa15f5-fc31-45ec-ab42-e339b1dee6b6","publisherDisplayName":"coolbear","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"hangxingliu.vscode-systemd-support","uuid":"422d9344-2afe-4ddb-8b9d-f21339087d60"},"version":"2.2.0","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/hangxingliu.vscode-systemd-support-2.2.0","scheme":"file"},"relativeLocation":"hangxingliu.vscode-systemd-support-2.2.0","metadata":{"installedTimestamp":1723381910421,"pinned":false,"source":"gallery","id":"422d9344-2afe-4ddb-8b9d-f21339087d60","publisherId":"43f8445f-f00e-4e08-ab0f-21e398616231","publisherDisplayName":"Liu Yue","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"denoland.vscode-deno","uuid":"91881318-cfd0-4905-adb7-f4e431ca1ead"},"version":"3.38.2","location":{"$mid":1,"fsPath":"/home/gildedguy/.vscode/extensions/denoland.vscode-deno-3.38.2","external":"file:///home/gildedguy/.vscode/extensions/denoland.vscode-deno-3.38.2","path":"/home/gildedguy/.vscode/extensions/denoland.vscode-deno-3.38.2","scheme":"file"},"relativeLocation":"denoland.vscode-deno-3.38.2","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1723571285975,"pinned":false,"source":"gallery","id":"91881318-cfd0-4905-adb7-f4e431ca1ead","publisherId":"d9844221-d0e6-438e-adcd-4f37f93f23b4","publisherDisplayName":"denoland","targetPlatform":"undefined","updated":true,"isPreReleaseVersion":false,"hasPreReleaseVersion":false,"preRelease":false}}]
+43
.config/Code/User/profiles/-1f1e8b58/settings.json
+43
.config/Code/User/profiles/-1f1e8b58/settings.json
···
1
+
{
2
+
"editor.formatOnPaste": true,
3
+
"git.autofetch": true,
4
+
"[markdown]": {
5
+
"editor.wordWrap": "on",
6
+
"editor.defaultFormatter": "esbenp.prettier-vscode"
7
+
},
8
+
"[json]": {
9
+
"editor.defaultFormatter": "esbenp.prettier-vscode"
10
+
},
11
+
"[jsonc]": {
12
+
"editor.defaultFormatter": "vscode.json-language-features"
13
+
},
14
+
"[html]": {
15
+
"editor.defaultFormatter": "esbenp.prettier-vscode"
16
+
},
17
+
"[javascript]": {
18
+
"editor.defaultFormatter": "esbenp.prettier-vscode"
19
+
},
20
+
"[typescript]": {
21
+
"editor.defaultFormatter": "esbenp.prettier-vscode"
22
+
},
23
+
"editor.tokenColorCustomizations": {
24
+
"textMateRules": []
25
+
},
26
+
"workbench.colorTheme": "GitHub Dark Colorblind (Beta)",
27
+
"workbench.productIconTheme": "material-product-icons",
28
+
"workbench.iconTheme": "material-icon-theme",
29
+
"git.confirmSync": false,
30
+
"arcade-vsc.slackID": "U07CAPBB9B5",
31
+
"[typescriptreact]": {
32
+
"editor.defaultFormatter": "vscode.typescript-language-features"
33
+
},
34
+
"workbench.editor.editorActionsLocation": "titleBar",
35
+
"diffEditor.ignoreTrimWhitespace": false,
36
+
"[yaml]": {
37
+
"editor.defaultFormatter": "redhat.vscode-yaml"
38
+
},
39
+
"sqltools.useNodeRuntime": true,
40
+
"sqltools.connections": [],
41
+
"arcade-vsc.notifications.startReminder": true,
42
+
"caddyfile.executable": "/home/gildedguy/.local/bin/caddy"
43
+
}
+1
.config/Code/User/profiles/-388e6ead/extensions.json
+1
.config/Code/User/profiles/-388e6ead/extensions.json
···
1
+
[{"identifier":{"id":"bierner.markdown-footnotes","uuid":"8c379296-feca-4544-853d-f085a1fc638f"},"version":"0.1.1","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/bierner.markdown-footnotes-0.1.1","scheme":"file"},"relativeLocation":"bierner.markdown-footnotes-0.1.1","metadata":{"installedTimestamp":1722010916238,"source":"gallery","id":"8c379296-feca-4544-853d-f085a1fc638f","publisherId":"f164f116-e2aa-496b-84dc-2451248e8beb","publisherDisplayName":"Matt Bierner","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"bierner.markdown-yaml-preamble","uuid":"b872af63-f9e1-438e-9462-0315abe9d3aa"},"version":"0.1.0","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/bierner.markdown-yaml-preamble-0.1.0","scheme":"file"},"relativeLocation":"bierner.markdown-yaml-preamble-0.1.0","metadata":{"installedTimestamp":1722010916254,"source":"gallery","id":"b872af63-f9e1-438e-9462-0315abe9d3aa","publisherId":"f164f116-e2aa-496b-84dc-2451248e8beb","publisherDisplayName":"Matt Bierner","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"bierner.markdown-emoji","uuid":"f595c9c1-28b5-415e-a55f-2deb4a8c3abd"},"version":"0.3.0","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/bierner.markdown-emoji-0.3.0","scheme":"file"},"relativeLocation":"bierner.markdown-emoji-0.3.0","metadata":{"installedTimestamp":1722010916289,"source":"gallery","id":"f595c9c1-28b5-415e-a55f-2deb4a8c3abd","publisherId":"f164f116-e2aa-496b-84dc-2451248e8beb","publisherDisplayName":"Matt Bierner","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"bierner.markdown-checkbox","uuid":"b0db4123-c5d9-4f45-bd2e-70738ebbb304"},"version":"0.4.0","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/bierner.markdown-checkbox-0.4.0","scheme":"file"},"relativeLocation":"bierner.markdown-checkbox-0.4.0","metadata":{"installedTimestamp":1722010916271,"source":"gallery","id":"b0db4123-c5d9-4f45-bd2e-70738ebbb304","publisherId":"f164f116-e2aa-496b-84dc-2451248e8beb","publisherDisplayName":"Matt Bierner","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"bierner.markdown-preview-github-styles","uuid":"5cbdf58a-694a-4aba-af08-61d00842eb03"},"version":"2.0.4","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/bierner.markdown-preview-github-styles-2.0.4","scheme":"file"},"relativeLocation":"bierner.markdown-preview-github-styles-2.0.4","metadata":{"installedTimestamp":1722010916274,"source":"gallery","id":"5cbdf58a-694a-4aba-af08-61d00842eb03","publisherId":"f164f116-e2aa-496b-84dc-2451248e8beb","publisherDisplayName":"Matt Bierner","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"ms-vscode.wordcount","uuid":"03bcac69-2a42-4fd3-ac6e-928090766003"},"version":"0.1.0","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/ms-vscode.wordcount-0.1.0","scheme":"file"},"relativeLocation":"ms-vscode.wordcount-0.1.0","metadata":{"installedTimestamp":1722010916224,"source":"gallery","id":"03bcac69-2a42-4fd3-ac6e-928090766003","publisherId":"5f5636e7-69ed-4afe-b5d6-8d231fb3d3ee","publisherDisplayName":"Microsoft","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"bierner.markdown-mermaid","uuid":"f8d0ffc4-66bb-4a9c-8149-ef8f043691a1"},"version":"1.23.1","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/bierner.markdown-mermaid-1.23.1","scheme":"file"},"relativeLocation":"bierner.markdown-mermaid-1.23.1","metadata":{"installedTimestamp":1722010916227,"source":"gallery","id":"f8d0ffc4-66bb-4a9c-8149-ef8f043691a1","publisherId":"f164f116-e2aa-496b-84dc-2451248e8beb","publisherDisplayName":"Matt Bierner","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"davidanson.vscode-markdownlint","uuid":"daf8b44d-8aae-4da2-80c5-1f770219f643"},"version":"0.55.0","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/davidanson.vscode-markdownlint-0.55.0","scheme":"file"},"relativeLocation":"davidanson.vscode-markdownlint-0.55.0","metadata":{"installedTimestamp":1722010916211,"source":"gallery","id":"daf8b44d-8aae-4da2-80c5-1f770219f643","publisherId":"2e4d1cda-6ef0-4e42-a352-ab540afe8ff0","publisherDisplayName":"David Anson","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"streetsidesoftware.code-spell-checker","uuid":"f6dbd813-b0a0-42c1-90ea-10dde9d925a7"},"version":"3.0.1","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/streetsidesoftware.code-spell-checker-3.0.1","scheme":"file"},"relativeLocation":"streetsidesoftware.code-spell-checker-3.0.1","metadata":{"installedTimestamp":1722010916293,"source":"gallery","id":"f6dbd813-b0a0-42c1-90ea-10dde9d925a7","publisherId":"67600ca7-88fb-4104-9f7e-dd51c00facf2","publisherDisplayName":"Street Side Software","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"printfn.gemini-improved","uuid":"aa33ee8a-1957-4f94-bd6e-1d2185224fe9"},"version":"1.0.6","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/printfn.gemini-improved-1.0.6","scheme":"file"},"relativeLocation":"printfn.gemini-improved-1.0.6","metadata":{"installedTimestamp":1722010947204,"pinned":false,"source":"gallery","id":"aa33ee8a-1957-4f94-bd6e-1d2185224fe9","publisherId":"a3b804cc-19d0-415a-9dd6-2d81f233f47d","publisherDisplayName":"printfn","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"devantler.git-extension-pack-new","uuid":"550e094f-21e1-4b03-998c-afd220b6ff5b"},"version":"1.0.2","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/devantler.git-extension-pack-new-1.0.2","scheme":"file"},"relativeLocation":"devantler.git-extension-pack-new-1.0.2","metadata":{"installedTimestamp":1722016900616,"pinned":false,"source":"gallery","id":"550e094f-21e1-4b03-998c-afd220b6ff5b","publisherId":"3ec68d32-353b-4e25-8f10-0b56f08ed437","publisherDisplayName":"devantler","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"codezombiech.gitignore","uuid":"3e891cf9-53cb-49a3-8d01-8f0b1f0afb29"},"version":"0.9.0","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/codezombiech.gitignore-0.9.0","scheme":"file"},"relativeLocation":"codezombiech.gitignore-0.9.0","metadata":{"installedTimestamp":1722016900634,"pinned":false,"source":"gallery","id":"3e891cf9-53cb-49a3-8d01-8f0b1f0afb29","publisherId":"930310c4-ca8b-4e80-9d19-2b1507b2af61","publisherDisplayName":"CodeZombie","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"gitlab.gitlab-workflow","uuid":"01826860-d71c-4734-9cf8-dc1c07baa5f9"},"version":"5.4.0","location":{"$mid":1,"fsPath":"/home/gildedguy/.vscode/extensions/gitlab.gitlab-workflow-5.4.0","external":"file:///home/gildedguy/.vscode/extensions/gitlab.gitlab-workflow-5.4.0","path":"/home/gildedguy/.vscode/extensions/gitlab.gitlab-workflow-5.4.0","scheme":"file"},"relativeLocation":"gitlab.gitlab-workflow-5.4.0","metadata":{"isApplicationScoped":false,"isMachineScoped":false,"isBuiltin":false,"installedTimestamp":1723132879062,"pinned":false,"source":"gallery","id":"01826860-d71c-4734-9cf8-dc1c07baa5f9","publisherId":"11e0db43-01fa-42a2-aa75-d40835a05df7","publisherDisplayName":"GitLab","targetPlatform":"undefined","updated":true,"isPreReleaseVersion":false,"hasPreReleaseVersion":false,"preRelease":false}}]
+17
.config/Code/User/profiles/-388e6ead/settings.json
+17
.config/Code/User/profiles/-388e6ead/settings.json
···
1
+
{
2
+
"workbench.colorTheme": "Default Light Modern",
3
+
"editor.minimap.enabled": false,
4
+
"breadcrumbs.enabled": false,
5
+
"editor.glyphMargin": false,
6
+
"explorer.decorations.badges": false,
7
+
"explorer.decorations.colors": false,
8
+
"editor.fontLigatures": true,
9
+
"files.autoSave": "afterDelay",
10
+
"git.enableSmartCommit": true,
11
+
"window.commandCenter": true,
12
+
"editor.renderWhitespace": "none",
13
+
"workbench.editor.untitled.hint": "hidden",
14
+
"markdown.validate.enabled": true,
15
+
"markdown.updateLinksOnFileMove.enabled": "prompt",
16
+
"workbench.startupEditor": "none"
17
+
}
+1
.config/Code/User/profiles/.gitignore
+1
.config/Code/User/profiles/.gitignore
···
1
+
**/globalStorage/*
+1
.config/Code/User/profiles/5c2930e8/extensions.json
+1
.config/Code/User/profiles/5c2930e8/extensions.json
···
1
+
[{"identifier":{"id":"mtxr.sqltools","uuid":"6a2bbab0-d8f0-43fa-9b26-e6a3b7892a0b"},"version":"0.28.3","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/mtxr.sqltools-0.28.3","scheme":"file"},"relativeLocation":"mtxr.sqltools-0.28.3","metadata":{"installedTimestamp":1723205232033,"pinned":false,"source":"gallery","id":"6a2bbab0-d8f0-43fa-9b26-e6a3b7892a0b","publisherId":"952fc94a-735a-4caa-92ce-e1011fbc9780","publisherDisplayName":"Matheus Teixeira","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"golang.go","uuid":"d6f6cfea-4b6f-41f4-b571-6ad2ab7918da"},"version":"0.42.0","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/golang.go-0.42.0","scheme":"file"},"relativeLocation":"golang.go-0.42.0","metadata":{"installedTimestamp":1723205854713,"source":"gallery","id":"d6f6cfea-4b6f-41f4-b571-6ad2ab7918da","publisherId":"dbf6ae0a-da75-4167-ac8b-75b4512f2153","publisherDisplayName":"Go Team at Google","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"ms-vscode-remote.remote-ssh","uuid":"607fd052-be03-4363-b657-2bd62b83d28a"},"version":"0.113.1","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/ms-vscode-remote.remote-ssh-0.113.1","scheme":"file"},"relativeLocation":"ms-vscode-remote.remote-ssh-0.113.1","metadata":{"installedTimestamp":1723222602589,"pinned":false,"source":"gallery","id":"607fd052-be03-4363-b657-2bd62b83d28a","publisherId":"ac9410a2-0d75-40ec-90de-b59bb705801d","publisherDisplayName":"Microsoft","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"ms-vscode.remote-explorer","uuid":"11858313-52cc-4e57-b3e4-d7b65281e34b"},"version":"0.4.3","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/ms-vscode.remote-explorer-0.4.3","scheme":"file"},"relativeLocation":"ms-vscode.remote-explorer-0.4.3","metadata":{"installedTimestamp":1723222602590,"pinned":false,"source":"gallery","id":"11858313-52cc-4e57-b3e4-d7b65281e34b","publisherId":"5f5636e7-69ed-4afe-b5d6-8d231fb3d3ee","publisherDisplayName":"Microsoft","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"ms-vscode-remote.remote-ssh-edit","uuid":"bfeaf631-bcff-4908-93ed-fda4ef9a0c5c"},"version":"0.86.0","location":{"$mid":1,"path":"/home/gildedguy/.vscode/extensions/ms-vscode-remote.remote-ssh-edit-0.86.0","scheme":"file"},"relativeLocation":"ms-vscode-remote.remote-ssh-edit-0.86.0","metadata":{"installedTimestamp":1723222602709,"pinned":false,"source":"gallery","id":"bfeaf631-bcff-4908-93ed-fda4ef9a0c5c","publisherId":"ac9410a2-0d75-40ec-90de-b59bb705801d","publisherDisplayName":"Microsoft","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}},{"identifier":{"id":"denoland.vscode-deno","uuid":"91881318-cfd0-4905-adb7-f4e431ca1ead"},"version":"3.38.2","location":{"$mid":1,"fsPath":"/home/gildedguy/.vscode/extensions/denoland.vscode-deno-3.38.2","path":"/home/gildedguy/.vscode/extensions/denoland.vscode-deno-3.38.2","scheme":"file"},"relativeLocation":"denoland.vscode-deno-3.38.2","metadata":{"installedTimestamp":1723719325151,"pinned":false,"source":"gallery","id":"91881318-cfd0-4905-adb7-f4e431ca1ead","publisherId":"d9844221-d0e6-438e-adcd-4f37f93f23b4","publisherDisplayName":"denoland","targetPlatform":"undefined","updated":false,"isPreReleaseVersion":false,"hasPreReleaseVersion":false}}]
+79
.config/Code/User/settings.json
+79
.config/Code/User/settings.json
···
1
+
{
2
+
"workbench.colorTheme": "GitHub Dark Colorblind (Beta)",
3
+
"editor.tokenColorCustomizations": {
4
+
"textMateRules": [
5
+
{
6
+
"scope": "keyword.other.dotenv",
7
+
"settings": {
8
+
"foreground": "#FF000000"
9
+
}
10
+
}
11
+
]
12
+
},
13
+
"workbench.iconTheme": "material-icon-theme",
14
+
"workbench.productIconTheme": "material-product-icons",
15
+
"application.shellEnvironmentResolutionTimeout": 30,
16
+
"arcade-vsc.slackID": "U07CAPBB9B5",
17
+
"explorer.confirmDragAndDrop": false,
18
+
"[yaml]": {
19
+
"editor.defaultFormatter": "redhat.vscode-yaml"
20
+
},
21
+
"git.confirmSync": false,
22
+
"git.autofetch": true,
23
+
"window.customTitleBarVisibility": "auto",
24
+
"window.confirmBeforeClose": "never",
25
+
"window.titleBarStyle": "custom",
26
+
"window.menuBarVisibility": "visible",
27
+
"gpgIndicator.enablePassphraseCache": true,
28
+
"cSpell.userWords": [
29
+
"Infinix",
30
+
"Yubikey"
31
+
],
32
+
"workbench.experimental.enableNewProfilesUI": true,
33
+
"editor.codeActionsOnSave": {},
34
+
"sqltools.useNodeRuntime": true,
35
+
"files.watcherExclude": {
36
+
"**/.git/objects/**": true,
37
+
"**/.git/subtree-cache/**": true,
38
+
"**/node_modules/*/**": true,
39
+
"**/.cache/**": true
40
+
},
41
+
"git.alwaysSignOff": true,
42
+
"git.checkoutType": [
43
+
"local",
44
+
"remote",
45
+
"tags"
46
+
],
47
+
"gitlens.autolinks": [
48
+
{
49
+
"ignoreCase": true,
50
+
"prefix": "LAUNCHPAD-",
51
+
"url": "https://youtrack.andreijiroh.xyz/issue/LAUNCHPAD-<num>"
52
+
},
53
+
{
54
+
"ignoreCase": true,
55
+
"prefix": "LAUNCHPAD-T",
56
+
"url": "https://youtrack.andreijiroh.xyz/issue/LAUNCHPAD-<num>"
57
+
},
58
+
{
59
+
"ignoreCase": true,
60
+
"prefix": "META-",
61
+
"url": "https://youtrack.recaptime.dev/issue/META-<num>"
62
+
},
63
+
{
64
+
"ignoreCase": true,
65
+
"prefix": "META-T-",
66
+
"url": "https://youtrack.recaptime.dev/issue/META-<num>"
67
+
}
68
+
],
69
+
"settingsSync.ignoredSettings": [
70
+
"caddyfile.executable"
71
+
],
72
+
"redhat.telemetry.enabled": true,
73
+
"window.autoDetectColorScheme": true,
74
+
"workbench.preferredDarkColorTheme": "GitHub Dark Colorblind (Beta)",
75
+
"workbench.preferredHighContrastColorTheme": "GitHub Dark High Contrast",
76
+
"workbench.preferredHighContrastLightColorTheme": "GitHub Light High Contrast",
77
+
"workbench.preferredLightColorTheme": "GitHub Light Colorblind (Beta)",
78
+
"workbench.trustedDomains.promptInTrustedWorkspace": true
79
+
}
+80
.config/aliases
+80
.config/aliases
···
1
+
#!/bin/env sh
2
+
3
+
# Aliases across shells. Note that this is only tested on Bash and Zsh, with a bit of testing
4
+
# on ash.
5
+
6
+
# basic git commands
7
+
alias clone="git clone"
8
+
alias stats="git status"
9
+
10
+
## shortcuts to creating commits
11
+
alias commit="git commit --signoff --gpg-sign"
12
+
alias commit-nogpg="git commit --signoff --no-gpg-sign"
13
+
alias new-checkpoint="commit"
14
+
alias new-checkpoint-nogpg="commit-nogpg"
15
+
16
+
## shortcuts to creating tags
17
+
alias tag-checkpoint="git tag --gpg-sign"
18
+
alias tag-checkpoint-nogpg="git tag --no-gpg-sign"
19
+
alias new-tag="tag-checkpoint"
20
+
alias new-tag-nogpg="tag-checkpoint-nogpg"
21
+
22
+
## shortcuts to managing yiff stash
23
+
alias stash="git stash push --keep-index"
24
+
alias pop-stash="git stash pop"
25
+
alias apply-stash="git stash apply"
26
+
alias yeet-stash="git stash drop"
27
+
28
+
## staging stuff
29
+
alias stage="git add"
30
+
alias unstage="git restore --staged"
31
+
alias nuke-from-index="git rm"
32
+
33
+
# branch management
34
+
alias rename-branch="git branch -m"
35
+
alias set-upstream-remote="git branch -u"
36
+
37
+
# remote management
38
+
alias change-origin="git remote set-url origin"
39
+
alias change-upstream="git remote set-url upstream"
40
+
alias add-remote="git remote add"
41
+
alias change-remote-url="git remote set-url"
42
+
alias nuke-remote="git remote remove"
43
+
alias remove-remote="nuke-remote"
44
+
45
+
# git push
46
+
alias push="git push"
47
+
## add main:master since Git assumes local branch to
48
+
## remote branch when running this alias
49
+
alias deploy-divio="git push divio"
50
+
51
+
# fetch / pull
52
+
alias fetch="git fetch --all"
53
+
## depending on remote branch at upstream,
54
+
## assumes its same branch.
55
+
alias pull-upstream="fetch && git pull upstream"
56
+
alias pull-origin="fetch && git pull origin"
57
+
58
+
# history-cleanup like scripts
59
+
alias clean-shellhis="history -c && clear"
60
+
61
+
# test SSH connections
62
+
alias test-gh-ssh="ssh -p 22 git@github.com"
63
+
alias test-gl-ssh="ssh -p 22 git@gitlab.com"
64
+
65
+
# ssh-agent stuff
66
+
## quock shortcut into add-ssh-keys stuff
67
+
#alias add-ssh-key="$HOME/.dotfiles/bin/add-ssh-keys"
68
+
69
+
# shortcuts to some functions
70
+
alias edit-script="edit-script-file"
71
+
72
+
# add a bit of test here
73
+
alias guild-test="echo successfully imported owo"
74
+
75
+
# shortcuts for rdp stuff
76
+
alias bshq-cursed='rdesktop --user cursed-remote-user -r audio:local -x lan -r clipboard:PRIMARYCLIPBOARD -n guildedguy bullshit.hq'
77
+
78
+
# manage submodules
79
+
alias module="git submodule"
80
+
alias update-module="git submodule update --remote --merge"
+13
.config/bash/README.md
+13
.config/bash/README.md
···
1
+
# bashrc configurations
2
+
3
+
Host-specifics (including in `~vern`), maybe bash-specific functions.
4
+
Global configs are at [`~/.bashrc`](../../.bashrc),
5
+
[`~/.bash_login`](../../.bash_login) and [POSIX-compliant `~/.profile`](../../.profile).
6
+
7
+
## Directories and files
8
+
9
+
* `completions`
10
+
* `hosts`
11
+
* `shell-prompts`
12
+
* `tools`
13
+
* `aliases`
+37
-34
.config/bash/aliases
+37
-34
.config/bash/aliases
···
1
-
#!/usr/bin/env bash
2
-
3
-
# enable color support of ls and also add handy aliases
4
-
if [ -x /usr/bin/dircolors ]; then
5
-
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
6
-
alias ls='ls --color=auto'
7
-
#alias dir='dir --color=auto'
8
-
#alias vdir='vdir --color=auto'
9
-
10
-
alias grep='grep --color=auto'
11
-
alias fgrep='fgrep --color=auto'
12
-
alias egrep='egrep --color=auto'
13
-
fi
14
-
15
-
alias ll='ls -alF'
16
-
alias la='ls -A'
17
-
alias l='ls -CF'
18
-
1
+
# General
2
+
alias clear="printf '\033c'" # faster than ncurses clear by a lot
3
+
alias c='clear'
4
+
alias bashrc="${EDITOR:-"nano"} ~/.bashrc && source ~/.bashrc"
5
+
# LS
6
+
alias ls='ls --color=auto -FAh'
7
+
alias ll='ls -l'
8
+
alias la='ls'
9
+
alias l.='ls | egrep "^\."'
10
+
alias l=ls
11
+
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
12
+
alias dir='dir --color=auto'
13
+
alias vdir='vdir --color=auto'
14
+
# GREP
15
+
alias grep='grep --color=auto'
16
+
alias egrep='egrep --color=auto'
17
+
alias fgrep='fgrep --color=auto'
18
+
# GIT
19
+
alias ga='git add'
20
+
alias gc='git commit'
21
+
alias gp='git push'
22
+
alias lc='fc -nl $HISTCMD'
23
+
# CADDY
24
+
alias rc='caddy reload --config ~/Caddyfile'
25
+
alias ft='caddy fmt --overwrite ~/Caddyfile'
26
+
alias vt='caddy validate --config ~/Caddyfile'
27
+
# Navigation
19
28
alias ..='cd ..'
20
-
alias ...='cd ../..'
21
-
22
-
# git
23
-
alias clone='git clone'
24
-
alias status='git status'
25
-
alias stats='git status'
26
-
alias stash='git stash'
27
-
alias commit='git commit'
28
-
alias signoff='git commit --signoff'
29
-
alias push='git push'
30
-
alias fetch='git fetch'
31
-
alias pull='git pull --rebase'
32
-
alias remotes='git remote -v'
33
-
alias switch-upstream='git branch -u'
34
-
alias module="git submodule"
35
-
alias update-module="git submodule update --remote --merge"
29
+
alias ...='cd ../../'
30
+
alias ....='cd ../../../'
31
+
alias .....='cd ../../../../'
32
+
# Readability
33
+
alias cp="cp -iv"
34
+
alias mv='mv -iv'
35
+
alias rm='rm -iv'
36
+
alias df='df -h'
37
+
alias free='free -m'
38
+
alias mkdir='mkdir -pv'
+84
.config/bash/bashrc
+84
.config/bash/bashrc
···
1
+
# ~/.bashrc: executed by bash(1) for non-login shells.
2
+
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
3
+
# for examples
4
+
5
+
# If not running interactively, don't do anything
6
+
#case $- in
7
+
# *i*) ;;
8
+
# *) return;;
9
+
#esac
10
+
11
+
# don't put duplicate lines or lines starting with space in the history.
12
+
# See bash(1) for more options
13
+
HISTCONTROL=ignoreboth
14
+
15
+
# append to the history file, don't overwrite it
16
+
shopt -s histappend
17
+
18
+
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
19
+
HISTSIZE=1000
20
+
HISTFILESIZE=2000
21
+
22
+
# check the window size after each command and, if necessary,
23
+
# update the values of LINES and COLUMNS.
24
+
shopt -s checkwinsize
25
+
26
+
# If set, the pattern "**" used in a pathname expansion context will
27
+
# match all files and zero or more directories and subdirectories.
28
+
#shopt -s globstar
29
+
30
+
# make less more friendly for non-text input files, see lesspipe(1)
31
+
#[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
32
+
33
+
# set a fancy prompt (non-color, unless we know we "want" color)
34
+
case "$TERM" in
35
+
xterm-color|*-256color) color_prompt=yes;;
36
+
esac
37
+
38
+
# uncomment for a colored prompt, if the terminal has the capability; turned
39
+
# off by default to not distract the user: the focus in a terminal window
40
+
# should be on the output of commands, not on the prompt
41
+
#force_color_prompt=yes
42
+
43
+
if [ -n "$force_color_prompt" ]; then
44
+
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
45
+
# We have color support; assume it's compliant with Ecma-48
46
+
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
47
+
# a case would tend to support setf rather than setaf.)
48
+
color_prompt=yes
49
+
else
50
+
color_prompt=
51
+
fi
52
+
fi
53
+
54
+
# If this is an xterm set the title to user@host:dir
55
+
case "$TERM" in
56
+
xterm*|rxvt*)
57
+
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
58
+
;;
59
+
*)
60
+
;;
61
+
esac
62
+
63
+
# colored GCC warnings and errors
64
+
export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
65
+
66
+
# Alias definitions.
67
+
# You may want to put all your additions into a separate file like
68
+
# ~/.bash_aliases, instead of adding them here directly.
69
+
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
70
+
71
+
source "${HOME}/.config/bash/aliases"
72
+
source "${HOME}/.config/bash/tools/automated-deploy.bashrc"
73
+
source "${HOME}/.config/bash/functions"
74
+
75
+
# enable programmable completion features (you don't need to enable
76
+
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
77
+
# sources /etc/bash.bashrc).
78
+
if ! shopt -oq posix; then
79
+
if [ -f /usr/share/bash-completion/bash_completion ]; then
80
+
. /usr/share/bash-completion/bash_completion
81
+
elif [ -f /etc/bash_completion ]; then
82
+
. /etc/bash_completion
83
+
fi
84
+
fi
+11
.config/bash/completions/gopass.bash
+11
.config/bash/completions/gopass.bash
···
1
+
_gopass_bash_autocomplete() {
2
+
local cur opts base
3
+
COMPREPLY=()
4
+
cur="${COMP_WORDS[COMP_CWORD]}"
5
+
opts=$( ${COMP_WORDS[@]:0:$COMP_CWORD} --generate-bash-completion )
6
+
local IFS=$'\n'
7
+
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
8
+
return 0
9
+
}
10
+
11
+
complete -F _gopass_bash_autocomplete gopass
+53
.config/bash/functions
+53
.config/bash/functions
···
1
+
#!/usr/bin/env bash
2
+
# shellcheck disable=SC2046
3
+
4
+
# handle .env.keys detection
5
+
_load_env_keys() {
6
+
if [[ "$LAST_DOTENV_DIR" == "$PWD" ]]; then
7
+
return
8
+
elif [[ "$LAST_DOTENV_DIR" != "$PWD" ]] && [ -f "$LAST_DOTENV_DIR/.env.keys" ]; then
9
+
return
10
+
fi
11
+
12
+
if [ -f "$PWD/.env.keys" ] && [[ "$LOADED_DOTENV_KEYS" != "1" ]]; then
13
+
echo "dotenv-keys: loading up dotenv keys from this directory"
14
+
export "$(grep -v '^#' .env.keys | xargs)"
15
+
export DOTENV_KEYS_LOADED=1 LAST_DOTENV_DIR=$PWD DOTENV_KEYS_LOADER=auto
16
+
elif [ ! -f "$PWD/.env.keys" ] && [[ "$LOADED_DOTENV_KEYS" == "1" ]]; then
17
+
echo "dotenv-keys: unloading dotenv keys"
18
+
unset "${!DOTENV_PRIVATE_KEYS*}" DOTENV_KEYS_LOADED DOTENV_KEYS_LOADER
19
+
export LAST_DOTENV_DIR=$PWD
20
+
fi
21
+
}
22
+
23
+
if [[ ";${PROMPT_COMMAND[*]:-};" != *";_load_env_keys;"* ]]; then
24
+
if [[ "$(declare -p PROMPT_COMMAND 2>&1)" == "declare -a"* ]]; then
25
+
PROMPT_COMMAND=(_load_env_keys "${PROMPT_COMMAND[@]}")
26
+
else
27
+
PROMPT_COMMAND="_load_env_keys${PROMPT_COMMAND:+;$PROMPT_COMMAND}"
28
+
fi
29
+
fi
30
+
31
+
# Allow manual access to .env.keys, even without the keys autoloader.
32
+
dotenv-keys() {
33
+
if [[ $1 == "load" ]]; then
34
+
if [ ! -f "$PWD/.env.keys" ]; then
35
+
echo "error: missing dotenv encryption keys"
36
+
return 1
37
+
fi
38
+
39
+
echo "dotenv-keys: loading up dotenv keys from this directory"
40
+
export "$(grep -v '^#' .env.keys | xargs)"
41
+
42
+
export LOADED_DOTENV_KEYS=$PWD DOTENV_KEYS_LOADER=manual DOTENV_KEYS_LOADED=1
43
+
elif [[ $1 == "unload" ]]; then
44
+
echo "dotenv-keys: manually unloading dotenv keys"
45
+
unset "${!DOTENV_PRIVATE_KEY*}" DOTENV_KEYS_LOADED DOTENV_KEYS_LOADER DOTENV_KEYS_LOADED
46
+
else
47
+
echo "dotenv-keys - .env.keys manager for dotenvx"
48
+
echo ""
49
+
echo "Commands:"
50
+
echo " load - load keys from .env.keys in current directory into shell session"
51
+
echo " unload - unload keys from shell session"
52
+
fi
53
+
}
+7
.config/bash/hosts/btwscar-wsl-Alpine.bashrc
+7
.config/bash/hosts/btwscar-wsl-Alpine.bashrc
.config/bash/shell-prompts/.gitkeep
.config/bash/shell-prompts/.gitkeep
This is a binary file and will not be displayed.
+59
.config/bash/shell-prompts/psflt.bashrc
+59
.config/bash/shell-prompts/psflt.bashrc
···
1
+
#!/usr/bin/env bash
2
+
3
+
__sig() {
4
+
# Giant switch case for getting the name of the signal (`kill -l`)
5
+
a=0
6
+
for i in $@; do
7
+
a=$((a+1))
8
+
case $i in
9
+
126) printf ACCES ;;
10
+
127) printf NOENT ;;
11
+
129) printf HUP ;;
12
+
130) printf INT ;;
13
+
131) printf QUIT ;;
14
+
132) printf ILL ;;
15
+
133) printf TRAP ;;
16
+
134) printf ABRT ;;
17
+
135) printf BUS ;;
18
+
136) printf FPE ;;
19
+
137) printf KILL ;;
20
+
138) printf USR1 ;;
21
+
139) printf SEGV ;;
22
+
140) printf USR2 ;;
23
+
141) printf PIPE ;;
24
+
142) printf ALRM ;;
25
+
143) printf TERM ;;
26
+
144) printf STKFLT ;;
27
+
145) printf CHLD ;;
28
+
146) printf CONT ;;
29
+
147) printf STOP ;;
30
+
148) printf TSTP ;;
31
+
149) printf TTIN ;;
32
+
150) printf TTOU ;;
33
+
151) printf URG ;;
34
+
152) printf XCPU ;;
35
+
153) printf XFSZ ;;
36
+
154) printf VTALRM ;;
37
+
155) printf PROF ;;
38
+
156) printf WINCH ;;
39
+
157) printf IO ;;
40
+
158) printf PWR ;;
41
+
159) printf SYS ;;
42
+
16[3-9]|1[7-8][0-9]|19[0-2]) printf RT$(($i-128)) ;; # Savagery
43
+
*) printf $i ;; # Print exit code if not in list
44
+
esac
45
+
done
46
+
}
47
+
sig() {
48
+
PLC=(${PIPESTATUS[@]})
49
+
printf "$(__sig ${PLC[@]})"
50
+
}
51
+
NO_COLOUR="\[\033[0m\]"
52
+
# Bold Colours
53
+
RED="\[\033[01;31m\]"
54
+
GREEN="\[\033[01;32m\]"
55
+
YELLOW="\[\033[01;33m\]"
56
+
BLUE="\[\033[01;34m\]"
57
+
58
+
PS1="[${RED}\$(sig)${NO_COLOUR}] [\t] [${RED}\u${NO_COLOUR}@${GREEN}\h${NO_COLOUR}|${BLUE}\w${NO_COLOUR}] [${YELLOW}#\#${NO_COLOUR}] ${GREEN}\$ ${NO_COLOUR}"
59
+
+171
.config/bash/shell-prompts/vern.bashrc
+171
.config/bash/shell-prompts/vern.bashrc
···
1
+
#!/bin/bash
2
+
# shebang for syntax highlighting purposes
3
+
4
+
# Colors
5
+
_NON="\[\033[0m\]"
6
+
_BLD="\[\033[1m\]" # YEP BALD
7
+
_BLK="\[\033[30m\]"
8
+
_RED="\[\033[31m\]"
9
+
_GRN="\[\033[32m\]"
10
+
_YLW="\[\033[33m\]"
11
+
_BLU="\[\033[34m\]"
12
+
_PRP="\[\033[35m\]"
13
+
_CYN="\[\033[36m\]"
14
+
_WHT="\[\033[37m\]"
15
+
16
+
__debug_trap() {
17
+
# Set necessary pre-command variables (PROMPT_COMMAND is a
18
+
# command so its excluded here)
19
+
if [[ "$BASH_COMMAND" != "$PROMPT_COMMAND"
20
+
&& "$LAST_BASH_COMMAND" == "$PROMPT_COMMAND" ]]; then
21
+
INC_TIME=1
22
+
LAST_RT="$EPOCHREALTIME" # This should be the last thing done in this function
23
+
fi
24
+
LAST_BASH_COMMAND="$BASH_COMMAND"
25
+
}
26
+
27
+
trap '__debug_trap' DEBUG
28
+
29
+
__get_cmd_time() {
30
+
# Set hours minutes seconds and remove preceding zeros
31
+
local YEAR=$((10#0$(($(TZ=UTC printf '%(%Y)T' $CMD_TIME)))-1970))
32
+
local DAYS=$((10#0$(TZ=UTC printf '%(%j)T' $CMD_TIME)))
33
+
local HOUR=$((10#0$(TZ=UTC printf '%(%H)T' $CMD_TIME)))
34
+
local MINS=$((10#0$(TZ=UTC printf '%(%M)T' $CMD_TIME)))
35
+
local SECS=$((10#0$(TZ=UTC printf '%(%S)T' $CMD_TIME)))
36
+
37
+
# Choose whether or not to print hours minutes and seconds
38
+
[[ $CMD_TIME -ge 31536000 ]] && printf '%sy ' ${YEAR}
39
+
[[ $CMD_TIME -ge 86400 ]] && printf '%sd ' ${DAYS}
40
+
[[ $CMD_TIME -ge 3600 ]] && printf '%sh ' ${HOUR}
41
+
[[ $CMD_TIME -ge 60 ]] && printf '%sm ' ${MINS}
42
+
[[ $CMD_TIME -ge 1 ]] && printf '%ss ' ${SECS}
43
+
# If you want to have a limit uncomment the next line and replace somenum with
44
+
# the minimum microseconds
45
+
# [[ $CMD_US -ge somenum ]] &&
46
+
printf '%sฮผs' ${CMD_US:-0}
47
+
}
48
+
49
+
__sig() {
50
+
# Giant switch case for getting the name of the signal (`kill -l`)
51
+
j=0
52
+
for i in $@; do
53
+
if [[ $j != 0 ]]; then
54
+
printf '%s|%s' "$_WHT" "$_RED"
55
+
fi
56
+
j=$((j+1))
57
+
case $i in
58
+
126) printf ACCES ;;
59
+
127) printf NOENT ;;
60
+
129) printf HUP ;;
61
+
130) printf INT ;;
62
+
131) printf QUIT ;;
63
+
132) printf ILL ;;
64
+
133) printf TRAP ;;
65
+
134) printf ABRT ;;
66
+
135) printf BUS ;;
67
+
136) printf FPE ;;
68
+
137) printf KILL ;;
69
+
138) printf USR1 ;;
70
+
139) printf SEGV ;;
71
+
140) printf USR2 ;;
72
+
141) printf PIPE ;;
73
+
142) printf ALRM ;;
74
+
143) printf TERM ;;
75
+
144) printf STKFLT ;;
76
+
145) printf CHLD ;;
77
+
146) printf CONT ;;
78
+
147) printf STOP ;;
79
+
148) printf TSTP ;;
80
+
149) printf TTIN ;;
81
+
150) printf TTOU ;;
82
+
151) printf URG ;;
83
+
152) printf XCPU ;;
84
+
153) printf XFSZ ;;
85
+
154) printf VTALRM ;;
86
+
155) printf PROF ;;
87
+
156) printf WINCH ;;
88
+
157) printf IO ;;
89
+
158) printf PWR ;;
90
+
159) printf SYS ;;
91
+
16[3-9]|1[7-8][0-9]|19[0-2]) printf RT$(($i-128)) ;; # Savagery
92
+
*) printf $i ;; # Print exit code if not in list
93
+
esac
94
+
done
95
+
}
96
+
97
+
__ssh() {
98
+
local CON=($SSH_CONNECTION)
99
+
local SRV_IP="${CON[2]}"
100
+
[[ -z "$SRV_IP" ]] && return
101
+
local SRV_PORT="${CON[3]}"
102
+
# 4 chars from startand 4 chars from end
103
+
local SRV_IP_CUT="${_CYN}${SRV_IP}"
104
+
[[ ${#SRV_IP} -gt 8 ]] && local SRV_IP_CUT="${_CYN}${SRV_IP:0:4}${_WHT}*${_CYN}${SRV_IP: -4}"
105
+
106
+
printf '%s' "${_GRN}${_BLU}[${SRV_IP_CUT}${_PRP}${_BLD}:${_NON}${_CYN}${SRV_PORT}${_BLU}]${_NON}"
107
+
}
108
+
109
+
__prompt() {
110
+
# Get exit code (must be first)
111
+
local PLC=(${PIPESTATUS[@]})
112
+
113
+
# Reset time when prompt was first displayed after command
114
+
# this contributes to the 40 microsecond difference in $CMD_US and the actual time it took
115
+
if [[ "$INC_TIME" != 0 ]]; then
116
+
PROMPT_RT="$EPOCHREALTIME"
117
+
INC_TIME=0
118
+
fi
119
+
120
+
# *_RT may not be set
121
+
LAST_RT="${LAST_RT:-$EPOCHREALTIME}"
122
+
PROMPT_RT="${PROMPT_RT:-$EPOCHREALTIME}"
123
+
124
+
# Get relative times
125
+
126
+
# Remove decimal point, simulating multiplying by 1 million
127
+
PROMPT_RT1M="${PROMPT_RT/.}"
128
+
LAST_RT1M="${LAST_RT/.}"
129
+
130
+
CMD_US="$(($PROMPT_RT1M-$LAST_RT1M))"
131
+
132
+
CMD_TIME=0
133
+
134
+
# Remove last 6 chars, simulating dividing by 1 million to get a more accurate difference
135
+
[[ ${#CMD_US} -lt 6 ]] || CMD_TIME="${CMD_US::-6}"
136
+
137
+
[[ ${#CMD_US} -lt 6 ]] || CMD_US="${CMD_US: -6}"
138
+
CMD_US="$((10#0$CMD_US))"
139
+
140
+
# Set prompt sections
141
+
142
+
# Text
143
+
144
+
# ssh detection and indicator
145
+
[[ "$SSH_CONNECTION" ]] && local SSH="$(__ssh) "
146
+
147
+
# [INT], [4], etc.
148
+
local i
149
+
for i in ${PLC[@]}; do
150
+
if [[ $i > 0 ]]; then
151
+
local SIG="$(printf '%s[%s%s%s] ' "$_BLU" "$_RED" "$(__sig ${PLC[@]})" "$_BLU")"
152
+
break
153
+
fi
154
+
done
155
+
156
+
# [user@homeserver:~]
157
+
local COL="$([[ $UID == 0 ]] && printf '%s' "$_RED" || printf '%s' "$_YLW")"
158
+
local UHD="${_BLD}${_BLU}[${COL}\u${_PRP}@${_CYN}\h${_PRP}:${_GRN}\w${_BLU}]"
159
+
160
+
# 2y 351d 12m 43s 382969ฮผs
161
+
local TIME="${_YLW}$(__get_cmd_time)"
162
+
163
+
# Random colored $ or #
164
+
_RAND256="\[\033[38;2;$((RANDOM%256));$((RANDOM%256));$((RANDOM%256))m\]"
165
+
local IND="${_RAND256}\\$"
166
+
167
+
# Set the prompt
168
+
PS1="${_NON}${SSH}${SIG}${UHD} ${TIME} ${IND} ${_NON}"
169
+
}
170
+
171
+
PROMPT_COMMAND=__prompt
+7
.config/bash/tools/asdf.bashrc
+7
.config/bash/tools/asdf.bashrc
+10
.config/bash/tools/automated-deploy.bashrc
+10
.config/bash/tools/automated-deploy.bashrc
···
1
+
#!/usr/bin/env bash
2
+
3
+
for file in "${HOME}"/.config/bash/tools/*.bashrc; do
4
+
if [ "$file" == "${HOME}/.config/bash/tools/automated-deploy.bashrc" ]; then
5
+
[[ $DEBUG != "" ]] && echo "avoiding source loop, skipping $file"
6
+
else
7
+
[[ $DEBUG != "" ]] && echo "sourcing $file"
8
+
source "$file"
9
+
fi
10
+
done
+5
.config/bash/tools/brew.bashrc
+5
.config/bash/tools/brew.bashrc
+4
.config/bash/tools/deno.bashrc
+4
.config/bash/tools/deno.bashrc
+9
.config/bash/tools/nixpkgs.bashrc
+9
.config/bash/tools/nixpkgs.bashrc
+5
.config/bash/tools/nvm.bashrc
+5
.config/bash/tools/nvm.bashrc
+5
.config/bash/tools/yadm.bashrc
+5
.config/bash/tools/yadm.bashrc
+248
.config/btop/btop.conf
+248
.config/btop/btop.conf
···
1
+
#? Config file for btop v. 1.3.2
2
+
3
+
#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes.
4
+
#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes"
5
+
color_theme = "Default"
6
+
7
+
#* If the theme set background should be shown, set to False if you want terminal background transparency.
8
+
theme_background = True
9
+
10
+
#* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false.
11
+
truecolor = True
12
+
13
+
#* Set to true to force tty mode regardless if a real tty has been detected or not.
14
+
#* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols.
15
+
force_tty = False
16
+
17
+
#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets.
18
+
#* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box.
19
+
#* Use whitespace " " as separator between different presets.
20
+
#* Example: "cpu:0:default,mem:0:tty,proc:1:default cpu:0:braille,proc:0:tty"
21
+
presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:default cpu:0:block,net:0:tty"
22
+
23
+
#* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists.
24
+
#* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift.
25
+
vim_keys = False
26
+
27
+
#* Rounded corners on boxes, is ignored if TTY mode is ON.
28
+
rounded_corners = True
29
+
30
+
#* Default symbols to use for graph creation, "braille", "block" or "tty".
31
+
#* "braille" offers the highest resolution but might not be included in all fonts.
32
+
#* "block" has half the resolution of braille but uses more common characters.
33
+
#* "tty" uses only 3 different symbols but will work with most fonts and should work in a real TTY.
34
+
#* Note that "tty" only has half the horizontal resolution of the other two, so will show a shorter historical view.
35
+
graph_symbol = "braille"
36
+
37
+
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
38
+
graph_symbol_cpu = "default"
39
+
40
+
# Graph symbol to use for graphs in gpu box, "default", "braille", "block" or "tty".
41
+
graph_symbol_gpu = "default"
42
+
43
+
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
44
+
graph_symbol_mem = "default"
45
+
46
+
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
47
+
graph_symbol_net = "default"
48
+
49
+
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
50
+
graph_symbol_proc = "default"
51
+
52
+
#* Manually set which boxes to show. Available values are "cpu mem net proc" and "gpu0" through "gpu5", separate values with whitespace.
53
+
shown_boxes = "cpu mem net proc"
54
+
55
+
#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs.
56
+
update_ms = 200
57
+
58
+
#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct",
59
+
#* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly.
60
+
proc_sorting = "cpu lazy"
61
+
62
+
#* Reverse sorting order, True or False.
63
+
proc_reversed = False
64
+
65
+
#* Show processes as a tree.
66
+
proc_tree = True
67
+
68
+
#* Use the cpu graph colors in the process list.
69
+
proc_colors = True
70
+
71
+
#* Use a darkening gradient in the process list.
72
+
proc_gradient = True
73
+
74
+
#* If process cpu usage should be of the core it's running on or usage of the total available cpu power.
75
+
proc_per_core = True
76
+
77
+
#* Show process memory as bytes instead of percent.
78
+
proc_mem_bytes = True
79
+
80
+
#* Show cpu graph for each process.
81
+
proc_cpu_graphs = True
82
+
83
+
#* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate)
84
+
proc_info_smaps = False
85
+
86
+
#* Show proc box on left side of screen instead of right.
87
+
proc_left = False
88
+
89
+
#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop).
90
+
proc_filter_kernel = False
91
+
92
+
#* In tree-view, always accumulate child process resources in the parent process.
93
+
proc_aggregate = False
94
+
95
+
#* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available.
96
+
#* Select from a list of detected attributes from the options menu.
97
+
cpu_graph_upper = "Auto"
98
+
99
+
#* Sets the CPU stat shown in lower half of the CPU graph, "total" is always available.
100
+
#* Select from a list of detected attributes from the options menu.
101
+
cpu_graph_lower = "Auto"
102
+
103
+
#* If gpu info should be shown in the cpu box. Available values = "Auto", "On" and "Off".
104
+
show_gpu_info = "Auto"
105
+
106
+
#* Toggles if the lower CPU graph should be inverted.
107
+
cpu_invert_lower = True
108
+
109
+
#* Set to True to completely disable the lower CPU graph.
110
+
cpu_single_graph = False
111
+
112
+
#* Show cpu box at bottom of screen instead of top.
113
+
cpu_bottom = False
114
+
115
+
#* Shows the system uptime in the CPU box.
116
+
show_uptime = True
117
+
118
+
#* Show cpu temperature.
119
+
check_temp = True
120
+
121
+
#* Which sensor to use for cpu temperature, use options menu to select from list of available sensors.
122
+
cpu_sensor = "Auto"
123
+
124
+
#* Show temperatures for cpu cores also if check_temp is True and sensors has been found.
125
+
show_coretemp = True
126
+
127
+
#* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core.
128
+
#* Use lm-sensors or similar to see which cores are reporting temperatures on your machine.
129
+
#* Format "x:y" x=core with wrong temp, y=core with correct temp, use space as separator between multiple entries.
130
+
#* Example: "4:0 5:1 6:3"
131
+
cpu_core_map = ""
132
+
133
+
#* Which temperature scale to use, available values: "celsius", "fahrenheit", "kelvin" and "rankine".
134
+
temp_scale = "celsius"
135
+
136
+
#* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024.
137
+
base_10_sizes = False
138
+
139
+
#* Show CPU frequency.
140
+
show_cpu_freq = True
141
+
142
+
#* Draw a clock at top of screen, formatting according to strftime, empty string to disable.
143
+
#* Special formatting: /host = hostname | /user = username | /uptime = system uptime
144
+
clock_format = "%X"
145
+
146
+
#* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort.
147
+
background_update = True
148
+
149
+
#* Custom cpu model name, empty string to disable.
150
+
custom_cpu_name = ""
151
+
152
+
#* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ".
153
+
#* Begin line with "exclude=" to change to exclude filter, otherwise defaults to "most include" filter. Example: disks_filter="exclude=/boot /home/user".
154
+
disks_filter = ""
155
+
156
+
#* Show graphs instead of meters for memory values.
157
+
mem_graphs = True
158
+
159
+
#* Show mem box below net box instead of above.
160
+
mem_below_net = False
161
+
162
+
#* Count ZFS ARC in cached and available memory.
163
+
zfs_arc_cached = True
164
+
165
+
#* If swap memory should be shown in memory box.
166
+
show_swap = True
167
+
168
+
#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk.
169
+
swap_disk = True
170
+
171
+
#* If mem box should be split to also show disks info.
172
+
show_disks = True
173
+
174
+
#* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar.
175
+
only_physical = True
176
+
177
+
#* Read disks list from /etc/fstab. This also disables only_physical.
178
+
use_fstab = True
179
+
180
+
#* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool)
181
+
zfs_hide_datasets = False
182
+
183
+
#* Set to true to show available disk space for privileged users.
184
+
disk_free_priv = False
185
+
186
+
#* Toggles if io activity % (disk busy time) should be shown in regular disk usage view.
187
+
show_io_stat = True
188
+
189
+
#* Toggles io mode for disks, showing big graphs for disk read/write speeds.
190
+
io_mode = False
191
+
192
+
#* Set to True to show combined read/write io graphs in io mode.
193
+
io_graph_combined = False
194
+
195
+
#* Set the top speed for the io graphs in MiB/s (100 by default), use format "mountpoint:speed" separate disks with whitespace " ".
196
+
#* Example: "/mnt/media:100 /:20 /boot:1".
197
+
io_graph_speeds = ""
198
+
199
+
#* Set fixed values for network graphs in Mebibits. Is only used if net_auto is also set to False.
200
+
net_download = 100
201
+
202
+
net_upload = 100
203
+
204
+
#* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest.
205
+
net_auto = True
206
+
207
+
#* Sync the auto scaling for download and upload to whichever currently has the highest scale.
208
+
net_sync = False
209
+
210
+
#* Starts with the Network Interface specified here.
211
+
net_iface = ""
212
+
213
+
#* Show battery stats in top right if battery is present.
214
+
show_battery = True
215
+
216
+
#* Which battery to use if multiple are present. "Auto" for auto detection.
217
+
selected_battery = "Auto"
218
+
219
+
#* Show power stats of battery next to charge indicator.
220
+
show_battery_watts = True
221
+
222
+
#* Set loglevel for "~/.config/btop/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG".
223
+
#* The level set includes all lower levels, i.e. "DEBUG" will show all logging info.
224
+
log_level = "WARNING"
225
+
226
+
#* Measure PCIe throughput on NVIDIA cards, may impact performance on certain cards.
227
+
nvml_measure_pcie_speeds = True
228
+
229
+
#* Horizontally mirror the GPU graph.
230
+
gpu_mirror_graph = True
231
+
232
+
#* Custom gpu0 model name, empty string to disable.
233
+
custom_gpu_name0 = ""
234
+
235
+
#* Custom gpu1 model name, empty string to disable.
236
+
custom_gpu_name1 = ""
237
+
238
+
#* Custom gpu2 model name, empty string to disable.
239
+
custom_gpu_name2 = ""
240
+
241
+
#* Custom gpu3 model name, empty string to disable.
242
+
custom_gpu_name3 = ""
243
+
244
+
#* Custom gpu4 model name, empty string to disable.
245
+
custom_gpu_name4 = ""
246
+
247
+
#* Custom gpu5 model name, empty string to disable.
248
+
custom_gpu_name5 = ""
+22
.config/gh/config.yml
+22
.config/gh/config.yml
···
1
+
# The current version of the config schema
2
+
version: 1
3
+
# What protocol to use when performing git operations. Supported values: ssh, https
4
+
git_protocol: https
5
+
# What editor gh should run when creating issues, pull requests, etc. If blank, will refer to environment.
6
+
editor:
7
+
# When to interactively prompt. This is a global config that cannot be overridden by hostname. Supported values: enabled, disabled
8
+
prompt: enabled
9
+
# A pager program to send command output to, e.g. "less". If blank, will refer to environment. Set the value to "cat" to disable the pager.
10
+
pager:
11
+
# Aliases allow you to create nicknames for gh commands
12
+
aliases:
13
+
co: pr checkout
14
+
login: auth login
15
+
logout: auth logout
16
+
clone: repo clone
17
+
mr: pr
18
+
fork: repo fork
19
+
# The path to a unix socket through which send HTTP connections. If blank, HTTP traffic will be handled by net/http.DefaultTransport.
20
+
http_unix_socket:
21
+
# What web browser gh should use when opening URLs. If blank, will refer to environment.
22
+
browser:
.config/git/.gitkeep
.config/git/.gitkeep
This is a binary file and will not be displayed.
+12
.config/git/recaptime-dev.include.gitconfig
+12
.config/git/recaptime-dev.include.gitconfig
···
1
+
[user]
2
+
name = Andrei Jiroh Halili (RecapTime.dev)
3
+
email = ajhalili2006@crew.recaptime.dev
4
+
signingkey = 52B6B65187A7469A
5
+
[commit]
6
+
template = ~/.config/git/commit-message-templates/recaptime-dev
7
+
[url "ssh://git@git.jetbrains.space/recaptime/"]
8
+
pushInsteadOf = "https://git.jetbrains.space/recaptime/"
9
+
insteadOf = "https://git.jetbrains.space/recaptime/"
10
+
[url "ssh://git@git.jetbrains.space/lorebooksdotwiki/"]
11
+
pushInsteadOf = "https://git.jetbrains.space/lorebooksdotwiki/"
12
+
insteadOf = "https://git.jetbrains.space/lorebooksdotwiki/"
+4
.config/glab-cli/aliases.yml
+4
.config/glab-cli/aliases.yml
+61
.config/htop/htoprc
+61
.config/htop/htoprc
···
1
+
# Beware! This file is rewritten by htop when settings are changed in the interface.
2
+
# The parser is also very primitive, and not human-friendly.
3
+
htop_version=3.3.0
4
+
config_reader_min_version=3
5
+
fields=0 48 17 18 38 39 40 2 46 47 49 1
6
+
hide_kernel_threads=1
7
+
hide_userland_threads=0
8
+
hide_running_in_container=0
9
+
shadow_other_users=1
10
+
show_thread_names=1
11
+
show_program_path=1
12
+
highlight_base_name=1
13
+
highlight_deleted_exe=1
14
+
shadow_distribution_path_prefix=0
15
+
highlight_megabytes=1
16
+
highlight_threads=1
17
+
highlight_changes=0
18
+
highlight_changes_delay_secs=5
19
+
find_comm_in_cmdline=1
20
+
strip_exe_from_cmdline=1
21
+
show_merged_command=1
22
+
header_margin=1
23
+
screen_tabs=0
24
+
detailed_cpu_time=1
25
+
cpu_count_from_one=1
26
+
show_cpu_usage=1
27
+
show_cpu_frequency=1
28
+
update_process_names=1
29
+
account_guest_in_cpu_meter=1
30
+
color_scheme=0
31
+
enable_mouse=1
32
+
delay=5
33
+
hide_function_bar=0
34
+
header_layout=two_50_50
35
+
column_meters_0=AllCPUs Memory Swap DiskIO NetworkIO
36
+
column_meter_modes_0=1 1 1 1 1
37
+
column_meters_1=Hostname Tasks LoadAverage Uptime DateTime
38
+
column_meter_modes_1=2 2 2 2 2
39
+
tree_view=1
40
+
sort_key=46
41
+
tree_sort_key=47
42
+
sort_direction=-1
43
+
tree_sort_direction=-1
44
+
tree_view_always_by_pid=0
45
+
all_branches_collapsed=0
46
+
screen:Main=PID USER PRIORITY NICE M_VIRT M_RESIDENT M_SHARE STATE PERCENT_CPU PERCENT_MEM TIME Command
47
+
.sort_key=PERCENT_CPU
48
+
.tree_sort_key=PERCENT_MEM
49
+
.tree_view_always_by_pid=0
50
+
.tree_view=1
51
+
.sort_direction=-1
52
+
.tree_sort_direction=-1
53
+
.all_branches_collapsed=0
54
+
screen:I/O=PID USER IO_PRIORITY IO_RATE IO_READ_RATE IO_WRITE_RATE Command
55
+
.sort_key=IO_RATE
56
+
.tree_sort_key=PID
57
+
.tree_view_always_by_pid=0
58
+
.tree_view=0
59
+
.sort_direction=-1
60
+
.tree_sort_direction=1
61
+
.all_branches_collapsed=0
-14
.config/nix/nix.conf
-14
.config/nix/nix.conf
···
1
-
# Technically shared/meta-configs.nix but as a user-wise config, to be used on home-manager.
2
-
extra-experimental-features = nix-command flakes auto-allocate-uids blake3-hashes ca-derivations cgroups configurable-impure-env dynamic-derivations external-builders fetch-closure fetch-tree git-hashing impure-derivations local-overlay-store mounted-ssh-store no-url-literals pipe-operators read-only-local-store verified-fetches
3
-
extra-platforms = aarch64-linux x86_64-linux
4
-
5
-
# adjust based on CPU cores
6
-
max-jobs = auto
7
-
8
-
# substituters and pubkeys
9
-
extra-substituters = https://cache.nixos.org https://cache.flakehub.com https://nix-community.cachix.org https://devenv.cachix.org
10
-
extra-trusted-substituters = https://cache.nixos.org https://cache.flakehub.com https://nix-community.cachix.org https://andreijiroh-dev.cachix.org https://ajhalili2006-nixos-builds.cachix.org https://recaptime-dev.cachix.org
11
-
extra-trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= cache.flakehub.com-3:hJuILl5sVK4iKm86JzgdXW12Y2Hwd5G07qKtHTOcDCM= cache.flakehub.com-4:Asi8qIv291s0aYLyH6IOnr5Kf6+OF14WVjkE6t3xMio= cache.flakehub.com-5:zB96CRlL7tiPtzA9/WKyPkp3A2vqxqgdgyTVNGShPDU= cache.flakehub.com-6:W4EGFwAGgBj3he7c5fNh9NkOXw0PUVaxygCVKeuvaqU= cache.flakehub.com-7:mvxJ2DZVHn/kRxlIaxYNMuDG1OvMckZu32um1TadOR8= cache.flakehub.com-8:moO+OVS0mnTjBTcOUh2kYLQEd59ExzyoW1QgQ8XAARQ= cache.flakehub.com-9:wChaSeTI6TeCuV/Sg2513ZIM9i0qJaYsF+lZCXg0J6o= cache.flakehub.com-10:2GqeNlIp6AKp4EF2MVbE1kBOp9iBSyo0UPR9KoR0o1Y= nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs= devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw= ajhalili2006-nixos-builds.cachix.org-1:fA8HXvGR1i792D+CxL2iW/TQzUcyoW7zPUmC9Q4mQLg= andreijiroh-dev.cachix.org-1:7Jd0STdBOLiNu5fiA+AKwcMqQD2PA1j9zLDGyDkuyBo= recaptime-dev.cachix.org-1:b0UBO1zONf6ceTIoR06AKhgid4ZOl5kxB/gOIdZ9J6g=
12
-
13
-
# instead of using nixpkgs-weekly at flakehub, we'll go straight to the source
14
-
extra-nix-path = nixpkgs=https://flakehub.com/f/DeterminateSystems/nixpkgs-weekly/*.tar.gz home-manager=flake:github:nix-community/home-manager nur=flake:github:nix-community/NUR
-421
.config/nixos/flake.lock
-421
.config/nixos/flake.lock
···
1
-
{
2
-
"nodes": {
3
-
"determinate": {
4
-
"inputs": {
5
-
"determinate-nixd-aarch64-darwin": "determinate-nixd-aarch64-darwin",
6
-
"determinate-nixd-aarch64-linux": "determinate-nixd-aarch64-linux",
7
-
"determinate-nixd-x86_64-darwin": [
8
-
"determinate",
9
-
"determinate-nixd-aarch64-darwin"
10
-
],
11
-
"determinate-nixd-x86_64-linux": "determinate-nixd-x86_64-linux",
12
-
"nix": "nix",
13
-
"nixpkgs": "nixpkgs_3"
14
-
},
15
-
"locked": {
16
-
"lastModified": 1733950326,
17
-
"narHash": "sha256-nUTutqzg/Z0eEXrC1ACTa4a9Ik5Iyxgqo8uL9DYib7I=",
18
-
"rev": "657395244a854da1bc71e38454958ecd57c0e241",
19
-
"revCount": 165,
20
-
"type": "tarball",
21
-
"url": "https://api.flakehub.com/f/pinned/DeterminateSystems/determinate/0.1.165%2Brev-657395244a854da1bc71e38454958ecd57c0e241/0193b781-6c27-7703-bca6-fc9648fca81d/source.tar.gz"
22
-
},
23
-
"original": {
24
-
"type": "tarball",
25
-
"url": "https://flakehub.com/f/DeterminateSystems/determinate/0.1"
26
-
}
27
-
},
28
-
"determinate-nixd-aarch64-darwin": {
29
-
"flake": false,
30
-
"locked": {
31
-
"narHash": "sha256-I03XaJRNQHh/N3ea2qpMU78DahTm7tSfF+urRABhKiQ=",
32
-
"type": "file",
33
-
"url": "https://install.determinate.systems/determinate-nixd/tag/v0.2.6/macOS"
34
-
},
35
-
"original": {
36
-
"type": "file",
37
-
"url": "https://install.determinate.systems/determinate-nixd/tag/v0.2.6/macOS"
38
-
}
39
-
},
40
-
"determinate-nixd-aarch64-linux": {
41
-
"flake": false,
42
-
"locked": {
43
-
"narHash": "sha256-yxF7hyInOc+S1BEaxjLBLHUFjSAjC0bRKh0glUt4ilo=",
44
-
"type": "file",
45
-
"url": "https://install.determinate.systems/determinate-nixd/tag/v0.2.6/aarch64-linux"
46
-
},
47
-
"original": {
48
-
"type": "file",
49
-
"url": "https://install.determinate.systems/determinate-nixd/tag/v0.2.6/aarch64-linux"
50
-
}
51
-
},
52
-
"determinate-nixd-x86_64-linux": {
53
-
"flake": false,
54
-
"locked": {
55
-
"narHash": "sha256-/LPSCwR/ueorahCcyUSVym3y3lnRXkc6pqWwW2T/yT8=",
56
-
"type": "file",
57
-
"url": "https://install.determinate.systems/determinate-nixd/tag/v0.2.6/x86_64-linux"
58
-
},
59
-
"original": {
60
-
"type": "file",
61
-
"url": "https://install.determinate.systems/determinate-nixd/tag/v0.2.6/x86_64-linux"
62
-
}
63
-
},
64
-
"flake-compat": {
65
-
"flake": false,
66
-
"locked": {
67
-
"lastModified": 1696426674,
68
-
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
69
-
"owner": "edolstra",
70
-
"repo": "flake-compat",
71
-
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
72
-
"type": "github"
73
-
},
74
-
"original": {
75
-
"owner": "edolstra",
76
-
"repo": "flake-compat",
77
-
"type": "github"
78
-
}
79
-
},
80
-
"flake-parts": {
81
-
"inputs": {
82
-
"nixpkgs-lib": [
83
-
"determinate",
84
-
"nix",
85
-
"nix",
86
-
"nixpkgs"
87
-
]
88
-
},
89
-
"locked": {
90
-
"lastModified": 1719994518,
91
-
"narHash": "sha256-pQMhCCHyQGRzdfAkdJ4cIWiw+JNuWsTX7f0ZYSyz0VY=",
92
-
"owner": "hercules-ci",
93
-
"repo": "flake-parts",
94
-
"rev": "9227223f6d922fee3c7b190b2cc238a99527bbb7",
95
-
"type": "github"
96
-
},
97
-
"original": {
98
-
"owner": "hercules-ci",
99
-
"repo": "flake-parts",
100
-
"type": "github"
101
-
}
102
-
},
103
-
"flake-utils": {
104
-
"inputs": {
105
-
"systems": "systems"
106
-
},
107
-
"locked": {
108
-
"lastModified": 1681202837,
109
-
"narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=",
110
-
"owner": "numtide",
111
-
"repo": "flake-utils",
112
-
"rev": "cfacdce06f30d2b68473a46042957675eebb3401",
113
-
"type": "github"
114
-
},
115
-
"original": {
116
-
"owner": "numtide",
117
-
"repo": "flake-utils",
118
-
"type": "github"
119
-
}
120
-
},
121
-
"git-hooks-nix": {
122
-
"inputs": {
123
-
"flake-compat": [
124
-
"determinate",
125
-
"nix",
126
-
"nix"
127
-
],
128
-
"gitignore": [
129
-
"determinate",
130
-
"nix",
131
-
"nix"
132
-
],
133
-
"nixpkgs": [
134
-
"determinate",
135
-
"nix",
136
-
"nix",
137
-
"nixpkgs"
138
-
],
139
-
"nixpkgs-stable": [
140
-
"determinate",
141
-
"nix",
142
-
"nix",
143
-
"nixpkgs"
144
-
]
145
-
},
146
-
"locked": {
147
-
"lastModified": 1721042469,
148
-
"narHash": "sha256-6FPUl7HVtvRHCCBQne7Ylp4p+dpP3P/OYuzjztZ4s70=",
149
-
"owner": "cachix",
150
-
"repo": "git-hooks.nix",
151
-
"rev": "f451c19376071a90d8c58ab1a953c6e9840527fd",
152
-
"type": "github"
153
-
},
154
-
"original": {
155
-
"owner": "cachix",
156
-
"repo": "git-hooks.nix",
157
-
"type": "github"
158
-
}
159
-
},
160
-
"home-manager": {
161
-
"inputs": {
162
-
"nixpkgs": "nixpkgs_4"
163
-
},
164
-
"locked": {
165
-
"lastModified": 1735735907,
166
-
"narHash": "sha256-/AOGn9qJMjrZQyWYbObHTKmWDUP0q9+0TAXOJnq6ik0=",
167
-
"owner": "nix-community",
168
-
"repo": "home-manager",
169
-
"rev": "59a4c43e9ba6db24698c112720a58a334117de83",
170
-
"type": "github"
171
-
},
172
-
"original": {
173
-
"owner": "nix-community",
174
-
"ref": "master",
175
-
"repo": "home-manager",
176
-
"type": "github"
177
-
}
178
-
},
179
-
"libgit2": {
180
-
"flake": false,
181
-
"locked": {
182
-
"lastModified": 1715853528,
183
-
"narHash": "sha256-J2rCxTecyLbbDdsyBWn9w7r3pbKRMkI9E7RvRgAqBdY=",
184
-
"owner": "libgit2",
185
-
"repo": "libgit2",
186
-
"rev": "36f7e21ad757a3dacc58cf7944329da6bc1d6e96",
187
-
"type": "github"
188
-
},
189
-
"original": {
190
-
"owner": "libgit2",
191
-
"ref": "v1.8.1",
192
-
"repo": "libgit2",
193
-
"type": "github"
194
-
}
195
-
},
196
-
"nix": {
197
-
"inputs": {
198
-
"nix": "nix_2",
199
-
"nixpkgs": "nixpkgs_2"
200
-
},
201
-
"locked": {
202
-
"lastModified": 1733248733,
203
-
"narHash": "sha256-rOFE8TSwWoup+LPNbmtTs6oLy7lYZ12L9GN+aZuQQaA=",
204
-
"rev": "98bbabc68ac8c897c2ad873c3557125691c45120",
205
-
"revCount": 108,
206
-
"type": "tarball",
207
-
"url": "https://api.flakehub.com/f/pinned/DeterminateSystems/nix/2.25.3/01939864-5191-788c-b898-163d916a3333/source.tar.gz"
208
-
},
209
-
"original": {
210
-
"type": "tarball",
211
-
"url": "https://flakehub.com/f/DeterminateSystems/nix/2.0"
212
-
}
213
-
},
214
-
"nix_2": {
215
-
"inputs": {
216
-
"flake-compat": "flake-compat",
217
-
"flake-parts": "flake-parts",
218
-
"git-hooks-nix": "git-hooks-nix",
219
-
"libgit2": "libgit2",
220
-
"nixpkgs": "nixpkgs",
221
-
"nixpkgs-23-11": "nixpkgs-23-11",
222
-
"nixpkgs-regression": "nixpkgs-regression"
223
-
},
224
-
"locked": {
225
-
"lastModified": 1732881227,
226
-
"narHash": "sha256-T+wFMm3cj8pGJSwXmPuxG5pz+1gRDJoToF9OBxtzocA=",
227
-
"rev": "218cd6c16c0981cc32a45e3a15be1d3c1a68eb85",
228
-
"revCount": 18724,
229
-
"type": "tarball",
230
-
"url": "https://api.flakehub.com/f/pinned/NixOS/nix/2.25.3/01938786-bc70-79e3-b7ee-bb61f8e7f238/source.tar.gz"
231
-
},
232
-
"original": {
233
-
"type": "tarball",
234
-
"url": "https://flakehub.com/f/NixOS/nix/%3D2.25.3"
235
-
}
236
-
},
237
-
"nixos-hardware": {
238
-
"locked": {
239
-
"lastModified": 1735388221,
240
-
"narHash": "sha256-e5IOgjQf0SZcFCEV/gMGrsI0gCJyqOKShBQU0iiM3Kg=",
241
-
"owner": "NixOS",
242
-
"repo": "nixos-hardware",
243
-
"rev": "7c674c6734f61157e321db595dbfcd8523e04e19",
244
-
"type": "github"
245
-
},
246
-
"original": {
247
-
"owner": "NixOS",
248
-
"ref": "master",
249
-
"repo": "nixos-hardware",
250
-
"type": "github"
251
-
}
252
-
},
253
-
"nixpkgs": {
254
-
"locked": {
255
-
"lastModified": 1723688146,
256
-
"narHash": "sha256-sqLwJcHYeWLOeP/XoLwAtYjr01TISlkOfz+NG82pbdg=",
257
-
"owner": "NixOS",
258
-
"repo": "nixpkgs",
259
-
"rev": "c3d4ac725177c030b1e289015989da2ad9d56af0",
260
-
"type": "github"
261
-
},
262
-
"original": {
263
-
"owner": "NixOS",
264
-
"ref": "nixos-24.05",
265
-
"repo": "nixpkgs",
266
-
"type": "github"
267
-
}
268
-
},
269
-
"nixpkgs-23-11": {
270
-
"locked": {
271
-
"lastModified": 1717159533,
272
-
"narHash": "sha256-oamiKNfr2MS6yH64rUn99mIZjc45nGJlj9eGth/3Xuw=",
273
-
"owner": "NixOS",
274
-
"repo": "nixpkgs",
275
-
"rev": "a62e6edd6d5e1fa0329b8653c801147986f8d446",
276
-
"type": "github"
277
-
},
278
-
"original": {
279
-
"owner": "NixOS",
280
-
"repo": "nixpkgs",
281
-
"rev": "a62e6edd6d5e1fa0329b8653c801147986f8d446",
282
-
"type": "github"
283
-
}
284
-
},
285
-
"nixpkgs-regression": {
286
-
"locked": {
287
-
"lastModified": 1643052045,
288
-
"narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=",
289
-
"owner": "NixOS",
290
-
"repo": "nixpkgs",
291
-
"rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2",
292
-
"type": "github"
293
-
},
294
-
"original": {
295
-
"owner": "NixOS",
296
-
"repo": "nixpkgs",
297
-
"rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2",
298
-
"type": "github"
299
-
}
300
-
},
301
-
"nixpkgs_2": {
302
-
"locked": {
303
-
"lastModified": 1733120037,
304
-
"narHash": "sha256-En+gSoVJ3iQKPDU1FHrR6zIxSLXKjzKY+pnh9tt+Yts=",
305
-
"rev": "f9f0d5c5380be0a599b1fb54641fa99af8281539",
306
-
"revCount": 710194,
307
-
"type": "tarball",
308
-
"url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.2411.710194%2Brev-f9f0d5c5380be0a599b1fb54641fa99af8281539/01938be8-64ce-75c6-94d4-dbc2e4d547fe/source.tar.gz"
309
-
},
310
-
"original": {
311
-
"type": "tarball",
312
-
"url": "https://flakehub.com/f/NixOS/nixpkgs/%2A"
313
-
}
314
-
},
315
-
"nixpkgs_3": {
316
-
"locked": {
317
-
"lastModified": 1733686850,
318
-
"narHash": "sha256-NQEO/nZWWGTGlkBWtCs/1iF1yl2lmQ1oY/8YZrumn3I=",
319
-
"rev": "dd51f52372a20a93c219e8216fe528a648ffcbf4",
320
-
"revCount": 719099,
321
-
"type": "tarball",
322
-
"url": "https://api.flakehub.com/f/pinned/DeterminateSystems/nixpkgs-weekly/0.1.719099%2Brev-dd51f52372a20a93c219e8216fe528a648ffcbf4/0193af12-b91a-77b9-9c72-3172a023752d/source.tar.gz"
323
-
},
324
-
"original": {
325
-
"type": "tarball",
326
-
"url": "https://flakehub.com/f/DeterminateSystems/nixpkgs-weekly/0.1.tar.gz"
327
-
}
328
-
},
329
-
"nixpkgs_4": {
330
-
"locked": {
331
-
"lastModified": 1735471104,
332
-
"narHash": "sha256-0q9NGQySwDQc7RhAV2ukfnu7Gxa5/ybJ2ANT8DQrQrs=",
333
-
"owner": "NixOS",
334
-
"repo": "nixpkgs",
335
-
"rev": "88195a94f390381c6afcdaa933c2f6ff93959cb4",
336
-
"type": "github"
337
-
},
338
-
"original": {
339
-
"owner": "NixOS",
340
-
"ref": "nixos-unstable",
341
-
"repo": "nixpkgs",
342
-
"type": "github"
343
-
}
344
-
},
345
-
"nixpkgs_5": {
346
-
"locked": {
347
-
"lastModified": 1735471104,
348
-
"narHash": "sha256-0q9NGQySwDQc7RhAV2ukfnu7Gxa5/ybJ2ANT8DQrQrs=",
349
-
"owner": "NixOS",
350
-
"repo": "nixpkgs",
351
-
"rev": "88195a94f390381c6afcdaa933c2f6ff93959cb4",
352
-
"type": "github"
353
-
},
354
-
"original": {
355
-
"owner": "NixOS",
356
-
"ref": "nixos-unstable",
357
-
"repo": "nixpkgs",
358
-
"type": "github"
359
-
}
360
-
},
361
-
"nixpkgs_6": {
362
-
"locked": {
363
-
"lastModified": 1682134069,
364
-
"narHash": "sha256-TnI/ZXSmRxQDt2sjRYK/8j8iha4B4zP2cnQCZZ3vp7k=",
365
-
"owner": "NixOS",
366
-
"repo": "nixpkgs",
367
-
"rev": "fd901ef4bf93499374c5af385b2943f5801c0833",
368
-
"type": "github"
369
-
},
370
-
"original": {
371
-
"id": "nixpkgs",
372
-
"type": "indirect"
373
-
}
374
-
},
375
-
"root": {
376
-
"inputs": {
377
-
"determinate": "determinate",
378
-
"home-manager": "home-manager",
379
-
"nixos-hardware": "nixos-hardware",
380
-
"nixpkgs": "nixpkgs_5",
381
-
"vscode-server": "vscode-server"
382
-
}
383
-
},
384
-
"systems": {
385
-
"locked": {
386
-
"lastModified": 1681028828,
387
-
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
388
-
"owner": "nix-systems",
389
-
"repo": "default",
390
-
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
391
-
"type": "github"
392
-
},
393
-
"original": {
394
-
"owner": "nix-systems",
395
-
"repo": "default",
396
-
"type": "github"
397
-
}
398
-
},
399
-
"vscode-server": {
400
-
"inputs": {
401
-
"flake-utils": "flake-utils",
402
-
"nixpkgs": "nixpkgs_6"
403
-
},
404
-
"locked": {
405
-
"lastModified": 1729422940,
406
-
"narHash": "sha256-DlvJv33ml5UTKgu4b0HauOfFIoDx6QXtbqUF3vWeRCY=",
407
-
"owner": "nix-community",
408
-
"repo": "nixos-vscode-server",
409
-
"rev": "8b6db451de46ecf9b4ab3d01ef76e59957ff549f",
410
-
"type": "github"
411
-
},
412
-
"original": {
413
-
"owner": "nix-community",
414
-
"repo": "nixos-vscode-server",
415
-
"type": "github"
416
-
}
417
-
}
418
-
},
419
-
"root": "root",
420
-
"version": 7
421
-
}
-35
.config/nixos/flake.nix
-35
.config/nixos/flake.nix
···
1
-
{
2
-
description = "Andrei Jiroh's NixOS configurations";
3
-
4
-
# try to be in-sync with the nix-channels
5
-
inputs = {
6
-
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
7
-
home-manager.url = "github:nix-community/home-manager/master";
8
-
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
9
-
determinate.url = "https://flakehub.com/f/DeterminateSystems/determinate/0.1";
10
-
vscode-server.url = "github:nix-community/nixos-vscode-server";
11
-
};
12
-
13
-
outputs = {
14
-
self,
15
-
nixpkgs,
16
-
home-manager,
17
-
nixos-hardware,
18
-
determinate,
19
-
vscode-server
20
-
}: {
21
-
nixosConfigurations = {
22
-
stellapent-cier = nixpkgs.lib.nixosSystem {
23
-
system = "x86_64-linux";
24
-
modules = [
25
-
./hosts/stellapent-cier/configuration.nix
26
-
27
-
# load Determinate Nix and the rest
28
-
determinate.nixosModules.default
29
-
vscode-server.nixosModules.default
30
-
home-manager.nixosModules.home-manager
31
-
];
32
-
};
33
-
};
34
-
};
35
-
}
-136
.config/nixos/hosts/stellapent-cier/configuration.nix
-136
.config/nixos/hosts/stellapent-cier/configuration.nix
···
1
-
# Edit this configuration file to define what should be installed on
2
-
# your system. Help is available in the configuration.nix(5) man page
3
-
# and in the NixOS manual (accessible by running โnixos-helpโ).
4
-
5
-
{ config, pkgs, lib, ... }:
6
-
7
-
{
8
-
imports =
9
-
[
10
-
./hardware-configuration.nix
11
-
../../shared/meta-configs.nix
12
-
../../shared/systemd.nix
13
-
../../shared/networking.nix
14
-
../../shared/locale.nix
15
-
../../shared/server/tailscale.nix
16
-
../../shared/server/ssh.nix
17
-
../../shared/desktop/kde-plasma.nix
18
-
../../shared/desktop/bluetooth.nix
19
-
../../shared/desktop/firewall.nix
20
-
];
21
-
22
-
# Bootloader.
23
-
boot.loader.systemd-boot.enable = true;
24
-
boot.loader.efi.canTouchEfiVariables = true;
25
-
26
-
networking.hostName = "stellapent-cier"; # Define your hostname.
27
-
#networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
28
-
29
-
# Configure network proxy if necessary
30
-
# networking.proxy.default = "http://user:password@proxy:port/";
31
-
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
32
-
33
-
# Enable networking via networkmanager
34
-
networking.networkmanager.enable = true;
35
-
36
-
# Enable the X11 windowing system.
37
-
# You can disable this if you're only using the Wayland session.
38
-
services.xserver.enable = true;
39
-
40
-
# Configure keymap in X11
41
-
services.xserver.xkb = {
42
-
layout = "us";
43
-
variant = "";
44
-
};
45
-
46
-
# Enable CUPS to print documents.
47
-
services.printing.enable = true;
48
-
49
-
# Enable sound with pipewire.
50
-
#hardware.pulseaudio = {
51
-
# enable = true;
52
-
# package = pkgs.pulseaudioFull;
53
-
#};
54
-
#hardware.pulseaudio.extraConfig = "
55
-
# load-module module-switch-on-connect
56
-
#";
57
-
58
-
security.rtkit.enable = true;
59
-
services.pipewire = {
60
-
enable = true;
61
-
alsa.enable = true;
62
-
alsa.support32Bit = true;
63
-
pulse.enable = true;
64
-
# If you want to use JACK applications, uncomment this
65
-
#jack.enable = true;
66
-
67
-
# use the example session manager (no others are packaged yet so this is enabled by default,
68
-
# no need to redefine it in your config for now)
69
-
#media-session.enable = true;
70
-
};
71
-
72
-
# firmware configurations
73
-
#hardware.firmware = with pkgs; [
74
-
# (pkgs.fetchurl {
75
-
# url = "https://raw.githubusercontent.com/winterheart/broadcom-bt-firmware/refs/heads/master/brcm/BCM43142A0-0a5c-216d.hcd";
76
-
# sha256 = "9ac1e0fac850eec21cda47977858039ffc774d0cfffc6688093a722efc5a3ec0";
77
-
# })
78
-
#];
79
-
80
-
# Enable touchpad support (enabled default in most desktopManager).
81
-
# services.xserver.libinput.enable = true;
82
-
83
-
# Define a user account. Don't forget to set a password with โpasswdโ.
84
-
# Might be obvious to some since I'm technically roleplaying as
85
-
users.users.gildedguy = {
86
-
isNormalUser = true;
87
-
description = "Gildedguy (Michael Moy)";
88
-
extraGroups = [ "networkmanager" "wheel" ];
89
-
packages = with pkgs; [
90
-
kdePackages.kate
91
-
thunderbird
92
-
];
93
-
};
94
-
95
-
# home-manager specifics
96
-
home-manager.useUserPackages = true;
97
-
home-manager.useGlobalPkgs = true;
98
-
home-manager.users.gildedguy = import ./users/gildedguy.nix;
99
-
#programs.home-manager.enable = true; # allow home-manager to manage itself
100
-
101
-
# Install firefox.
102
-
programs.firefox.enable = true;
103
-
104
-
# List packages installed in system profile. To search, run:
105
-
# $ nix search wget
106
-
environment.systemPackages = with pkgs; [
107
-
# vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
108
-
wget
109
-
dig
110
-
broadcom-bt-firmware
111
-
btop
112
-
htop
113
-
google-chrome
114
-
direnv
115
-
cachix
116
-
];
117
-
118
-
# Some programs need SUID wrappers, can be configured further or are
119
-
# started in user sessions.
120
-
programs.mtr.enable = true;
121
-
122
-
# enable gpg-agent with SSH support
123
-
programs.gnupg.agent = {
124
-
enable = true;
125
-
enableSSHSupport = true;
126
-
};
127
-
128
-
# This value determines the NixOS release from which the default
129
-
# settings for stateful data, like file locations and database versions
130
-
# on your system were taken. Itโs perfectly fine and recommended to leave
131
-
# this value at the release version of the first install of this system.
132
-
# Before changing this value read the documentation for this option
133
-
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
134
-
system.stateVersion = "24.11"; # Did you read the comment?
135
-
136
-
}
-54
.config/nixos/hosts/stellapent-cier/hardware-configuration.nix
-54
.config/nixos/hosts/stellapent-cier/hardware-configuration.nix
···
1
-
# Do not modify this file! It was generated by โnixos-generate-configโ
2
-
# and may be overwritten by future invocations. Please make changes
3
-
# to /etc/nixos/configuration.nix instead.
4
-
{ config, lib, pkgs, modulesPath, ... }:
5
-
6
-
{
7
-
imports =
8
-
[ (modulesPath + "/installer/scan/not-detected.nix")
9
-
];
10
-
11
-
boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" "sr_mod" ];
12
-
boot.initrd.kernelModules = [ ];
13
-
boot.kernelModules = [ "kvm-intel" ];
14
-
boot.extraModulePackages = [ ];
15
-
16
-
fileSystems."/" =
17
-
{ device = "/dev/disk/by-uuid/e3397457-41d2-4bed-9689-27a9ff3ccb51";
18
-
fsType = "ext4";
19
-
};
20
-
21
-
fileSystems."/boot" =
22
-
{ device = "/dev/disk/by-uuid/EC7C-6A58";
23
-
fsType = "vfat";
24
-
options = [ "fmask=0077" "dmask=0077" ];
25
-
};
26
-
27
-
fileSystems."/home" =
28
-
{ device = "/dev/disk/by-uuid/22a6f5ea-79d1-4919-b165-50063fd782f5";
29
-
fsType = "ext4";
30
-
};
31
-
32
-
fileSystems."/var/lib/docker" =
33
-
{ device = "/dev/disk/by-uuid/299133b8-2585-42a4-b7d1-c995d4fc9e19";
34
-
fsType = "ext4";
35
-
};
36
-
37
-
fileSystems."/workspaces" =
38
-
{ device = "/dev/disk/by-uuid/a8d0810e-4bbf-479d-baea-28b1441ad68f";
39
-
fsType = "ext4";
40
-
};
41
-
42
-
swapDevices = [ ];
43
-
44
-
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
45
-
# (the default) this is the recommended approach. When using systemd-networkd it's
46
-
# still possible to use this option, but it's recommended to use it in conjunction
47
-
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
48
-
networking.useDHCP = lib.mkDefault true;
49
-
# networking.interfaces.enp2s0.useDHCP = lib.mkDefault true;
50
-
# networking.interfaces.wlp0s20u3.useDHCP = lib.mkDefault true;
51
-
52
-
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
53
-
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
54
-
}
-12
.config/nixos/hosts/stellapent-cier/users/gildedguy.nix
-12
.config/nixos/hosts/stellapent-cier/users/gildedguy.nix
-16
.config/oh-my-posh/meta.omp.json
-16
.config/oh-my-posh/meta.omp.json
-67
.config/oh-my-posh/thirdparty/agnoster.omp.json
-67
.config/oh-my-posh/thirdparty/agnoster.omp.json
···
1
-
{
2
-
"$schema": "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json",
3
-
"blocks": [
4
-
{
5
-
"alignment": "left",
6
-
"segments": [
7
-
{
8
-
"background": "#ffe9aa",
9
-
"foreground": "#100e23",
10
-
"powerline_symbol": "\ue0b0",
11
-
"style": "powerline",
12
-
"template": " \uf0e7 ",
13
-
"type": "root"
14
-
},
15
-
{
16
-
"background": "#ffffff",
17
-
"foreground": "#100e23",
18
-
"powerline_symbol": "\ue0b0",
19
-
"style": "powerline",
20
-
"template": " {{ .UserName }}@{{ .HostName }} ",
21
-
"type": "session"
22
-
},
23
-
{
24
-
"background": "#91ddff",
25
-
"foreground": "#100e23",
26
-
"powerline_symbol": "\ue0b0",
27
-
"properties": {
28
-
"folder_icon": "\uf115",
29
-
"folder_separator_icon": " \ue0b1 ",
30
-
"home_icon": "\ueb06",
31
-
"style": "agnoster"
32
-
},
33
-
"style": "powerline",
34
-
"template": " {{ .Path }} ",
35
-
"type": "path"
36
-
},
37
-
{
38
-
"background": "#95ffa4",
39
-
"foreground": "#193549",
40
-
"powerline_symbol": "\ue0b0",
41
-
"style": "powerline",
42
-
"template": " {{ .HEAD }} ",
43
-
"type": "git"
44
-
},
45
-
{
46
-
"background": "#906cff",
47
-
"foreground": "#100e23",
48
-
"powerline_symbol": "\ue0b0",
49
-
"style": "powerline",
50
-
"template": " \ue235 {{ if .Error }}{{ .Error }}{{ else }}{{ if .Venv }}{{ .Venv }} {{ end }}{{ .Full }}{{ end }} ",
51
-
"type": "python"
52
-
},
53
-
{
54
-
"background": "#ff8080",
55
-
"foreground": "#ffffff",
56
-
"powerline_symbol": "\ue0b0",
57
-
"style": "powerline",
58
-
"template": " {{ reason .Code }} ",
59
-
"type": "status"
60
-
}
61
-
],
62
-
"type": "prompt"
63
-
}
64
-
],
65
-
"final_space": true,
66
-
"version": 3
67
-
}
.config/systemd/.gitkeep
.config/systemd/.gitkeep
This is a binary file and will not be displayed.
+14
.config/systemd/user/tildeverse-vern-caddy.service
+14
.config/systemd/user/tildeverse-vern-caddy.service
···
1
+
[Unit]
2
+
Description=Make proxied services available under *-ajhalili2006.vern.cc via Caddy
3
+
4
+
[Service]
5
+
WorkingDirectory=/home/ajhalili2006/projects/andreijiroh.dev/tilde
6
+
# in case of power loss and we still need to do this
7
+
#ExecStartPre="/run/current-system/sw/bin/rm -f /home/ajhalili2006/.webserver.sock"
8
+
ExecStart=/run/current-system/sw/bin/bash /home/ajhalili2006/projects/andreijiroh.dev/tilde/start-caddy-tildeserv.sh
9
+
Restart=on-failure
10
+
StartLimitBurst=3
11
+
StartLimitInterval=90
12
+
13
+
[Install]
14
+
WantedBy=default.target
+12
.config/systemd/user/tildeverse-web-devpreview.service
+12
.config/systemd/user/tildeverse-web-devpreview.service
···
1
+
[Unit]
2
+
Description=mkdocs serve over port 18034
3
+
4
+
[Service]
5
+
WorkingDirectory=/home/ajhalili2006/projects/andreijiroh.dev/tilde
6
+
ExecStart=/home/ajhalili2006/.local/bin/mkdocs serve --watch-theme -a 127.0.0.1:18034
7
+
StartLimitBurst=3
8
+
StartLimitInterval=60
9
+
10
+
[Install]
11
+
WantedBy=default.target tildeverse-vern-caddy.service
12
+
+31
.config/yadm/bootstrap
+31
.config/yadm/bootstrap
···
1
+
#!/bin/bash
2
+
3
+
# Save this file as ~/.config/yadm/bootstrap and make it executable. It will
4
+
# execute all executable files (excluding templates and editor backups) in the
5
+
# ~/.config/yadm/bootstrap.d directory when run.
6
+
7
+
# Source: https://raw.githubusercontent.com/TheLocehiliosan/yadm/master/contrib/bootstrap/bootstrap-in-dir
8
+
9
+
set -eu
10
+
11
+
if [[ $DEBUG != "" ]]; then
12
+
set -x
13
+
fi
14
+
15
+
# Directory to look for bootstrap executables in
16
+
BOOTSTRAP_D="${BASH_SOURCE[0]}.d"
17
+
18
+
if [[ ! -d "$BOOTSTRAP_D" ]]; then
19
+
echo "[bootstrap] Error: bootstrap directory '$BOOTSTRAP_D' not found" >&2
20
+
exit 1
21
+
fi
22
+
23
+
find -L "$BOOTSTRAP_D" -type f | sort | while IFS= read -r bootstrap; do
24
+
if [[ -x "$bootstrap" && ! "$bootstrap" =~ "##" && ! "$bootstrap" =~ "~$" ]]; then
25
+
echo "[bootstrap] running $bootstrap"
26
+
if ! "$bootstrap"; then
27
+
echo "[bootstrap] Error: bootstrap '$bootstrap' failed" >&2
28
+
exit 1
29
+
fi
30
+
fi
31
+
done
+20
.config/yadm/bootstrap.d/00-post-clone-repo.sh
+20
.config/yadm/bootstrap.d/00-post-clone-repo.sh
···
1
+
#!/usr/bin/env bash
2
+
3
+
if [ $DEBUG != "" ]; then
4
+
set -x
5
+
fi
6
+
7
+
if [ ! -d "$HOME/.git" ] && [ -d "$HOME/.local/share/yadm/repo.git" ]; then
8
+
echo "[git-symlinks] Symlinking ~/.git to ~/.local/share/yadm/repo.git for compatibility"
9
+
ln -s ~/.local/share/yadm/repo.git ~/.git
10
+
elif [ -d "$HOME/.git" ] && [ ! -d "$HOME/.local/share/yadm/repo.git" ]; then
11
+
echo "[git-symlinks] Symlinking ~/.local/share/yadm/repo.git to ~/.git for compatibility"
12
+
ln -s ~/.git ~/.local/share/yadm/repo.git
13
+
else
14
+
echo "[git-symlinks] Looks like everything is all clear on git"
15
+
fi
16
+
17
+
echo "[git-remotes] Setting git remote URLs to SSH"
18
+
git remote set-url --add --push hut ssh://git@git.sr.ht/~ajhalili2006/dotfiles \
19
+
|| git remote add hut https://git.sr.ht/~ajhalili2006/dotfiles \
20
+
&& git remote set-url --add --push hut ssh://git@git.sr.ht/~ajhalili2006/dotfiles
+5
.config/yadm/encrypt
+5
.config/yadm/encrypt
+14
.config/zed/keymap.json
+14
.config/zed/keymap.json
+35
.config/zed/settings.json
+35
.config/zed/settings.json
···
1
+
// Zed settings
2
+
//
3
+
// For information on how to configure Zed, see the Zed
4
+
// documentation: https://zed.dev/docs/configuring-zed
5
+
//
6
+
// To see all of Zed's default settings without changing your
7
+
// custom settings, run the `open default settings` command
8
+
// from the command palette or from `Zed` application menu.
9
+
{
10
+
"features": {
11
+
"inline_completion_provider": "none",
12
+
"copilot": false
13
+
},
14
+
"ui_font_size": 16,
15
+
"buffer_font_size": 16,
16
+
"theme": {
17
+
"mode": "dark",
18
+
"light": "One Light",
19
+
"dark": "Material Dark"
20
+
},
21
+
"git": {
22
+
"git_gutter": "tracked_files",
23
+
"gutter_debounce": 5,
24
+
"inline_blame": {
25
+
"enabled": true,
26
+
"delay_ms": 3000
27
+
}
28
+
},
29
+
"toolbar": {
30
+
"breadcrumbs": true,
31
+
"selections_menu": true,
32
+
"quick_actions": true
33
+
},
34
+
"base_keymap": "VSCode"
35
+
}
+9
.env
+9
.env
···
1
+
# TODO: Hook things up with dotenvx later.
2
+
# https://packaging.ubuntu.com/html/getting-set-up.html#configure-your-shell
3
+
DEBFULLNAME="Andrei Jiroh Halili"
4
+
DEBEMAIL="releases@andreijiroh.xyz"
5
+
# Hardcode timezone to PHT unless otherwise specified in ~/.env.local.
6
+
# You might need tzdata installed on Alpine per https://wiki.alpinelinux.org/wiki/Setting_the_timezone
7
+
TZ=Asia/Manila
8
+
9
+
export DEBFULLNAME DEBMAIL
+111
.gitconfig
+111
.gitconfig
···
1
+
# This is the default configuration for Git
2
+
[user]
3
+
name = Andrei Jiroh Halili
4
+
email = ajhalili2006@andreijiroh.xyz
5
+
signingkey = 67BFC91B3DA12BE8
6
+
7
+
[commit]
8
+
gpgSign = true
9
+
template = ~/.config/git/commit-message-templates/default
10
+
[tag]
11
+
gpgSign = true
12
+
forceSignAnnotated = true
13
+
14
+
[format]
15
+
signOff = true
16
+
17
+
# https://groups.google.com/g/binary-transparency/c/f-BI4o8HZW0
18
+
[transfer]
19
+
fsckobjects = true
20
+
[fetch]
21
+
fsckobjects = true
22
+
[receive]
23
+
fsckObjects = true
24
+
25
+
# authentication hellscape
26
+
[credential "https://github.com"]
27
+
helper =
28
+
helper = !gh auth git-credential
29
+
[credential "https://gist.github.com"]
30
+
helper =
31
+
helper = !gh auth git-credential
32
+
[credential "https://gitlab.com"]
33
+
helper =
34
+
helper = !glab auth git-credential
35
+
[credential "https://mau.dev"]
36
+
helper =
37
+
helper = !glab auth git-credential
38
+
[credential "https://gitlab.alpinelinux.org"]
39
+
helper =
40
+
helper = !glab auth git-credential
41
+
42
+
# sendemail stuff (https://go.recaptime.eu.org/sendgmail)
43
+
#[sendemail]
44
+
# smtpServer = /home/ajhalili2006/go/bin/sendgmail
45
+
# smtpServerOption = -sender=ajhalili2006@gmail.com
46
+
47
+
# repo init chores
48
+
[init]
49
+
defaultBranch = main
50
+
51
+
# aliases
52
+
[url "git@git.sr.ht:"]
53
+
insteadOf = https://git.sh.rt
54
+
pushInsteadOf = https://git.sh.rt
55
+
# TODO: Set up aliases for ther Git hosts, like in Launchpad.net
56
+
57
+
# aliases
58
+
[alias]
59
+
#change-commits = "!f() { VAR=$1; OLD=$2; NEW=$3; shift 3; git filter-branch --env-filter \"if [[ \\\"$`echo $VAR`\> signoff = "commit --signoff"
60
+
ammend = "commit --amend"
61
+
#stage = "add"
62
+
unstage = "restore --staged"
63
+
stats = "status"
64
+
sdiff = !git diff && git submodule foreach 'git diff'
65
+
spush = push --recurse-submodules=on-demand
66
+
supdate = submodule update --remote --merge
67
+
skip-ci = push -o ci.skip -o skip-ci
68
+
root = rev-parse --show-toplevel
69
+
signoff-commit = commit --signoff
70
+
signoff = signoff-commit
71
+
remotes = remote -v
72
+
[filter "lfs"]
73
+
clean = git-lfs clean -- %f
74
+
smudge = git-lfs smudge -- %f
75
+
process = git-lfs filter-process
76
+
required = true
77
+
[core]
78
+
# editor = flatpak run re.sonny.Commit
79
+
80
+
# project-specific configurations
81
+
#[includeIf "gitdir/i:~/git-projects/sandbox"]
82
+
# path = ~/.config/git/ajhalili2006-experiments.include.gitconfig
83
+
#[includeIf "gitdir/i:~/projects/labs.andreijiroh.dev"]
84
+
# path = ~/.config/git/ajhalili2006-experiments.include.gitconfig
85
+
#[includeIf "gitdir/i:~/git-projects/recaptime.dev/"]
86
+
# path = ~/.config/git/recaptime-dev.include.gitconfig
87
+
[includeIf "gitdir/i:~/projects/recaptime.dev/"]
88
+
path = ~/.config/git/recaptime-dev.include.gitconfig
89
+
[includeIf "gitdir/i:/workspaces/recaptime.dev/"]
90
+
path = ~/.config/git/recaptime-dev.include.gitconfig
91
+
[includeIf "gitdir/i:~/projects/recaptime-dev/"]
92
+
path = ~/.config/git/recaptime-dev.include.gitconfig
93
+
[includeIf "gitdir/i:/workspaces/recaptime-dev/"]
94
+
path = ~/.config/git/recaptime-dev.include.gitconfig
95
+
[includeIf "gitdir/i:/var/git/recaptime-dev/"]
96
+
path = ~/.config/git/recaptime-dev.include.gitconfig
97
+
[includeIf "gitdir/i:/workspaces/lorebooks.wiki/"]
98
+
path = ~/.config/git/recaptime-dev.include.gitconfig
99
+
[includeIf "gitdir/i:/workspaces/lorebooks-wiki/"]
100
+
path = ~/.config/git/recaptime-dev.include.gitconfig
101
+
#[includeIf "gitdir/i:~projects/"]
102
+
# path = ~/.config/git/ajhalili2006.include.gitconfig
103
+
[trailer "sign"]
104
+
key = "Signed-off-by: "
105
+
ifmissing = add
106
+
ifexists = doNothing
107
+
command = echo \"$(git config user.name) <$(git config user.email)>\"
108
+
[push]
109
+
autoSetupRemote = true
110
+
[safe]
111
+
directory = /storage/emulated/0/Documents/git/recaptime-dev/proxyparty
+5
-1
.gitignore
+5
-1
.gitignore
···
1
-
*
1
+
# Safety ops, because I don't want to fuck things up and leak my hentai
2
+
# (not necessary NSFW bullshit, but SSH keys and unencrypted GPG key backups).
3
+
# This isn't one-file file due to mandatory self docs, but see ~sircmpwn's post for
4
+
# the deets: https://drewdevault.com/2019/12/30/dotfiles.html
5
+
*
+10
.gitmodules
+10
.gitmodules
···
1
+
[submodule "asdf-vm"]
2
+
path = .asdf
3
+
url = https://github.com/asdf-vm/asdf.git
4
+
branch = master
5
+
[submodule ".yadm-project"]
6
+
path = .yadm-project
7
+
url = https://github.com/TheLocehiliosan/yadm
8
+
[submodule "nvm"]
9
+
path = .nvm
10
+
url = https://github.com/nvm-sh/nvm.git
+21
.gnupg/gnupg.conf
+21
.gnupg/gnupg.conf
···
1
+
# Documentation is available online at https://www.gnupg.org/documentation/manuals/gnupg/GPG-Configuration-Options.html#gpg_002doption-_002d_002doptions
2
+
3
+
# Make sure to use my new PGP key instead of the old one.
4
+
# TODO: Schedule key expiration for the old one soonish.
5
+
default-key 67BFC91B3DA12BE8
6
+
7
+
# Go abit like Keybase, but keep the WoT parts.
8
+
trust-model tofu+pgp
9
+
10
+
# use keys.openpgp.org instead of keyserver.ubuntu.com or whatever
11
+
keyserver hkps://keys.openpgp.org
12
+
13
+
# long fpr + 0x prefix
14
+
keyid-format 0xlong
15
+
16
+
# From the docs: This is dummy option. gpg always requires the agent.
17
+
#use-agent
18
+
19
+
# kgpg specifics
20
+
group squad = A715100E58CF60500EE159652F384539C700B263
21
+
group andreijiroh.dev = 51D2F9710A20AAE56DC9A9AB77D63E4A0C267204 18C97CF46F06176E7EC43BDC7E4E0EF8B968A952 0527234A430387EA5695D824A30EBE40AD856D88 4D5E631758CB9CC45941B1CE67BFC91B3DA12BE8 5D69E717C5BC95731C2AD8BD120C218ED2291996 EA957E7086E934F8DB9CAD21940047813E9D641C
+9
.gnupg/gpg-agent.conf
+9
.gnupg/gpg-agent.conf
+1
.gnupg/gpg.conf
+1
.gnupg/gpg.conf
···
1
+
gnupg.conf
+84
.nanorc
+84
.nanorc
···
1
+
# This is my user-wide settings for nano, similar to VS Code and friends.
2
+
# Feel free to use it on your own, as long as you keep the copyright information
3
+
# below intact.
4
+
# SPDX-License-Identifier: MIT AND MPL-2.0 (excluding third party code)
5
+
6
+
# Display line numbers to the left (and any anchors in the margin).
7
+
#set linenumbers
8
+
9
+
# Enable vim-style lock-files. This is just to let a vim user know you
10
+
# are editing a file [s]he is trying to edit and vice versa. There are
11
+
# no plans to implement vim-style undo state in these files.
12
+
set locking
13
+
14
+
# Display a "scrollbar" on the righthand side of the edit window.
15
+
set indicator
16
+
17
+
# This was set to 80 to match VS Code settings.
18
+
set guidestripe 80
19
+
20
+
## Enable mouse support, if available for your system. When enabled,
21
+
## mouse clicks can be used to place the cursor, set the mark (with a
22
+
## double click), and execute shortcuts. The mouse will work in the
23
+
## X Window System, and on the console when gpm is running.
24
+
#set mouse
25
+
26
+
# Switch on multiple file buffers (inserting a file will put it into a
27
+
# separate buffer).
28
+
set multibuffer
29
+
30
+
## Don't convert files from DOS/Mac format.
31
+
set noconvert
32
+
33
+
# Spread overlong lines over multiple screen lines.
34
+
set softwrap
35
+
36
+
## Use this tab size instead of the default; it must be greater than 0.
37
+
set tabsize 4
38
+
39
+
## Convert each typed tab to the fitting number of spaces.
40
+
set tabstospaces
41
+
42
+
## Snip whitespace at the end of lines when justifying or hard-wrapping.
43
+
set trimblanks
44
+
45
+
# import included syntax highlighting for nano
46
+
# TODO: Load them via ~/.local/share/nano for portability
47
+
#include "/usr/share/nano/*.nanorc"
48
+
# actually commented out since it is included by default on
49
+
# the bootstrap process
50
+
#include "/usr/share/nano/*.nanorc"
51
+
52
+
# Make regularly-used features have more usual shortcuts
53
+
bind M-Z suspend main
54
+
bind ^X cut main
55
+
bind ^C copy main
56
+
bind ^V paste all
57
+
bind ^Q exit all
58
+
bind ^S savefile main
59
+
#bind ^W writeout main
60
+
#bind ^O insert main
61
+
#set multibuffer
62
+
bind ^H help all
63
+
bind ^H exit help
64
+
#bind ^F whereis all
65
+
#bind ^G findnext all
66
+
#bind ^B wherewas all
67
+
#bind ^D findprevious all
68
+
#bind ^R replace main
69
+
unbind ^U all
70
+
#unbind ^N main
71
+
#unbind ^Y all
72
+
#unbind M-J main
73
+
#unbind M-T main
74
+
bind ^A mark main
75
+
#bind ^P location main
76
+
bind ^T gotoline main
77
+
bind ^T gotodir browser
78
+
#bind ^T cutrestoffile execute
79
+
#bind ^L linter execute
80
+
bind ^E execute main
81
+
#bind ^K "{mark}{end}{zap}" main
82
+
#bind ^U "{mark}{home}{zap}" main
83
+
bind ^Z undo main
84
+
bind ^Y redo main
-2
.nix-channels
-2
.nix-channels
-230
.nix4vscode.toml
-230
.nix4vscode.toml
···
1
-
# SPDX-License-Identifier: MPL-2.0
2
-
# To use thhis configuration, you must have nix4vscode installed, either via "cargo build"
3
-
# or good old "nix develop" from a local clone of the tooling's sources. This is currently
4
-
# manually managed to be in sync with code --list-extensions while Settings Sync is enabled.
5
-
6
-
# TODO: Bump this on every VS Code release here.
7
-
vscode_version = "1.96.0"
8
-
9
-
## theming
10
-
[[extensions]]
11
-
publisher_name = "pkief"
12
-
extension_name = "material-icon-theme"
13
-
[[extensions]]
14
-
publisher_name = "pkief"
15
-
extension_name = "material-product-icons"
16
-
[[extensions]]
17
-
publisher_name = "github"
18
-
extension_name = "github-vscode-theme"
19
-
20
-
# utils
21
-
[[extensions]]
22
-
publisher_name = "wakatime"
23
-
extension_name = "vscode-wakatime"
24
-
[[extensions]]
25
-
publisher_name = "doppler"
26
-
extension_name = "doppler-vscode"
27
-
[[extensions]]
28
-
publisher_name = "eamodio"
29
-
extension_name = "gitlens"
30
-
[[extensions]]
31
-
publisher_name = "vivaxy"
32
-
extension_name = "vscode-conventional-commits"
33
-
[[extensions]]
34
-
publisher_name = "gitlab"
35
-
extension_name = "gitlab-workflow"
36
-
[[extensions]]
37
-
publisher_name = "exiasr"
38
-
extension_name = "hadolint"
39
-
[[extensions]]
40
-
publisher_name = "editorconfig"
41
-
extension_name = "editorconfig"
42
-
[[extensions]]
43
-
publisher_name = "donjayamanne"
44
-
extension_name = "githistory"
45
-
[[extensions]]
46
-
publisher_name = "devfile"
47
-
extension_name = "vscode-devfile"
48
-
[[extensions]]
49
-
publisher_name = "tailscale"
50
-
extension_name = "vscode-tailscale"
51
-
[[extensions]]
52
-
publisher_name = "timonwong"
53
-
extension_name = "shellcheck"
54
-
55
-
# github
56
-
[[extensions]]
57
-
publisher_name = "github"
58
-
extension_name = "copilot"
59
-
[[extensions]]
60
-
publisher_name = "github"
61
-
extension_name = "vscode-github-actions"
62
-
[[extensions]]
63
-
publisher_name = "github"
64
-
extension_name = "remotehub"
65
-
[[extensions]]
66
-
publisher_name = "github"
67
-
extension_name = "copilot-chat"
68
-
[[extensions]]
69
-
publisher_name = "github"
70
-
extension_name = "codespaces"
71
-
[[extensions]]
72
-
publisher_name = "github"
73
-
extension_name = "vscode-pull-request-github"
74
-
75
-
# markdown
76
-
[[extensions]]
77
-
publisher_name = "aikebang"
78
-
extension_name = "mkdocs-syntax-highlight"
79
-
[[extensions]]
80
-
publisher_name = "bierner"
81
-
extension_name = "emojisense"
82
-
[[extensions]]
83
-
publisher_name = "bierner"
84
-
extension_name = "markdown-checkbox"
85
-
[[extensions]]
86
-
publisher_name = "bierner"
87
-
extension_name = "github-markdown-preview"
88
-
[[extensions]]
89
-
publisher_name = "bierner"
90
-
extension_name = "markdown-emoji"
91
-
[[extensions]]
92
-
publisher_name = "bierner"
93
-
extension_name = "markdown-footnotes"
94
-
[[extensions]]
95
-
publisher_name = "bierner"
96
-
extension_name = "markdown-mermaid"
97
-
[[extensions]]
98
-
publisher_name = "bierner"
99
-
extension_name = "markdown-preview-github-styles"
100
-
[[extensions]]
101
-
publisher_name = "bierner"
102
-
extension_name = "markdown-yaml-preamble"
103
-
104
-
# microsoft
105
-
[[extensions]]
106
-
publisher_name = "ms-azuretools"
107
-
extension_name = "vscode-docker"
108
-
# temporarily commented out per https://github.com/nix-community/nix4vscode/issues/135
109
-
#[[extensions]]
110
-
#publisher_name = "ms-python"
111
-
#extension_name = "debugpy"
112
-
[[extensions]]
113
-
publisher_name = "ms-python"
114
-
extension_name = "python"
115
-
[[extensions]]
116
-
publisher_name = "ms-python"
117
-
extension_name = "vscode-pylance"
118
-
[[extensions]]
119
-
publisher_name = "ms-vscode"
120
-
extension_name = "azure-repos"
121
-
[[extensions]]
122
-
publisher_name = "ms-vscode"
123
-
extension_name = "remote-repositories"
124
-
[[extensions]]
125
-
publisher_name = "ms-vscode"
126
-
extension_name = "vscode-github-issue-notebooks"
127
-
[[extensions]]
128
-
publisher_name = "ms-vscode"
129
-
extension_name = "wordcount"
130
-
131
-
# programming languages + IntelliSense
132
-
[[extensions]]
133
-
publisher_name = "denoland"
134
-
extension_name = "vscode-deno"
135
-
[[extensions]]
136
-
publisher_name = "jnoortheen"
137
-
extension_name = "nix-ide"
138
-
[[extensions]]
139
-
publisher_name = "redhat"
140
-
extension_name = "vscode-yaml"
141
-
[[extensions]]
142
-
publisher_name = "unifiedjs"
143
-
extension_name = "vscode-mdx"
144
-
[[extensions]]
145
-
publisher_name = "davidanson"
146
-
extension_name = "vscode-markdownlint"
147
-
[[extensions]]
148
-
publisher_name = "golang"
149
-
extension_name = "go"
150
-
[[extensions]]
151
-
publisher_name = "mikestead"
152
-
extension_name = "dotenv"
153
-
[[extensions]]
154
-
publisher_name = "joel-harkes"
155
-
extension_name = "emlviewer"
156
-
[[extensions]]
157
-
publisher_name = "leighlondon"
158
-
extension_name = "eml"
159
-
[[extensions]]
160
-
publisher_name = "matthewpi"
161
-
extension_name = "caddyfile-support"
162
-
[[extensions]]
163
-
publisher_name = "bradlc"
164
-
extension_name = "vscode-tailwindcss"
165
-
[[extensions]]
166
-
publisher_name = "christan-kohler"
167
-
extension_name = "npm-intellisense"
168
-
[[extensions]]
169
-
publisher_name = "codezombiech"
170
-
extension_name = "gitignore"
171
-
[[extensions]]
172
-
publisher_name = "codiium"
173
-
extension_name = "wrangler"
174
-
[[extensions]]
175
-
publisher_name = "coolbear"
176
-
extension_name = "systemd-unit-file"
177
-
[[extensions]]
178
-
publisher_name = "dbaeumer"
179
-
extension_name = "vscode-eslint"
180
-
[[extensions]]
181
-
publisher_name = "drknoxy"
182
-
extension_name = "eslint-disable-snippets"
183
-
[[extensions]]
184
-
publisher_name = "esbenp"
185
-
extension_name = "prettier-vscode"
186
-
[[extensions]]
187
-
publisher_name = "martellaj"
188
-
extension_name = "license-injector"
189
-
[[extensions]]
190
-
publisher_name = "mtxr"
191
-
extension_name = "sqltools"
192
-
[[extensions]]
193
-
publisher_name = "mtxr"
194
-
extension_name = "sqltools-mysql"
195
-
[[extensions]]
196
-
publisher_name = "mtxr"
197
-
extension_name = "sqltools-pg"
198
-
[[extensions]]
199
-
publisher_name = "mtxr"
200
-
extension_name = "sqltools-sqlite"
201
-
[[extensions]]
202
-
publisher_name = "orta"
203
-
extension_name = "vscode-jest"
204
-
[[extensions]]
205
-
publisher_name = "prisma"
206
-
extension_name = "prisma"
207
-
[[extensions]]
208
-
publisher_name = "r3inbowari"
209
-
extension_name = "gomodexplorer"
210
-
[[extensions]]
211
-
publisher_name = "socheatsok78"
212
-
extension_name = "dotenv-vscode-stripped"
213
-
[[extensions]]
214
-
publisher_name = "streetsidesoftware"
215
-
extension_name = "code-spell-checker"
216
-
[[extensions]]
217
-
publisher_name = "tamasfe"
218
-
extension_name = "even-better-toml"
219
-
[[extensions]]
220
-
publisher_name = "ultram4rine"
221
-
extension_name = "vscode-choosealicense"
222
-
[[extensions]]
223
-
publisher_name = "wdhongtw"
224
-
extension_name = "gpg-indicator"
225
-
[[extensions]]
226
-
publisher_name = "xabikos"
227
-
extension_name = "javascriptsnippets"
228
-
[[extensions]]
229
-
publisher_name = "yahyabatulu"
230
-
extension_name = "vscode-markdown-alert"
+72
.profile
+72
.profile
···
1
+
#!/usr/bin/env sh
2
+
# ~/.profile: executed by the command interpreter for login shells.
3
+
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
4
+
# exists.
5
+
# see /usr/share/doc/bash/examples/startup-files for examples.
6
+
# the files are located in the bash-doc package.
7
+
8
+
# the default umask is set in /etc/profile; for setting the umask
9
+
# for ssh logins, install and configure the libpam-umask package.
10
+
#umask 022
11
+
12
+
# if running bash (probably as seen in Debian)
13
+
if [ -n "$BASH_VERSION" ]; then
14
+
# include .bashrc if it exists
15
+
if [ -f "$HOME/.bashrc" ]; then
16
+
. "$HOME/.bashrc"
17
+
fi
18
+
fi
19
+
20
+
# set PATH so it includes user's private bin if it exists
21
+
if [ -d "$HOME/bin" ] ; then
22
+
PATH="$HOME/bin:$PATH"
23
+
fi
24
+
25
+
# set PATH so it includes user's private bin if it exists
26
+
if [ -d "$HOME/.local/bin" ] ; then
27
+
PATH="$HOME/.local/bin:$PATH"
28
+
fi
29
+
30
+
#export PATH="/usr/local/bin:$HOME/.local/bin:$HOME/bin${PATH:+:}$PATH:$HOME/.local/share/JetBrains/Toolbox/scripts" # ~vern specifics and more
31
+
mesg n 2> /dev/null || true
32
+
33
+
# then import the rest
34
+
source "$HOME/.env"
35
+
source "$HOME/.config/aliases"
36
+
export POSIX_PROFILE_SOURCED=true
37
+
38
+
# how about detecting local configs
39
+
if [ -f "$HOME/.config/localconfig.env" ]; then
40
+
. "$HOME/.config/localconfig.env"
41
+
fi
42
+
43
+
##########################################################################################
44
+
# Code snippets from https://git.sr.ht/~sircmpwn/dotfiles/tree/db5945a4/item/.env
45
+
##########################################################################################
46
+
if ls --version 2>&1 | grep -i gnu >/dev/null
47
+
then
48
+
alias ls='ls --color=auto '
49
+
elif ls --version 2>&1 | grep -i busybox >/dev/null
50
+
then
51
+
alias ls='ls --color=auto '
52
+
fi
53
+
54
+
alias recent='ls -ltch'
55
+
56
+
# Add optmizations for multicore builds
57
+
if [ $(uname) = "Linux" ]
58
+
then
59
+
nproc=$(grep '^processor' /proc/cpuinfo | wc -l)
60
+
if [ $nproc -gt 4 ]
61
+
then
62
+
# Reserve two cores
63
+
nproc=$((nproc - 2))
64
+
fi
65
+
export MAKEFLAGS="-j$nproc"
66
+
export SAMUFLAGS="-j$nproc"
67
+
fi
68
+
##########################################################################################
69
+
70
+
if [[ $FF_BYOBU_ON_LOGIN == "true" || $LC_BYOBU == "1" ]]; then
71
+
_byobu_sourced=1 . /data/data/com.termux/files/usr/bin/byobu-launch 2>/dev/null || true
72
+
fi
-14
.ssh/config
-14
.ssh/config
···
1
-
# This is my SSH client configuration I use for both Nix-based and non-Nix systems,
2
-
#mainly because I am not yet ready to codify them into home-manager at the moment.
3
-
#Note that we might need to hack around the 1Password CLI for headless setups like tildes
4
-
# and agent forwarding.
5
-
6
-
Include ~/.ssh/configs/*
7
-
8
-
# iykyk
9
-
Host den
10
-
HostName hack.kim
11
-
User ajhalili2006
12
-
13
-
# load 1Password-specifics here
14
-
Include ~/.ssh/1Password/config
-24
.ssh/configs/homelab
-24
.ssh/configs/homelab
···
1
-
# infra on tailnet
2
-
Host homelab
3
-
Hostname lairland
4
-
User ajhalili2006
5
-
Host aether
6
-
HostName rpi-aether
7
-
User ajhalili2006
8
-
Host stellapent
9
-
Hostname stellapent-cier
10
-
User gildedguy
11
-
Host devlabs-infraops
12
-
HostName devlabs-infraops
13
-
User ajhalili2006
14
-
15
-
# uberspace.de
16
-
Host ub
17
-
HostName aegir.uberspace.de
18
-
User lairland
19
-
Host lairland.uberspace.de
20
-
HostName aegir.uberspace.de
21
-
User lairland
22
-
Host ajhalili.ub
23
-
HostName aegir.uberspace.de
24
-
User lairland
-11
.ssh/configs/recaptime-dev
-11
.ssh/configs/recaptime-dev
-13
.ssh/configs/tilde
-13
.ssh/configs/tilde
···
1
-
# SSH hosts for tildes in the tildeverse
2
-
Host nest
3
-
HostName hackclub.app
4
-
User ajhalili2006
5
-
Host psf
6
-
HostName p.psf.lt
7
-
User ajhalili2006
8
-
Host ctrl-c
9
-
HostName ctrl-c.clib
10
-
User ajhalili2006
11
-
Host hashbang
12
-
HostName de1.hashbang.sh
13
-
User ajhalili2006
-16
.ssh/git/allowed_signers
-16
.ssh/git/allowed_signers
···
1
-
#### @ajhalili2006 ####
2
-
# personal addresses
3
-
ajhalili2006@andreijiroh.dev ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEXuD3hJwInlcHs3wkXWAWNo8es3bPAd2e8ipjyqgGp2 SSH Key - main personal key, circa 2022
4
-
ajhalili2006@andreijiroh.dev ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCzMlrUe7qMA1P0lP56lq2dKTrwFU6CrVltQ9um+PhOMLkoi31kAlujHtWF6mqGRLXcK0Ao/0Wqug++r82Zu0u7dpAv8LCExtaRRMzagwPkEe4OOqUBOpS6mggfsik8mNA+1UtpkXJ+ZiB4cXtNKEZC0jtxWOTXSV67qgkSxuO+YBWB+7pnESkB0KorqwOoWGGUVfYQtbKUAt6VqM4s6dn7saXqwmN0tCPO6a+4L4mazkYjFD11HhktYsjP9dvnxYSOtMrSFb9JOXRST2LdiIJgwg+HTqBSWGO7aBRHMJaTF3ajlbMtKDQI/EcNQLyGgX6yFdjjzz9DRY+2oU0vPTytdqM2BKsfLlR0GVg7BVL7TZPaLJ1lgpCl4Z1oClW9FOzhnYJVT0W+IKPsnYsFPfv/BVgjWF7YtLdc5zqFJ31PULtikCyd0I6Kt95YD0HdrlR2faWcBHI8KKEAwCCanodGnK/xTOxisTX2dXOxx3mvR/L3Wil2ca5hnD+vt500/o8= SSH Key - ajhalili2006@launchpad.net
5
-
ajhalili2006@gmail.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEXuD3hJwInlcHs3wkXWAWNo8es3bPAd2e8ipjyqgGp2 SSH Key - main personal key, circa 2022
6
-
ajhalili2006@gmail.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCzMlrUe7qMA1P0lP56lq2dKTrwFU6CrVltQ9um+PhOMLkoi31kAlujHtWF6mqGRLXcK0Ao/0Wqug++r82Zu0u7dpAv8LCExtaRRMzagwPkEe4OOqUBOpS6mggfsik8mNA+1UtpkXJ+ZiB4cXtNKEZC0jtxWOTXSV67qgkSxuO+YBWB+7pnESkB0KorqwOoWGGUVfYQtbKUAt6VqM4s6dn7saXqwmN0tCPO6a+4L4mazkYjFD11HhktYsjP9dvnxYSOtMrSFb9JOXRST2LdiIJgwg+HTqBSWGO7aBRHMJaTF3ajlbMtKDQI/EcNQLyGgX6yFdjjzz9DRY+2oU0vPTytdqM2BKsfLlR0GVg7BVL7TZPaLJ1lgpCl4Z1oClW9FOzhnYJVT0W+IKPsnYsFPfv/BVgjWF7YtLdc5zqFJ31PULtikCyd0I6Kt95YD0HdrlR2faWcBHI8KKEAwCCanodGnK/xTOxisTX2dXOxx3mvR/L3Wil2ca5hnD+vt500/o8= SSH Key - ajhalili2006@launchpad.net
7
-
8
-
# release signing keys
9
-
releases@andreijiroh.dev ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHzLVfKtq8vBYeSrrVhwFwkpfu6TDLFgyjb3UmB+Jdhl
10
-
releases@recaptime.dev ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO0+1KY7/oVd+umDYBKfxmeQ6689365dlfk28MNiAl4e
11
-
12
-
# crew.recaptime.dev specific
13
-
ajhalili2006@crew.recaptime.dev ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDEYDna7HlVN6FL+Mxaof+WH5EoVmaUrM7GFAdQSveTJ RecapTIme.dev Crew SSH Key - @ajhalili2006
14
-
15
-
# school specifics
16
-
halili.459491@meycauayan.sti.edu.ph ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFI1Mj7gTG1IwnxPyr2AsXDq2kBq98hnijhgkGklkhWH
.ssh/keys/.keep
.ssh/keys/.keep
This is a binary file and will not be displayed.
+147
.termux/termux.properties
+147
.termux/termux.properties
···
1
+
### After making changes and saving you need to run `termux-reload-settings`
2
+
### to update the terminal. All information here can also be found on the
3
+
### wiki: https://wiki.termux.com/wiki/Terminal_Settings
4
+
5
+
###############
6
+
# General
7
+
###############
8
+
9
+
### Allow external applications to execute arbitrary commands within Termux.
10
+
### This potentially could be a security issue, so option is disabled by
11
+
### default. Uncomment to enable.
12
+
# allow-external-apps = true
13
+
14
+
### Default working directory that will be used when launching the app.
15
+
# default-working-directory = /data/data/com.termux/files/home
16
+
17
+
### Uncomment to disable toasts shown on terminal session change.
18
+
disable-terminal-session-change-toast = true
19
+
20
+
### Uncomment to not show soft keyboard on application start.
21
+
hide-soft-keyboard-on-startup = true
22
+
23
+
### Uncomment to let keyboard toggle button to enable or disable software
24
+
### keyboard instead of showing/hiding it.
25
+
# soft-keyboard-toggle-behaviour = enable/disable
26
+
27
+
### Adjust terminal scrollback buffer. Max is 50000. May have negative
28
+
### impact on performance.
29
+
terminal-transcript-rows = 5000
30
+
31
+
### Uncomment to use volume keys for adjusting volume and not for the
32
+
### extra keys functionality.
33
+
# volume-keys = volume
34
+
35
+
###############
36
+
# Fullscreen mode
37
+
###############
38
+
39
+
### Uncomment to let Termux start in full screen mode.
40
+
fullscreen = true
41
+
42
+
### Uncomment to attempt workaround layout issues when running in
43
+
### full screen mode.
44
+
#use-fullscreen-workaround = true
45
+
46
+
###############
47
+
# Cursor
48
+
###############
49
+
50
+
### Cursor blink rate. Values 0, 100 - 2000.
51
+
# terminal-cursor-blink-rate = 0
52
+
53
+
### Cursor style: block, bar, underline.
54
+
# terminal-cursor-style = block
55
+
56
+
###############
57
+
# Extra keys
58
+
###############
59
+
60
+
### Settings for choosing which set of symbols to use for illustrating keys.
61
+
### Choose between default, arrows-only, arrows-all, all and none
62
+
extra-keys-style = arrows-all
63
+
64
+
### Force capitalize all text in extra keys row button labels.
65
+
# extra-keys-text-all-caps = true
66
+
67
+
### Default extra-key configuration
68
+
# extra-keys = [[ESC, TAB, CTRL, ALT, {key: '-', popup: '|'}, DOWN, UP]]
69
+
70
+
### Two rows with more keys
71
+
extra-keys = [ \
72
+
['ESC', {key: '-', popout: '|'},'/','HOME','UP','END','PGUP','DEL'], \
73
+
['TAB','CTRL','ALT','LEFT','DOWN','RIGHT','PGDN','BKSP'] \
74
+
]
75
+
76
+
### Configuration with additional popup keys (swipe up from an extra key)
77
+
# extra-keys = [[ \
78
+
# {key: ESC, popup: {macro: "CTRL f d", display: "tmux exit"}}, \
79
+
# {key: CTRL, popup: {macro: "CTRL f BKSP", display: "tmux โ"}}, \
80
+
# {key: ALT, popup: {macro: "CTRL f TAB", display: "tmux โ"}}, \
81
+
# {key: TAB, popup: {macro: "ALT a", display: A-a}}, \
82
+
# {key: LEFT, popup: HOME}, \
83
+
# {key: DOWN, popup: PGDN}, \
84
+
# {key: UP, popup: PGUP}, \
85
+
# {key: RIGHT, popup: END}, \
86
+
# {macro: "ALT j", display: A-j, popup: {macro: "ALT g", display: A-g}}, \
87
+
# {key: KEYBOARD, popup: {macro: "CTRL d", display: exit}} \
88
+
# ]]
89
+
90
+
###############
91
+
# Colors/themes
92
+
###############
93
+
94
+
### Force black colors for drawer and dialogs
95
+
use-black-ui = true
96
+
97
+
###############
98
+
# HW keyboard shortcuts
99
+
###############
100
+
101
+
### Disable hardware keyboard shortcuts.
102
+
# disable-hardware-keyboard-shortcuts = true
103
+
104
+
### Open a new terminal with ctrl + t (volume down + t)
105
+
# shortcut.create-session = ctrl + t
106
+
107
+
### Go one session down with (for example) ctrl + 2
108
+
# shortcut.next-session = ctrl + 2
109
+
110
+
### Go one session up with (for example) ctrl + 1
111
+
# shortcut.previous-session = ctrl + 1
112
+
113
+
### Rename a session with (for example) ctrl + n
114
+
# shortcut.rename-session = ctrl + n
115
+
116
+
###############
117
+
# Bell key
118
+
###############
119
+
120
+
### Vibrate device (default).
121
+
# bell-character = vibrate
122
+
123
+
### Beep with a sound.
124
+
# bell-character = beep
125
+
126
+
### Ignore bell character.
127
+
# bell-character = ignore
128
+
129
+
###############
130
+
# Back key
131
+
###############
132
+
133
+
### Send the Escape key.
134
+
# back-key=escape
135
+
136
+
### Hide keyboard or leave app (default).
137
+
# back-key=back
138
+
139
+
###############
140
+
# Keyboard issue workarounds
141
+
###############
142
+
143
+
### Letters might not appear until enter is pressed on Samsung devices
144
+
# enforce-char-based-input = true
145
+
146
+
### ctrl+space (for marking text in emacs) does not work on some devices
147
+
# ctrl-space-workaround = true
+6
.tool-versions
+6
.tool-versions
+7
.trunk/.gitignore
+7
.trunk/.gitignore
+12
.trunk/trunk.yaml
+12
.trunk/trunk.yaml
+6
.vscode/extensions.json
+6
.vscode/extensions.json
+48
.vscode/settings.json
+48
.vscode/settings.json
···
1
+
{
2
+
"git.alwaysSignOff": true,
3
+
"gitlens.remotes": [
4
+
{
5
+
"domain": "mau.dev",
6
+
"type": "GitLab"
7
+
},
8
+
{
9
+
"domain": "tildegit.com",
10
+
"type": "Gitea"
11
+
},
12
+
{
13
+
"domain": "git.vern.cc",
14
+
"type": "Gitea"
15
+
}
16
+
],
17
+
"gitlens.heatmap.ageThreshold": 60,
18
+
"gitlens.views.commitDetails.files.layout": "tree",
19
+
"gitlens.views.repositories.includeWorkingTree": true,
20
+
"gitlens.views.repositories.showIncomingActivity": true,
21
+
"gitlens.views.fileHistory.files.layout": "tree",
22
+
"gitlens.autolinks": [
23
+
{
24
+
"ignoreCase": true,
25
+
"prefix": "LAUNCHPAD-",
26
+
"url": "https://youtrack.andreijiroh.xyz/issue/LAUNCHPAD-<num>"
27
+
}
28
+
],
29
+
"gitlens.defaultTimeFormat": "HH:mm",
30
+
"gitlens.defaultDateShortFormat": "YYYY-MM-D",
31
+
"gitlens.defaultDateFormat": "YYYY-MM-D HH:mm",
32
+
"shellcheck.customArgs": [
33
+
"--external-sources",
34
+
"-x"
35
+
],
36
+
"files.watcherExclude": {
37
+
"**/.git/objects/**": true,
38
+
"**/.git/subtree-cache/**": true,
39
+
"**/node_modules/*/**": true,
40
+
"**/.cache/**": true
41
+
},
42
+
"dotenv.enableAutocloaking": false,
43
+
"search.exclude": {
44
+
"**/.cache": true
45
+
},
46
+
"search.useGlobalIgnoreFiles": true,
47
+
"search.useParentIgnoreFiles": true
48
+
}
-1
.wakatime-project
-1
.wakatime-project
···
1
-
@andreijiroh-dev/dotfiles
+7
-370
LICENSE
+7
-370
LICENSE
···
1
-
Mozilla Public License Version 2.0
2
-
==================================
3
-
4
-
1. Definitions
5
-
--------------
6
-
7
-
1.1. "Contributor"
8
-
means each individual or legal entity that creates, contributes to
9
-
the creation of, or owns Covered Software.
10
-
11
-
1.2. "Contributor Version"
12
-
means the combination of the Contributions of others (if any) used
13
-
by a Contributor and that particular Contributor's Contribution.
14
-
15
-
1.3. "Contribution"
16
-
means Covered Software of a particular Contributor.
17
-
18
-
1.4. "Covered Software"
19
-
means Source Code Form to which the initial Contributor has attached
20
-
the notice in Exhibit A, the Executable Form of such Source Code
21
-
Form, and Modifications of such Source Code Form, in each case
22
-
including portions thereof.
23
-
24
-
1.5. "Incompatible With Secondary Licenses"
25
-
means
26
-
27
-
(a) that the initial Contributor has attached the notice described
28
-
in Exhibit B to the Covered Software; or
29
-
30
-
(b) that the Covered Software was made available under the terms of
31
-
version 1.1 or earlier of the License, but not also under the
32
-
terms of a Secondary License.
33
-
34
-
1.6. "Executable Form"
35
-
means any form of the work other than Source Code Form.
1
+
MIT License + Mozilla Public License 2.0
36
2
37
-
1.7. "Larger Work"
38
-
means a work that combines Covered Software with other material, in
39
-
a separate file or files, that is not Covered Software.
3
+
Copyright (c) 2022-present Andrei Jiroh Halili and contributors
40
4
41
-
1.8. "License"
42
-
means this document.
5
+
The contents of this repository, including external contributions is licensed under both MIT
6
+
and MPL-2.0, and this LICENSE file serves as placeholder for git hosting services that don't
7
+
support miltiple license files. This license doesn't include code that copied over from
8
+
third-parties and even Git submodules checked in.
43
9
44
-
1.9. "Licensable"
45
-
means having the right to grant, to the maximum extent possible,
46
-
whether at the time of the initial grant or subsequently, any and
47
-
all of the rights conveyed by this License.
48
-
49
-
1.10. "Modifications"
50
-
means any of the following:
51
-
52
-
(a) any file in Source Code Form that results from an addition to,
53
-
deletion from, or modification of the contents of Covered
54
-
Software; or
55
-
56
-
(b) any new file in Source Code Form that contains any Covered
57
-
Software.
58
-
59
-
1.11. "Patent Claims" of a Contributor
60
-
means any patent claim(s), including without limitation, method,
61
-
process, and apparatus claims, in any patent Licensable by such
62
-
Contributor that would be infringed, but for the grant of the
63
-
License, by the making, using, selling, offering for sale, having
64
-
made, import, or transfer of either its Contributions or its
65
-
Contributor Version.
66
-
67
-
1.12. "Secondary License"
68
-
means either the GNU General Public License, Version 2.0, the GNU
69
-
Lesser General Public License, Version 2.1, the GNU Affero General
70
-
Public License, Version 3.0, or any later versions of those
71
-
licenses.
72
-
73
-
1.13. "Source Code Form"
74
-
means the form of the work preferred for making modifications.
75
-
76
-
1.14. "You" (or "Your")
77
-
means an individual or a legal entity exercising rights under this
78
-
License. For legal entities, "You" includes any entity that
79
-
controls, is controlled by, or is under common control with You. For
80
-
purposes of this definition, "control" means (a) the power, direct
81
-
or indirect, to cause the direction or management of such entity,
82
-
whether by contract or otherwise, or (b) ownership of more than
83
-
fifty percent (50%) of the outstanding shares or beneficial
84
-
ownership of such entity.
85
-
86
-
2. License Grants and Conditions
87
-
--------------------------------
88
-
89
-
2.1. Grants
90
-
91
-
Each Contributor hereby grants You a world-wide, royalty-free,
92
-
non-exclusive license:
93
-
94
-
(a) under intellectual property rights (other than patent or trademark)
95
-
Licensable by such Contributor to use, reproduce, make available,
96
-
modify, display, perform, distribute, and otherwise exploit its
97
-
Contributions, either on an unmodified basis, with Modifications, or
98
-
as part of a Larger Work; and
99
-
100
-
(b) under Patent Claims of such Contributor to make, use, sell, offer
101
-
for sale, have made, import, and otherwise transfer either its
102
-
Contributions or its Contributor Version.
103
-
104
-
2.2. Effective Date
105
-
106
-
The licenses granted in Section 2.1 with respect to any Contribution
107
-
become effective for each Contribution on the date the Contributor first
108
-
distributes such Contribution.
109
-
110
-
2.3. Limitations on Grant Scope
111
-
112
-
The licenses granted in this Section 2 are the only rights granted under
113
-
this License. No additional rights or licenses will be implied from the
114
-
distribution or licensing of Covered Software under this License.
115
-
Notwithstanding Section 2.1(b) above, no patent license is granted by a
116
-
Contributor:
117
-
118
-
(a) for any code that a Contributor has removed from Covered Software;
119
-
or
120
-
121
-
(b) for infringements caused by: (i) Your and any other third party's
122
-
modifications of Covered Software, or (ii) the combination of its
123
-
Contributions with other software (except as part of its Contributor
124
-
Version); or
125
-
126
-
(c) under Patent Claims infringed by Covered Software in the absence of
127
-
its Contributions.
128
-
129
-
This License does not grant any rights in the trademarks, service marks,
130
-
or logos of any Contributor (except as may be necessary to comply with
131
-
the notice requirements in Section 3.4).
132
-
133
-
2.4. Subsequent Licenses
134
-
135
-
No Contributor makes additional grants as a result of Your choice to
136
-
distribute the Covered Software under a subsequent version of this
137
-
License (see Section 10.2) or under the terms of a Secondary License (if
138
-
permitted under the terms of Section 3.3).
139
-
140
-
2.5. Representation
141
-
142
-
Each Contributor represents that the Contributor believes its
143
-
Contributions are its original creation(s) or it has sufficient rights
144
-
to grant the rights to its Contributions conveyed by this License.
145
-
146
-
2.6. Fair Use
147
-
148
-
This License is not intended to limit any rights You have under
149
-
applicable copyright doctrines of fair use, fair dealing, or other
150
-
equivalents.
151
-
152
-
2.7. Conditions
153
-
154
-
Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
155
-
in Section 2.1.
156
-
157
-
3. Responsibilities
158
-
-------------------
159
-
160
-
3.1. Distribution of Source Form
161
-
162
-
All distribution of Covered Software in Source Code Form, including any
163
-
Modifications that You create or to which You contribute, must be under
164
-
the terms of this License. You must inform recipients that the Source
165
-
Code Form of the Covered Software is governed by the terms of this
166
-
License, and how they can obtain a copy of this License. You may not
167
-
attempt to alter or restrict the recipients' rights in the Source Code
168
-
Form.
169
-
170
-
3.2. Distribution of Executable Form
171
-
172
-
If You distribute Covered Software in Executable Form then:
173
-
174
-
(a) such Covered Software must also be made available in Source Code
175
-
Form, as described in Section 3.1, and You must inform recipients of
176
-
the Executable Form how they can obtain a copy of such Source Code
177
-
Form by reasonable means in a timely manner, at a charge no more
178
-
than the cost of distribution to the recipient; and
179
-
180
-
(b) You may distribute such Executable Form under the terms of this
181
-
License, or sublicense it under different terms, provided that the
182
-
license for the Executable Form does not attempt to limit or alter
183
-
the recipients' rights in the Source Code Form under this License.
184
-
185
-
3.3. Distribution of a Larger Work
186
-
187
-
You may create and distribute a Larger Work under terms of Your choice,
188
-
provided that You also comply with the requirements of this License for
189
-
the Covered Software. If the Larger Work is a combination of Covered
190
-
Software with a work governed by one or more Secondary Licenses, and the
191
-
Covered Software is not Incompatible With Secondary Licenses, this
192
-
License permits You to additionally distribute such Covered Software
193
-
under the terms of such Secondary License(s), so that the recipient of
194
-
the Larger Work may, at their option, further distribute the Covered
195
-
Software under the terms of either this License or such Secondary
196
-
License(s).
197
-
198
-
3.4. Notices
199
-
200
-
You may not remove or alter the substance of any license notices
201
-
(including copyright notices, patent notices, disclaimers of warranty,
202
-
or limitations of liability) contained within the Source Code Form of
203
-
the Covered Software, except that You may alter any license notices to
204
-
the extent required to remedy known factual inaccuracies.
205
-
206
-
3.5. Application of Additional Terms
207
-
208
-
You may choose to offer, and to charge a fee for, warranty, support,
209
-
indemnity or liability obligations to one or more recipients of Covered
210
-
Software. However, You may do so only on Your own behalf, and not on
211
-
behalf of any Contributor. You must make it absolutely clear that any
212
-
such warranty, support, indemnity, or liability obligation is offered by
213
-
You alone, and You hereby agree to indemnify every Contributor for any
214
-
liability incurred by such Contributor as a result of warranty, support,
215
-
indemnity or liability terms You offer. You may include additional
216
-
disclaimers of warranty and limitations of liability specific to any
217
-
jurisdiction.
218
-
219
-
4. Inability to Comply Due to Statute or Regulation
220
-
---------------------------------------------------
221
-
222
-
If it is impossible for You to comply with any of the terms of this
223
-
License with respect to some or all of the Covered Software due to
224
-
statute, judicial order, or regulation then You must: (a) comply with
225
-
the terms of this License to the maximum extent possible; and (b)
226
-
describe the limitations and the code they affect. Such description must
227
-
be placed in a text file included with all distributions of the Covered
228
-
Software under this License. Except to the extent prohibited by statute
229
-
or regulation, such description must be sufficiently detailed for a
230
-
recipient of ordinary skill to be able to understand it.
231
-
232
-
5. Termination
233
-
--------------
234
-
235
-
5.1. The rights granted under this License will terminate automatically
236
-
if You fail to comply with any of its terms. However, if You become
237
-
compliant, then the rights granted under this License from a particular
238
-
Contributor are reinstated (a) provisionally, unless and until such
239
-
Contributor explicitly and finally terminates Your grants, and (b) on an
240
-
ongoing basis, if such Contributor fails to notify You of the
241
-
non-compliance by some reasonable means prior to 60 days after You have
242
-
come back into compliance. Moreover, Your grants from a particular
243
-
Contributor are reinstated on an ongoing basis if such Contributor
244
-
notifies You of the non-compliance by some reasonable means, this is the
245
-
first time You have received notice of non-compliance with this License
246
-
from such Contributor, and You become compliant prior to 30 days after
247
-
Your receipt of the notice.
248
-
249
-
5.2. If You initiate litigation against any entity by asserting a patent
250
-
infringement claim (excluding declaratory judgment actions,
251
-
counter-claims, and cross-claims) alleging that a Contributor Version
252
-
directly or indirectly infringes any patent, then the rights granted to
253
-
You by any and all Contributors for the Covered Software under Section
254
-
2.1 of this License shall terminate.
255
-
256
-
5.3. In the event of termination under Sections 5.1 or 5.2 above, all
257
-
end user license agreements (excluding distributors and resellers) which
258
-
have been validly granted by You or Your distributors under this License
259
-
prior to termination shall survive termination.
260
-
261
-
************************************************************************
262
-
* *
263
-
* 6. Disclaimer of Warranty *
264
-
* ------------------------- *
265
-
* *
266
-
* Covered Software is provided under this License on an "as is" *
267
-
* basis, without warranty of any kind, either expressed, implied, or *
268
-
* statutory, including, without limitation, warranties that the *
269
-
* Covered Software is free of defects, merchantable, fit for a *
270
-
* particular purpose or non-infringing. The entire risk as to the *
271
-
* quality and performance of the Covered Software is with You. *
272
-
* Should any Covered Software prove defective in any respect, You *
273
-
* (not any Contributor) assume the cost of any necessary servicing, *
274
-
* repair, or correction. This disclaimer of warranty constitutes an *
275
-
* essential part of this License. No use of any Covered Software is *
276
-
* authorized under this License except under this disclaimer. *
277
-
* *
278
-
************************************************************************
279
-
280
-
************************************************************************
281
-
* *
282
-
* 7. Limitation of Liability *
283
-
* -------------------------- *
284
-
* *
285
-
* Under no circumstances and under no legal theory, whether tort *
286
-
* (including negligence), contract, or otherwise, shall any *
287
-
* Contributor, or anyone who distributes Covered Software as *
288
-
* permitted above, be liable to You for any direct, indirect, *
289
-
* special, incidental, or consequential damages of any character *
290
-
* including, without limitation, damages for lost profits, loss of *
291
-
* goodwill, work stoppage, computer failure or malfunction, or any *
292
-
* and all other commercial damages or losses, even if such party *
293
-
* shall have been informed of the possibility of such damages. This *
294
-
* limitation of liability shall not apply to liability for death or *
295
-
* personal injury resulting from such party's negligence to the *
296
-
* extent applicable law prohibits such limitation. Some *
297
-
* jurisdictions do not allow the exclusion or limitation of *
298
-
* incidental or consequential damages, so this exclusion and *
299
-
* limitation may not apply to You. *
300
-
* *
301
-
************************************************************************
302
-
303
-
8. Litigation
304
-
-------------
305
-
306
-
Any litigation relating to this License may be brought only in the
307
-
courts of a jurisdiction where the defendant maintains its principal
308
-
place of business and such litigation shall be governed by laws of that
309
-
jurisdiction, without reference to its conflict-of-law provisions.
310
-
Nothing in this Section shall prevent a party's ability to bring
311
-
cross-claims or counter-claims.
312
-
313
-
9. Miscellaneous
314
-
----------------
315
-
316
-
This License represents the complete agreement concerning the subject
317
-
matter hereof. If any provision of this License is held to be
318
-
unenforceable, such provision shall be reformed only to the extent
319
-
necessary to make it enforceable. Any law or regulation which provides
320
-
that the language of a contract shall be construed against the drafter
321
-
shall not be used to construe this License against a Contributor.
322
-
323
-
10. Versions of the License
324
-
---------------------------
325
-
326
-
10.1. New Versions
327
-
328
-
Mozilla Foundation is the license steward. Except as provided in Section
329
-
10.3, no one other than the license steward has the right to modify or
330
-
publish new versions of this License. Each version will be given a
331
-
distinguishing version number.
332
-
333
-
10.2. Effect of New Versions
334
-
335
-
You may distribute the Covered Software under the terms of the version
336
-
of the License under which You originally received the Covered Software,
337
-
or under the terms of any subsequent version published by the license
338
-
steward.
339
-
340
-
10.3. Modified Versions
341
-
342
-
If you create software not governed by this License, and you want to
343
-
create a new license for such software, you may create and use a
344
-
modified version of this License if you rename the license and remove
345
-
any references to the name of the license steward (except to note that
346
-
such modified license differs from this License).
347
-
348
-
10.4. Distributing Source Code Form that is Incompatible With Secondary
349
-
Licenses
350
-
351
-
If You choose to distribute Source Code Form that is Incompatible With
352
-
Secondary Licenses under the terms of this version of the License, the
353
-
notice described in Exhibit B of this License must be attached.
354
-
355
-
Exhibit A - Source Code Form License Notice
356
-
-------------------------------------------
357
-
358
-
This Source Code Form is subject to the terms of the Mozilla Public
359
-
License, v. 2.0. If a copy of the MPL was not distributed with this
360
-
file, You can obtain one at https://mozilla.org/MPL/2.0/.
361
-
362
-
If it is not possible or desirable to put the notice in a particular
363
-
file, then You may include the notice in a location (such as a LICENSE
364
-
file in a relevant directory) where a recipient would be likely to look
365
-
for such a notice.
366
-
367
-
You may add additional accurate notices of copyright ownership.
368
-
369
-
Exhibit B - "Incompatible With Secondary Licenses" Notice
370
-
---------------------------------------------------------
371
-
372
-
This Source Code Form is "Incompatible With Secondary Licenses", as
373
-
defined by the Mozilla Public License, v. 2.0.
10
+
See LICENSE-MIT and LICENSE-MPL-2.0 for the legalese text in plaintext.
+21
LICENSE-MIT
+21
LICENSE-MIT
···
1
+
MIT License
2
+
3
+
Copyright (c) 2022-present Andrei Jiroh Halili and contributors
4
+
5
+
Permission is hereby granted, free of charge, to any person obtaining a copy
6
+
of this software and associated documentation files (the "Software"), to deal
7
+
in the Software without restriction, including without limitation the rights
8
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+
copies of the Software, and to permit persons to whom the Software is
10
+
furnished to do so, subject to the following conditions:
11
+
12
+
The above copyright notice and this permission notice shall be included in all
13
+
copies or substantial portions of the Software.
14
+
15
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+
SOFTWARE.
+373
LICENSE-MPL-2.0
+373
LICENSE-MPL-2.0
···
1
+
Mozilla Public License Version 2.0
2
+
==================================
3
+
4
+
1. Definitions
5
+
--------------
6
+
7
+
1.1. "Contributor"
8
+
means each individual or legal entity that creates, contributes to
9
+
the creation of, or owns Covered Software.
10
+
11
+
1.2. "Contributor Version"
12
+
means the combination of the Contributions of others (if any) used
13
+
by a Contributor and that particular Contributor's Contribution.
14
+
15
+
1.3. "Contribution"
16
+
means Covered Software of a particular Contributor.
17
+
18
+
1.4. "Covered Software"
19
+
means Source Code Form to which the initial Contributor has attached
20
+
the notice in Exhibit A, the Executable Form of such Source Code
21
+
Form, and Modifications of such Source Code Form, in each case
22
+
including portions thereof.
23
+
24
+
1.5. "Incompatible With Secondary Licenses"
25
+
means
26
+
27
+
(a) that the initial Contributor has attached the notice described
28
+
in Exhibit B to the Covered Software; or
29
+
30
+
(b) that the Covered Software was made available under the terms of
31
+
version 1.1 or earlier of the License, but not also under the
32
+
terms of a Secondary License.
33
+
34
+
1.6. "Executable Form"
35
+
means any form of the work other than Source Code Form.
36
+
37
+
1.7. "Larger Work"
38
+
means a work that combines Covered Software with other material, in
39
+
a separate file or files, that is not Covered Software.
40
+
41
+
1.8. "License"
42
+
means this document.
43
+
44
+
1.9. "Licensable"
45
+
means having the right to grant, to the maximum extent possible,
46
+
whether at the time of the initial grant or subsequently, any and
47
+
all of the rights conveyed by this License.
48
+
49
+
1.10. "Modifications"
50
+
means any of the following:
51
+
52
+
(a) any file in Source Code Form that results from an addition to,
53
+
deletion from, or modification of the contents of Covered
54
+
Software; or
55
+
56
+
(b) any new file in Source Code Form that contains any Covered
57
+
Software.
58
+
59
+
1.11. "Patent Claims" of a Contributor
60
+
means any patent claim(s), including without limitation, method,
61
+
process, and apparatus claims, in any patent Licensable by such
62
+
Contributor that would be infringed, but for the grant of the
63
+
License, by the making, using, selling, offering for sale, having
64
+
made, import, or transfer of either its Contributions or its
65
+
Contributor Version.
66
+
67
+
1.12. "Secondary License"
68
+
means either the GNU General Public License, Version 2.0, the GNU
69
+
Lesser General Public License, Version 2.1, the GNU Affero General
70
+
Public License, Version 3.0, or any later versions of those
71
+
licenses.
72
+
73
+
1.13. "Source Code Form"
74
+
means the form of the work preferred for making modifications.
75
+
76
+
1.14. "You" (or "Your")
77
+
means an individual or a legal entity exercising rights under this
78
+
License. For legal entities, "You" includes any entity that
79
+
controls, is controlled by, or is under common control with You. For
80
+
purposes of this definition, "control" means (a) the power, direct
81
+
or indirect, to cause the direction or management of such entity,
82
+
whether by contract or otherwise, or (b) ownership of more than
83
+
fifty percent (50%) of the outstanding shares or beneficial
84
+
ownership of such entity.
85
+
86
+
2. License Grants and Conditions
87
+
--------------------------------
88
+
89
+
2.1. Grants
90
+
91
+
Each Contributor hereby grants You a world-wide, royalty-free,
92
+
non-exclusive license:
93
+
94
+
(a) under intellectual property rights (other than patent or trademark)
95
+
Licensable by such Contributor to use, reproduce, make available,
96
+
modify, display, perform, distribute, and otherwise exploit its
97
+
Contributions, either on an unmodified basis, with Modifications, or
98
+
as part of a Larger Work; and
99
+
100
+
(b) under Patent Claims of such Contributor to make, use, sell, offer
101
+
for sale, have made, import, and otherwise transfer either its
102
+
Contributions or its Contributor Version.
103
+
104
+
2.2. Effective Date
105
+
106
+
The licenses granted in Section 2.1 with respect to any Contribution
107
+
become effective for each Contribution on the date the Contributor first
108
+
distributes such Contribution.
109
+
110
+
2.3. Limitations on Grant Scope
111
+
112
+
The licenses granted in this Section 2 are the only rights granted under
113
+
this License. No additional rights or licenses will be implied from the
114
+
distribution or licensing of Covered Software under this License.
115
+
Notwithstanding Section 2.1(b) above, no patent license is granted by a
116
+
Contributor:
117
+
118
+
(a) for any code that a Contributor has removed from Covered Software;
119
+
or
120
+
121
+
(b) for infringements caused by: (i) Your and any other third party's
122
+
modifications of Covered Software, or (ii) the combination of its
123
+
Contributions with other software (except as part of its Contributor
124
+
Version); or
125
+
126
+
(c) under Patent Claims infringed by Covered Software in the absence of
127
+
its Contributions.
128
+
129
+
This License does not grant any rights in the trademarks, service marks,
130
+
or logos of any Contributor (except as may be necessary to comply with
131
+
the notice requirements in Section 3.4).
132
+
133
+
2.4. Subsequent Licenses
134
+
135
+
No Contributor makes additional grants as a result of Your choice to
136
+
distribute the Covered Software under a subsequent version of this
137
+
License (see Section 10.2) or under the terms of a Secondary License (if
138
+
permitted under the terms of Section 3.3).
139
+
140
+
2.5. Representation
141
+
142
+
Each Contributor represents that the Contributor believes its
143
+
Contributions are its original creation(s) or it has sufficient rights
144
+
to grant the rights to its Contributions conveyed by this License.
145
+
146
+
2.6. Fair Use
147
+
148
+
This License is not intended to limit any rights You have under
149
+
applicable copyright doctrines of fair use, fair dealing, or other
150
+
equivalents.
151
+
152
+
2.7. Conditions
153
+
154
+
Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
155
+
in Section 2.1.
156
+
157
+
3. Responsibilities
158
+
-------------------
159
+
160
+
3.1. Distribution of Source Form
161
+
162
+
All distribution of Covered Software in Source Code Form, including any
163
+
Modifications that You create or to which You contribute, must be under
164
+
the terms of this License. You must inform recipients that the Source
165
+
Code Form of the Covered Software is governed by the terms of this
166
+
License, and how they can obtain a copy of this License. You may not
167
+
attempt to alter or restrict the recipients' rights in the Source Code
168
+
Form.
169
+
170
+
3.2. Distribution of Executable Form
171
+
172
+
If You distribute Covered Software in Executable Form then:
173
+
174
+
(a) such Covered Software must also be made available in Source Code
175
+
Form, as described in Section 3.1, and You must inform recipients of
176
+
the Executable Form how they can obtain a copy of such Source Code
177
+
Form by reasonable means in a timely manner, at a charge no more
178
+
than the cost of distribution to the recipient; and
179
+
180
+
(b) You may distribute such Executable Form under the terms of this
181
+
License, or sublicense it under different terms, provided that the
182
+
license for the Executable Form does not attempt to limit or alter
183
+
the recipients' rights in the Source Code Form under this License.
184
+
185
+
3.3. Distribution of a Larger Work
186
+
187
+
You may create and distribute a Larger Work under terms of Your choice,
188
+
provided that You also comply with the requirements of this License for
189
+
the Covered Software. If the Larger Work is a combination of Covered
190
+
Software with a work governed by one or more Secondary Licenses, and the
191
+
Covered Software is not Incompatible With Secondary Licenses, this
192
+
License permits You to additionally distribute such Covered Software
193
+
under the terms of such Secondary License(s), so that the recipient of
194
+
the Larger Work may, at their option, further distribute the Covered
195
+
Software under the terms of either this License or such Secondary
196
+
License(s).
197
+
198
+
3.4. Notices
199
+
200
+
You may not remove or alter the substance of any license notices
201
+
(including copyright notices, patent notices, disclaimers of warranty,
202
+
or limitations of liability) contained within the Source Code Form of
203
+
the Covered Software, except that You may alter any license notices to
204
+
the extent required to remedy known factual inaccuracies.
205
+
206
+
3.5. Application of Additional Terms
207
+
208
+
You may choose to offer, and to charge a fee for, warranty, support,
209
+
indemnity or liability obligations to one or more recipients of Covered
210
+
Software. However, You may do so only on Your own behalf, and not on
211
+
behalf of any Contributor. You must make it absolutely clear that any
212
+
such warranty, support, indemnity, or liability obligation is offered by
213
+
You alone, and You hereby agree to indemnify every Contributor for any
214
+
liability incurred by such Contributor as a result of warranty, support,
215
+
indemnity or liability terms You offer. You may include additional
216
+
disclaimers of warranty and limitations of liability specific to any
217
+
jurisdiction.
218
+
219
+
4. Inability to Comply Due to Statute or Regulation
220
+
---------------------------------------------------
221
+
222
+
If it is impossible for You to comply with any of the terms of this
223
+
License with respect to some or all of the Covered Software due to
224
+
statute, judicial order, or regulation then You must: (a) comply with
225
+
the terms of this License to the maximum extent possible; and (b)
226
+
describe the limitations and the code they affect. Such description must
227
+
be placed in a text file included with all distributions of the Covered
228
+
Software under this License. Except to the extent prohibited by statute
229
+
or regulation, such description must be sufficiently detailed for a
230
+
recipient of ordinary skill to be able to understand it.
231
+
232
+
5. Termination
233
+
--------------
234
+
235
+
5.1. The rights granted under this License will terminate automatically
236
+
if You fail to comply with any of its terms. However, if You become
237
+
compliant, then the rights granted under this License from a particular
238
+
Contributor are reinstated (a) provisionally, unless and until such
239
+
Contributor explicitly and finally terminates Your grants, and (b) on an
240
+
ongoing basis, if such Contributor fails to notify You of the
241
+
non-compliance by some reasonable means prior to 60 days after You have
242
+
come back into compliance. Moreover, Your grants from a particular
243
+
Contributor are reinstated on an ongoing basis if such Contributor
244
+
notifies You of the non-compliance by some reasonable means, this is the
245
+
first time You have received notice of non-compliance with this License
246
+
from such Contributor, and You become compliant prior to 30 days after
247
+
Your receipt of the notice.
248
+
249
+
5.2. If You initiate litigation against any entity by asserting a patent
250
+
infringement claim (excluding declaratory judgment actions,
251
+
counter-claims, and cross-claims) alleging that a Contributor Version
252
+
directly or indirectly infringes any patent, then the rights granted to
253
+
You by any and all Contributors for the Covered Software under Section
254
+
2.1 of this License shall terminate.
255
+
256
+
5.3. In the event of termination under Sections 5.1 or 5.2 above, all
257
+
end user license agreements (excluding distributors and resellers) which
258
+
have been validly granted by You or Your distributors under this License
259
+
prior to termination shall survive termination.
260
+
261
+
************************************************************************
262
+
* *
263
+
* 6. Disclaimer of Warranty *
264
+
* ------------------------- *
265
+
* *
266
+
* Covered Software is provided under this License on an "as is" *
267
+
* basis, without warranty of any kind, either expressed, implied, or *
268
+
* statutory, including, without limitation, warranties that the *
269
+
* Covered Software is free of defects, merchantable, fit for a *
270
+
* particular purpose or non-infringing. The entire risk as to the *
271
+
* quality and performance of the Covered Software is with You. *
272
+
* Should any Covered Software prove defective in any respect, You *
273
+
* (not any Contributor) assume the cost of any necessary servicing, *
274
+
* repair, or correction. This disclaimer of warranty constitutes an *
275
+
* essential part of this License. No use of any Covered Software is *
276
+
* authorized under this License except under this disclaimer. *
277
+
* *
278
+
************************************************************************
279
+
280
+
************************************************************************
281
+
* *
282
+
* 7. Limitation of Liability *
283
+
* -------------------------- *
284
+
* *
285
+
* Under no circumstances and under no legal theory, whether tort *
286
+
* (including negligence), contract, or otherwise, shall any *
287
+
* Contributor, or anyone who distributes Covered Software as *
288
+
* permitted above, be liable to You for any direct, indirect, *
289
+
* special, incidental, or consequential damages of any character *
290
+
* including, without limitation, damages for lost profits, loss of *
291
+
* goodwill, work stoppage, computer failure or malfunction, or any *
292
+
* and all other commercial damages or losses, even if such party *
293
+
* shall have been informed of the possibility of such damages. This *
294
+
* limitation of liability shall not apply to liability for death or *
295
+
* personal injury resulting from such party's negligence to the *
296
+
* extent applicable law prohibits such limitation. Some *
297
+
* jurisdictions do not allow the exclusion or limitation of *
298
+
* incidental or consequential damages, so this exclusion and *
299
+
* limitation may not apply to You. *
300
+
* *
301
+
************************************************************************
302
+
303
+
8. Litigation
304
+
-------------
305
+
306
+
Any litigation relating to this License may be brought only in the
307
+
courts of a jurisdiction where the defendant maintains its principal
308
+
place of business and such litigation shall be governed by laws of that
309
+
jurisdiction, without reference to its conflict-of-law provisions.
310
+
Nothing in this Section shall prevent a party's ability to bring
311
+
cross-claims or counter-claims.
312
+
313
+
9. Miscellaneous
314
+
----------------
315
+
316
+
This License represents the complete agreement concerning the subject
317
+
matter hereof. If any provision of this License is held to be
318
+
unenforceable, such provision shall be reformed only to the extent
319
+
necessary to make it enforceable. Any law or regulation which provides
320
+
that the language of a contract shall be construed against the drafter
321
+
shall not be used to construe this License against a Contributor.
322
+
323
+
10. Versions of the License
324
+
---------------------------
325
+
326
+
10.1. New Versions
327
+
328
+
Mozilla Foundation is the license steward. Except as provided in Section
329
+
10.3, no one other than the license steward has the right to modify or
330
+
publish new versions of this License. Each version will be given a
331
+
distinguishing version number.
332
+
333
+
10.2. Effect of New Versions
334
+
335
+
You may distribute the Covered Software under the terms of the version
336
+
of the License under which You originally received the Covered Software,
337
+
or under the terms of any subsequent version published by the license
338
+
steward.
339
+
340
+
10.3. Modified Versions
341
+
342
+
If you create software not governed by this License, and you want to
343
+
create a new license for such software, you may create and use a
344
+
modified version of this License if you rename the license and remove
345
+
any references to the name of the license steward (except to note that
346
+
such modified license differs from this License).
347
+
348
+
10.4. Distributing Source Code Form that is Incompatible With Secondary
349
+
Licenses
350
+
351
+
If You choose to distribute Source Code Form that is Incompatible With
352
+
Secondary Licenses under the terms of this version of the License, the
353
+
notice described in Exhibit B of this License must be attached.
354
+
355
+
Exhibit A - Source Code Form License Notice
356
+
-------------------------------------------
357
+
358
+
This Source Code Form is subject to the terms of the Mozilla Public
359
+
License, v. 2.0. If a copy of the MPL was not distributed with this
360
+
file, You can obtain one at http://mozilla.org/MPL/2.0/.
361
+
362
+
If it is not possible or desirable to put the notice in a particular
363
+
file, then You may include the notice in a location (such as a LICENSE
364
+
file in a relevant directory) where a recipient would be likely to look
365
+
for such a notice.
366
+
367
+
You may add additional accurate notices of copyright ownership.
368
+
369
+
Exhibit B - "Incompatible With Secondary Licenses" Notice
370
+
---------------------------------------------------------
371
+
372
+
This Source Code Form is "Incompatible With Secondary Licenses", as
373
+
defined by the Mozilla Public License, v. 2.0.
+22
-68
README.md
+22
-68
README.md
···
1
-
# `@andreijiroh-dev/dotfiles@nixos` - @ajhalili2006's dotfiles under nixos + nixpkgs!
1
+
# ~ajhalili2006's dotfiles in Termux
2
2
3
-
Yup, I'm starting a fresh for my dotfiles for 2025 and beyond, now with
4
-
[nixpkgs](https://nixos.org) and [home-manager](https://nix-community.github.io/home-manager)
5
-
in mind. Backwards-compatible with non-nixpkgs setups via `yadm`.
3
+
> [!note]
4
+
> For the main documentation itself, [see the README on the main branch](https://mau.dev/andreijiroh-dev/dotfiles/blob/main/README.md).
6
5
7
-
## Usage
6
+
My dotfiles, customized for [Termux](https://termux.dev) and friends (context: Android OS).
7
+
Based off <https://drewdevault.com/2019/12/30/dotfiles.html>, but uses `yadm` to manage home directory's version control
8
+
as if I do prefixing commands with `git -C ~`.
8
9
9
-
### Plain dotfiles
10
-
11
-
Make sure Git is installed in your non NixOS/nixpkgs setup for the setup to work.
10
+
## Quick deploy / Speedrun
12
11
13
12
```bash
14
-
cd ~
15
-
git init
16
-
git remote add origin https://mau.dev/andreijiroh-dev/dotfiles
17
-
git checkout -f main
18
-
ln -s ./.git ./.local/share/yadm/repo.git # so that we can use yadm later
13
+
# The script should detect that we're inside Termux, although we can force it
14
+
# with the --termux flag.
15
+
curl -fsSL https://scripts.andreijiroh.xyz/dotfiles/setup.sh | bash -s --termux
19
16
```
20
17
21
-
If you prefer to cook up with `yadm` first:
18
+
Alternatively:
22
19
23
20
```bash
24
-
yadm clone https://github.com/andreijiroh-dev/dotfiles
25
-
ln -s ./.local/share/yadm/repo.git ./.git # so that we can normally use git here
26
-
```
27
-
28
-
### Using nix flakes + home-manager
29
-
30
-
```bash
31
-
# A quick home-manager switch should do the trick
32
-
nix run home-manager/master -- switch --flake github:andreijiroh-dev/nixops-config
33
-
34
-
# otherwise a quick copy paste configs should fix 'em if you use a different username
35
-
# (not different home directory yet!)
21
+
pkg install git git-lfs yadm gh glab-cli openssh
22
+
git init -m main
23
+
git remote add lab https://mau.dev/andreijiroh-dev/dotfiles
24
+
git fetch --all
25
+
git switch lab/termux
26
+
yadm bootstrap
36
27
```
37
28
38
-
#### Updating `authorized_keys` with Nix
39
-
40
-
1. Update [`shared/ssh-keys.nix`][ssh-keys] and `users.users.<gildedguy|ajhalili2006>.openssh.authorizedKeys.keys`
41
-
2. Run `nixos-rebuild switch` to regenerate `/etc/ssh/authorized_keys.d/<gildedguy|ajhalili2006>`.
42
-
3. Copy that file back to `.ssh/authorized_keys`. Commit changes and push.
43
-
4. On the affected machines, just `git pull` away.
44
-
45
-
### Using 1Password SSH Agent integration
29
+
## Differences from main branch
46
30
47
-
> [!WARNING]
48
-
> 1Password Desktop app must be installed and enabled `Use SSH Agent` in
49
-
> **Settings** -> **Developer** -> **SSH Agent** after signing in.
50
-
51
-
Note that this should work on most desktop apps, although if you're in Nest (and friends
52
-
with RDP access), connect to there first and authenicate. You may need to adjust security
53
-
settings in the desktop app to ensure nothing go wrong.
54
-
55
-
Alternatively, you can export the private keys with password encryption
56
-
57
-
## Directory + File Map
58
-
59
-
### Essientials
60
-
61
-
* [`.config/nixos`](./.config/nixos/) - my NixOS configuration as a flake, including system tools,
62
-
usually in sync (TODO: Swap into Git module of <https://github.com/andreijiroh-dev/nixops-config> soon)
63
-
* [`.config/home-manager`](./.config/home-manager/) - Home-manager configs, mostly CLI and desktop apps go here
64
-
* [`bin`](./bin) - Shell scripts! (because Nix looks like Haskell to me)
65
-
66
-
## Related repositories
67
-
68
-
* [`@andreijiroh-dev/nixops-config`][nixops-config] - my NixOS + home-manager configs, with flake support (TODO: turn `.config/nixos` into submodule)
69
-
* [`@andreijiroh-dev/infraops`][infraops] - the homelab config in pure Docker Compose insanity, alongside DNS records YAML files for octoDNS
70
-
* [`@recaptime-dev/infra`][rtdev-infra] - @recaptime-dev's infra configurations and home for our Infra Issue Tracker
71
-
* [`@recaptime-dev/infra-internals`][rtdev-infra-internals] - @recaptime-dev's infra configs for Portainer (the public repo version only have `stack.env` files removed via `git-filter-repo`)
72
-
73
-
## License
74
-
75
-
MPL-2.0
76
-
77
-
[nixops-config]: https://github.com/andreijiroh-dev/nixops-config
78
-
[infraops]: https://github.com/andreijiroh-dev/infraops
79
-
[rtdev-infra]: https://github.com/recaptime-dev/infra
80
-
[rtdev-infra-internals]: https://github.com/internal-recaptime-dev/infra-internals-public
31
+
* Termux app customizations are stored in [`.termux/termux.properties`](.termux/termux.properties) file.
32
+
* Heavy usage of `safe.storage` in Git user config for cross-app storage access, especially for Git repos via Obsidian.
33
+
* Shell shebang patches via `termux-fix-shebang`
34
+
* Some workarounds for using `keychain`
+149
bin/backup-pgp-keys
+149
bin/backup-pgp-keys
···
1
+
#!/usr/bin/env bash
2
+
3
+
# a script to generate backups for my GPG keys
4
+
5
+
# Literally all of active keys I use for different purposes. For things like shared keys,
6
+
# I override them via PUBLIC_KEYS AND PRIVATE_KEYS variables at runtime.
7
+
DEFAULT_PRIVATE_KEYS="0527234A430387EA5695D824A30EBE40AD856D88 4D5E631758CB9CC45941B1CE67BFC91B3DA12BE8 EA957E7086E934F8DB9CAD21940047813E9D641C 5D69E717C5BC95731C2AD8BD120C218ED2291996 2CFF8721393487AEEF2C38987067DB4C7768552F 18C97CF46F06176E7EC43BDC7E4E0EF8B968A952 51D2F9710A20AAE56DC9A9AB77D63E4A0C267204"
8
+
DEFAULT_PUBLIC_KEYS="0527234A430387EA5695D824A30EBE40AD856D88 4D5E631758CB9CC45941B1CE67BFC91B3DA12BE8 EA957E7086E934F8DB9CAD21940047813E9D641C 5D69E717C5BC95731C2AD8BD120C218ED2291996"
9
+
10
+
# allow anybody to automate this via envvars
11
+
PRIVATE_KEYS="${PRIVATE_KEYS:-"$DEFAULT_PRIVATE_KEYS"}"
12
+
PUBLIC_KEYS="${PUBLIC_KEYS:-"$DEFAULT_PUBLIC_KEYS"}"
13
+
14
+
# Command snippet taken from OpenKeychain FAQs
15
+
# https://www.openkeychain.org/faq/#what-is-the-best-way-to-transfer-my-own-key-to-openkeychain
16
+
BACKUP_FILE_PASSWORD=$(gpg --armor --gen-random 1 20)
17
+
TIMESTAMP=$(date +%s)
18
+
19
+
generate_pubkey_bak() {
20
+
echo "[Stage 1]: Export all public keys per PUBLIC_KEYS to '$EXPORT_DIR/pubkeys-$TIMESTAMP.asc'"
21
+
echo
22
+
sleep 3
23
+
24
+
if [[ $_arg_secretkeys_only == "true" ]]; then
25
+
echo "warning: Skipping because --only-secret flag is used"
26
+
return
27
+
fi
28
+
29
+
for key in $PUBLIC_KEYS; do
30
+
echo "Exporting keyid $key's public key"
31
+
if [[ $_arg_dryrun == "true" ]]; then
32
+
echo "+ gpg --armor --export \"$key\" >> \"$EXPORT_DIR/pubkeys-$TIMESTAMP.asc\""
33
+
else
34
+
gpg --armor --export "$key" >> "$EXPORT_DIR/pubkeys-$TIMESTAMP.asc"
35
+
fi
36
+
sleep 3
37
+
done
38
+
echo
39
+
}
40
+
41
+
generate_privkey_bak() {
42
+
echo "[Stage 2]: Export all private keys per PRIVATE_KEYS to '$EXPORT_DIR/gpg-keys-backup-$TIMESTAMP.asc'"
43
+
echo
44
+
sleep 3
45
+
46
+
if [[ $_arg_pubkeys_only == "true" ]]; then
47
+
echo "warning: Skipping because --only-public flag is used"
48
+
return
49
+
fi
50
+
51
+
if [[ $_arg_dryrun == "true" ]]; then
52
+
for key in $PRIVATE_KEYS; do
53
+
echo "Exporting keyid $key with private key"
54
+
echo "+ gpg --armor --export-secret-keys $key >> $EXPORT_DIR/gpg-keys-backup-$TIMESTAMP.asc"
55
+
sleep 5
56
+
done
57
+
echo "+ gpg --armor --batch --passphrase ${BACKUP_FILE_PASSWORD} --symmetric --output ${EXPORT_DIR}/gpg-keys-encrypted-backup-${TIMESTAMP} < ${EXPORT_DIR}/gpg-keys-backup-${TIMESTAMP}.asc"
58
+
return
59
+
fi
60
+
61
+
for key in $PRIVATE_KEYS; do
62
+
echo "Exporting keyid $key with private key"
63
+
gpg --armor --export-secret-keys "$key" >> "${EXPORT_DIR}/gpg-keys-backup-${TIMESTAMP}.asc"
64
+
sleep 5
65
+
done
66
+
echo "[private-keys-backup] Here's the encrypted passphrase for ${BACKUP_FILE_PASSWORD}"
67
+
sleep 10
68
+
gpg --armor --batch --passphrase "${BACKUP_FILE_PASSWORD}" --symmetric --output "${EXPORT_DIR}/gpg-keys-encrypted-backup-${TIMESTAMP}" < "${EXPORT_DIR}/gpg-keys-backup-${TIMESTAMP}.asc"
69
+
echo
70
+
}
71
+
72
+
check_export_dir() {
73
+
echo "[Stage 0]: Check if the \$EXPORT_DIR exists and create if necessary"
74
+
echo
75
+
sleep 3
76
+
# dry-run
77
+
if [[ $_arg_dryrun == "true" ]]; then
78
+
echo "+ mkdir $EXPORT_DIR"
79
+
return
80
+
fi
81
+
82
+
if [[ ! -d "$EXPORT_DIR" ]]; then
83
+
echo "warning: Directory $EXPORT_DIR doesn't exist, attempting to create dir..."
84
+
if mkdir "$EXPORT_DIR"; then
85
+
true
86
+
else
87
+
error_code=$?
88
+
echo "error: Something gone horribly wrong while creating export directory."
89
+
echo "error: Check the logs, fix perms with chmod/chown/sudo and try again."
90
+
exit $error_code
91
+
fi
92
+
else
93
+
echo "info: export directory exists, contiuning..."
94
+
fi
95
+
}
96
+
97
+
usage() {
98
+
echo "Usage: $0 [--only-public | --only-secret | --dry-run]"
99
+
echo
100
+
echo "Available params:"
101
+
echo " --dry-run, -d Run a simultation of commands"
102
+
echo " --help Show this help page"
103
+
echo " --only-secret, -s Only export secret keys"
104
+
echo " --only-public, -p Only export public keys"
105
+
echo
106
+
echo "Supported variables to override defaults:"
107
+
echo " DEBUG Set to any value to enable debug logging (via 'set -x')"
108
+
echo " EXPORT_DIR Directory for storing exports"
109
+
echo " PUBLIC_KEYS List of GPG keys for exporting public keys, seperated by spaces"
110
+
echo " PRIVATE_KEYS List of GPG keys for exporting private keys, seperated by spaces"
111
+
}
112
+
113
+
main() {
114
+
if [[ $DEBUG != "" ]]; then
115
+
set -x
116
+
fi
117
+
118
+
_arg_pubkeys_only=false
119
+
_arg_secretkeys_only=false
120
+
_arg_dryrun=false
121
+
EXPORT_DIR=${EXPORT_DIR:-"$HOME/.export-toolkit"}
122
+
123
+
# arg parser goes here
124
+
for _arg in "${@}"; do {
125
+
if test "$_arg" != "--" && [[ "$_arg" == -* ]]; then {
126
+
case "$_arg" in
127
+
--help | -h)
128
+
usage; exit 0
129
+
;;
130
+
--pubkeys | --only-public | -p)
131
+
_arg_pubkeys_only=true
132
+
;;
133
+
--secretkeys | --only-secret | -s)
134
+
_arg_secretkeys_only=true
135
+
;;
136
+
--dryrun | --dry-run | -d)
137
+
_arg_dryrun=true
138
+
;;
139
+
esac
140
+
shift;
141
+
} fi
142
+
} done
143
+
144
+
check_export_dir
145
+
generate_pubkey_bak
146
+
generate_privkey_bak
147
+
}
148
+
149
+
main "$@"
-1
bin/code-tunnel
-1
bin/code-tunnel
···
1
-
code-tunnel-wrapper
-23
bin/code-tunnel-wrapper
-23
bin/code-tunnel-wrapper
···
1
-
#!/usr/bin/env bash
2
-
3
-
_vscode_cli_path_detection=$(command -v code)
4
-
VSCODE_CLI_PATH=${VSCODE_CLI_PATH:-$_vscode_cli_path_detection}
5
-
PARAMS="$*"
6
-
7
-
error() {
8
-
echo "error: $*"
9
-
}
10
-
11
-
if [[ "$VSCODE_CLI_PATH" == "" ]]; then
12
-
error VS Code CLI is not installed or is not on PATH yet, see
13
-
error https://code.visualstudio.com/docs/remote/tunnels for setup instructions
14
-
exit 1
15
-
fi
16
-
17
-
if [[ $PARAMS == "" ]]; then
18
-
echo "running code tunnel directly"
19
-
exec code tunnel
20
-
fi
21
-
22
-
echo "passing params to 'code tunnel': $PARAMS"
23
-
exec code --verbose tunnel $PARAMS
-4
bin/docker-credential-glab
-4
bin/docker-credential-glab
+25
bin/fix-wrong-emails
+25
bin/fix-wrong-emails
···
1
+
#!/bin/bash
2
+
3
+
if [[ $1 != "" ]]; then
4
+
git filter-branch --env-filter '
5
+
WRONG_EMAIL=$1
6
+
NEW_NAME="Andrei Jiroh Eugenio Halili"
7
+
NEW_EMAIL="andreijiroh@madebythepins.tk"
8
+
9
+
if [ "$GIT_COMMITTER_EMAIL" = "$WRONG_EMAIL" ]
10
+
then
11
+
export GIT_COMMITTER_NAME="$NEW_NAME"
12
+
export GIT_COMMITTER_EMAIL="$NEW_EMAIL"
13
+
fi
14
+
if [ "$GIT_AUTHOR_EMAIL" = "$WRONG_EMAIL" ]
15
+
then
16
+
export GIT_AUTHOR_NAME="$NEW_NAME"
17
+
export GIT_AUTHOR_EMAIL="$NEW_EMAIL"
18
+
fi
19
+
' --tag-name-filter cat -- --branches --tags
20
+
else
21
+
echo "Usage $0 <wrong-email@host.me>"
22
+
echo "Easily fix wrong emails in Git commit history. It is advised to use this script only"
23
+
echo "on non-public commits, since this might be distaterous for forks to pull any changes"
24
+
echo "in the public commits."
25
+
fi
+53
bin/handle-pinentry
+53
bin/handle-pinentry
···
1
+
#!/usr/bin/env bash
2
+
# SPDX-License-Identifier: MIT AND MPL-2.0
3
+
# This is bit chaotic at best, per https://unix.stackexchange.com/a/116694.
4
+
# Maybe we should aggressively detect more desktop environments, even non-DEs
5
+
# as per https://askubuntu.com/a/227669.
6
+
7
+
set -e
8
+
if [[ $DEBUG != "" ]]; then
9
+
set -x
10
+
fi
11
+
12
+
GPG_TTY=$(tty)
13
+
14
+
error() {
15
+
echo "error: $*"
16
+
}
17
+
18
+
warn() {
19
+
echo "warn: $*"
20
+
}
21
+
22
+
detect_env() {
23
+
if [ "$XDG_CURRENT_DESKTOP" = "" ]
24
+
then
25
+
desktop=$(echo "$XDG_DATA_DIRS" | sed 's/.*\(xfce\|kde\|gnome\).*/\1/')
26
+
else
27
+
desktop=$XDG_CURRENT_DESKTOP
28
+
fi
29
+
desktop=${desktop,,} # convert to lower case
30
+
}
31
+
32
+
path_detection() {
33
+
if [[ $desktop == "kde" ]]; then
34
+
if command -v pinentry-qt >> /dev/null; then
35
+
target_bin=pinentry-qt
36
+
else
37
+
error "pinentry-qt isn't installed on your system or not found on PATH"
38
+
exit 1
39
+
fi
40
+
else
41
+
if command -v pinentry-curses >> /dev/null; then
42
+
target_bin=pinentry-curses
43
+
else
44
+
error "pinentry-curses isn't installed on your system or not found on PATH"
45
+
exit 1
46
+
fi
47
+
fi
48
+
}
49
+
50
+
detect_env
51
+
path_detection
52
+
export GPG_TTY
53
+
exec $target_bin "$@"
-15
bin/nix4vscode-config-builder
-15
bin/nix4vscode-config-builder
···
1
-
#!/usr/bin/env bash
2
-
3
-
# Output the VSCode version
4
-
echo 'vscode_version = "'$(code --version | head -n1)'"'
5
-
echo
6
-
7
-
# Loop through each installed extension
8
-
code --list-extensions | while read extension; do
9
-
publisher_name=$(echo "$extension" | cut -d '.' -f 1)
10
-
extension_name=$(echo "$extension" | cut -d '.' -f 2-)
11
-
echo '[[extensions]]'
12
-
echo 'publisher_name = "'$publisher_name'"'
13
-
echo 'extension_name = "'$extension_name'"'
14
-
echo
15
-
done
-12
bin/nix4vscode-generator
-12
bin/nix4vscode-generator
···
1
-
#!/usr/bin/env bash
2
-
set -o pipefail
3
-
4
-
if [[ $DEBUG != "" ]]; then
5
-
set -x
6
-
fi
7
-
8
-
NIX4VSCODE_PATH=$(command -v nix4vscode)
9
-
NIX4VSCODE=${NIX4VSCODE:-"$HOME/bin/nix4vscode"}
10
-
11
-
"$NIX4VSCODE" --output "$HOME/.config/nixos/shared/vscode-extensions.nix" "$HOME/.nix4vscode.toml"
12
-
"$NIX4VSCODE" --openvsx --output "$HOME/.config/nixos/shared/openvsx-extensions.nix" "$HOME/.nix4vscode.toml" || true
+92
bin/open-editor
+92
bin/open-editor
···
1
+
#!/bin/env bash
2
+
3
+
# SPDX-License-Identifier: MPL-2.0
4
+
# An bloody script for opening text editors from the command line via $EDITOR and
5
+
# command flags, work in progress and probably abandoned.
6
+
7
+
# shellcheck disable=SC2034
8
+
VSCODE_PATH=$(command -v code) # TODO: Add PATH detection for VS Code Desktop+Server/OpenVSCode Server/VSCodium/code-server
9
+
NANO_PATH=$(command -v nano)
10
+
VI_PATH=$(command -v vi) # maybe neovim?
11
+
OPEN_EDITOR_LOCKFILE=$HOME/.dotfiles/config/open-editor
12
+
13
+
if [[ $1 == "" ]]; then
14
+
echo "open-editor: Want to learn more how to use me? Use the '--help' flag to see the docs."
15
+
exit
16
+
fi
17
+
18
+
# Stack Overflow: https://stackoverflow.com/questions/7069682/how-to-get-arguments-with-flags-in-bash#21128172
19
+
while test $# -gt 0; do
20
+
case "$1" in
21
+
-h|--help)
22
+
echo "$0 - shortcut to open editors within and from command line"
23
+
echo "By default, the script will attempt to guess what text editor to use as much"
24
+
echo "as possible. You can lock with the ~/.dotfiles/config/open-editor file."
25
+
echo
26
+
echo "$0 [options] filename"
27
+
echo " "
28
+
echo "options:"
29
+
echo "-h, --help show brief help"
30
+
echo "-c, --use-code use Visual Studio Code, with the 'wait' flag"
31
+
echo "-n, --use-nano use GNU Nano"
32
+
echo "--lockfile Generate a lockfile within your home directory"
33
+
echo " or edit if found."
34
+
exit 0
35
+
;;
36
+
-c|--use-code)
37
+
shift
38
+
echo "open-editor: Firing up your editor, please wait..."
39
+
sleep 3
40
+
if test $# -gt 0; then
41
+
# shellcheck disable=SC2086
42
+
code --wait $1
43
+
else
44
+
echo "error: no file specified, aborting..."
45
+
exit 1
46
+
fi
47
+
shift
48
+
;;
49
+
-n|--use-nano)
50
+
shift
51
+
echo "open-editor: Firing up your editor, please wait..."
52
+
sleep 3
53
+
if test $# -gt 0; then
54
+
# shellcheck disable=SC2086
55
+
nano $1
56
+
exit
57
+
fi
58
+
shift
59
+
;;
60
+
--lockfile)
61
+
shift
62
+
if test $# -gt 0; then
63
+
export OUTPUT=$1
64
+
else
65
+
echo "no output dir specified"
66
+
exit 1
67
+
fi
68
+
shift
69
+
;;
70
+
-*)
71
+
echo "open-editor: Unsupported flag, edit the script file to customize."
72
+
exit 1
73
+
;;
74
+
esac
75
+
done
76
+
77
+
if [[ $VSCODE_PATH != "" ]]; then
78
+
echo "open-editor: Firing up your editor, please wait..."
79
+
sleep 3
80
+
code --wait "$1"
81
+
exit
82
+
elif [[ $NANO_PATH != "" ]]; then
83
+
echo "open-editor: Firing up your editor, please wait..."
84
+
sleep 3
85
+
nano "$1"
86
+
exit
87
+
else
88
+
echo "open-editor: Firing up your editor, please wait..."
89
+
sleep 3
90
+
vi "$1"
91
+
exit
92
+
fi
+39
bin/setup-chroot
+39
bin/setup-chroot
···
1
+
#!/usr/bin/bash
2
+
# SPDX-License-Identifier: MPL-2.0
3
+
# A mini scirpt to handle chrooting into different environments,
4
+
# especially for Alpine Linux devenv on chroots instead of containers/VMs.
5
+
6
+
# Chroot command is optional and assume login binary
7
+
CHROOT_COMMAND=${2:-"/usr/bin/login"}
8
+
TARGET_DIR=$1
9
+
10
+
if [[ $TARGET_DIR == "" ]]; then
11
+
echo "Usage: $0 TARGET_DIR [CHROOT_COMMAND]"
12
+
exit 1
13
+
fi
14
+
15
+
if [ $EUID != "0" ]; then
16
+
echo "error: Must be root to proceed!"
17
+
exit 1
18
+
fi
19
+
20
+
echo "===> Mounting required parts for chroot operation..."
21
+
mount -o bind /dev "$TARGET_DIR/dev"
22
+
mount -t proc none "$TARGET_DIR/proc"
23
+
mount -o bind /sys "$TARGET_DIR/sys"
24
+
echo " Kernel and device mount setup done!"
25
+
sleep 3
26
+
27
+
if [[ -f "$TARGET_DIR/setup-chroot-env.sh" ]]; then
28
+
echo "===> Preparing chroot environment..."
29
+
if ! bash "$TARGET_DIR/setup-chroot-env.sh"; then
30
+
echo "! Chroot env setup failed, please proceed at your own risk."
31
+
else
32
+
echo " Setup done!"
33
+
fi
34
+
sleep 3
35
+
fi
36
+
37
+
echo "===> Teleporting to the chroot environment in 3 seconds..."
38
+
sleep 3
39
+
exec chroot "$TARGET_DIR" "${CHROOT_COMMAND}"
+9
bin/sign-tarball
+9
bin/sign-tarball
···
1
+
#!/bin/sh
2
+
project="$(basename $(pwd))"
3
+
version="$(git describe)"
4
+
key="${RELEASE_SIGNING_KEY:-\"940047813E9D641C\"}"
5
+
6
+
git archive --format=tar.gz --prefix="$project-$version/" "$version" \
7
+
>"$project-$version.tar.gz"
8
+
gpg --detach-sign "$@" --default-key "$key" "$project-$version.tar.gz" \
9
+
>/tmp/"$project-$version".tar.gz.sig
+8
bin/update-discord
+8
bin/update-discord
···
1
+
#!/bin/bash
2
+
set -e
3
+
4
+
# An script to automate upgrading Discord via the deb download link.
5
+
# TODO:Implement checks and flags to support for rpms and tar.gz setups
6
+
7
+
wget "https://discord.com/api/download?platform=linux&format=deb" -O /tmp/discord-linux-amd64.deb
8
+
sudo apt install /tmp/discord-linux-amd64.deb
+1
bin/yadm
+1
bin/yadm
···
1
+
/home/ajhalili2006/.yadm-project/yadm
+6
-7
meta-info.toml
+6
-7
meta-info.toml
···
1
-
# Mainly used by p.psf.lt for profile metadata.
2
1
fullname = "Andrei Jiroh Halili"
3
-
#gemini = "gemini.andreijiroh.xyz"
4
-
website = "https://andreijiroh.dev"
5
-
description = "Building OSS at RecapTime.dev, also Autistic Filipino and Hack Clubber"
6
-
email = "ajhalili2006@andreijiroh.dev"
7
-
matrix = "@ajhalili2006:andreijiroh.dev"
2
+
gemini = "gemini.andreijiroh.xyz"
3
+
website = "https://andreijiroh.xyz"
4
+
description = "Open-source maintainer and web dev at Recap Time Squad, sometimes NixOS + Alpine Linux user, #ActuallyAutistic"
5
+
email = "ajhalili2006@andreijiroh.xyz"
6
+
matrix = "@ajhalili2006:envs.net"
8
7
fediverse = "tilde.zone/@ajhalili2006"
9
-
location = "Marilao, Bulacan, Philippines"
8
+
location = "Marilao, Bulacan, Philippines"