diff options
Diffstat (limited to 'users/riking')
23 files changed, 427 insertions, 0 deletions
diff --git a/users/riking/OWNERS b/users/riking/OWNERS new file mode 100644 index 000000000000..a39f4cd9f0ae --- /dev/null +++ b/users/riking/OWNERS @@ -0,0 +1,3 @@ +inherit: false +owners: + - riking diff --git a/users/riking/adventofcode-2020/.gitignore b/users/riking/adventofcode-2020/.gitignore new file mode 100644 index 000000000000..076ff412156a --- /dev/null +++ b/users/riking/adventofcode-2020/.gitignore @@ -0,0 +1,2 @@ +*/target +*/input.txt diff --git a/users/riking/adventofcode-2020/day01/Cargo.lock b/users/riking/adventofcode-2020/day01/Cargo.lock new file mode 100644 index 000000000000..a1a18948a7ea --- /dev/null +++ b/users/riking/adventofcode-2020/day01/Cargo.lock @@ -0,0 +1,14 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +[[package]] +name = "anyhow" +version = "1.0.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf8dcb5b4bbaa28653b647d8c77bd4ed40183b48882e130c1f1ffb73de069fd7" + +[[package]] +name = "day01" +version = "0.1.0" +dependencies = [ + "anyhow", +] diff --git a/users/riking/adventofcode-2020/day01/Cargo.toml b/users/riking/adventofcode-2020/day01/Cargo.toml new file mode 100644 index 000000000000..d90ab548bb7b --- /dev/null +++ b/users/riking/adventofcode-2020/day01/Cargo.toml @@ -0,0 +1,10 @@ +[package] +name = "day01" +version = "0.1.0" +authors = ["Kane York <kanepyork@gmail.com>"] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +anyhow = "1.0.34" diff --git a/users/riking/adventofcode-2020/day01/default.nix b/users/riking/adventofcode-2020/day01/default.nix new file mode 100644 index 000000000000..0648a05af683 --- /dev/null +++ b/users/riking/adventofcode-2020/day01/default.nix @@ -0,0 +1,10 @@ +{ depot, ... }: + +with depot.third_party; + +naersk.buildPackage { + src = ./.; + + buildInputs = []; + doCheck = true; +} diff --git a/users/riking/adventofcode-2020/day01/src/main.rs b/users/riking/adventofcode-2020/day01/src/main.rs new file mode 100644 index 000000000000..3e6b339d7c2b --- /dev/null +++ b/users/riking/adventofcode-2020/day01/src/main.rs @@ -0,0 +1,85 @@ +use anyhow::anyhow; +use std::fs::File; +use std::io::prelude::*; +use std::io::BufReader; + +const PART_2: bool = true; + +fn day01(is_part2: bool, numbers: &Vec<i64>) -> Result<String, anyhow::Error> { + //println!("{:?}", numbers); + + for n1 in numbers.iter() { + for n2 in numbers.iter() { + if is_part2 { + for n3 in numbers.iter() { + if n1 + n2 + n3 == 2020 { + return Ok((n1 * n2 * n3).to_string()); + } + } + } else { + if n1 + n2 == 2020 { + return Ok((n1 * n2).to_string()); + } + } + } + } + + Err(anyhow!("no solution found")) +} + +fn parse(filename: &str) -> Result<Vec<i64>, anyhow::Error> { + let f = File::open(filename)?; + let mut reader = BufReader::new(f); + + let mut values = Vec::<i64>::new(); + + let mut line = String::new(); + loop { + line.clear(); + reader.read_line(&mut line)?; + let trimmed_line = line.trim(); + if trimmed_line.is_empty() { + break; + } + + values.push(trimmed_line.parse()?); + } + Ok(values) +} + +fn main() -> anyhow::Result<()> { + let args: Vec<String> = std::env::args().collect(); + + //println!("{:?}", args); + if args.len() != 2 { + return Err(anyhow!("usage: day01 input_file")); + } + let filename = args.into_iter().skip(1).next().expect("args len == 1"); + + let numbers = parse(&filename)?; + + println!("{}", day01(PART_2, &numbers)?); + + Ok(()) +} + +#[cfg(test)] +mod tests { + use super::day01; + + #[test] + fn test_part1() { + let vec = vec![1721, 979, 366, 299, 675, 1456]; + let result = day01(false, &vec).unwrap(); + + assert_eq!(result, 514579.to_string()); + } + + #[test] + fn test_part2() { + let vec = vec![1721, 979, 366, 299, 675, 1456]; + let result = day01(true, &vec).unwrap(); + + assert_eq!(result, 241861950.to_string()); + } +} diff --git a/users/riking/dotfiles/.mybashrc b/users/riking/dotfiles/.mybashrc new file mode 100644 index 000000000000..c5ebc34a1f4f --- /dev/null +++ b/users/riking/dotfiles/.mybashrc @@ -0,0 +1,53 @@ + +# BEGIN: __USER_FUNCTIONS__ +function gh-clone() { + if [[ "x$2" == "x" ]]; then + IFS='/' read -ra PARTS <<< "$1" + user="${PARTS[0]}" + repo="${PARTS[1]}" + else + user="$1" + repo="$2" + fi + if [[ -d ~/go/src/github.com/"$user"/"$repo" ]]; then + cd ~/go/src/github.com/"${user}"/"${repo}" + return 0 + fi + mkdir -p ~/go/src/github.com/"${user}" + cd ~/go/src/github.com/"${user}" + git clone git@github.com:"${user}"/"${repo}".git + cd ~/go/src/github.com/"${user}"/"${repo}" +} + +function download() { + cd "${HOME}/Downloads" + wget "$@" +} + +# todo: only one password pls +function prodaccess() { + (ssh-add -L | grep -q 'ZgEu6S3SLatYN') || ssh-add "$HOME"/.ssh/id_ed25519 + (ssh-add -L | grep -q 'Gfh2S3kUwZ8A6') || ssh-add "$HOME"/.ssh/id_rsa.discourse + echo "signing test" | gpg --clearsign > /dev/null +} + +function reset-audio() { + pulseaudio -k && sudo alsa force-reload +} + +function tvl-push() { + git push origin HEAD:refs/for/canon +} + +# END: __USER_FUNCTIONS__ + +# BEGIN: __USER_ENV__ +GOPATH=$HOME/go +CDPATH=$HOME/go/src +export GPG_TTY="$(tty)" + +export PATH="/usr/local/go/bin:$HOME/go/bin:$HOME/.rbenv/bin:$PATH" + +eval "$(rbenv init -)" +# END: __USER_ENV__ + diff --git a/users/riking/dotfiles/fish/conf.d/nix-env.fish b/users/riking/dotfiles/fish/conf.d/nix-env.fish new file mode 100644 index 000000000000..6f79f9752855 --- /dev/null +++ b/users/riking/dotfiles/fish/conf.d/nix-env.fish @@ -0,0 +1,141 @@ +# SPDX-License-Identifier: Unlicense +# https://raw.githubusercontent.com/lilyball/nix-env.fish/master/conf.d/nix-env.fish + +# Setup Nix + +# We need to distinguish between single-user and multi-user installs. +# This is difficult because there's no official way to do this. +# We could look for the presence of /nix/var/nix/daemon-socket/socket but this will fail if the +# daemon hasn't started yet. /nix/var/nix/daemon-socket will exist if the daemon has ever run, but +# I don't think there's any protection against accidentally running `nix-daemon` as a user. +# We also can't just look for /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh because +# older single-user installs used the default profile instead of a per-user profile. +# We can still check for it first, because all multi-user installs should have it, and so if it's +# not present that's a pretty big indicator that this is a single-user install. If it does exist, +# we still need to verify the install type. To that end we'll look for a root owner and sticky bit +# on /nix/store. Multi-user installs set both, single-user installs don't. It's certainly possible +# someone could do a single-user install as root and then manually set the sticky bit but that +# would be extremely unusual. + +set -l nix_profile_path /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh +set -l single_user_profile_path ~/.nix-profile/etc/profile.d/nix.sh +if test -e $nix_profile_path + # The path exists. Double-check that this is a multi-user install. + # We can't just check for ~/.nix-profile/… because this may be a single-user install running as + # the wrong user. + + # stat is not portable. Splitting the output of ls -nd is reliable on most platforms. + set -l owner (string split -n ' ' (ls -nd /nix/store 2>/dev/null))[3] + if not test -k /nix/store -a $owner -eq 0 + # /nix/store is either not owned by root or not sticky. Assume single-user. + set nix_profile_path $single_user_profile_path + end +else + # The path doesn't exist. Assume single-user + set nix_profile_path $single_user_profile_path +end + +if test -e $nix_profile_path + # Source the nix setup script + # We're going to run the regular Nix profile under bash and then print out a few variables + for line in (env -u BASH_ENV bash -c '. "$0"; for name in PATH "${!NIX_@}"; do printf "%s=%s\0" "$name" "${!name}"; done' $nix_profile_path | string split0) + set -xg (string split -m 1 = $line) + end + + # Insert Nix's fish share directories into fish's special variables. + # nixpkgs-installed fish tries to set these up already if NIX_PROFILES is defined, which won't + # be the case when sourcing $__fish_data_dir/share/config.fish normally, but might be for a + # recursive invocation. To guard against that, we'll only insert paths that don't already exit. + # Furthermore, for the vendor_conf.d sourcing, we'll use the pre-existing presence of a path in + # $fish_function_path to determine whether we want to source the relevant vendor_conf.d folder. + + # To start, let's locally define NIX_PROFILES if it doesn't already exist. + set -al NIX_PROFILES + if test (count $NIX_PROFILES) -eq 0 + set -a NIX_PROFILES $HOME/.nix-profile + end + # Replicate the logic from nixpkgs version of $__fish_data_dir/__fish_build_paths.fish. + set -l __nix_profile_paths (string split ' ' -- $NIX_PROFILES)[-1..1] + set -l __extra_completionsdir \ + $__nix_profile_paths/etc/fish/completions \ + $__nix_profile_paths/share/fish/vendor_completions.d + set -l __extra_functionsdir \ + $__nix_profile_paths/etc/fish/functions \ + $__nix_profile_paths/share/fish/vendor_functions.d + set -l __extra_confdir \ + $__nix_profile_paths/etc/fish/conf.d \ + $__nix_profile_paths/share/fish/vendor_conf.d \ + + ### Configure fish_function_path ### + # Remove any of our extra paths that may already exist. + # Record the equivalent __extra_confdir path for any function path that exists. + set -l existing_conf_paths + for path in $__extra_functionsdir + if set -l idx (contains --index -- $path $fish_function_path) + set -e fish_function_path[$idx] + set -a existing_conf_paths $__extra_confdir[(contains --index -- $path $__extra_functionsdir)] + end + end + # Insert the paths before $__fish_data_dir. + if set -l idx (contains --index -- $__fish_data_dir/functions $fish_function_path) + # Fish has no way to simply insert into the middle of an array. + set -l new_path $fish_function_path[1..$idx] + set -e new_path[$idx] + set -a new_path $__extra_functionsdir + set fish_function_path $new_path $fish_function_path[$idx..-1] + else + set -a fish_function_path $__extra_functionsdir + end + + ### Configure fish_complete_path ### + # Remove any of our extra paths that may already exist. + for path in $__extra_completionsdir + if set -l idx (contains --index -- $path $fish_complete_path) + set -e fish_complete_path[$idx] + end + end + # Insert the paths before $__fish_data_dir. + if set -l idx (contains --index -- $__fish_data_dir/completions $fish_complete_path) + set -l new_path $fish_complete_path[1..$idx] + set -e new_path[$idx] + set -a new_path $__extra_completionsdir + set fish_complete_path $new_path $fish_complete_path[$idx..-1] + else + set -a fish_complete_path $__extra_completionsdir + end + + ### Source conf directories ### + # The built-in directories were already sourced during shell initialization. + # Any __extra_confdir that came from $__fish_data_dir/__fish_build_paths.fish was also sourced. + # As explained above, we're using the presence of pre-existing paths in $fish_function_path as a + # signal that the corresponding conf dir has also already been sourced. + # In order to simulate this, we'll run through the same algorithm as found in + # $__fish_data_dir/config.fish except we'll avoid sourcing the file if it comes from an + # already-sourced location. + # Caveats: + # * Files will be sourced in a different order than we'd ideally do (because we're coming in + # after the fact to source them). + # * If there are existing extra conf paths, files in them may have been sourced that should have + # been suppressed by paths we're inserting in front. + # * Similarly any files in $__fish_data_dir/vendor_conf.d that should have been suppressed won't + # have been. + set -l sourcelist + for file in $__fish_config_dir/conf.d/*.fish $__fish_sysconf_dir/conf.d/*.fish + # We know these paths were sourced already. Just record them. + set -l basename (string replace -r '^.*/' '' -- $file) + contains -- $basename $sourcelist + or set -a sourcelist $basename + end + for root in $__extra_confdir + for file in $root/*.fish + set -l basename (string replace -r '^.*/' '' -- $file) + contains -- $basename $sourcelist + and continue + set -a sourcelist $basename + contains -- $root $existing_conf_paths + and continue # this is a pre-existing path, it will have been sourced already + [ -f $file -a -r $file ] + and source $file + end + end +end diff --git a/users/riking/dotfiles/fish/config.fish b/users/riking/dotfiles/fish/config.fish new file mode 100644 index 000000000000..c2454762bddf --- /dev/null +++ b/users/riking/dotfiles/fish/config.fish @@ -0,0 +1,8 @@ +set -gx GOPATH "$HOME/go" +set -gx GPG_TTY (tty) +set -gx DEPOT_ROOT "$GOPATH/src/code.tvl.fyi" + +set -gx PATH '/usr/local/go/bin' "$HOME/.cargo/bin" "$HOME/.rbenv/bin" $PATH +status --is-interactive; and rbenv init - | source +source ~/.opsrc.fish # work +set -gx PATH "$HOME/go/bin" $PATH diff --git a/users/riking/dotfiles/fish/fish_variables b/users/riking/dotfiles/fish/fish_variables new file mode 100644 index 000000000000..fa8bff919f40 --- /dev/null +++ b/users/riking/dotfiles/fish/fish_variables @@ -0,0 +1,32 @@ +# This file contains fish universal variable definitions. +# VERSION: 3.0 +SETUVAR __fish_initialized:3100 +SETUVAR fish_color_autosuggestion:555\x1ebrblack +SETUVAR fish_color_cancel:\x2dr +SETUVAR fish_color_command:005fd7 +SETUVAR fish_color_comment:990000 +SETUVAR fish_color_cwd:green +SETUVAR fish_color_cwd_root:red +SETUVAR fish_color_end:009900 +SETUVAR fish_color_error:ff0000 +SETUVAR fish_color_escape:00a6b2 +SETUVAR fish_color_history_current:\x2d\x2dbold +SETUVAR fish_color_host:normal +SETUVAR fish_color_host_remote:yellow +SETUVAR fish_color_match:\x2d\x2dbackground\x3dbrblue +SETUVAR fish_color_normal:normal +SETUVAR fish_color_operator:00a6b2 +SETUVAR fish_color_param:00afff +SETUVAR fish_color_quote:999900 +SETUVAR fish_color_redirection:00afff +SETUVAR fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dbrblack +SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack +SETUVAR fish_color_status:red +SETUVAR fish_color_user:brgreen +SETUVAR fish_color_valid_path:\x2d\x2dunderline +SETUVAR fish_greeting:Welcome\x20to\x20fish\x2c\x20the\x20friendly\x20interactive\x20shell\x0aType\x20\x60help\x60\x20for\x20instructions\x20on\x20how\x20to\x20use\x20fish +SETUVAR fish_key_bindings:fish_default_key_bindings +SETUVAR fish_pager_color_completion:\x1d +SETUVAR fish_pager_color_description:B3A06D\x1eyellow +SETUVAR fish_pager_color_prefix:white\x1e\x2d\x2dbold\x1e\x2d\x2dunderline +SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan diff --git a/users/riking/dotfiles/fish/functions/ddate.fish b/users/riking/dotfiles/fish/functions/ddate.fish new file mode 100644 index 000000000000..8152d31680e7 --- /dev/null +++ b/users/riking/dotfiles/fish/functions/ddate.fish @@ -0,0 +1,3 @@ +function ddate --description 'current date in Discourse format' + TZ=UTC date '+[date=%Y-%m-%d time=%H:%M:%S timezone=\"%Z\"]' +end diff --git a/users/riking/dotfiles/fish/functions/gh-clone.fish b/users/riking/dotfiles/fish/functions/gh-clone.fish new file mode 100644 index 000000000000..109ec353f6db --- /dev/null +++ b/users/riking/dotfiles/fish/functions/gh-clone.fish @@ -0,0 +1,18 @@ +function gh-clone --description 'Clone and CD to a github repository' + if test (count $argv) -eq 1 + set user (string split "/" -- $argv[1])[1] + set repo (string split "/" -- $argv[1])[2] + else + set user $argv[1] + set repo $argv[2] + end + + if test -d "$HOME/go/src/github.com/$user/$repo" + cd "$HOME/go/src/github.com/$user/$repo" + return 0 + end + mkdir -p "$HOME/go/src/github.com/$user" + cd "$HOME/go/src/github.com/$user" + git clone "git@github.com:$user/$repo.git" + cd "$HOME/go/src/github.com/$user/$repo" +end diff --git a/users/riking/dotfiles/fish/functions/prodaccess.fish b/users/riking/dotfiles/fish/functions/prodaccess.fish new file mode 100644 index 000000000000..876c14c5e31e --- /dev/null +++ b/users/riking/dotfiles/fish/functions/prodaccess.fish @@ -0,0 +1,6 @@ +function prodaccess + ssh-add "$HOME/.ssh/id_ecdsa_sk" + begin; ssh-add -L | grep -q 'ZgEu6S3SLatYN'; end || ssh-add "$HOME"/.ssh/id_ed25519 + begin; ssh-add -L | grep -q 'Gfh2S3kUwZ8A6'; end || ssh-add "$HOME"/.ssh/id_rsa.discourse + echo "signing test" | gpg --clearsign > /dev/null +end diff --git a/users/riking/dotfiles/fish/functions/reset-audio.fish b/users/riking/dotfiles/fish/functions/reset-audio.fish new file mode 100644 index 000000000000..eb48578a52bc --- /dev/null +++ b/users/riking/dotfiles/fish/functions/reset-audio.fish @@ -0,0 +1,4 @@ +function reset-audio --description "Resets pulse and alsa" + pulseaudio -k + sudo alsa force-reload +end diff --git a/users/riking/dotfiles/fish/functions/tvl-push.fish b/users/riking/dotfiles/fish/functions/tvl-push.fish new file mode 100644 index 000000000000..f04ac830c005 --- /dev/null +++ b/users/riking/dotfiles/fish/functions/tvl-push.fish @@ -0,0 +1,3 @@ +function tvl-push + git push origin HEAD:refs/for/canon +end diff --git a/users/riking/dotfiles/regolith/Xresources b/users/riking/dotfiles/regolith/Xresources new file mode 100644 index 000000000000..f47b93511af0 --- /dev/null +++ b/users/riking/dotfiles/regolith/Xresources @@ -0,0 +1,5 @@ +#include "/etc/regolith/styles/ubuntu/root" + +i3-wm.program.lock: xset s activate +i3-wm.program.1: /bin/sh $HOME/.config/regolith/initrc + diff --git a/users/riking/dotfiles/regolith/flags/first-time-setup-r1-4-1 b/users/riking/dotfiles/regolith/flags/first-time-setup-r1-4-1 new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/users/riking/dotfiles/regolith/flags/first-time-setup-r1-4-1 diff --git a/users/riking/dotfiles/regolith/flags/show-shortcuts b/users/riking/dotfiles/regolith/flags/show-shortcuts new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/users/riking/dotfiles/regolith/flags/show-shortcuts diff --git a/users/riking/dotfiles/regolith/flags/term-profile b/users/riking/dotfiles/regolith/flags/term-profile new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/users/riking/dotfiles/regolith/flags/term-profile diff --git a/users/riking/dotfiles/regolith/flags/ui-fingerprint b/users/riking/dotfiles/regolith/flags/ui-fingerprint new file mode 100644 index 000000000000..b35aedd2dc0f --- /dev/null +++ b/users/riking/dotfiles/regolith/flags/ui-fingerprint @@ -0,0 +1 @@ +ec33ee15ff705ac4b167ba6b7f6df3c2 diff --git a/users/riking/dotfiles/regolith/initrc b/users/riking/dotfiles/regolith/initrc new file mode 100755 index 000000000000..9b14613cd4eb --- /dev/null +++ b/users/riking/dotfiles/regolith/initrc @@ -0,0 +1,3 @@ + +xset s 900 5 +( xss-lock -n /usr/lib/xsecurelock/dimmer -l -- sh -c "XSECURELOCK_PASSWORD_PROMPT=time_hex XSECURELOCK_SHOW_DATETIME=1 XSECURELOCK_SAVER=saver_mpv XSECURELOCK_IMAGE_DURATION_SECONDS=10 XSECURELOCK_LIST_VIDEOS_COMMAND='find ~/Videos/Screensaver -type f' xsecurelock" )& diff --git a/users/riking/dotfiles/tmux.conf b/users/riking/dotfiles/tmux.conf new file mode 100644 index 000000000000..1f253cb27f0c --- /dev/null +++ b/users/riking/dotfiles/tmux.conf @@ -0,0 +1,6 @@ + +set -g mouse on +set-option -g prefix C-a +bind-key C-a send-prefix +bind | split-window -h +bind - split-window -v diff --git a/users/riking/keys.nix b/users/riking/keys.nix new file mode 100644 index 000000000000..6dd2ff18a30f --- /dev/null +++ b/users/riking/keys.nix @@ -0,0 +1,20 @@ +# SSH public keys +{ ... }: + +rec { + sk-ecljg09 = "sk-ecdsa-sha2-nistp256@openssh.com AAAAInNrLWVjZHNhLXNoYTItbmlzdHAyNTZAb3BlbnNzaC5jb20AAAAIbmlzdHAyNTYAAABBBBwJ7dJJUkvIK+bDsVsCsCZSlbs90aOLsHN7XesC8/AmLA5rIRLO8I5ADoOjsWAXl/WAgxqOMmB4LxZjoXWa1a0AAAAEc3NoOg== riking@sk-ECLJG09"; + sk-portable1 = "sk-ecdsa-sha2-nistp256@openssh.com AAAAInNrLWVjZHNhLXNoYTItbmlzdHAyNTZAb3BlbnNzaC5jb20AAAAIbmlzdHAyNTYAAABBBCfA8/0nKk4jXclWHjRZIuicPeyIo9oDwahpnWjEATr7YaFDAo632KTSgqlW0lpx8lX9alLsJRhFV2XaSurYw/EAAAAEc3NoOg== riking@sk-portable1"; + sk-portable2 = "sk-ecdsa-sha2-nistp256@openssh.com AAAAInNrLWVjZHNhLXNoYTItbmlzdHAyNTZAb3BlbnNzaC5jb20AAAAIbmlzdHAyNTYAAABBBEX3DXreQR93SR68QZHTdaVd5RjlRM8C0jcZ4kI4OZwqk7xuk68w3g22q2OM7O+chj+n1N3u0hLxi82QfRnwyasAAAAEc3NoOg== riking@sk-portable2"; + sk-desktop = "sk-ecdsa-sha2-nistp256@openssh.com AAAAInNrLWVjZHNhLXNoYTItbmlzdHAyNTZAb3BlbnNzaC5jb20AAAAIbmlzdHAyNTYAAABBBB+JvN8nAxD+yo49Ohf/UDq7Z049yvkURJIA1XNbvKaAkvfWnCN5m9vTC1FyGxTyCwy4QpD1pFP5fIn0X/kvvfgAAAAEc3NoOg== riking@sk-kane-DAN-A4"; + + u2f = [sk-ecljg09 sk-portable1 sk-portable2 sk-desktop]; + + ed1 = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAjWIfFH2bAWMZG+HudV1MVHWUl83M/ZgEu6S3SLatYN riking@kane-DAN-A4"; + ed2 = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICBblB4C9IgAijv+qN6Zs8TM2Sz7phQvVmRrcDn4VYNo riking@ECLJG09"; + + passworded = [ed1 ed2]; + + unprotected = []; + + all = u2f ++ passworded ++ unprotected; +} |