Compare commits

...

8 Commits

@ -13,15 +13,16 @@ let
})
];
};
pkgs = (import (fetchTarball "https://github.com/NixOS/nixpkgs-channels/archive/nixos-19.03.tar.gz") nixpkgsOptions);
pkgs = (import (fetchTarball "https://github.com/NixOS/nixpkgs-channels/archive/nixos-20.03.tar.gz") nixpkgsOptions);
pkgs1803 = (import (fetchTarball "https://github.com/NixOS/nixpkgs-channels/archive/nixos-18.03.tar.gz") nixpkgsOptions);
presets = {
base = (import ./presets/base.nix);
kvm = (import ./presets/kvm.nix);
};
nginxPresets = {
php = (import ./presets/nginx/php.nix);
cphpApplication = (import ./presets/nginx/cphp-application.nix);
# php = (import ./presets/nginx/php.nix);
phpDisabled = (import ./presets/nginx/php-disabled.nix);
# cphpApplication = (import ./presets/nginx/cphp-application.nix);
reverseProxy = (import ./presets/nginx/reverse-proxy.nix);
letsEncrypt = (import ./presets/nginx/lets-encrypt.nix);
};
@ -53,10 +54,15 @@ in {
createHome = true;
home = "/home/backup-f0x";
};
backup-haless = {
createHome = true;
home = "/home/backup-haless";
};
};
users.extraGroups = {
backup-f0x = { members = [ "backup-f0x" ]; };
backup-haless = { members = [ "backup-haless" ]; };
};
services.borgbackup.repos = {
@ -74,6 +80,18 @@ in {
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDeMWPR38zXAbURVTJs+yGDnld5kO7bcgp/70l4wJG0k borg-backup@luna"
];
};
"haless" = {
allowSubRepos = true;
path = "/home/backup-haless";
user = "backup-haless";
group = "backup-haless";
authorizedKeys = [
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCzV5dI01NhwuL6ayiO0STcSQiDf7lEtu63NuLZKQUdZVuVHIqyt3Gquks2OI1NZGrJdXA315yw89ZqyMo+z7gSGHEV6P0fAXKW6G78JOFWsA5lGpaLxTsZ6Q7r0Z9FMqDvA5Jlsyznyj9hhO1cz01WPLzB92ypd9ifldtrAQIYQItxGXOuRkBJiShuIRqtr4Q2chXiOoRZKb4v4Gyt/UPxTpvfM/zcOz0zi1d4ijSbLqgIUJhxvrWADfdgEQ77unepDoD+HT51QBX7dj8RuYivxLSA3vpfNeCgt2CYBf6FYnmWkWSnN1RCtQPJNxsMuLzC2ZBbIkz0tDgcIBPbHxGr sven@linux-rfa7.site"
];
authorizedKeysAppendOnly = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFAOpXsDxE7SXeSw/kjgzdwEkNsL9REMabMqYVPM9rem root@machine-haless-03.cryto.net"
];
};
};
};
@ -100,28 +118,50 @@ in {
in lib.mkMerge [
(httpHosts [
# "haless.cryto.net"
"todo.cryto.net"
"books.cryto.net"
"learn.cryto.net"
"vps-list.cryto.net"
# "todo.cryto.net"
# "books.cryto.net"
# "learn.cryto.net"
# "vps-list.cryto.net"
"iomfats.cryto.net"
"castleroland.cryto.net"
"awesomedude.cryto.net"
"matrix-rooms.cryto.net"
"validatem.cryto.net"
])
(httpsHosts [
# "haless.cryto.net"
"books.cryto.net"
"vps-list.cryto.net"
# "books.cryto.net"
# "vps-list.cryto.net"
"iomfats.cryto.net"
"castleroland.cryto.net"
"awesomedude.cryto.net"
"matrix-rooms.cryto.net"
"validatem.cryto.net"
])
];
networking.firewall.allowedTCPPorts = [ 80 443 ];
services.borgbackup.jobs.system = {
paths = "/";
exclude = [
"/nix"
"/boot"
"/sys"
"/run"
"/tmp"
"/dev"
"/proc"
];
repo = "backup-haless@machine-borg2-01.cryto.net:haless-03";
encryption = {
mode = "repokey-blake2";
passphrase = (import ../private/machine-haless-03.cryto.net/borg-passphrase.nix);
};
compression = "auto,zlib";
startAt = "daily";
};
services.nginx = {
enable = true;
virtualHosts = {
@ -135,74 +175,82 @@ in {
(nginxPresets.letsEncrypt)
{ root = ./sources/modular-matrix; }
];
"validatem.cryto.net" = lib.mkMerge [
(nginxPresets.letsEncrypt)
{ root = ./sources/validatem-site; }
];
"haless.cryto.net" = lib.mkMerge [
(nginxPresets.letsEncrypt)
{
locations."/shadow" = {
locations."/shadow/" = {
alias = ./sources/shadow-generator;
};
locations."/knex-mirror" = {
locations."/knex-mirror/" = {
alias = ./sources/knex-mirror;
};
}
];
"books.cryto.net" = lib.mkMerge [
(nginxPresets.letsEncrypt)
(nginxPresets.php args) /* Temporary hack until I can figure out the mkMerge evaluation order issue */
{
root = pkgs.stdenv.mkDerivation {
name = "cryto-books";
src = ./sources/cryto-books;
installPhase = ''
mkdir -p $out/
cp -r $src/* $out/
cp ${../private/cryto-books/credentials.php} $out/credentials.php
'';
};
}
(nginxPresets.phpDisabled)
# (nginxPresets.php args) /* Temporary hack until I can figure out the mkMerge evaluation order issue */
# {
# root = pkgs.stdenv.mkDerivation {
# name = "cryto-books";
# src = ./sources/cryto-books;
# installPhase = ''
# mkdir -p $out/
# cp -r $src/* $out/
# cp ${../private/cryto-books/credentials.php} $out/credentials.php
# '';
# };
# }
];
"todo.cryto.net" = lib.mkMerge [
(nginxPresets.php args) /* Temporary hack until I can figure out the mkMerge evaluation order issue */
(nginxPresets.cphpApplication (pkgs.stdenv.mkDerivation {
name = "cryto-todo";
src = ./sources/cryto-todo;
installPhase = ''
mkdir -p $out/public_html
cp -r $src/* $out/public_html
cp ${../private/cryto-todo/config.json} $out/config.json
'';
}))
(nginxPresets.phpDisabled)
# (nginxPresets.php args) /* Temporary hack until I can figure out the mkMerge evaluation order issue */
# (nginxPresets.cphpApplication (pkgs.stdenv.mkDerivation {
# name = "cryto-todo";
# src = ./sources/cryto-todo;
# installPhase = ''
# mkdir -p $out/public_html
# cp -r $src/* $out/public_html
# cp ${../private/cryto-todo/config.json} $out/config.json
# '';
# }))
];
"learn.cryto.net" = lib.mkMerge [
(nginxPresets.php args) /* Temporary hack until I can figure out the mkMerge evaluation order issue */
(nginxPresets.cphpApplication (pkgs.stdenv.mkDerivation {
name = "cryto-learn";
src = ./sources/cryto-learn;
installPhase = ''
mkdir -p $out/public_html
cp -r $src/* $out/public_html
cp ${../private/cryto-learn/config.json} $out/config.json
'';
}))
(nginxPresets.phpDisabled)
# (nginxPresets.php args) /* Temporary hack until I can figure out the mkMerge evaluation order issue */
# (nginxPresets.cphpApplication (pkgs.stdenv.mkDerivation {
# name = "cryto-learn";
# src = ./sources/cryto-learn;
# installPhase = ''
# mkdir -p $out/public_html
# cp -r $src/* $out/public_html
# cp ${../private/cryto-learn/config.json} $out/config.json
# '';
# }))
];
"vps-list.cryto.net" = lib.mkMerge [
(nginxPresets.letsEncrypt)
(nginxPresets.php args) /* Temporary hack until I can figure out the mkMerge evaluation order issue */
(nginxPresets.cphpApplication (pkgs.stdenv.mkDerivation {
name = "vps-list";
src = ./sources/vps-list;
installPhase = ''
mkdir -p $out/public_html
mkdir -p $out/public_html/cphp
cp -r $src/* $out/public_html
cp ${../private/vps-list/config.php} $out/public_html/cphp/config.php
'';
}))
(nginxPresets.phpDisabled)
# (nginxPresets.php args) /* Temporary hack until I can figure out the mkMerge evaluation order issue */
# (nginxPresets.cphpApplication (pkgs.stdenv.mkDerivation {
# name = "vps-list";
# src = ./sources/vps-list;
# installPhase = ''
# mkdir -p $out/public_html
# mkdir -p $out/public_html/cphp
# cp -r $src/* $out/public_html
# cp ${../private/vps-list/config.php} $out/public_html/cphp/config.php
# '';
# }))
];
"iomfats.cryto.net" = lib.mkMerge [
(nginxPresets.letsEncrypt)
@ -223,37 +271,39 @@ in {
};
};
services.mysql = {
enable = true;
package = pkgs.mysql55;
};
# services.mysql = {
# enable = true;
# package = pkgs.mysql55;
# };
services.phpfpm = {
extraConfig = ''
log_level = notice
'';
phpPackage = pkgs1803.php56;
pools = {
main = {
listen = "/var/run/phpfpm-main.sock";
extraConfig = ''
user = nobody
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
pm = dynamic
pm.max_children = 75
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
pm.max_requests = 500
catch_workers_output = yes
'';
};
};
};
# services.phpfpm = {
# settings = {
# "log_level" = "notice";
# };
# phpPackage = pkgs1803.php56;
# pools = {
# main = {
# # listen = "/var/run/phpfpm-main.sock";
# user = "nobody";
# settings = {
# "listen.owner" = "nginx";
# "listen.group" = "nginx";
# "listen.mode" = 0660;
# "pm" = "dynamic";
# "pm.max_children" = 75;
# "pm.start_servers" = 10;
# "pm.min_spare_servers" = 5;
# "pm.max_spare_servers" = 20;
# "pm.max_requests" = 500;
# "catch_workers_output" = true;
# };
# };
# };
# };
users.extraUsers.mobile-proxy = {
description = "mobile-proxy Service User";

@ -11,6 +11,7 @@
boot.initrd.availableKernelModules = [ "ata_piix" "uhci_hcd" "sd_mod" "sr_mod" ];
boot.kernelModules = [ ];
boot.extraModulePackages = [ ];
boot.loader.grub.device = lib.mkForce "/dev/vda";
fileSystems."/" =
{ device = "/dev/disk/by-uuid/fae209f9-45d5-457a-bccf-c38e7e41c5b9";

@ -1,8 +1,11 @@
{ pkgs, ... }:
{
console = {
font = "Lat2-Terminus16";
keyMap = "us";
};
i18n = {
consoleFont = "Lat2-Terminus16";
consoleKeyMap = "us";
defaultLocale = "en_US.UTF-8";
};
@ -17,6 +20,7 @@
nload
lsof
mtr
dfc
];
services.openssh = {
@ -34,4 +38,9 @@
dates = "00:00";
options = "--delete-older-than 14d";
};
security.acme = {
acceptTerms = true;
email = "admin+certs@cryto.net";
};
}

@ -0,0 +1,5 @@
{
locations."/" = {
return = "503";
};
}

@ -6,7 +6,7 @@
locations."~ \.php$" = {
extraConfig = ''
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:${config.services.phpfpm.pools.main.listen};
fastcgi_pass unix:${config.services.phpfpm.pools.main.socket};
fastcgi_index index.php;
'';
};

@ -8,16 +8,44 @@
<body>
<h1>Modular Matrix</h1>
<p>
<em><strong>NOTE:</strong> If you're looking for the Matrix website, go to <a href="https://matrix.org">Matrix.org</a>. If you're looking for the Matrix hosting service, go to <a href="https://modular.im/">Modular.im</a>. This project is not affiliated with either of those two.</em>
<em><strong>NOTE:</strong> If you're looking for the Matrix website, go to <a href="https://matrix.org">Matrix.org</a>. If you're looking for the commercial Matrix hosting service, go to <a href="https://modular.im/">Modular.im</a>. This project is not affiliated with either of those two.</em>
</p>
<p>
Hi! This will eventually be the website for Modular Matrix, a project to build a modular JavaScript SDK for the <a href="https://matrix.org">Matrix protocol</a>, as an alternative to the <code>matrix-js-sdk</code>.
</p>
<p>
Currently there's not really anything here yet, though you can have a look at the <a href="https://www.npmjs.com/org/modular-matrix?tab=packages">already-published packages</a> if you're curious about how things are going.
Currently there's not much here yet, though you can have a look at the <a href="https://www.npmjs.com/org/modular-matrix?tab=packages">already-published packages</a> if you're curious about how things are going.
</p>
<p>
You can contact me on Matrix as <a href="https://matrix.to/#/@joepie91:pixie.town">@joepie91:pixie.town</a>.
</p>
<h2>Primary design goals</h2>
<p>
These are not the *only* goals, but they are the most important ones, and the ones that are most often overlooked in library design.
</p>
<ul>
<li>
<strong>Modularity.</strong> It should be possible to build weird experimental things that don't look like a typical Matrix client or server, without having to pull in a lot of complexity you don't need, or having to hack into SDK internals. Therefore, Modular Matrix primarily consists of a lot of small, single-responsibility modules, that can be used in isolation.
</li>
<li>
<strong>Exhaustive documentation.</strong> There shouldn't be a single undocumented thing in the external API. All modules are <em>fully documented</em>; including examples, API reference, high-level concepts, and gotchas to watch out for.
</li>
<li>
<strong>Readability.</strong> Ideally, it should be possible to learn the Matrix protocol by reading the implementation.
</li>
<li>
<strong>Maintainability.</strong> It should always be possible to understand how the implementation approaches a particular problem, both from a high-level perspective and from an implementation-details perspective. It should always be obvious which part of the code to change, to correctly solve a problem.
</li>
<li>
<strong>Reliability.</strong> Semantic versioning is followed. APIs are, where possible, designed in a way that is hard to misuse. All library errors have clearly distinct types and metadata, so that you don't need catch-alls.
</li>
</ul>
<p>
The common theme here is that Modular Matrix is designed to be <em>human-friendly</em>. It's not about clever technical hacks or micro-optimized implementations that exploit runtime specifics, but about creating a set of libraries that are <em>pleasant to work with</em> and don't yield unpleasant surprises.
</p>
</body>
</html>

@ -0,0 +1,25 @@
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Validatem</title>
</head>
<body>
<h1>
<img src="validatem-logo.svg" alt="Validatem Logo">
</h1>
<p>
Hi! This is the placeholder site for Validatem, the last validation library you'll ever need - once it's released, that is :)
</p>
<p>
I'm still working on polishing the last bits before releasing the first stable 1.0.0 version. In the meantime, you can already try out <a href="https://www.npmjs.com/package/@validatem/core">the current in-development version of Validatem</a>!
</p>
<p>
Do keep in mind that documentation will be missing in quite a few places, while Validatem is still being developed. By the time version 1.0.0 is released, the documentation will be complete.
</p>
</body>
</html>

@ -0,0 +1,112 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="98.903084mm"
height="31.907118mm"
viewBox="0 0 98.903084 31.907118"
version="1.1"
id="svg8"
inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
sodipodi:docname="validatem-logo.svg">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.979899"
inkscape:cx="164.91615"
inkscape:cy="48.417218"
inkscape:document-units="mm"
inkscape:current-layer="text817"
showgrid="false"
inkscape:window-width="1870"
inkscape:window-height="1015"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
fit-margin-top="3"
fit-margin-bottom="3"
fit-margin-right="3"
fit-margin-left="3" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-32.405043,-64.65399)">
<g
aria-label="validatem"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:6.61458302px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="text817">
<path
d="M 43.375616,93.340622 H 39.671449 L 35.405043,81.412323 h 3.274219 l 2.083593,6.669705 c 0.110243,0.367477 0.371152,1.286169 0.782726,2.756077 0.0735,-0.301331 0.224161,-0.830498 0.451996,-1.5875 0.227836,-0.757003 6.893866,-17.128097 8.356424,-21.596615 h 3.241146 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:22.57777786px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';letter-spacing:-1.22766662px;word-spacing:0px;fill:#008000;stroke-width:0.26458332px"
id="path838"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccsccc" />
<path
d="m 50.989442,93.561108 q -1.730816,0 -2.700955,-0.937066 -0.970139,-0.94809 -0.970139,-2.656858 0,-1.852083 1.20165,-2.822222 1.212673,-0.970139 3.505729,-0.992187 l 2.568663,-0.0441 v -0.606336 q 0,-1.168577 -0.407899,-1.730816 -0.4079,-0.573264 -1.333941,-0.573264 -0.859896,0 -1.267795,0.396875 -0.396875,0.38585 -0.496094,1.289844 l -3.230122,-0.154341 q 0.297656,-1.74184 1.5875,-2.634809 1.300868,-0.903993 3.538802,-0.903993 2.259983,0 3.483681,1.113455 1.223698,1.113455 1.223698,3.163976 v 4.343576 q 0,1.003212 0.220486,1.389063 0.23151,0.374826 0.760677,0.374826 0.352778,0 0.683507,-0.06615 v 1.675695 q -0.275608,0.06615 -0.496094,0.121267 -0.220486,0.05512 -0.440972,0.08819 -0.220486,0.03307 -0.474045,0.05512 -0.242535,0.02205 -0.573264,0.02205 -1.168576,0 -1.730816,-0.573264 -0.551215,-0.573264 -0.661458,-1.686719 h -0.06615 q -1.300868,2.348177 -3.924653,2.348177 z m 3.604948,-5.743663 -1.5875,0.02205 q -1.080382,0.0441 -1.532379,0.242535 -0.451996,0.187413 -0.694531,0.584288 -0.23151,0.396875 -0.23151,1.058334 0,0.848871 0.38585,1.267795 0.396875,0.407899 1.04731,0.407899 0.727604,0 1.322916,-0.396875 0.606337,-0.396875 0.94809,-1.091406 0.341754,-0.705556 0.341754,-1.488281 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:22.57777786px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';letter-spacing:-1.22766662px;word-spacing:0px;stroke-width:0.26458332px"
id="path840"
inkscape:connector-curvature="0" />
<path
d="m 59.573407,93.340622 v -16.36007 h 3.09783 v 16.36007 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:22.57777786px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';letter-spacing:-1.22766662px;word-spacing:0px;stroke-width:0.26458332px"
id="path842"
inkscape:connector-curvature="0" />
<path
d="m 64.607546,79.262584 v -2.282032 h 3.09783 v 2.282032 z m 0,14.078038 V 81.412323 h 3.09783 v 11.928299 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:22.57777786px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';letter-spacing:-1.22766662px;word-spacing:0px;stroke-width:0.26458332px"
id="path844"
inkscape:connector-curvature="0" />
<path
d="m 77.369722,93.340622 q -0.0441,-0.165365 -0.110243,-0.826823 -0.05512,-0.672483 -0.05512,-1.113455 h -0.0441 q -1.003212,2.160764 -3.81441,2.160764 -2.083594,0 -3.219097,-1.620573 -1.135504,-1.631597 -1.135504,-4.553038 0,-2.965538 1.190625,-4.575087 1.201649,-1.620573 3.395486,-1.620573 1.267795,0 2.182813,0.529167 0.926041,0.529167 1.422135,1.576476 h 0.02205 l -0.02205,-1.962327 v -4.354601 h 3.09783 v 13.758334 q 0,1.10243 0.08819,2.601736 z m -0.143316,-6.030295 q 0,-1.929254 -0.650434,-2.965538 -0.639409,-1.047309 -1.89618,-1.047309 -1.245747,0 -1.852084,1.014236 -0.606336,1.003211 -0.606336,3.075781 0,4.056944 2.436371,4.056944 1.223698,0 1.896181,-1.069357 0.672482,-1.080382 0.672482,-3.064757 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:22.57777786px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';letter-spacing:-1.22766662px;word-spacing:0px;stroke-width:0.26458332px"
id="path846"
inkscape:connector-curvature="0" />
<path
d="m 84.972525,93.561108 q -1.730816,0 -2.700955,-0.937066 -0.970139,-0.94809 -0.970139,-2.656858 0,-1.852083 1.201649,-2.822222 1.212674,-0.970139 3.50573,-0.992187 l 2.568663,-0.0441 v -0.606336 q 0,-1.168577 -0.4079,-1.730816 -0.407899,-0.573264 -1.333941,-0.573264 -0.859895,0 -1.267795,0.396875 -0.396875,0.38585 -0.496093,1.289844 l -3.230122,-0.154341 q 0.297656,-1.74184 1.5875,-2.634809 1.300868,-0.903993 3.538802,-0.903993 2.259983,0 3.483681,1.113455 1.223698,1.113455 1.223698,3.163976 v 4.343576 q 0,1.003212 0.220486,1.389063 0.23151,0.374826 0.760677,0.374826 0.352778,0 0.683507,-0.06615 v 1.675695 q -0.275608,0.06615 -0.496094,0.121267 -0.220486,0.05512 -0.440972,0.08819 -0.220486,0.03307 -0.474045,0.05512 -0.242535,0.02205 -0.573264,0.02205 -1.168577,0 -1.730816,-0.573264 -0.551216,-0.573264 -0.661459,-1.686719 h -0.06615 q -1.300868,2.348177 -3.924653,2.348177 z m 3.604948,-5.743663 -1.5875,0.02205 q -1.080382,0.0441 -1.532379,0.242535 -0.451996,0.187413 -0.694531,0.584288 -0.23151,0.396875 -0.23151,1.058334 0,0.848871 0.38585,1.267795 0.396875,0.407899 1.047309,0.407899 0.727604,0 1.322917,-0.396875 0.606337,-0.396875 0.94809,-1.091406 0.341754,-0.705556 0.341754,-1.488281 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:22.57777786px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';letter-spacing:-1.22766662px;word-spacing:0px;stroke-width:0.26458332px"
id="path848"
inkscape:connector-curvature="0" />
<path
d="m 96.610223,93.539059 q -1.367014,0 -2.105642,-0.738628 -0.738629,-0.749653 -0.738629,-2.259983 v -7.033507 h -1.51033 v -2.094618 h 1.664671 l 0.970138,-2.800173 h 1.940278 v 2.800173 h 2.259983 v 2.094618 h -2.259983 v 6.19566 q 0,0.87092 0.330729,1.289844 0.33073,0.407899 1.025261,0.407899 0.363802,0 1.036285,-0.15434 v 1.918229 q -1.146528,0.374826 -2.612761,0.374826 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:22.57777786px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';letter-spacing:-1.22766662px;word-spacing:0px;stroke-width:0.26458332px"
id="path850"
inkscape:connector-curvature="0" />
<path
d="m 104.75322,93.561108 q -2.68993,0 -4.13412,-1.5875 -1.444183,-1.598524 -1.444183,-4.652257 0,-2.954514 1.466233,-4.542014 1.46623,-1.5875 4.15616,-1.5875 2.56867,0 3.92466,1.708768 1.35599,1.697743 1.35599,4.982986 v 0.08819 h -7.65087 q 0,1.74184 0.63941,2.634809 0.65043,0.881945 1.84106,0.881945 1.64262,0 2.07257,-1.422136 l 2.92144,0.253559 q -1.2678,3.241146 -5.14835,3.241146 z m 0,-10.417969 q -1.09141,0 -1.68672,0.760677 -0.58429,0.760677 -0.61736,2.127691 h 4.6302 q -0.0882,-1.444184 -0.69453,-2.160764 -0.60633,-0.727604 -1.63159,-0.727604 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:22.57777786px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';letter-spacing:-1.22766662px;word-spacing:0px;stroke-width:0.26458332px"
id="path852"
inkscape:connector-curvature="0" />
<path
d="m 118.23197,93.340622 v -6.691754 q 0,-3.141927 -1.80798,-3.141927 -0.93707,0 -1.53238,0.959115 -0.58429,0.959115 -0.58429,2.480469 v 6.394097 h -3.09783 v -9.260417 q 0,-0.959114 -0.0331,-1.565451 -0.022,-0.617361 -0.0551,-1.102431 h 2.95451 q 0.0331,0.209462 0.0882,1.124479 0.0551,0.903994 0.0551,1.245747 h 0.0441 q 0.57327,-1.367014 1.42214,-1.984375 0.85989,-0.617361 2.05052,-0.617361 2.73403,0 3.31832,2.601736 h 0.0661 q 0.60634,-1.389063 1.45521,-1.995399 0.84887,-0.606337 2.16076,-0.606337 1.74184,0 2.65686,1.190625 0.91502,1.179601 0.91502,3.395486 v 7.573698 h -3.07578 v -6.691754 q 0,-3.141927 -1.80799,-3.141927 -0.90399,0 -1.48828,0.881945 -0.57326,0.87092 -0.62839,2.414323 v 6.537413 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:22.57777786px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';letter-spacing:-1.22766662px;word-spacing:0px;stroke-width:0.26458332px"
id="path854"
inkscape:connector-curvature="0" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 10 KiB

@ -9,9 +9,12 @@
boot.loader.grub.version = 2;
boot.loader.grub.device = "/dev/sda"; # or "nodev" for efi only
console = {
font = "Lat2-Terminus16";
keyMap = "us";
};
i18n = {
consoleFont = "Lat2-Terminus16";
consoleKeyMap = "us";
defaultLocale = "en_US.UTF-8";
};

Loading…
Cancel
Save