| // ==UserScript== | |
| // @name Unexpire Github Artifacts | |
| // @version 1.0.3 | |
| // @description Download "expired" github artifacts less than 3 months old | |
| // @match https://github.com/* | |
| // @author voc | |
| // @namespace https://github.com/Vocaned | |
| // @downloadURL https://gist.github.com/Vocaned/7dacb8bc5bb822a65a76f1dfa8ced08c/raw/unexpire-github-artifacts.user.js | |
| // @grant none | |
| // @run-at document-end |
| #!/bin/sh -e | |
| XDG_DATA_HOME="${XDG_DATA_HOME:-"$HOME/.local/share"}" | |
| branch="${1:-stable}" | |
| case "$branch" in | |
| stable) | |
| name=Discord | |
| ;; | |
| ptb) |
| #!/usr/bin/env python3 | |
| # Download your data dump and place this file in the "messages" folder of your data dump. | |
| # Run it using python | |
| from datetime import datetime, timedelta, timezone | |
| import dateutil.parser | |
| import matplotlib.pyplot as plt | |
| import matplotlib.ticker as ticker | |
| import matplotlib.dates as mdates | |
| import csv |
| # Interactive File Management Utilities by hibi | |
| # | |
| # This source file will let you select individual files and copy and move them | |
| # around much like a graphical file manager would. Intended to be used with | |
| # `source` in your bashrc. | |
| # | |
| # Usage: | |
| # Fsel name1 [name2 [...]] - selects files and folders | |
| # Funsel [name1 [name2 [...]]] - unselects files and folders, or all | |
| # Fcp [destination] - copies the files here or to destination |
All collected Discord error codes, categorized by type. See on Userdoccers.
| Code | Message |
|---|---|
| 10001 | Unknown Account |
| 10002 | Unknown Application |
| 10003 | Unknown Channel |
| 10004 | Unknown Guild |
| #!/bin/sh | |
| set -eux | |
| BRANCH=canary | |
| ICONDIR="${XDG_DATA_HOME:=$HOME/.local/share}/icons" | |
| APPDIR="$XDG_DATA_HOME/applications" | |
| DISCORDDIR="$HOME/.local/opt/discord-$BRANCH" | |
| mkdir -p "$ICONDIR" "$APPDIR" "$DISCORDDIR" |
| // Copyright (c) 2021 Advanced Micro Devices, Inc. All rights reserved. | |
| // | |
| // Permission is hereby granted, free of charge, to any person obtaining a copy | |
| // of this software and associated documentation files (the "Software"), to deal | |
| // in the Software without restriction, including without limitation the rights | |
| // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |
| // copies of the Software, and to permit persons to whom the Software is | |
| // furnished to do so, subject to the following conditions: | |
| // | |
| // The above copyright notice and this permission notice shall be included in |
| function randomUUID() { | |
| return randhex(8) + "-" + randhex(4) + "-4" + randhex(3) + "-" + choice(["8", "9", "a", "b"]) + randhex(3) + "-" + randhex(12); | |
| } | |
| let scratchTarr = new Uint32Array(1); | |
| function choice(arr) { | |
| crypto.getRandomValues(scratchTarr); | |
| return arr[Math.floor(scratchTarr[0]%arr.length)] | |
| } | |
| function randhex(count) { | |
| crypto.getRandomValues(scratchTarr); |
tl;dr: Wayland is not "the future", it is merely an incompatible alternative to the established standard with a different set of priorities and goals.
Wayland breaks everything! It is binary incompatible, provides no clear transition path with 1:1 replacements for everything in X11, and is even philosophically incompatible with X11. Hence, if you are interested in existing applications to "just work" without the need for adjustments, then you may be better off avoiding Wayland.
Wayland solves no issues I have but breaks almost everything I need. Even the most basic, most simple things (like xkill) - in this case with no obvious replacement. And usually it stays broken, because the Wayland folks mostly seem to care about Automotive, Gnome, maybe KDE - and alienating e
