

https://mwmbl.org/ has a custom index of user-submitted domains and user-curated results but it’s not suitable for daily use yet.
https://mwmbl.org/ has a custom index of user-submitted domains and user-curated results but it’s not suitable for daily use yet.
You can also put this in ~/.config/xkb/symbols/us-custom
(create the parent directories if necessary) and set the environment variable XKB_DEFAULT_LAYOUT=us-custom
. This works in most Wayland compositors, including river and niri. For Hyprland, you can add this to your config file:
input {
kb_layout = us-custom
}
If you use GNOME, run
gsettings set org.gnome.desktop.input-sources mru-sources "[('xkb', 'us-custom')]"
gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us-custom')]"
and restart GNOME.
This is my keyboard layout (I explained some bits of it here):
default partial alphanumeric_keys
xkb_symbols "basic" {
include "us(de_se_fi)" // Umlauts (ä, ö, ü) and €
include "level5(rctrl_switch)"
key.type[Group1] = "EIGHT_LEVEL";
// Number row
key <TLDE> {[ grave, asciitilde, dead_grave, dead_tilde ]};
key <AE01> {[ 1, exclam, onesuperior, U2081 ]}; // x₁
key <AE02> {[ 2, at, twosuperior, U2082 ]}; // x₂
key <AE03> {[ 3, numbersign, threesuperior, U2083 ]}; // x₃
key <AE06> {[ 6, asciicircum, dead_circumflex, dead_caron ]};
key <AE08> {[ 8, asterisk, enfilledcircbullet, U22C5, infinity ]}; // dot operator
key <AE10> {[ 0, parenright, NoSymbol, NoSymbol ]};
key <AE11> {[ minus, underscore, endash, emdash, U207B ]}; // x⁻
key <AE12> {[ equal, plus, notequal, approxeq ]};
// Top row
key <AD01> {[ q, Q, NoSymbol, U211A, NoSymbol, NoSymbol ]}; // ℚ
key <AD02> {[ w, W, NoSymbol, NoSymbol, Greek_omega, Greek_OMEGA ]};
key <AD03> {[ e, E, NoSymbol, NoSymbol, Greek_epsilon, U2203 ]}; // ∃
key <AD04> {[ r, R, NoSymbol, U211D, Greek_rho, U03F1 ]}; // ℝ ϱ
key <AD05> {[ t, T, U03D1, Greek_tau, Greek_theta, Greek_THETA ]}; // ϑ
key <AD08> {[ i, I, U21d2, U21d4, Greek_iota, integral ]}; // ⇒ ⇔
key <AD09> {[ o, O, NoSymbol, NoSymbol, Greek_omega, Greek_OMEGA ]};
key <AD10> {[ p, P, section, paragraph, Greek_pi, Greek_PI ]};
// Home row
key <AC01> {[ a, A, NoSymbol, NoSymbol, Greek_alpha, U2200 ]}; // ∀
key <AC02> {[ s, S, NoSymbol, NoSymbol, Greek_sigma, Greek_SIGMA ]};
key <AC03> {[ d, D, NoSymbol, NoSymbol, Greek_delta, Greek_DELTA ]};
key <AC04> {[ f, F, NoSymbol, NoSymbol, Greek_phi, Greek_PHI ]};
key <AC05> {[ g, G, degree, NoSymbol, Greek_gamma, Greek_GAMMA ]};
key <AC06> {[ h, H, U2190, NoSymbol, Greek_eta, U2225 ]}; // ← ∥
key <AC07> {[ j, J, U2193, NoSymbol, NoSymbol, NoSymbol ]}; // ↓
key <AC08> {[ k, K, U2191, NoSymbol, Greek_kappa, U03F0 ]}; // ↑ ϰ
key <AC09> {[ l, L, U2192, NoSymbol, Greek_lambda, Greek_LAMBDA ]}; // →
key <AC10> {[ semicolon, colon, dead_diaeresis, NoSymbol, NoSymbol, NoSymbol ]};
key <AC11> {[ apostrophe, quotedbl, rightsinglequotemark, NoSymbol, NoSymbol, NoSymbol ]};
key <AC12> {[ backslash, bar, U2500, U2502, NoSymbol, NoSymbol ]}; // box drawing
// Bottom row
key <AB01> {[ z, Z, NoSymbol, U2124, Greek_zeta, U2220 ]}; // ℤ ∠
key <AB02> {[ x, X, multiply, NoSymbol, Greek_xi, Greek_XI ]};
key <AB03> {[ c, C, NoSymbol, U2102, Greek_chi, copyright ]}; // ℂ
key <AB04> {[ v, V, doublelowquotemark, singlelowquotemark, Greek_psi, Greek_PSI ]};
key <AB05> {[ b, B, leftdoublequotemark, leftsinglequotemark, Greek_beta, NoSymbol ]};
key <AB06> {[ n, N, rightdoublequotemark, rightsinglequotemark,Greek_nu, U2115 ]}; // ℕ
key <AB07> {[ m, M, U2212, plusminus, Greek_mu, NoSymbol ]}; // minus
key <AB08> {[ comma, less, dead_cedilla, NoSymbol, U27e8, NoSymbol ]}; // ⟨
key <AB09> {[ period, greater, ellipsis, dead_abovedot, U27e9, NoSymbol ]}; // ⟩
key <AB10> {[ slash, question, division, questiondown, NoSymbol, NoSymbol ]};
};
GNOME Settings shows a visual preview of the first four layers:
See also this writeup by Leon Plickat.
Store your Firefox profile and all tabs in RAM for snappier browsing: https://wiki.archlinux.org/title/Firefox/Profile_on_RAM
Shattered Pixel Dungeon is a great Rouge-like.
Don’t blindly run untrusted software, use Bubblewrap at the very least. Keep https://xkcd.com/538/ in mind.
OpenStreetMap and Internet Archive because they are operating with a small budget (as opposed to Wikipedia).
#!/bin/sh
# Select a file with fzf from a database sorted by frecency and open it using
# xdg-open. frece can be found at https://github.com/YodaEmbedding/frece
DB_FILE=${FRECE_FILES_DB:-$HOME/.cache/frecent-files.csv}
item=$(frece print "$DB_FILE" | fzf --tiebreak=index --scheme=path)
[ -z "$item" ] && exit 1
frece increment "$DB_FILE" "$item"
xdg-open "$item"
#!/bin/sh
# Update frece database
DB_FILE=${FRECE_FILES_DB:-$HOME/.cache/frecent-files.csv}
tmp_file=$(mktemp)
fd -H . ~ > "$tmp_file" # use ~/.fdignore file to exclude certain dirs
frece update "$DB_FILE" "$tmp_file" --purge-old
rm "$tmp_file"
The mojo, cpan and pip bash scripts don't fail my test of "skimming over the source and looking for dangerous external commands like curl or rm
" (good syntax highlighting is helpful here). They look like typical completion scripts. However, if your Linux distribution has a pip completion script in their repos, prefer that one.
Wired has removed the story because it “does not meet [their] editorial standards”.
Wired has removed the story because it "does not meet [their] editorial standards".
Make sure that toolkit.legacyUserProfileCustomizations.stylesheets
is enabled in about:config.
Hollow Knight: Silksong
Thanks, I was confused because I thought “not supporting Taiwan independence” means being fine with China annexing Taiwan. In both versions of the readout, Biden wants to keep the status quo in Cross-Strait relations, but this is phrased differently in each readout.
It’s good that China and the US keep up the communication. However, I would like to see an US version of this: Did Biden really “reiterated that the one-China policy of the US has not changed and will not change, and that the US does not support ‘Taiwan independence’.”?
You guys are overreacting. DDG said they would only down-rank sites associated with Russian disinformation. It’s normal for search engines to downrank low-quality sites such as SEO spam.
Using MIT license means the developers cannot look at GNU source code when writing code for uutils. This feels like a unnecessary hurdle given that uutils wants to be 100% compatible with GNU tools.