His Discord - https://discordapp.com/invite/rafis His Twitch - https://www.twitch.tv/rafis0 Discord - Dinoxe#7478 dm me if I missed some skins etc
(skins are in order from new to old)
const MainProcessNotification = require("electron").Notification; | |
const isRenderer = process && process.type === "renderer"; | |
const isSupported = () => isRenderer ? "Notification" in window : MainProcessNotification.isSupported(); | |
const renderNotify = (title, body) => { | |
const notification = new Notification(title, { | |
body: body | |
}); | |
return notification | |
}; | |
try { |
import { toError } from 'fp-ts/lib/Either'; | |
import { tryCatch } from 'fp-ts/lib/TaskEither'; | |
import { Schema } from 'yup'; | |
const validate = <T extends Schema<any>>(constructor: T) => (input: any) => | |
tryCatch<Error, T extends Schema<infer P> ? P : never>( | |
() => constructor.validate(input), | |
toError | |
); |
#! /usr/bin/env nix-shell | |
#! nix-shell -i sh -p jq fzf | |
OPTION_CACHE="${XDG_CACHE_HOME:-$HOME/.cache}/nixos-options.json" | |
test -f "$OPTION_CACHE" || { | |
echo "Building cache..." | |
cp "$(export NIXPKGS_ALLOW_UNFREE=1; nix-build -Q --no-out-link '<nixpkgs/nixos/release.nix>' -A options)/share/doc/nixos/options.json" "$OPTION_CACHE" | |
} | |
OPTION=$(jq -r 'keys | join("\n")' "$OPTION_CACHE" | fzf --height "60%" --preview 'nixos-option {}') |
His Discord - https://discordapp.com/invite/rafis His Twitch - https://www.twitch.tv/rafis0 Discord - Dinoxe#7478 dm me if I missed some skins etc
(skins are in order from new to old)
Last updated: 2021-07-27
This is the pictorial representation that I'll use to explain how a player's timings could come about:
hitobject track latency beat (track)
vvv vvv vvv
Track: ---------H---T---------H---T---------H---T---------H---T-------------
User: -------------K---S---------K---S---------K---S---------K---S---------