chore: massive cleanup
This commit is contained in:
parent
12835fa38f
commit
518513e354
51
flake.lock
51
flake.lock
|
@ -1,21 +1,5 @@
|
|||
{
|
||||
"nodes": {
|
||||
"2i-emulator": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1654439869,
|
||||
"narHash": "sha256-zQdnDZwFd7KkSoLyu3Ty/YDn7qosTIf2n02PHitGf2g=",
|
||||
"owner": "klemens",
|
||||
"repo": "2i-emulator",
|
||||
"rev": "dbd022bce6ef22a798c36c2b22915ab72b64822d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "klemens",
|
||||
"repo": "2i-emulator",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"all-cabal-json": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
|
@ -2515,41 +2499,8 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"radicale_infcloud": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1650318334,
|
||||
"narHash": "sha256-xzBWIx2OOkCtBjlff1Z0VqgMhxWtgiOKutXUadT3tIo=",
|
||||
"owner": "Unrud",
|
||||
"repo": "RadicaleInfCloud",
|
||||
"rev": "53d3a95af5b58cfa3242cef645f8d40c731a7d95",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "Unrud",
|
||||
"repo": "RadicaleInfCloud",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"rip": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1609816820,
|
||||
"narHash": "sha256-fkrWIysGJRscos+/dxCpNzfSgRiugKV+JZSZro1JIQI=",
|
||||
"owner": "nivekuil",
|
||||
"repo": "rip",
|
||||
"rev": "11f0b8d018975f78d922038efc7f60bf9fffafd0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nivekuil",
|
||||
"repo": "rip",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"2i-emulator": "2i-emulator",
|
||||
"colmena": "colmena",
|
||||
"custom-udev-rules": "custom-udev-rules",
|
||||
"devshell": "devshell",
|
||||
|
@ -2569,8 +2520,6 @@
|
|||
"nixpkgs-wayland": "nixpkgs-wayland",
|
||||
"pre-commit-hooks-nix": "pre-commit-hooks-nix_4",
|
||||
"qmk-udev-rules": "qmk-udev-rules",
|
||||
"radicale_infcloud": "radicale_infcloud",
|
||||
"rip": "rip",
|
||||
"sops-nix": "sops-nix",
|
||||
"treefmt-nix": "treefmt-nix_5",
|
||||
"xdg-desktop-portal-hyprland": "xdg-desktop-portal-hyprland"
|
||||
|
|
18
flake.nix
18
flake.nix
|
@ -58,18 +58,6 @@
|
|||
url = "github:hyprwm/xdg-desktop-portal-hyprland";
|
||||
};
|
||||
|
||||
rip = {
|
||||
url = "github:nivekuil/rip";
|
||||
flake = false;
|
||||
};
|
||||
"2i-emulator" = {
|
||||
url = "github:klemens/2i-emulator";
|
||||
flake = false;
|
||||
};
|
||||
radicale_infcloud = {
|
||||
url = "github:Unrud/RadicaleInfCloud";
|
||||
flake = false;
|
||||
};
|
||||
qmk-udev-rules = {
|
||||
url = "github:qmk/qmk_firmware";
|
||||
flake = false;
|
||||
|
@ -93,14 +81,11 @@
|
|||
inputs.xdg-desktop-portal-hyprland.overlays.default
|
||||
inputs.hyprland-contrib.overlays.default
|
||||
(_: super: {
|
||||
# Add fonts
|
||||
hackNerdLigatures = super.callPackage ./pkgs/hack.nix {};
|
||||
# Add the emulator
|
||||
"2a-emulator" =
|
||||
inputs.emulator-2a.packages.x86_64-linux."2a-emulator";
|
||||
# Add my mensa tool
|
||||
inherit (inputs.mensa.packages.x86_64-linux) mensa;
|
||||
darkman = super.callPackage ./pkgs/darkman.nix {};
|
||||
# TODO: Replace with upstream
|
||||
inherit (inputs.fend.packages.x86_64-linux) fend;
|
||||
hydra = inputs.hydra.packages.x86_64-linux.default;
|
||||
|
@ -109,9 +94,6 @@
|
|||
netcat-openbsd = super.libressl.nc;
|
||||
})
|
||||
(import ./overlays/qmk-udev-rules.nix)
|
||||
(import ./overlays/logisim.nix)
|
||||
(import ./overlays/fzf-kak.nix)
|
||||
(import ./overlays/prometheus-fritzbox-exporter.nix)
|
||||
(import ./overlays/waybar-hypr.nix)
|
||||
];
|
||||
# Modules useful to most of my systems
|
||||
|
|
|
@ -1,4 +1,8 @@
|
|||
{pkgs, ...}: {
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
../hardware/intel-nuc.nix
|
||||
];
|
||||
|
@ -23,18 +27,17 @@
|
|||
REpo-AiO = pkgs.fetchFromGitHub {
|
||||
owner = "Collabsvito";
|
||||
repo = "REpo-AiO";
|
||||
rev = "c88a6de";
|
||||
hash = "sha256-3FeMPAMXvVwbQXmjz6HYo5QAbrI4x3mkVNTLIco56K4=";
|
||||
inherit (config.state.hashes.REpo-AiO) rev hash;
|
||||
};
|
||||
|
||||
rtlGroupPlugin = pkgs.kodiPackages.buildKodiAddon rec {
|
||||
pname = "rtl+";
|
||||
namespace = "plugin.video.rtlgroup.de";
|
||||
version = "1.1.6";
|
||||
version = config.state.hashes.rtlGroupPlugin.version;
|
||||
|
||||
src = pkgs.fetchzip {
|
||||
url = "file://${REpo-AiO}/MATRIX/${namespace}/${namespace}-${version}+matrix.1.zip";
|
||||
hash = "sha256-tknTHae9dRQ1oO8rtgqSzxC7DzbVHa2VhbddWBqNVOI=";
|
||||
hash = config.state.hashes.rtlGroupPlugin.hash;
|
||||
};
|
||||
|
||||
patchPhase = ''
|
||||
|
@ -43,12 +46,12 @@
|
|||
};
|
||||
|
||||
netflixPlugin = pkgs.kodiPackages.netflix.overrideAttrs rec {
|
||||
version = "1.22.3";
|
||||
inherit (config.state.hashes.netflixPlugin) version;
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "CastagnaIT";
|
||||
repo = "plugin.video.netflix";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-8NGj8n1p8euqYYdPDSeFh2ZE9lly5ThSmg69yXY3Te8=";
|
||||
inherit (config.state.hashes.netflixPlugin) hash;
|
||||
};
|
||||
};
|
||||
in
|
||||
|
|
|
@ -7,13 +7,6 @@
|
|||
}: let
|
||||
sopsPath = key: config.sops.secrets.${key}.path;
|
||||
|
||||
scrapedExporters = lib.attrsets.mapAttrsToList (expName: conf: {
|
||||
job_name = expName;
|
||||
static_configs = lib.singleton {
|
||||
targets = lib.singleton "localhost:${builtins.toString conf.port}";
|
||||
};
|
||||
});
|
||||
|
||||
mkVirtHost = certificateName:
|
||||
lib.attrsets.recursiveUpdate {
|
||||
addSSL = true;
|
||||
|
@ -23,9 +16,9 @@
|
|||
sslCertificate = pkgs.writeText "${certificateName}.crt" (builtins.readFile ../secrets/pub/${certificateName}.crt);
|
||||
};
|
||||
|
||||
vpnInterface = config.services.tailscale.interfaceName;
|
||||
vpnIPv4 = "100.108.135.4";
|
||||
vpnIPv6 = "fd7a:115c:a1e0:ab12:4843:cd96:626c:8704";
|
||||
vpnIPv4 = config.state.vpn.ipv4;
|
||||
vpnIPv6 = config.state.vpn.ipv6;
|
||||
|
||||
in {
|
||||
imports = [
|
||||
inputs.nixos-hardware.nixosModules.common-cpu-intel #-cpu-only
|
||||
|
@ -46,7 +39,6 @@ in {
|
|||
|
||||
# === Settings ===
|
||||
settings.ssh.openOutsideVPN = true;
|
||||
settings.printing.enable = true;
|
||||
|
||||
# === ZFS services ===
|
||||
services.zfs.trim.enable = true;
|
||||
|
@ -72,33 +64,6 @@ in {
|
|||
stateDir = "/data/dirty/gogs";
|
||||
};
|
||||
|
||||
# === Extend printing settings because sharing is caring ===
|
||||
services.printing = {
|
||||
listenAddresses = ["*:631"];
|
||||
allowFrom = ["all" "@IF(${vpnInterface})"];
|
||||
defaultShared = true;
|
||||
browsing = true;
|
||||
logLevel = "debug";
|
||||
};
|
||||
networking.firewall.interfaces.${vpnInterface} = {
|
||||
allowedUDPPorts = [631];
|
||||
allowedTCPPorts = [631 config.services.hydra.port];
|
||||
};
|
||||
hardware.printers = {
|
||||
ensureDefaultPrinter = "Local";
|
||||
ensurePrinters = lib.singleton {
|
||||
description = "The fastest Boi in town!";
|
||||
deviceUri = "usb://Samsung/ML-1640%20Series?serial=144QBAHS600499T.";
|
||||
location = "@Home";
|
||||
model = "samsung/ML-1640.ppd";
|
||||
name = "Local";
|
||||
ppdOptions = {
|
||||
PageSize = "A4";
|
||||
Resolution = "600dpi";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
virtualisation.oci-containers.backend = "podman";
|
||||
virtualisation.podman = {
|
||||
enable = true;
|
||||
|
@ -172,41 +137,6 @@ in {
|
|||
# For SONOS
|
||||
networking.firewall.allowedTCPPorts = [1400];
|
||||
|
||||
# === Dim ===
|
||||
# virtualisation.oci-containers.containers."dim" = {
|
||||
# environment = {};
|
||||
# image = "ghcr.io/dusk-labs/dim:dev";
|
||||
# ports = lib.singleton "7999:8000";
|
||||
# volumes = [
|
||||
# # TODO: https://github.com/Dusk-Labs/dim/blob/master/docker-compose-template.yml
|
||||
# "/srv/media.deletemesoon:/media:ro"
|
||||
# ];
|
||||
# #user = "${config.users.users.dim.name}:${config.users.groups.dim.name}";
|
||||
# };
|
||||
|
||||
# === SheetAble ===
|
||||
# virtualisation.oci-containers.containers."sheetable" = {
|
||||
# environment = {
|
||||
# CONFIG_PATH = "/app/config/";
|
||||
# };
|
||||
# image = "vallezw/sheetable";
|
||||
# ports = lib.singleton "7998:8080";
|
||||
# volumes = [
|
||||
# # TODO: https://sheetable.net/docs/Installation/installation-docker
|
||||
# ];
|
||||
# };
|
||||
|
||||
# === Seafile ===
|
||||
# services.seafile = {
|
||||
# enable = true;
|
||||
# adminEmail = "malte.tammena@pm.me";
|
||||
# initialAdminPassword = "test";
|
||||
# seafileSettings = {
|
||||
# fileserver.host = "::1";
|
||||
# };
|
||||
# ccnetSettings.General.SERVICE_URL = "http://file.home";
|
||||
# };
|
||||
|
||||
# === HYDRA & Friends. ===
|
||||
services.hydra = {
|
||||
enable = true;
|
||||
|
@ -385,106 +315,6 @@ in {
|
|||
openFirewall = true;
|
||||
};
|
||||
|
||||
# === Grafana ===
|
||||
services.grafanaHome = {
|
||||
enable = true;
|
||||
nginx.listenAddresses = [vpnIPv4 "[${vpnIPv6}]"];
|
||||
nginx.sslCertificate = sopsPath "nginx-cert-crt";
|
||||
nginx.sslCertificateKey = sopsPath "nginx-cert-key";
|
||||
grafana.adminPasswordFile = sopsPath "grafana-admin-password";
|
||||
};
|
||||
|
||||
# === Prometheus ===
|
||||
services.prometheus = {
|
||||
enable = true;
|
||||
enableReload = true;
|
||||
exporters = {
|
||||
fritzbox = {
|
||||
enable = true;
|
||||
gatewayAddress = "spof";
|
||||
};
|
||||
node = {
|
||||
enable = true;
|
||||
enabledCollectors = ["systemd"];
|
||||
disabledCollectors = ["diskstats"];
|
||||
};
|
||||
};
|
||||
scrapeConfigs = scrapedExporters {inherit (config.services.prometheus.exporters) fritzbox node;};
|
||||
};
|
||||
systemd.services."prometheus-fritzbox-exporter".serviceConfig.EnvironmentFile = sopsPath "fritzbox-exporter-env";
|
||||
# TODO: Yikes
|
||||
systemd.services."prometheus-fritzbox-exporter".serviceConfig.ExecStart = let
|
||||
cfg = config.services.prometheus.exporters.fritzbox;
|
||||
in
|
||||
lib.mkForce ''
|
||||
${pkgs.prometheus-fritzbox-exporter}/bin/fritzbox_exporter \
|
||||
-listen-address ${cfg.listenAddress}:${toString cfg.port} \
|
||||
-gateway-url http://${cfg.gatewayAddress}:${toString cfg.gatewayPort} \
|
||||
-gateway-luaurl http://${cfg.gatewayAddress} \
|
||||
-metrics-file ${pkgs.prometheus-fritzbox-exporter}/share/metrics.json \
|
||||
-lua-metrics-file ${pkgs.prometheus-fritzbox-exporter}/share/metrics-lua_cable.json
|
||||
'';
|
||||
|
||||
# services.nginx.virtualHosts."media.home" = {
|
||||
# locations."/" = {
|
||||
# proxyPass = "http://127.0.0.1:7999";
|
||||
# proxyWebsockets = true;
|
||||
# };
|
||||
# };
|
||||
|
||||
# services.nginx.virtualHosts."file.home" = {
|
||||
# locations."/" = {
|
||||
# proxyPass = "http://[::1]:${builtins.toString config.services.seafile.seafileSettings.fileserver.port}";
|
||||
# proxyWebsockets = true;
|
||||
# };
|
||||
# };
|
||||
# networking.firewall.allowedTCPPorts = [config.services.seafile.seafileSettings.fileserver.port];
|
||||
|
||||
# === Print Service ===
|
||||
systemd.paths."print-all-files" = {
|
||||
requires = ["printer.target"];
|
||||
after = ["printer.target"];
|
||||
wantedBy = ["default.target"];
|
||||
pathConfig = {
|
||||
DirectoryNotEmpty = "/srv/to-be-printed";
|
||||
MakeDirectory = true;
|
||||
DirectoryMode = "777";
|
||||
Unit = "print-all-files.service";
|
||||
};
|
||||
};
|
||||
systemd.services."print-all-files" = let
|
||||
printAndDeleteFile = pkgs.writeShellApplication {
|
||||
name = "print-and-delete-file";
|
||||
runtimeInputs = [
|
||||
pkgs.coreutils
|
||||
pkgs.cups
|
||||
];
|
||||
text = ''
|
||||
echo Printing "$1"
|
||||
lp -- "$1"
|
||||
rm "$1"
|
||||
'';
|
||||
};
|
||||
script = pkgs.writeShellApplication {
|
||||
name = "print-all-files-script";
|
||||
runtimeInputs = [
|
||||
pkgs.coreutils
|
||||
printAndDeleteFile
|
||||
];
|
||||
text = ''
|
||||
find . -type f -exec print-and-delete-file "{}" \;
|
||||
'';
|
||||
};
|
||||
in {
|
||||
requires = ["printer.target"];
|
||||
after = ["printer.target"];
|
||||
serviceConfig = {
|
||||
WorkingDirectory = "/srv/to-be-printed";
|
||||
ExecStart = "${script}/bin/print-all-files-script";
|
||||
# Wait 15 seconds before restart to let the file load, if not present yet
|
||||
RestartSec = "15";
|
||||
};
|
||||
};
|
||||
users.users.sftp = {
|
||||
description = "User used for all sftp stuff";
|
||||
isNormalUser = true;
|
||||
|
@ -539,10 +369,6 @@ in {
|
|||
"certificate-key-git-home" = nginxSecret;
|
||||
"paperless-admin-password" = {};
|
||||
"photoprism-admin-password" = {};
|
||||
"grafana-admin-password" = {
|
||||
owner = config.users.users.grafana.name;
|
||||
mode = "0400";
|
||||
};
|
||||
"nginx-cert-key" = nginxSecret;
|
||||
"nginx-cert-crt" = nginxSecret;
|
||||
"fritzbox-exporter-env" = {};
|
||||
|
|
|
@ -40,6 +40,38 @@ in {
|
|||
# Run radicale with infcloud interface for me and Marie
|
||||
services.radicaleWithInfcloud.enable = true;
|
||||
|
||||
sops.secrets = let
|
||||
nginxSecret = {
|
||||
owner = "nginx";
|
||||
mode = "0400";
|
||||
};
|
||||
in {
|
||||
certificate-key-config-tammena-me = nginxSecret;
|
||||
certificate-key-todo-tammena-me = nginxSecret;
|
||||
certificate-key-time-tammena-me = nginxSecret;
|
||||
};
|
||||
|
||||
services.nginx.virtualHosts = {
|
||||
"config.tammena.me" = mkVirtHost "config-tammena-me" {
|
||||
locations."/" = {
|
||||
proxyPass = "https://config.home";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
};
|
||||
"todo.tammena.me" = mkVirtHost "todo-tammena-me" {
|
||||
locations."/" = {
|
||||
proxyPass = "https://todo.home";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
};
|
||||
"time.tammena.me" = mkVirtHost "time-tammena-me" {
|
||||
locations."/" = {
|
||||
proxyPass = "https://time.home";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
services.qemuGuest.enable = true;
|
||||
|
||||
services.bind = {
|
||||
|
@ -49,17 +81,11 @@ in {
|
|||
listenOn = ["any"];
|
||||
listenOnIpv6 = ["any"];
|
||||
zones."home" = let
|
||||
granodomus-lima = {
|
||||
v4 = "100.66.69.111";
|
||||
v6 = "fd7a:115c:a1e0:ab12:4843:cd96:6242:456f";
|
||||
};
|
||||
faunus-ater = {
|
||||
v4 = "100.108.135.4";
|
||||
v6 = "fd7a:115c:a1e0:ab12:4843:cd96:626c:8704";
|
||||
};
|
||||
granodomus-lima = config.state.vpn.machine.granodomus-lima;
|
||||
faunus-ater = config.state.vpn.machine.faunus-ater;
|
||||
point = domain: host: ''
|
||||
${domain} AAAA ${host.v6}
|
||||
${domain} A ${host.v4}
|
||||
${domain} AAAA ${host.ipv6}
|
||||
${domain} A ${host.ipv4}
|
||||
'';
|
||||
in {
|
||||
master = true;
|
||||
|
@ -91,6 +117,7 @@ in {
|
|||
${point "todo" faunus-ater}
|
||||
${point "support" faunus-ater}
|
||||
${point "config" faunus-ater}
|
||||
${point "listen" faunus-ater}
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
|
|
@ -36,7 +36,6 @@
|
|||
system.fsPackages = [pkgs.sshfs];
|
||||
|
||||
settings.minimalGnome.enable = true;
|
||||
settings.printing.enable = true;
|
||||
settings.batteryStuff.enable = true;
|
||||
|
||||
# Pipewire for my wayland
|
||||
|
|
|
@ -32,7 +32,6 @@
|
|||
];
|
||||
|
||||
settings.minimalGnome.enable = true;
|
||||
settings.printing.enable = true;
|
||||
|
||||
sound.enable = true;
|
||||
security.rtkit.enable = true;
|
||||
|
|
|
@ -54,7 +54,7 @@
|
|||
|
||||
environment.systemPackages = with pkgs; [
|
||||
steam-rom-manager
|
||||
(pkgs.callPackage ../pkgs/boilr.nix {})
|
||||
boilr
|
||||
electron
|
||||
];
|
||||
|
||||
|
|
|
@ -20,7 +20,6 @@
|
|||
networking.interfaces.wlp2s0.useDHCP = true;
|
||||
|
||||
settings.minimalGnome.enable = true;
|
||||
settings.printing.enable = true;
|
||||
|
||||
hardware = {
|
||||
opengl = {
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
in {
|
||||
imports = [
|
||||
./7-days-to-die.nix
|
||||
./grafana.nix
|
||||
./hdparm.nix
|
||||
./malte.nix
|
||||
./marie.nix
|
||||
|
@ -28,12 +27,12 @@ in {
|
|||
./wakeup.nix
|
||||
./darkman.nix
|
||||
./gogs.nix
|
||||
./state.nix
|
||||
];
|
||||
|
||||
options.settings = with lib; {
|
||||
nvidiaUsed = mkEnableOption "NVIDIA graphic card usage";
|
||||
minimalGnome.enable = mkEnableOption "basic gnome stuff";
|
||||
printing.enable = mkEnableOption "the printing/printers configuration";
|
||||
ssh.openOutsideVPN = mkEnableOption "an additional ssh port outside the VPN";
|
||||
batteryStuff.enable = mkEnableOption "battery-related things";
|
||||
hiDPI.enable = mkEnableOption "High-DPI display";
|
||||
|
@ -46,6 +45,16 @@ in {
|
|||
allowUnfreePredicate = _: true;
|
||||
joypixels.acceptLicense = true;
|
||||
};
|
||||
# Some overlays
|
||||
nixpkgs.overlays = [
|
||||
(_: super: {
|
||||
darkman = super.callPackage ../pkgs/darkman.nix {hashes = config.state.hashes.darkman;};
|
||||
"2i-emulator" = super.callPackage ../pkgs/2i-emulator.nix {hashes = config.state.hashes."2i-emulator";};
|
||||
boilr = super.callPackage ../pkgs/boilr.nix {hashes = config.state.hashes.boilr;};
|
||||
# Add fonts
|
||||
hackNerdLigatures = super.callPackage ../pkgs/hack.nix {hashes = config.state.hashes.hack;};
|
||||
})
|
||||
];
|
||||
# This includes the firmware, oc
|
||||
hardware.enableRedistributableFirmware = true;
|
||||
# Add certificate authority used for my servers
|
||||
|
@ -172,26 +181,6 @@ in {
|
|||
dates = ["04:00"];
|
||||
};
|
||||
|
||||
# Printing!
|
||||
services.printing = lib.mkIf cfg.printing.enable {
|
||||
enable = true;
|
||||
drivers = [pkgs.samsung-unified-linux-driver];
|
||||
};
|
||||
hardware.printers = lib.mkIf cfg.printing.enable {
|
||||
ensureDefaultPrinter = mkDefault "Laser-Boi";
|
||||
ensurePrinters = lib.singleton {
|
||||
description = "The fastest Boi in town!";
|
||||
deviceUri = "usb://Samsung/ML-1640%20Series?serial=144QBAHS600499T.";
|
||||
location = "@Home";
|
||||
model = "samsung/ML-1640.ppd";
|
||||
name = "Laser-Boi";
|
||||
ppdOptions = {
|
||||
PageSize = "A4";
|
||||
Resolution = "600dpi";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# GNOME
|
||||
# Don't forget to import DISPLAY into dbus variables
|
||||
programs.dconf.enable = mkDefault cfg.minimalGnome.enable;
|
||||
|
|
|
@ -1,82 +0,0 @@
|
|||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
cfg = config.services.grafanaHome;
|
||||
|
||||
grafanaDashboards = pkgs.stdenv.mkDerivation {
|
||||
name = "grafana-dashboards";
|
||||
src = ../raw;
|
||||
installPhase = ''
|
||||
mkdir $out
|
||||
cp grafana-dashboard-fritzbox.json \
|
||||
grafana-dashboard-node.json \
|
||||
grafana-dashboard-home.json \
|
||||
$out/
|
||||
'';
|
||||
};
|
||||
in {
|
||||
options.services."grafanaHome" = with lib; {
|
||||
enable = mkEnableOption "Configured grafana + nginx + provisioning";
|
||||
nginx = {
|
||||
listenAddresses = mkOption {
|
||||
type = with types; listOf str;
|
||||
};
|
||||
sslCertificateKey = mkOption {
|
||||
type = types.str;
|
||||
};
|
||||
sslCertificate = mkOption {
|
||||
type = types.str;
|
||||
};
|
||||
};
|
||||
grafana.adminPasswordFile = mkOption {
|
||||
type = types.str;
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
# === Grafana ===
|
||||
services.grafana = {
|
||||
enable = true;
|
||||
settings = {
|
||||
dashboards.default_home_dashboard_path = "${grafanaDashboards}/grafana-dashboard-home.json";
|
||||
security.admin_password = "$__file{${cfg.grafana.adminPasswordFile}}";
|
||||
"auth.anonymous".enabled = true;
|
||||
server.domain = "stats.home";
|
||||
server.http_port = 9387;
|
||||
server.http_add = "[::1]";
|
||||
};
|
||||
provision = {
|
||||
enable = true;
|
||||
datasources.settings.datasources = [
|
||||
{
|
||||
name = "local-prometheus";
|
||||
type = "prometheus";
|
||||
editable = false;
|
||||
url = "http://localhost:${builtins.toString config.services.prometheus.port}";
|
||||
isDefault = true;
|
||||
}
|
||||
];
|
||||
dashboards.settings.providers = [
|
||||
{
|
||||
name = "Dashboards";
|
||||
options.path = grafanaDashboards;
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
# === Nginx ===
|
||||
services.nginx.virtualHosts.${config.services.grafana.settings.server.domain} = {
|
||||
inherit (cfg.nginx) listenAddresses sslCertificate sslCertificateKey;
|
||||
addSSL = true;
|
||||
sslTrustedCertificate = pkgs.writeText "ca.crt" (builtins.readFile ../secrets/ca.crt);
|
||||
locations."/" = {
|
||||
proxyPass = "http://[::1]:${toString config.services.grafana.settings.server.http_port}";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
76
modules/state.nix
Normal file
76
modules/state.nix
Normal file
|
@ -0,0 +1,76 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
state = builtins.import ../state.nix;
|
||||
ty = {
|
||||
ipv4 = lib.types.strMatching "[0-9]{1,3}(\\.[0-9]{1,3}){3}";
|
||||
};
|
||||
in {
|
||||
options.state = with lib; {
|
||||
vpn.ipv4 = mkOption {
|
||||
type = ty.ipv4;
|
||||
description = "VPN IPv4";
|
||||
readOnly = true;
|
||||
};
|
||||
vpn.ipv6 = mkOption {
|
||||
type = types.str;
|
||||
description = "VPN IPv6";
|
||||
readOnly = true;
|
||||
};
|
||||
vpn.machine = mkOption {
|
||||
type = with types;
|
||||
attrsOf (submodule {
|
||||
options = {
|
||||
ipv4 = mkOption {
|
||||
type = ty.ipv4;
|
||||
description = "VPN IPv4";
|
||||
};
|
||||
ipv6 = mkOption {
|
||||
type = str;
|
||||
description = "VPN IPv6";
|
||||
};
|
||||
};
|
||||
});
|
||||
description = "VPN IP definitions for all available machines";
|
||||
readOnly = true;
|
||||
};
|
||||
vpn.dns = mkOption {
|
||||
type = ty.ipv4;
|
||||
description = "VPN internal DNS server address";
|
||||
readOnly = true;
|
||||
};
|
||||
hashes = mkOption {
|
||||
type = with types; attrsOf (either (attrsOf str) str);
|
||||
description = "Hashes in use";
|
||||
readOnly = true;
|
||||
};
|
||||
};
|
||||
|
||||
config.state = let
|
||||
host = config.networking.hostName;
|
||||
in {
|
||||
vpn.ipv4 =
|
||||
if state ? vpn.${host}.v4
|
||||
then state.vpn.${host}.v4
|
||||
else builtins.throw "VPN IPv4 not defined for ${host}";
|
||||
vpn.ipv6 =
|
||||
if state ? vpn.${host}.v6
|
||||
then state.vpn.${host}.v6
|
||||
else builtins.throw "VPN IPv6 not defined for ${host}";
|
||||
vpn.machine =
|
||||
if state ? vpn
|
||||
then
|
||||
builtins.mapAttrs (machine: conf: {
|
||||
ipv4 = conf.v4;
|
||||
ipv6 = conf.v6;
|
||||
})
|
||||
state.vpn
|
||||
else builtins.throw "No VPN definitions";
|
||||
hashes =
|
||||
if state ? hashes
|
||||
then state.hashes
|
||||
else {};
|
||||
};
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
_self: super: {
|
||||
kakounePlugins = super.lib.recursiveUpdate super.kakounePlugins {
|
||||
fzf-kak = super.kakounePlugins.fzf-kak.overrideAttrs (_old: {
|
||||
version = "95b12b1fe93c6db0441c61062823231a28eed037";
|
||||
src = super.fetchFromGitHub {
|
||||
owner = "andreyorst";
|
||||
repo = "fzf.kak";
|
||||
rev = "95b12b1fe93c6db0441c61062823231a28eed037";
|
||||
sha256 = "bxpS5Xndn0patWDI2ENC/mgZyoAdMelhRryXzclFZ3E=";
|
||||
};
|
||||
});
|
||||
};
|
||||
}
|
|
@ -1,15 +0,0 @@
|
|||
_self: super: let
|
||||
font-flags = "-Dawt.useSystemAAFontSettings=lcd -Dswing.aatext=true";
|
||||
in {
|
||||
logisim = super.logisim.overrideAttrs (_old: {
|
||||
pname = "logisim-evolution";
|
||||
src = super.fetchurl {
|
||||
url = "https://mathcs.holycross.edu/~kwalsh/logisim-evolution-4.0.4hc.jar";
|
||||
sha256 = "0nmvzpdhgfrzx0x6799a1jnsbgipbszd312crf865nzvsi2p046i";
|
||||
};
|
||||
installPhase = ''
|
||||
mkdir -pv $out/bin
|
||||
makeWrapper ${super.jre}/bin/java $out/bin/logisim --add-flags "${font-flags} -jar $src"
|
||||
'';
|
||||
});
|
||||
}
|
|
@ -1,20 +0,0 @@
|
|||
_self: super: {
|
||||
prometheus-fritzbox-exporter = super.buildGoModule {
|
||||
pname = "fritzbox-exporter";
|
||||
version = "git-6b8ced0";
|
||||
|
||||
src = super.fetchFromGitHub {
|
||||
rev = "6b8ced028749036b31215168ebf1879727d32a19";
|
||||
owner = "sberk42";
|
||||
repo = "fritzbox_exporter";
|
||||
sha256 = "sha256-CUDk4mpjYtUW1HcM6Xbgo5p560P/roe+lppRHfw0FmY=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-jcHJNTdiYRQcjJr9VcABY5Ark4bmzqsJcn1iMW09Xl0=";
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p $out/share
|
||||
cp metrics*.json $out/share/
|
||||
'';
|
||||
};
|
||||
}
|
|
@ -1,32 +0,0 @@
|
|||
diff --git a/radicale_infcloud/web/config.js b/radicale_infcloud/web/config.js
|
||||
index 560c1d1..798b22b 100644
|
||||
--- a/radicale_infcloud/web/config.js
|
||||
+++ b/radicale_infcloud/web/config.js
|
||||
@@ -476,7 +476,7 @@ var globalEnableKbNavigation=true;
|
||||
// uk_UA (Українська [Ukrainian]; thanks Serge Yakimchuck)
|
||||
// zh_CN (中国 [Chinese]; thanks Fandy)
|
||||
// Example:
|
||||
-var globalInterfaceLanguage='en_US';
|
||||
+var globalInterfaceLanguage='de_DE';
|
||||
|
||||
|
||||
// globalInterfaceCustomLanguages
|
||||
@@ -665,7 +665,7 @@ var globalActiveTodoCollections=[];
|
||||
// - 'agendaDay'
|
||||
// NOTE: we use custom and enhanced version of fullcalendar!
|
||||
// Example:
|
||||
-var globalActiveView='multiWeek';
|
||||
+var globalActiveView='month';
|
||||
|
||||
|
||||
// globalOpenFormMode
|
||||
diff --git a/setup.py b/setup.py
|
||||
index 0e1bf2a..c3bae30 100755
|
||||
--- a/setup.py
|
||||
+++ b/setup.py
|
||||
@@ -23,4 +23,4 @@ setup(
|
||||
platforms="Any",
|
||||
packages=["radicale_infcloud"],
|
||||
package_data={"radicale_infcloud": web_data},
|
||||
- install_requires=["radicale>=3.1.6"])
|
||||
+ install_requires=[])
|
|
@ -2,20 +2,27 @@
|
|||
lib,
|
||||
fetchFromGitHub,
|
||||
rustPlatform,
|
||||
hashes,
|
||||
}: let
|
||||
lock = builtins.fromJSON (builtins.readFile ../flake.lock);
|
||||
src = fetchFromGitHub {
|
||||
owner = "klemens";
|
||||
repo = "2i-emulator";
|
||||
inherit (hashes) rev hash;
|
||||
};
|
||||
in
|
||||
rustPlatform.buildRustPackage {
|
||||
pname = lock.nodes."2i-emulator".original.repo;
|
||||
version = lock.nodes."2i-emulator".locked.rev;
|
||||
pname = "2i-emulator";
|
||||
version = hashes.rev;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
inherit (lock.nodes."2i-emulator".locked) owner repo rev;
|
||||
sha256 = lock.nodes."2i-emulator".locked.narHash;
|
||||
inherit src;
|
||||
|
||||
cargoLock = {
|
||||
lockFile = src + /Cargo.lock;
|
||||
outputHashes = {
|
||||
"rustyline-1.0.0" = hashes."rustyline-1.0.0";
|
||||
};
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-6mtCSjWHvz438yfnBuGaNxFxldyf3S7ZqsiKjh2CSyw=";
|
||||
|
||||
meta = with lib; {
|
||||
description = "Cli emulator for the micro computer 2i used in the computer science hardware course at Leipzig University";
|
||||
homepage = "https://github.com/klemens/2i-emulator";
|
||||
|
|
|
@ -11,11 +11,8 @@
|
|||
libxkbcommon,
|
||||
libGL,
|
||||
wayland,
|
||||
hashes,
|
||||
}: let
|
||||
version = "1.9.1";
|
||||
hash = "sha256-mdkRuEzfWhdbX0DD6uwc1o8kXjqk1Y0+FFKHrM2m81w=";
|
||||
cargoHash = "sha256-5nhtGqukZ8tp7gPV+JiUEHTzWUj6JtsB2i7bODcXJSc=";
|
||||
|
||||
rpathLibs = [
|
||||
speechd
|
||||
openssl
|
||||
|
@ -36,18 +33,18 @@
|
|||
in
|
||||
rustPlatform.buildRustPackage.override {stdenv = clangStdenv;} {
|
||||
pname = "BoilR";
|
||||
inherit version;
|
||||
inherit (hashes) version;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "PhilipK";
|
||||
repo = "BoilR";
|
||||
rev = "v.${version}";
|
||||
inherit hash;
|
||||
rev = "v.${hashes.version}";
|
||||
inherit (hashes) hash;
|
||||
};
|
||||
|
||||
warning = builtins.trace "Is boilr part of nixpkgs? https://github.com/NixOS/nixpkgs/pull/247991" "";
|
||||
|
||||
inherit cargoHash;
|
||||
inherit (hashes) cargoHash;
|
||||
|
||||
nativeBuildInputs = [perl];
|
||||
|
||||
|
|
|
@ -5,45 +5,41 @@
|
|||
scdoc,
|
||||
geoclue2,
|
||||
bash,
|
||||
}: let
|
||||
name = "darkman";
|
||||
rev = "b4c9bbcd41dfa22e85a01e6c70b57591b8b233fa";
|
||||
sha256 = "sha256-/r3mcwkdFyZQZV3jRJQladujBFvBmm8XhncbePTFlLA=";
|
||||
vendorSha256 = "sha256-CGgWEaHztWeCQPIrobwLHuDkFauJM19hBU7JsA3HMic=";
|
||||
in
|
||||
buildGoModule {
|
||||
pname = name;
|
||||
version = rev;
|
||||
hashes,
|
||||
}:
|
||||
buildGoModule {
|
||||
pname = "darkman";
|
||||
version = hashes.rev;
|
||||
|
||||
src = fetchFromGitLab {
|
||||
inherit sha256 rev;
|
||||
owner = "WhyNotHugo";
|
||||
repo = name;
|
||||
};
|
||||
src = fetchFromGitLab {
|
||||
owner = "WhyNotHugo";
|
||||
repo = "darkman";
|
||||
inherit (hashes) hash rev;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [scdoc];
|
||||
propagatedBuildInputs = [geoclue2 bash];
|
||||
nativeBuildInputs = [scdoc];
|
||||
propagatedBuildInputs = [geoclue2 bash];
|
||||
|
||||
inherit vendorSha256;
|
||||
inherit (hashes) vendorSha256;
|
||||
|
||||
patchPhase = ''
|
||||
sed -i "s|^ExecStart=/usr/bin/darkman run$|ExecStart=$out/bin/darkman run|" darkman.service
|
||||
sed -i "s|bash|${bash}/bin/bash|" scripts.go
|
||||
'';
|
||||
patchPhase = ''
|
||||
sed -i "s|^ExecStart=/usr/bin/darkman run$|ExecStart=$out/bin/darkman run|" darkman.service
|
||||
sed -i "s|bash|${bash}/bin/bash|" scripts.go
|
||||
'';
|
||||
|
||||
postBuild = ''
|
||||
make build
|
||||
'';
|
||||
postBuild = ''
|
||||
make build
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
make install PREFIX=/ DESTDIR=$out
|
||||
'';
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
make install PREFIX=/ DESTDIR=$out
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "🌇 Framework for dark-mode and light-mode transitions on Linux desktop";
|
||||
homepage = "https://gitlab.com/WhyNotHugo/darkman";
|
||||
license = lib.licenses.isc;
|
||||
maintainers = [];
|
||||
};
|
||||
}
|
||||
meta = {
|
||||
description = "🌇 Framework for dark-mode and light-mode transitions on Linux desktop";
|
||||
homepage = "https://gitlab.com/WhyNotHugo/darkman";
|
||||
license = lib.licenses.isc;
|
||||
maintainers = [];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,50 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
gtk3,
|
||||
breeze-icons,
|
||||
hicolor-icon-theme,
|
||||
hiDPI ? false,
|
||||
}: let
|
||||
name = "gruvbox-material-gtk";
|
||||
rev = "cc255d43322ad646bb35924accb0778d5e959626";
|
||||
sha256 = "1O34p9iZelqRFBloOSZkxV0Z/7Jffciptpj3fwXPHbc=";
|
||||
|
||||
variant =
|
||||
if hiDPI
|
||||
then "Gruvbox-Material-Dark-HIDPI"
|
||||
else "Gruvbox-Material-Dark";
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
pname = name;
|
||||
version = rev;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
inherit rev sha256;
|
||||
owner = "TheGreatMcPain";
|
||||
repo = name;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [gtk3];
|
||||
propagatedBuildInputs = [breeze-icons hicolor-icon-theme];
|
||||
|
||||
installPhase = ''
|
||||
rm -rf README.md LICENSE demo.png
|
||||
mkdir -p $out/share/themes/Gruvbox-Material-Dark
|
||||
cp -r themes/${variant}/* $out/share/themes/Gruvbox-Material-Dark
|
||||
mkdir -p $out/share/icons/Gruvbox-Material-Dark
|
||||
cp -r icons/Gruvbox-Material-Dark/* $out/share/icons/Gruvbox-Material-Dark
|
||||
gtk-update-icon-cache $out/share/icons/Gruvbox-Material-Dark
|
||||
'';
|
||||
|
||||
dontDropIconThemeCache = true;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Gruvbox Material for GTK";
|
||||
homepage = "https://github.com/TheGreatMcPain/gruvbox-material-gtk";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.unix;
|
||||
maintainers = [];
|
||||
};
|
||||
}
|
|
@ -2,16 +2,16 @@
|
|||
lib,
|
||||
fetchzip,
|
||||
stdenvNoCC,
|
||||
hashes,
|
||||
}: let
|
||||
pname = "Ligatured-Hack";
|
||||
version = "v3.003+Nerdv2.1+FC3.1+JBMv2.242";
|
||||
sha256 = "nCOH+48w7nEm7mXXPCsDuaRlId2hNyYdV01IbVNWuME=";
|
||||
in
|
||||
stdenvNoCC.mkDerivation {
|
||||
inherit pname version;
|
||||
inherit pname;
|
||||
inherit (hashes) version;
|
||||
|
||||
src = fetchzip {
|
||||
inherit sha256;
|
||||
inherit (hashes) hash;
|
||||
url = "https://github.com/gaplo917/Ligatured-Hack/releases/download/v3.003%2BNv2.1.0%2BFC%2BJBMv2.242/HackLigatured-v3.003+FC3.1+JBMv2.242.zip";
|
||||
stripRoot = false;
|
||||
};
|
||||
|
|
28
pkgs/rip.nix
28
pkgs/rip.nix
|
@ -1,28 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
rustPlatform,
|
||||
fetchFromGitHub,
|
||||
pkg-config,
|
||||
}: let
|
||||
lock = builtins.fromJSON (builtins.readFile ../flake.lock);
|
||||
in
|
||||
rustPlatform.buildRustPackage {
|
||||
pname = "rip";
|
||||
version = "";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
inherit (lock.nodes.rip.locked) owner repo rev;
|
||||
sha256 = lock.nodes.rip.locked.narHash;
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-gzdmDOpWSnX0CVihMf8ODi85P3EFHqdSBVKVQ9FZH7s=";
|
||||
|
||||
nativeBuildInputs = [pkg-config];
|
||||
|
||||
meta = with lib; {
|
||||
description = "A safe and ergonomic alternative to rm";
|
||||
homepage = "https://github.com/nivekuil/rip";
|
||||
license = with licenses; [gpl3];
|
||||
maintainers = [];
|
||||
};
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
# Node Exporter
|
||||
|
||||
Please checkout the original repository!
|
||||
|
||||
Source: [github:rfrail3/grafana-dashboards](https://github.com/rfrail3/grafana-dashboards/tree/master/prometheus)
|
||||
License: Apache
|
File diff suppressed because it is too large
Load diff
|
@ -1,94 +0,0 @@
|
|||
{
|
||||
"annotations": {
|
||||
"list": [
|
||||
{
|
||||
"builtIn": 1,
|
||||
"datasource": "-- Grafana --",
|
||||
"enable": true,
|
||||
"hide": true,
|
||||
"iconColor": "rgba(0, 211, 255, 1)",
|
||||
"name": "Annotations & Alerts",
|
||||
"target": {
|
||||
"limit": 100,
|
||||
"matchAny": false,
|
||||
"tags": [],
|
||||
"type": "dashboard"
|
||||
},
|
||||
"type": "dashboard"
|
||||
}
|
||||
]
|
||||
},
|
||||
"editable": false,
|
||||
"fiscalYearStartMonth": 0,
|
||||
"graphTooltip": 0,
|
||||
"id": 4,
|
||||
"links": [],
|
||||
"liveNow": false,
|
||||
"panels": [
|
||||
{
|
||||
"gridPos": {
|
||||
"h": 15,
|
||||
"w": 24,
|
||||
"x": 0,
|
||||
"y": 0
|
||||
},
|
||||
"id": 3,
|
||||
"links": [],
|
||||
"options": {
|
||||
"maxItems": 30,
|
||||
"query": "",
|
||||
"showHeadings": false,
|
||||
"showRecentlyViewed": false,
|
||||
"showSearch": true,
|
||||
"showStarred": false,
|
||||
"tags": []
|
||||
},
|
||||
"pluginVersion": "8.4.5",
|
||||
"tags": [],
|
||||
"title": "Dashboards",
|
||||
"type": "dashlist"
|
||||
}
|
||||
],
|
||||
"schemaVersion": 35,
|
||||
"style": "dark",
|
||||
"tags": [],
|
||||
"templating": {
|
||||
"list": []
|
||||
},
|
||||
"time": {
|
||||
"from": "now-6h",
|
||||
"to": "now"
|
||||
},
|
||||
"timepicker": {
|
||||
"hidden": true,
|
||||
"refresh_intervals": [
|
||||
"5s",
|
||||
"10s",
|
||||
"30s",
|
||||
"1m",
|
||||
"5m",
|
||||
"15m",
|
||||
"30m",
|
||||
"1h",
|
||||
"2h",
|
||||
"1d"
|
||||
],
|
||||
"time_options": [
|
||||
"5m",
|
||||
"15m",
|
||||
"1h",
|
||||
"6h",
|
||||
"12h",
|
||||
"24h",
|
||||
"2d",
|
||||
"7d",
|
||||
"30d"
|
||||
],
|
||||
"type": "timepicker"
|
||||
},
|
||||
"timezone": "browser",
|
||||
"title": "Home",
|
||||
"uid": "_QSuXaj7k",
|
||||
"version": 1,
|
||||
"weekStart": ""
|
||||
}
|
File diff suppressed because it is too large
Load diff
|
@ -1,7 +1,6 @@
|
|||
paperless-admin-password: ENC[AES256_GCM,data:6DFS/9+2K/zsiYr8kbkwrvknqtc1AOypsyoHwvg=,iv:ZdB5TN8x4917ZuIMcdazPO5GpuSq9Xi7Hu2iTFsLqvM=,tag:f8hDRMkR7C+ElA0h54l0Yw==,type:str]
|
||||
gogs-database-password: ENC[AES256_GCM,data:5C3jAwBSta2P2D0/AR1cjCbLakHi3PHtUBEu,iv:LjeEmoxL9NrujxO/4jzSquZQAoVMdXNx97nXBBIMypU=,tag:9kD3LdDrBYLRGmtNcs6+ZQ==,type:str]
|
||||
photoprism-admin-password: ENC[AES256_GCM,data:JPj1Mem6SfCAywUJD1ZJYZ/VFN29YPw3c6OGmaOB,iv:g2OWuyhK4UO0g25Ld/cGYcII/YeXe+2o7nMmojTgB1Y=,tag:QZ76VcVwMv9G82BacpfbUA==,type:str]
|
||||
grafana-admin-password: ENC[AES256_GCM,data:/pbvx2tWzXd6JeXPHtmMpVA1BTxcjsMJDq+Z7iRXBmCD+OfKvA==,iv:eZjBtG45XZjGIQ4SQjIkC8Ky+9wloMxeMuM4OKUxqa4=,tag:V466dlV1JZfjiNaF+rjaqA==,type:str]
|
||||
internal-restic-password: ENC[AES256_GCM,data:fL/kqEb4YGD3zV1IpTT30Sq3XQsQymixkiHxjx4DGWBACQ==,iv:m7cW95I2nQ7S9Iz9MICEbpe2UZZsE1DLtz2v1d3kkz4=,tag:s9226vT/KxPdnLsb5Z52Mw==,type:str]
|
||||
hydra-admin-password: ENC[AES256_GCM,data:fzcFWbU6AjIVP7BaANE3RhPXYKm7HxMnNxj2Trk=,iv:VvOnYhVR3EvNatNazZZvSL7XJ8DpMn+tvGi1+SVdxkA=,tag:Nn1DPlBI2RXCwz+7CHMe9w==,type:str]
|
||||
nix-store-signing-key: ENC[AES256_GCM,data:T7tgY+2q/Dy/tbFlnlm9IckeJX4p/JMcXRXd83zC+wRGTG79isPOGAH0CAxYL0tWtPowef6NbefOjUBo1t2aLNakRaSQcwxIFj5joPy2nEzaTSijPWu1I7+qn/tmMmc8ZuLN,iv:Q0/7H37u4dDVanHXS/8X3tdTlZETDdH6dBGp2+l19rM=,tag:P7bwJpEIOuNF1JBfKRdoLg==,type:str]
|
||||
|
@ -36,8 +35,8 @@ sops:
|
|||
cUZZQ1N4dGxpR2VLR1ZjTlFmTmwvTGsKzvsg2Uh2LzE5vXrdxW+H3ACP9kbFO1Rb
|
||||
XUyEF6E40UGTR40J8CqV7IvnHVvaLVIekW51MyKVGNyBG1phOne10w==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
lastmodified: "2023-10-04T14:28:07Z"
|
||||
mac: ENC[AES256_GCM,data:5ClPyK4mJ+YwcYVKyHKZnH0gCl4GYfZHATFNTRDnHZE8rY9xkDr31t1Q3brCyQcpPBzj/mL3sNWqaVZJ36rAdBgj9hCk5cOikA3J3BLDk2zyu1ugRotliYBWOYSZastu2czfBoGn+MxENqr4qT2jmBH3K1cd1mUwkKVl/C5OGkk=,iv:+j88Yba0m0KKc0DmI+8NMilIOxCYii9CysZ+2GoOc/o=,tag:OMVrXpps7x4M70HDRKkyyA==,type:str]
|
||||
lastmodified: "2023-10-29T23:01:43Z"
|
||||
mac: ENC[AES256_GCM,data:y1cDCPA1yvBYoMoj+nl4szMmZ9+XsLV9b4GnTQuWf4gYmwECilEPA2PpS0aZ1Q92/DtZOyHkiR9YjAHDUcRtXUYCOVGElKc6SQKbIMmEgDWLBY3kpPsek3T139b8AHTL0BMfZZyoFzw/d7vZ7+i+efZtTHLK3cE+zVvdEBg+j9Y=,iv:Zfx8lX9ozduGk2hlpqfMnObfGK4RReboyE33zmJAOpg=,tag:Mzd4mdXiZg4HI/euZDhSsQ==,type:str]
|
||||
pgp:
|
||||
- created_at: "2022-06-04T20:24:49Z"
|
||||
enc: |
|
||||
|
|
75
state.nix
Normal file
75
state.nix
Normal file
|
@ -0,0 +1,75 @@
|
|||
{
|
||||
vpn = {
|
||||
cerithium-telescopium = {
|
||||
v4 = "100.102.99.37";
|
||||
v6 = "fd7a:115c:a1e0:ab12:4843:cd96:6266:6325";
|
||||
};
|
||||
faunus-ater = {
|
||||
v4 = "100.108.135.4";
|
||||
v6 = "fd7a:115c:a1e0:ab12:4843:cd96:626c:8704";
|
||||
};
|
||||
granodomus-lima = {
|
||||
v4 = "100.66.69.111";
|
||||
v6 = "fd7a:115c:a1e0:ab12:4843:cd96:6242:456f";
|
||||
};
|
||||
helix-texta = {
|
||||
v4 = "100.77.45.59";
|
||||
v6 = "fd7a:115c:a1e0:ab12:4843:cd96:624d:2d3b";
|
||||
};
|
||||
murex-pecten = {
|
||||
v4 = "100.120.38.101";
|
||||
v6 = "fd7a:115c:a1e0:ab12:4843:cd96:6278:2665";
|
||||
};
|
||||
polymita-picta = {
|
||||
v4 = "100.87.246.86";
|
||||
v6 = "fd7a:115c:a1e0:ab12:4843:cd96:6257:f656";
|
||||
};
|
||||
radix-balthica = {
|
||||
v4 = "100.109.212.72";
|
||||
v6 = "fd7a:115c:a1e0:ab12:4843:cd96:626d:d448";
|
||||
};
|
||||
trochulus-hispidus = {
|
||||
v4 = "100.124.110.43";
|
||||
v6 = "fd7a:115c:a1e0:ab12:4843:cd96:627c:6e2b";
|
||||
};
|
||||
};
|
||||
hashes = {
|
||||
timewarrior."v1.4.3" = "+HsUiU287bWZ5Ytl+N5i+STuG9YlqlaKWxd69y0PRds=";
|
||||
"2i-emulator" = {
|
||||
rev = "dbd022b";
|
||||
hash = "sha256-zQdnDZwFd7KkSoLyu3Ty/YDn7qosTIf2n02PHitGf2g=";
|
||||
"rustyline-1.0.0" = "sha256-FFuhLmBwt5e/zOJfkz4NCuI8lG/sBhGOcxst8d+oOVk=";
|
||||
};
|
||||
darkman = {
|
||||
rev = "b4c9bbc";
|
||||
hash = "sha256-/r3mcwkdFyZQZV3jRJQladujBFvBmm8XhncbePTFlLA=";
|
||||
vendorSha256 = "sha256-CGgWEaHztWeCQPIrobwLHuDkFauJM19hBU7JsA3HMic=";
|
||||
};
|
||||
boilr = {
|
||||
version = "1.9.1";
|
||||
hash = "sha256-mdkRuEzfWhdbX0DD6uwc1o8kXjqk1Y0+FFKHrM2m81w=";
|
||||
cargoHash = "sha256-5nhtGqukZ8tp7gPV+JiUEHTzWUj6JtsB2i7bODcXJSc=";
|
||||
};
|
||||
hack = {
|
||||
version = "v3.003+Nerdv2.1+FC3.1+JBMv2.242";
|
||||
hash = "sha256-nCOH+48w7nEm7mXXPCsDuaRlId2hNyYdV01IbVNWuME=";
|
||||
};
|
||||
pexel-bg.hash = "sha256-Su2UwFpZKj5sa80UrcDSX9O2GuVI6XR2gSLpp4gJZP0=";
|
||||
microGPodder = {
|
||||
rev = "6f68333";
|
||||
hash = "sha256-yex9h6nllxdWRhCbeXNz5PyijNJ6lbc1orfU1vBcS4g=";
|
||||
};
|
||||
REpo-AiO = {
|
||||
rev = "c88a6de";
|
||||
hash = "sha256-3FeMPAMXvVwbQXmjz6HYo5QAbrI4x3mkVNTLIco56K4=";
|
||||
};
|
||||
rtlGroupPlugin = {
|
||||
hash = "sha256-tknTHae9dRQ1oO8rtgqSzxC7DzbVHa2VhbddWBqNVOI=";
|
||||
version = "1.1.6";
|
||||
};
|
||||
netflixPlugin = {
|
||||
version = "1.22.3";
|
||||
hash = "sha256-8NGj8n1p8euqYYdPDSeFh2ZE9lly5ThSmg69yXY3Te8=";
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,552 +0,0 @@
|
|||
*PPD-Adobe: "4.3"
|
||||
*%================================================
|
||||
*%
|
||||
*% Copyright Brother Industries,Ltd 2006-2015
|
||||
*% "Brother HLL5100DN for CUPS"
|
||||
*%
|
||||
*%================================================
|
||||
*%
|
||||
*%BrCustomPaperSize: TRUE
|
||||
*%BrPrinterType: DT3
|
||||
*%
|
||||
|
||||
*%==== General Information Keywords ========================
|
||||
*FormatVersion: "4.3"
|
||||
*FileVersion: "1.00"
|
||||
*LanguageEncoding: ISOLatin1
|
||||
*LanguageVersion: English
|
||||
*Manufacturer: "Brother"
|
||||
*PCFileName: "HLL5100.PPD"
|
||||
*Product: "(Brother HLL5100DN series)"
|
||||
*cupsVersion: 1.1
|
||||
*cupsManualCopies: True
|
||||
*cupsModelNumber: 72
|
||||
*cupsFilter: "application/vnd.cups-postscript 0 brother_lpdwrapper_HLL5100DN"
|
||||
*cupsFilter: "application/vnd.cups-pdf 0 brother_lpdwrapper_HLL5100DN"
|
||||
*PSVersion: "(3010.106) 3"
|
||||
*ModelName: "HLL5100DN"
|
||||
*NickName: "Brother HLL5100DN for CUPS "
|
||||
*ShortNickName: "Brother HLL5100DN"
|
||||
|
||||
*%==== Basic Device Capabilities =============
|
||||
*LanguageLevel: "3"
|
||||
*TTRasterizer: Type42
|
||||
*ColorDevice: False
|
||||
*DefaultColorSpace: Gray
|
||||
*FileSystem: True
|
||||
*?FileSystem:"
|
||||
save
|
||||
/devname (%disk0%) def
|
||||
/ret false def
|
||||
0 1 7{
|
||||
devname exch 48 add 5 exch put
|
||||
devname devstatus {
|
||||
0 ne {/ret true def}if
|
||||
pop pop pop pop pop pop pop
|
||||
}if
|
||||
}for
|
||||
ret {(True)}{(False)} ifelse = flush
|
||||
restore
|
||||
"
|
||||
*End
|
||||
|
||||
*Throughput: "18"
|
||||
*FreeVM: "1700000"
|
||||
|
||||
*HWMargins: 12 12 12 12
|
||||
*VariablePaperSize: True
|
||||
*MaxMediaWidth: 612
|
||||
*MaxMediaHeight: 1008
|
||||
*NonUIOrderDependency: 105 AnySetup *CustomPageSize
|
||||
*LandscapeOrientation: Plus90
|
||||
*CustomPageSize True: " "
|
||||
*ParamCustomPageSize Width/Width 3.0-8.5in(76.2-215.9mm): 1 points 216 612
|
||||
*ParamCustomPageSize Height/Height 5.0-14.0in(127.0-355.6mm): 2 points 360 1008
|
||||
*ParamCustomPageSize Orientation: 3 int 0 0
|
||||
*ParamCustomPageSize WidthOffset: 4 points 0 0
|
||||
*ParamCustomPageSize HeightOffset: 5 points 0 0
|
||||
|
||||
|
||||
|
||||
*%==== Installable Options ===================
|
||||
|
||||
*% *OpenGroup: InstallableOptions/Options Installed
|
||||
*% *OpenUI *OptionTrays/Number of Input Trays: PickOne
|
||||
*% *DefaultOptionTrays: 1Trays
|
||||
*% *OptionTrays 1Trays/ 1: " "
|
||||
*% *OptionTrays 2Trays/ 2: " "
|
||||
*% *OptionTrays 3Trays/ 3: " "
|
||||
*% *CloseUI: *OptionTrays
|
||||
*% *CloseGroup: InstallableOptions
|
||||
|
||||
*% *UIConstraints: *OptionTrays 1Trays *InputSlot TRAY2
|
||||
*% *UIConstraints: *OptionTrays 1Trays *InputSlot TRAY3
|
||||
*% *UIConstraints: *OptionTrays 2Trays *InputSlot TRAY3
|
||||
|
||||
*UIConstraints: *InputSlot AUTO *PageSize Custom
|
||||
*UIConstraints: *InputSlot TRAY1 *PageSize Custom
|
||||
*UIConstraints: *InputSlot TRAY2 *PageSize Custom
|
||||
*UIConstraints: *InputSlot TRAY3 *PageSize Custom
|
||||
*UIConstraints: *InputSlot AUTO *PageSize CUSTOM1
|
||||
*UIConstraints: *InputSlot TRAY1 *PageSize CUSTOM1
|
||||
*UIConstraints: *InputSlot TRAY2 *PageSize CUSTOM1
|
||||
*UIConstraints: *InputSlot TRAY3 *PageSize CUSTOM1
|
||||
*UIConstraints: *InputSlot AUTO *PageSize CUSTOM2
|
||||
*UIConstraints: *InputSlot TRAY1 *PageSize CUSTOM2
|
||||
*UIConstraints: *InputSlot TRAY2 *PageSize CUSTOM2
|
||||
*UIConstraints: *InputSlot TRAY3 *PageSize CUSTOM2
|
||||
*UIConstraints: *InputSlot AUTO *PageSize CUSTOM3
|
||||
*UIConstraints: *InputSlot TRAY1 *PageSize CUSTOM3
|
||||
*UIConstraints: *InputSlot TRAY2 *PageSize CUSTOM3
|
||||
*UIConstraints: *InputSlot TRAY3 *PageSize CUSTOM3
|
||||
|
||||
*UIConstraints: *Duplex DuplexTumble *PageSize Custom
|
||||
*UIConstraints: *Duplex DuplexNoTumble *PageSize Custom
|
||||
*UIConstraints: *Duplex DuplexTumble *PageSize CUSTOM1
|
||||
*UIConstraints: *Duplex DuplexNoTumble *PageSize CUSTOM1
|
||||
*UIConstraints: *Duplex DuplexTumble *PageSize CUSTOM2
|
||||
*UIConstraints: *Duplex DuplexNoTumble *PageSize CUSTOM2
|
||||
*UIConstraints: *Duplex DuplexTumble *PageSize CUSTOM3
|
||||
*UIConstraints: *Duplex DuplexNoTumble *PageSize CUSTOM3
|
||||
|
||||
*UIConstraints: *Duplex DuplexNoTumble *PageSize Executive
|
||||
*UIConstraints: *Duplex DuplexNoTumble *PageSize A5
|
||||
*UIConstraints: *Duplex DuplexNoTumble *PageSize A6
|
||||
*UIConstraints: *Duplex DuplexNoTumble *PageSize Env10
|
||||
*UIConstraints: *Duplex DuplexNoTumble *PageSize EnvMonarch
|
||||
*UIConstraints: *Duplex DuplexNoTumble *PageSize EnvDL
|
||||
*UIConstraints: *Duplex DuplexNoTumble *PageSize EnvC5
|
||||
*UIConstraints: *Duplex DuplexNoTumble *PageSize ISOB5
|
||||
*UIConstraints: *Duplex DuplexNoTumble *PageSize B5
|
||||
*UIConstraints: *Duplex DuplexNoTumble *PageSize ISOB6
|
||||
*UIConstraints: *Duplex DuplexNoTumble *PageSize B6
|
||||
*UIConstraints: *Duplex DuplexNoTumble *PageSize 4x6
|
||||
*UIConstraints: *Duplex DuplexNoTumble *PageSize Postcard
|
||||
*UIConstraints: *Duplex DuplexNoTumble *PageSize DoublePostcardRotated
|
||||
*UIConstraints: *Duplex DuplexNoTumble *PageSize EnvYou4
|
||||
*UIConstraints: *Duplex DuplexNoTumble *PageSize 195x270mm
|
||||
*UIConstraints: *Duplex DuplexNoTumble *PageSize 184x260mm
|
||||
*UIConstraints: *Duplex DuplexNoTumble *PageSize 197x273mm
|
||||
|
||||
*UIConstraints: *Duplex DuplexTumble *PageSize Executive
|
||||
*UIConstraints: *Duplex DuplexTumble *PageSize A5
|
||||
*UIConstraints: *Duplex DuplexTumble *PageSize A6
|
||||
*UIConstraints: *Duplex DuplexTumble *PageSize Env10
|
||||
*UIConstraints: *Duplex DuplexTumble *PageSize EnvMonarch
|
||||
*UIConstraints: *Duplex DuplexTumble *PageSize EnvDL
|
||||
*UIConstraints: *Duplex DuplexTumble *PageSize EnvC5
|
||||
*UIConstraints: *Duplex DuplexTumble *PageSize ISOB5
|
||||
*UIConstraints: *Duplex DuplexTumble *PageSize B5
|
||||
*UIConstraints: *Duplex DuplexTumble *PageSize ISOB6
|
||||
*UIConstraints: *Duplex DuplexTumble *PageSize B6
|
||||
*UIConstraints: *Duplex DuplexTumble *PageSize 4x6
|
||||
*UIConstraints: *Duplex DuplexTumble *PageSize Postcard
|
||||
*UIConstraints: *Duplex DuplexTumble *PageSize DoublePostcardRotated
|
||||
*UIConstraints: *Duplex DuplexTumble *PageSize EnvYou4
|
||||
*UIConstraints: *Duplex DuplexTumble *PageSize 195x270mm
|
||||
*UIConstraints: *Duplex DuplexTumble *PageSize 184x260mm
|
||||
*UIConstraints: *Duplex DuplexTumble *PageSize 197x273mm
|
||||
|
||||
*UIConstraints: *InputSlot TRAY1 *BrMediaType THICKERPAPER2
|
||||
*UIConstraints: *InputSlot TRAY1 *BrMediaType BOND
|
||||
*UIConstraints: *InputSlot TRAY1 *BrMediaType ENV
|
||||
*UIConstraints: *InputSlot TRAY1 *BrMediaType ENVTHICK
|
||||
*UIConstraints: *InputSlot TRAY1 *BrMediaType ENVTHIN
|
||||
*% UIConstraints: *InputSlot TRAY1 *PageSize Letter
|
||||
*% UIConstraints: *InputSlot TRAY1 *PageSize Legal
|
||||
*% UIConstraints: *InputSlot TRAY1 *PageSize Executive
|
||||
*% UIConstraints: *InputSlot TRAY1 *PageSize FanFoldGermanLegal
|
||||
*% UIConstraints: *InputSlot TRAY1 *PageSize A4
|
||||
*% UIConstraints: *InputSlot TRAY1 *PageSize A5
|
||||
*%UIConstraints: *InputSlot TRAY1 *PageSize A6
|
||||
*UIConstraints: *InputSlot TRAY1 *PageSize Env10
|
||||
*UIConstraints: *InputSlot TRAY1 *PageSize EnvMonarch
|
||||
*UIConstraints: *InputSlot TRAY1 *PageSize EnvDL
|
||||
*UIConstraints: *InputSlot TRAY1 *PageSize EnvC5
|
||||
*UIConstraints: *InputSlot TRAY1 *PageSize ISOB5
|
||||
*%UIConstraints: *InputSlot TRAY1 *PageSize B5
|
||||
*UIConstraints: *InputSlot TRAY1 *PageSize ISOB6
|
||||
*UIConstraints: *InputSlot TRAY1 *PageSize B6
|
||||
*UIConstraints: *InputSlot TRAY1 *PageSize 4x6
|
||||
*%UIConstraints: *InputSlot TRAY1 *PageSize Postcard
|
||||
*UIConstraints: *InputSlot TRAY1 *PageSize DoublePostcardRotated
|
||||
*UIConstraints: *InputSlot TRAY1 *PageSize EnvYou4
|
||||
*%UIConstraints: *InputSlot TRAY1 *PageSize 195x270mm
|
||||
*%UIConstraints: *InputSlot TRAY1 *PageSize 184x260mm
|
||||
*%UIConstraints: *InputSlot TRAY1 *PageSize 197x273mm
|
||||
|
||||
*UIConstraints: *InputSlot TRAY2 *BrMediaType THICKERPAPER2
|
||||
*UIConstraints: *InputSlot TRAY2 *BrMediaType BOND
|
||||
*UIConstraints: *InputSlot TRAY2 *BrMediaType ENV
|
||||
*UIConstraints: *InputSlot TRAY2 *BrMediaType ENVTHICK
|
||||
*UIConstraints: *InputSlot TRAY2 *BrMediaType ENVTHIN
|
||||
*% UIConstraints: *InputSlot TRAY2 *PageSize Letter
|
||||
*% UIConstraints: *InputSlot TRAY2 *PageSize Legal
|
||||
*% UIConstraints: *InputSlot TRAY2 *PageSize Executive
|
||||
*% UIConstraints: *InputSlot TRAY2 *PageSize FanFoldGermanLegal
|
||||
*% UIConstraints: *InputSlot TRAY2 *PageSize A4
|
||||
*% UIConstraints: *InputSlot TRAY2 *PageSize A5
|
||||
*UIConstraints: *InputSlot TRAY2 *PageSize A6
|
||||
*UIConstraints: *InputSlot TRAY2 *PageSize Env10
|
||||
*UIConstraints: *InputSlot TRAY2 *PageSize EnvMonarch
|
||||
*UIConstraints: *InputSlot TRAY2 *PageSize EnvDL
|
||||
*UIConstraints: *InputSlot TRAY2 *PageSize EnvC5
|
||||
*UIConstraints: *InputSlot TRAY2 *PageSize ISOB5
|
||||
*UIConstraints: *InputSlot TRAY2 *PageSize B5
|
||||
*UIConstraints: *InputSlot TRAY2 *PageSize ISOB6
|
||||
*UIConstraints: *InputSlot TRAY2 *PageSize B6
|
||||
*UIConstraints: *InputSlot TRAY2 *PageSize 4x6
|
||||
*UIConstraints: *InputSlot TRAY2 *PageSize Postcard
|
||||
*UIConstraints: *InputSlot TRAY2 *PageSize DoublePostcardRotated
|
||||
*UIConstraints: *InputSlot TRAY2 *PageSize EnvYou4
|
||||
*UIConstraints: *InputSlot TRAY2 *PageSize 195x270mm
|
||||
*UIConstraints: *InputSlot TRAY2 *PageSize 184x260mm
|
||||
*UIConstraints: *InputSlot TRAY2 *PageSize 197x273mm
|
||||
|
||||
*UIConstraints: *InputSlot TRAY3 *BrMediaType THICKERPAPER2
|
||||
*UIConstraints: *InputSlot TRAY3 *BrMediaType BOND
|
||||
*UIConstraints: *InputSlot TRAY3 *BrMediaType ENV
|
||||
*UIConstraints: *InputSlot TRAY3 *BrMediaType ENVTHICK
|
||||
*UIConstraints: *InputSlot TRAY3 *BrMediaType ENVTHIN
|
||||
*% UIConstraints: *InputSlot TRAY3 *PageSize Letter
|
||||
*% UIConstraints: *InputSlot TRAY3 *PageSize Legal
|
||||
*% UIConstraints: *InputSlot TRAY3 *PageSize Executive
|
||||
*% UIConstraints: *InputSlot TRAY3 *PageSize FanFoldGermanLegal
|
||||
*% UIConstraints: *InputSlot TRAY3 *PageSize A4
|
||||
*% UIConstraints: *InputSlot TRAY3 *PageSize A5
|
||||
*UIConstraints: *InputSlot TRAY3 *PageSize A6
|
||||
*UIConstraints: *InputSlot TRAY3 *PageSize Env10
|
||||
*UIConstraints: *InputSlot TRAY3 *PageSize EnvMonarch
|
||||
*UIConstraints: *InputSlot TRAY3 *PageSize EnvDL
|
||||
*UIConstraints: *InputSlot TRAY3 *PageSize EnvC5
|
||||
*UIConstraints: *InputSlot TRAY3 *PageSize ISOB5
|
||||
*UIConstraints: *InputSlot TRAY3 *PageSize B5
|
||||
*UIConstraints: *InputSlot TRAY3 *PageSize ISOB6
|
||||
*UIConstraints: *InputSlot TRAY3 *PageSize B6
|
||||
*UIConstraints: *InputSlot TRAY3 *PageSize 4x6
|
||||
*UIConstraints: *InputSlot TRAY3 *PageSize Postcard
|
||||
*UIConstraints: *InputSlot TRAY3 *PageSize DoublePostcardRotated
|
||||
*UIConstraints: *InputSlot TRAY3 *PageSize EnvYou4
|
||||
*UIConstraints: *InputSlot TRAY3 *PageSize 195x270mm
|
||||
*UIConstraints: *InputSlot TRAY3 *PageSize 184x260mm
|
||||
*UIConstraints: *InputSlot TRAY3 *PageSize 197x273mm
|
||||
|
||||
|
||||
*UIConstraints: *Duplex DuplexNoTumble *BrMediaType THICK
|
||||
*UIConstraints: *Duplex DuplexNoTumble *BrMediaType THICKERPAPER2
|
||||
*UIConstraints: *Duplex DuplexNoTumble *BrMediaType BOND
|
||||
*UIConstraints: *Duplex DuplexNoTumble *BrMediaType ENV
|
||||
*UIConstraints: *Duplex DuplexNoTumble *BrMediaType ENVTHICK
|
||||
*UIConstraints: *Duplex DuplexNoTumble *BrMediaType ENVTHIN
|
||||
|
||||
*UIConstraints: *Duplex DuplexTumble *BrMediaType THICK
|
||||
*UIConstraints: *Duplex DuplexTumble *BrMediaType THICKERPAPER2
|
||||
*UIConstraints: *Duplex DuplexTumble *BrMediaType BOND
|
||||
*UIConstraints: *Duplex DuplexTumble *BrMediaType ENV
|
||||
*UIConstraints: *Duplex DuplexTumble *BrMediaType ENVTHICK
|
||||
*UIConstraints: *Duplex DuplexTumble *BrMediaType ENVTHIN
|
||||
|
||||
|
||||
*%==== Media Selection ======================
|
||||
|
||||
*OpenUI *PageSize: PickOne
|
||||
*OrderDependency: 30 AnySetup *PageSize
|
||||
*DefaultPageSize: A4
|
||||
*PageSize Letter/Letter: " "
|
||||
*PageSize Legal/Legal: " "
|
||||
*PageSize Executive/Executive: " "
|
||||
*PageSize FanFoldGermanLegal/Folio: " "
|
||||
*PageSize A4/A4: " "
|
||||
*PageSize A5/A5: " "
|
||||
*PageSize A6/A6: " "
|
||||
*%PageSize 210x270mm/270mm Paper: " "
|
||||
*PageSize Env10/Com-10: " "
|
||||
*PageSize EnvMonarch/Monarch: " "
|
||||
*PageSize EnvDL/DL: " "
|
||||
*PageSize EnvC5/C5: " "
|
||||
*PageSize ISOB5/B5(ISO): " "
|
||||
*PageSize B5/B5(JIS): " "
|
||||
*PageSize ISOB6/B6(ISO): " "
|
||||
*PageSize B6/B6(JIS): " "
|
||||
*PageSize 4x6/4x6: " "
|
||||
*PageSize Postcard/Postcard: " "
|
||||
*PageSize DoublePostcardRotated/Postcard(Double): " "
|
||||
*PageSize EnvYou4/Y4 Envelop: " "
|
||||
*PageSize 195x270mm/16K(195x270mm): " "
|
||||
*PageSize 184x260mm/16K(184x260mm): " "
|
||||
*PageSize 197x273mm/16K(197x273mm): " "
|
||||
*PageSize CUSTOM1/[CUSTOM1]User Defined Paper Size: " "
|
||||
*PageSize CUSTOM2/[CUSTOM2]User Defined Paper Size: " "
|
||||
*PageSize CUSTOM3/[CUSTOM3]User Defined Paper Size: " "
|
||||
*CloseUI: *PageSize
|
||||
|
||||
*OpenUI *PageRegion: PickOne
|
||||
*OrderDependency: 40 AnySetup *PageRegion
|
||||
*DefaultPageRegion: A4
|
||||
*PageRegion Letter/Letter: " "
|
||||
*PageRegion Legal/Legal: " "
|
||||
*PageRegion Executive/Executive: " "
|
||||
*PageRegion FanFoldGermanLegal/Folio: " "
|
||||
*PageRegion A4/A4: " "
|
||||
*PageRegion A5/A5: " "
|
||||
*PageRegion A6/A6: " "
|
||||
*%PageRegion 210x270mm/270mm Paper: " "
|
||||
*PageRegion Env10/Com-10: " "
|
||||
*PageRegion EnvMonarch/Monarch: " "
|
||||
*PageRegion EnvDL/DL: " "
|
||||
*PageRegion EnvC5/C5: " "
|
||||
*PageRegion ISOB5/B5(ISO): " "
|
||||
*PageRegion B5/B5(JIS): " "
|
||||
*PageRegion ISOB6/B6(ISO): " "
|
||||
*PageRegion B6/B6(JIS): " "
|
||||
*PageRegion 4x6/4x6: " "
|
||||
*PageRegion Postcard/Postcard: " "
|
||||
*PageRegion DoublePostcardRotated/Postcard(Double): " "
|
||||
*PageRegion EnvYou4/Y4 Envelop: " "
|
||||
*PageRegion 195x270mm/16K(195x270mm): " "
|
||||
*PageRegion 184x260mm/16K(184x260mm): " "
|
||||
*PageRegion 197x273mm/16K(197x273mm): " "
|
||||
*PageRegion CUSTOM1/[CUSTOM1]User Defined Paper Size: " "
|
||||
*PageRegion CUSTOM2/[CUSTOM2]User Defined Paper Size: " "
|
||||
*PageRegion CUSTOM3/[CUSTOM3]User Defined Paper Size: " "
|
||||
*CloseUI: *PageRegion
|
||||
|
||||
*DefaultImageableArea: A4
|
||||
*ImageableArea Letter/Letter: "12 12 600 780"
|
||||
*ImageableArea Legal/Legal: "12 12 600 996"
|
||||
*ImageableArea Executive/Executive: "12 12 510 744"
|
||||
*ImageableArea FanFoldGermanLegal/Folio: "12 12 600 924"
|
||||
*ImageableArea A4/A4: "12 12 583 830"
|
||||
*ImageableArea A5/A5: "12 12 409 583"
|
||||
*ImageableArea A6/A6: "12 12 285 408"
|
||||
*%ImageableArea 210x270mm/270mm Paper: "12 12 583 753"
|
||||
*ImageableArea Env10/Com-10: "12 12 285 672"
|
||||
*ImageableArea EnvMonarch/Monarch: "12 12 267 528"
|
||||
*ImageableArea EnvDL/DL: "12 12 300 612"
|
||||
*ImageableArea EnvC5/C5: "12 12 447 637"
|
||||
*ImageableArea ISOB5/B5(ISO): "12 12 487 697"
|
||||
*ImageableArea B5/B5(JIS): "12 12 504 717"
|
||||
*ImageableArea ISOB6/B6(ISO): "12 12 342 487"
|
||||
*ImageableArea B6/B6(JIS): "12 12 351 504"
|
||||
*ImageableArea 4x6/4x6: "12 12 277 419"
|
||||
*ImageableArea Postcard/Postcard: "12 12 271 408"
|
||||
*ImageableArea DoublePostcardRotated/Postcard(Double): "12 12 555 408"
|
||||
*ImageableArea EnvYou4/Y4 Envelop: "12 12 286 654"
|
||||
*ImageableArea 195x270mm/16K(195x270mm): "12 12 541 753"
|
||||
*ImageableArea 184x260mm/16K(184x260mm): "12 12 510 725"
|
||||
*ImageableArea 197x273mm/16K(197x273mm): "12 12 546 762"
|
||||
*ImageableArea CUSTOM1/[CUSTOM1]User Defined Paper Size: "12 12 583 830"
|
||||
*ImageableArea CUSTOM2/[CUSTOM2]User Defined Paper Size: "12 12 583 830"
|
||||
*ImageableArea CUSTOM3/[CUSTOM3]User Defined Paper Size: "12 12 583 830"
|
||||
|
||||
*%==== Information About Media Sizes ========
|
||||
|
||||
*DefaultPaperDimension: A4
|
||||
*PaperDimension Letter/Letter: "612 792"
|
||||
*PaperDimension Legal/Legal: "612 1008"
|
||||
*PaperDimension Executive/Executive: "522 756"
|
||||
*PaperDimension FanFoldGermanLegal/Folio: "612 936"
|
||||
*PaperDimension A4/A4: "595 842"
|
||||
*PaperDimension A5/A5: "420 595"
|
||||
*PaperDimension A6/A6: "297 420"
|
||||
*%PaperDimension 210x270mm/270mm Paper: "595 765"
|
||||
*PaperDimension Env10/Com-10: "297 684"
|
||||
*PaperDimension EnvMonarch/Monarch: "279 540"
|
||||
*PaperDimension EnvDL/DL: "312 624"
|
||||
*PaperDimension EnvC5/C5: "459 649"
|
||||
*PaperDimension ISOB5/B5(ISO): "499 709"
|
||||
*PaperDimension B5/B5(JIS): "516 729"
|
||||
*PaperDimension ISOB6/B6(ISO): "354 498"
|
||||
*PaperDimension B6/B6(JIS): "363 516"
|
||||
*PaperDimension 4x6/4x6: "289 431"
|
||||
*PaperDimension Postcard/Postcard: "283 420"
|
||||
*PaperDimension DoublePostcardRotated/Postcard(Double): "567 420"
|
||||
*PaperDimension EnvYou4/Y4 Envelop: "298 666"
|
||||
*PaperDimension 195x270mm/16K(195x270mm): "553 765"
|
||||
*PaperDimension 184x260mm/16K(184x260mm): "522 737"
|
||||
*PaperDimension 197x273mm/16K(197x273mm): "558 774"
|
||||
*PaperDimension CUSTOM1/[CUSTOM1]User Defined Paper Size: "595 842"
|
||||
*PaperDimension CUSTOM2/[CUSTOM2]User Defined Paper Size: "595 842"
|
||||
*PaperDimension CUSTOM3/[CUSTOM3]User Defined Paper Size: "595 842"
|
||||
|
||||
*%==== 5.13 Media Handling Features ============================
|
||||
*OpenUI *BrMediaType/MediaType: PickOne
|
||||
*OrderDependency: 28 AnySetup *BrMediaType
|
||||
*DefaultBrMediaType: PLAIN
|
||||
*BrMediaType PLAIN/Plain Paper: " "
|
||||
*BrMediaType THIN/Thin Paper: " "
|
||||
*BrMediaType THICK/Thick Paper: " "
|
||||
*BrMediaType THICKERPAPER2/Thicker Paper: " "
|
||||
*BrMediaType BOND/Bond Paper: " "
|
||||
*BrMediaType ENV/Envelopes: " "
|
||||
*BrMediaType ENVTHICK/Env. Thick: " "
|
||||
*BrMediaType ENVTHIN/Env. Thin: " "
|
||||
*BrMediaType RECYCLED/Recycled Paper: " "
|
||||
*CloseUI: *BrMediaType
|
||||
|
||||
*OpenUI *InputSlot/InputSlot: PickOne
|
||||
*OrderDependency: 29 AnySetup *InputSlot
|
||||
*DefaultInputSlot: AUTO
|
||||
*InputSlot MPTRAY/MP Tray: " "
|
||||
*InputSlot TRAY1/Tray1: " "
|
||||
*InputSlot TRAY2/Tray2: " "
|
||||
*InputSlot TRAY3/Tray3: " "
|
||||
*InputSlot AUTO/Auto Select: " "
|
||||
*CloseUI: *InputSlot
|
||||
|
||||
*RequiresPageRegion All:True
|
||||
|
||||
|
||||
*%=== Duplex ================================
|
||||
*OpenUI *Duplex: PickOne
|
||||
*OrderDependency: 25 AnySetup *Duplex
|
||||
*DefaultDuplex: None
|
||||
*Duplex DuplexTumble: " "
|
||||
*Duplex DuplexNoTumble: " "
|
||||
*Duplex None: " "
|
||||
*CloseUI: *Duplex
|
||||
|
||||
*%=== Output Bin =============================
|
||||
*% === Collate ==========
|
||||
*%==== 5.14 Finishing Features =================================
|
||||
*%%%%% Resolution and Appearance Control %%%%%
|
||||
*OpenUI *Resolution: PickOne
|
||||
*OrderDependency: 11 AnySetup *Resolution
|
||||
*DefaultResolution: 600dpi
|
||||
*Resolution 300dpi: " "
|
||||
*Resolution 600dpi: " "
|
||||
*%Resolution 2400x600dpi/HQ1200: " "
|
||||
*Resolution 1200dpi: " "
|
||||
*CloseUI: *Resolution
|
||||
|
||||
|
||||
*OpenUI *BRPassword/SecurePrint: PickOne
|
||||
*OrderDependency: 33 AnySetup *BRPassword
|
||||
*DefaultBRPassword: False
|
||||
*BRPassword False/Off: " "
|
||||
*BRPassword 1122: " "
|
||||
*BRPassword 8519: " "
|
||||
*BRPassword 3956: " "
|
||||
*BRPassword 2186: " "
|
||||
*BRPassword 3315: " "
|
||||
*BRPassword 0896: " "
|
||||
*CloseUI: *BRPassword
|
||||
|
||||
*CustomBRPassword True/NNNN: ""
|
||||
*ParamCustomBRPassword Password: 1 passcode 4 4
|
||||
|
||||
|
||||
*OpenUI *TonerSaveMode/Toner Save: PickOne
|
||||
*DefaultTonerSaveMode: OFF
|
||||
*OrderDependency: 10 AnySetup *TonerSaveMode
|
||||
*TonerSaveMode OFF/Off: "statusdict begin false tonersave end"
|
||||
*TonerSaveMode ON/On: "statusdict begin true tonersave end"
|
||||
*CloseUI: *TonerSaveMode
|
||||
|
||||
*OpenUI *Sleep/Sleep Time [Min.]: PickOne
|
||||
*DefaultSleep: PrinterDefault
|
||||
*OrderDependency: 10 AnySetup *Sleep
|
||||
*Sleep PrinterDefault/Printer Default: " "
|
||||
*Sleep 2minutes/2: "statusdict begin 2 powersavetime end"
|
||||
*Sleep 10minutes/10: "statusdict begin 10 powersavetime end"
|
||||
*Sleep 30minutes/30: "statusdict begin 30 powersavetime end"
|
||||
*CloseUI: *Sleep
|
||||
|
||||
*%==== 5.20 Font Related Keywords ==============================
|
||||
*DefaultFont: Courier
|
||||
*Font AvantGarde-Book: Standard "(001.006S)" Standard ROM
|
||||
*Font AvantGarde-BookOblique: Standard "(001.006S)" Standard ROM
|
||||
*Font AvantGarde-Demi: Standard "(001.007S)" Standard ROM
|
||||
*Font AvantGarde-DemiOblique: Standard "(001.007S)" Standard ROM
|
||||
*Font Bookman-Demi: Standard "(001.004S)" Standard ROM
|
||||
*Font Bookman-DemiItalic: Standard "(001.004S)" Standard ROM
|
||||
*Font Bookman-Light: Standard "(001.004S)" Standard ROM
|
||||
*Font Bookman-LightItalic: Standard "(001.004S)" Standard ROM
|
||||
*Font Courier: Standard "(002.004S)" Standard ROM
|
||||
*Font Courier-Bold: Standard "(002.004S)" Standard ROM
|
||||
*Font Courier-BoldOblique: Standard "(002.004S)" Standard ROM
|
||||
*Font Courier-Oblique: Standard "(002.004S)" Standard ROM
|
||||
*Font Helvetica: Standard "(001.006S)" Standard ROM
|
||||
*Font Helvetica-Bold: Standard "(001.007S)" Standard ROM
|
||||
*Font Helvetica-BoldOblique: Standard "(001.007S)" Standard ROM
|
||||
*Font Helvetica-Narrow: Standard "(001.006S)" Standard ROM
|
||||
*Font Helvetica-Narrow-Bold: Standard "(001.007S)" Standard ROM
|
||||
*Font Helvetica-Narrow-BoldOblique: Standard "(001.007S)" Standard ROM
|
||||
*Font Helvetica-Narrow-Oblique: Standard "(001.006S)" Standard ROM
|
||||
*Font Helvetica-Oblique: Standard "(001.006S)" Standard ROM
|
||||
*Font NewCenturySchlbk-Bold: Standard "(001.009S)" Standard ROM
|
||||
*Font NewCenturySchlbk-BoldItalic: Standard "(001.007S)" Standard ROM
|
||||
*Font NewCenturySchlbk-Italic: Standard "(001.006S)" Standard ROM
|
||||
*Font NewCenturySchlbk-Roman: Standard "(001.007S)" Standard ROM
|
||||
*Font Palatino-Bold: Standard "(001.005S)" Standard ROM
|
||||
*Font Palatino-BoldItalic: Standard "(001.005S)" Standard ROM
|
||||
*Font Palatino-Italic: Standard "(001.005S)" Standard ROM
|
||||
*Font Palatino-Roman: Standard "(001.005S)" Standard ROM
|
||||
*Font Times-Bold: Standard "(001.007S)" Standard ROM
|
||||
*Font Times-BoldItalic: Standard "(001.009S)" Standard ROM
|
||||
*Font Times-Italic: Standard "(001.007S)" Standard ROM
|
||||
*Font Times-Roman: Standard "(001.007S)" Standard ROM
|
||||
*Font ZapfChancery-MediumItalic: Standard "(001.007S)" Standard ROM
|
||||
*Font ZapfDingbats: Special "(001.004S)" Special ROM
|
||||
*Font Symbol: Special "(001.007S)" Special ROM
|
||||
*Font Alaska: Standard "(001.005)" Standard ROM
|
||||
*Font AlaskaExtrabold: Standard "(001.005)" Standard ROM
|
||||
*Font AntiqueOakland: Standard "(001.005)" Standard ROM
|
||||
*Font AntiqueOakland-Bold: Standard "(001.005)" Standard ROM
|
||||
*Font AntiqueOakland-Oblique: Standard "(001.005)" Standard ROM
|
||||
*Font ClevelandCondensed: Standard "(001.005)" Standard ROM
|
||||
*Font Connecticut: Standard "(001.005)" Standard ROM
|
||||
*Font Guatemala-Antique: Standard "(001.005)" Standard ROM
|
||||
*Font Guatemala-Bold: Standard "(001.005)" Standard ROM
|
||||
*Font Guatemala-Italic: Standard "(001.005)" Standard ROM
|
||||
*Font Guatemala-BoldItalic: Standard "(001.005)" Standard ROM
|
||||
*Font LetterGothic: Standard "(001.005)" Standard ROM
|
||||
*Font LetterGothic-Bold: Standard "(001.005)" Standard ROM
|
||||
*Font LetterGothic-Oblique: Standard "(001.005)" Standard ROM
|
||||
*Font Maryland: Standard "(001.005)" Standard ROM
|
||||
*Font Oklahoma: Standard "(001.005)" Standard ROM
|
||||
*Font Oklahoma-Bold: Standard "(001.005)" Standard ROM
|
||||
*Font Oklahoma-Oblique: Standard "(001.005)" Standard ROM
|
||||
*Font Oklahoma-BoldOblique: Standard "(001.005)" Standard ROM
|
||||
*Font Utah: Standard "(001.005)" Standard ROM
|
||||
*Font Utah-Bold: Standard "(001.005)" Standard ROM
|
||||
*Font Utah-Oblique: Standard "(001.005)" Standard ROM
|
||||
*Font Utah-BoldOblique: Standard "(001.005)" Standard ROM
|
||||
*Font UtahCondensed: Standard "(001.005)" Standard ROM
|
||||
*Font UtahCondensed-Bold: Standard "(001.005)" Standard ROM
|
||||
*Font UtahCondensed-Oblique: Standard "(001.004)" Standard ROM
|
||||
*Font UtahCondensed-BoldOblique: Standard "(001.005)" Standard ROM
|
||||
*Font BermudaScript: Standard "(001.005)" Standard ROM
|
||||
*Font Germany: Standard "(001.005)" Standard ROM
|
||||
*Font SanDiego: Standard "(001.005)" Standard ROM
|
||||
*Font US-Roman: Standard "(001.005)" Standard ROM
|
||||
*?FontQuery: "
|
||||
save
|
||||
count 1 gt
|
||||
{exch dup dup
|
||||
=string cvs (/) print print (:) print
|
||||
FontDirectory exch known
|
||||
{pop(Yes)}
|
||||
{(fonts/)AppendName exch pop mark exch
|
||||
{}=string filenameforall counttomark
|
||||
0 gt
|
||||
{cleartomark(Yes)}
|
||||
{cleartomark(No)}ifelse
|
||||
}ifelse
|
||||
=
|
||||
}if
|
||||
(*) = flush
|
||||
restore
|
||||
"
|
||||
*End
|
||||
*?FontList: "
|
||||
save
|
||||
FontDirectory{pop ==}forall
|
||||
(fonts/*)
|
||||
{dup length 6 sub 6 exch getinterval cvn ==
|
||||
}=string filenameforall
|
||||
(*) = flush
|
||||
restore
|
||||
"
|
||||
*End
|
||||
|
|
@ -1,6 +1,5 @@
|
|||
{
|
||||
pkgs,
|
||||
config,
|
||||
nixosConfig,
|
||||
nix-colors,
|
||||
...
|
||||
|
@ -47,7 +46,6 @@ in {
|
|||
./zathura.nix
|
||||
./taskwarrior.nix
|
||||
./scarlett-solo.nix
|
||||
./kakoune.nix
|
||||
./helix.nix
|
||||
./mpv.nix
|
||||
./broot.nix
|
||||
|
@ -87,7 +85,7 @@ in {
|
|||
(fixGdk "Discord" discord)
|
||||
(fixGdk "losslesscut" losslesscut-bin)
|
||||
(fixGdk "skypeforlinux" skypeforlinux)
|
||||
(pkgs.callPackage ../../pkgs/2i-emulator.nix {})
|
||||
pkgs."2i-emulator"
|
||||
(fixElectron "mattermost-desktop" mattermost-desktop)
|
||||
colmena
|
||||
feh
|
||||
|
@ -102,7 +100,6 @@ in {
|
|||
kbdlight
|
||||
libnotify
|
||||
libreoffice
|
||||
logisim
|
||||
mensa
|
||||
nickel
|
||||
patchelf
|
||||
|
@ -114,8 +111,6 @@ in {
|
|||
pulseeffects-pw
|
||||
python3
|
||||
qt5ct
|
||||
qucs
|
||||
qucs-s
|
||||
rtorrent
|
||||
screenfetch
|
||||
sshfs
|
||||
|
@ -131,7 +126,6 @@ in {
|
|||
]);
|
||||
|
||||
sessionVariables = {
|
||||
LEDGER_FILE = "/home/${config.home.username}/ledger/current.journal";
|
||||
MOZ_USE_XINPUT2 = "1";
|
||||
};
|
||||
|
||||
|
|
|
@ -1,333 +0,0 @@
|
|||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
kakBin = "${pkgs.kakoune}/bin/kak";
|
||||
configDir = "~/.config/kak";
|
||||
|
||||
# === Configuration for kakoune plugins ===
|
||||
pluginConfigs = with pkgs.kakounePlugins; [
|
||||
{
|
||||
# FZF for kakoune
|
||||
pkg = fzf-kak;
|
||||
mappings = [
|
||||
{
|
||||
docstring = "FZF mode";
|
||||
mode = "user";
|
||||
key = "f";
|
||||
effect = ":fzf-mode<ret>";
|
||||
}
|
||||
];
|
||||
hooks = [
|
||||
{
|
||||
# Change fzf settings before first use
|
||||
name = "ModuleLoaded";
|
||||
option = "fzf";
|
||||
commands = ''
|
||||
set-option global fzf_use_main_selection false
|
||||
'';
|
||||
}
|
||||
{
|
||||
# Change fzf-grep settings before first use
|
||||
name = "ModuleLoaded";
|
||||
option = "fzf-grep";
|
||||
commands = ''
|
||||
set-option global fzf_grep_command 'rg'
|
||||
set-option global fzf_grep_preview_command 'bat'
|
||||
'';
|
||||
}
|
||||
{
|
||||
# Change fzf-file settings before first use
|
||||
name = "ModuleLoaded";
|
||||
option = "fzf-file";
|
||||
commands = ''
|
||||
set-option global fzf_file_command "fd"
|
||||
set-option global fzf_highlight_command "bat"
|
||||
'';
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
{
|
||||
# Extra filetypes, mainly for vuejs
|
||||
pkg = pkgs.kakouneUtils.buildKakounePluginFrom2Nix {
|
||||
pname = "kakoune-extra-filetypes";
|
||||
version = "2021-03-16";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "MalteT";
|
||||
repo = "kakoune-extra-filetypes";
|
||||
rev = "0e5f2983f4bc7620c38f7a6cea55df3525644ed6";
|
||||
sha256 = "B5h5COzMVeETi/AHgVSgV0hU6F8ouT86fV1Z7FZ2dbo=";
|
||||
};
|
||||
meta.homepage = "https://github.com/kakoune-editor/kakoune-extra-filetypes/";
|
||||
};
|
||||
mappings = [];
|
||||
hooks = [];
|
||||
}
|
||||
|
||||
{
|
||||
# Languange Server Config
|
||||
pkg = kak-lsp;
|
||||
config = ''
|
||||
eval %sh{kak-lsp --kakoune -s $kak_session}
|
||||
|
||||
hook global WinSetOption filetype=rust %{
|
||||
hook window -group rust-inlay-hints BufReload .* rust-analyzer-inlay-hints
|
||||
hook window -group rust-inlay-hints NormalIdle .* rust-analyzer-inlay-hints
|
||||
hook window -group rust-inlay-hints InsertIdle .* rust-analyzer-inlay-hints
|
||||
hook -once -always window WinSetOption filetype=.* %{
|
||||
remove-hooks window rust-inlay-hints
|
||||
}
|
||||
}
|
||||
'';
|
||||
mappings = [
|
||||
{
|
||||
# Enter LSP Usermode
|
||||
docstring = "LSP mode";
|
||||
mode = "user";
|
||||
key = "l";
|
||||
effect = ":enter-user-mode lsp<ret>";
|
||||
}
|
||||
{
|
||||
# Next placeholder in template
|
||||
docstring = "Select next snippet placeholder";
|
||||
mode = "insert";
|
||||
key = "<tab>";
|
||||
effect = "<a-;>:try lsp-snippets-select-next-placeholders catch %{ execute-keys -with-hooks <lt>tab> }<ret>";
|
||||
}
|
||||
];
|
||||
hooks = [
|
||||
{
|
||||
# Start kak-lsp for specific windows
|
||||
name = "WinSetOption";
|
||||
commands = "lsp-enable-window";
|
||||
option = "filetype=(rust|nix|python|latex|typescript|javascript|vuejs)";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
|
||||
# === Additional mappings for kakoune ===
|
||||
additionalMappings = [
|
||||
{
|
||||
# Toggle whitespace highlighter
|
||||
docstring = "Toggle whitespace";
|
||||
mode = "user";
|
||||
key = "w";
|
||||
effect = ":togglewhitespace<ret>";
|
||||
}
|
||||
];
|
||||
|
||||
# === Light/Dark mode ===
|
||||
lightModeConfig = config.myLib.mkKakouneTheme config.colorsLight;
|
||||
darkModeConfig = config.myLib.mkKakouneTheme config.colorsDark;
|
||||
currentThemeName = "current-theme";
|
||||
installTheme = file: ''
|
||||
ln -sf ${file} ${configDir}/colors/${currentThemeName}.kak
|
||||
'';
|
||||
|
||||
# === Additional configuration for kakoune ===
|
||||
additionalConfig = ''
|
||||
add-highlighter global/ number-lines -relative
|
||||
add-highlighter global/ wrap -word -indent
|
||||
add-highlighter global/ regex '\h*(//|#|;|%)\h*(TODO:|FIXME:)([^\n]*)' 2:black,bright-red+Fb 3:default+b
|
||||
# Highlighter for headers in the comments
|
||||
add-highlighter global/ regex '^\h*(//|#|;|%)\h*=== ([^\n]+) ===' 2:yellow+bf
|
||||
|
||||
# Do something about tabs..
|
||||
map global insert <tab> ' '
|
||||
hook global BufSetOption filetype=nix %{
|
||||
map buffer insert <tab> ' '
|
||||
}
|
||||
set-option global tabstop 4
|
||||
|
||||
# Disable info boxes
|
||||
set-option global autoinfo onkey
|
||||
set-option global startup_info_version 20211107
|
||||
|
||||
# Toggle whitespaces!
|
||||
declare-option -docstring "Whether whitespaces are visible" bool whitespacesshown
|
||||
define-command -docstring "Toggle whitespace highlighter" togglewhitespace %{
|
||||
execute-keys %sh{
|
||||
if [ $kak_opt_whitespacesshown = "true" ]; then
|
||||
printf ':remove-highlighter buffer/whitespace<ret>'
|
||||
printf ':set-option buffer whitespacesshown false<ret>'
|
||||
else
|
||||
printf ':add-highlighter buffer/whitespace show-whitespaces<ret>'
|
||||
printf ':set-option buffer whitespacesshown true<ret>'
|
||||
fi
|
||||
}
|
||||
}
|
||||
|
||||
# Initialize theme
|
||||
colorscheme ${currentThemeName}
|
||||
'';
|
||||
|
||||
# === Configuration for kakoune LSP ===
|
||||
kakLspConfigGen = pkgs.formats.toml {};
|
||||
kakLspConfig = {
|
||||
language = {
|
||||
latex = {
|
||||
command = "${pkgs.texlab}/bin/texlab";
|
||||
filetypes = ["latex"];
|
||||
roots = [".git" ".hg"];
|
||||
settings = {
|
||||
texlab = {
|
||||
forwardSearch = {
|
||||
args = [
|
||||
"%p"
|
||||
"--synctex-forward"
|
||||
"%l:1:%f"
|
||||
"--synctex-editor-command"
|
||||
''
|
||||
sh -c '
|
||||
echo "
|
||||
evaluate-commands -client $kak_client %{
|
||||
evaluate-commands -try-client %opt{jumpclient} %{
|
||||
edit -- %{input} %{line}
|
||||
}
|
||||
}
|
||||
" | kak -p $kak_session
|
||||
'
|
||||
''
|
||||
];
|
||||
executable = "${pkgs.zathura}/bin/zathura";
|
||||
};
|
||||
};
|
||||
};
|
||||
settings_section = "texlab";
|
||||
};
|
||||
nix = {
|
||||
command = "${pkgs.rnix-lsp}/bin/rnix-lsp";
|
||||
filetypes = ["nix"];
|
||||
roots = ["flake.nix" "shell.nix" ".git" ".hg"];
|
||||
};
|
||||
python = {
|
||||
command = "${pkgs.python3.pkgs.python-lsp-server}/bin/pylsp";
|
||||
filetypes = ["python"];
|
||||
roots = ["requirements.txt" "setup.py" ".git" ".hg"];
|
||||
settings.pylsp.pylsp.configurationSources = ["flake8"];
|
||||
settings_section = "pylsp";
|
||||
};
|
||||
rust = {
|
||||
command = "${pkgs.rust-analyzer}/bin/rust-analyzer";
|
||||
filetypes = ["rust"];
|
||||
roots = ["Cargo.toml"];
|
||||
settings = {
|
||||
rust-analyzer = {
|
||||
cargo = {loadOutDirsFromCheck = true;};
|
||||
hoverActions = {enable = true;};
|
||||
procMacro = {enable = true;};
|
||||
};
|
||||
};
|
||||
settings_section = "rust-analyzer";
|
||||
};
|
||||
typescript = {
|
||||
command = "${pkgs.nodePackages.typescript-language-server}/bin/typescript-language-server";
|
||||
args = ["--stdio" "--tsserver-path=${pkgs.nodePackages.typescript}/lib/node_modules/typescript/lib"];
|
||||
filetypes = ["typescript" "javascript"];
|
||||
roots = ["package.json" "tsconfig.json" ".git" ".hg"];
|
||||
};
|
||||
vuejs = {
|
||||
args = ["--stdio"];
|
||||
command = "${pkgs.nodePackages.vls}/bin/vls";
|
||||
filetypes = ["vuejs"];
|
||||
roots = ["package.json" "tsconfig.json" ".git" ".hg"];
|
||||
};
|
||||
};
|
||||
semantic_tokens = let
|
||||
mkToken = {
|
||||
token,
|
||||
face ? null,
|
||||
modifiers ? [],
|
||||
}: {
|
||||
inherit token modifiers;
|
||||
face =
|
||||
if face != null
|
||||
then face
|
||||
else token;
|
||||
};
|
||||
in [
|
||||
(mkToken {token = "comment";})
|
||||
(mkToken {token = "function";})
|
||||
(mkToken {token = "keyword";})
|
||||
(mkToken {token = "operator";})
|
||||
(mkToken {token = "string";})
|
||||
(mkToken {token = "type";})
|
||||
(mkToken {token = "variable";})
|
||||
{
|
||||
face = "module";
|
||||
token = "namespace";
|
||||
}
|
||||
{
|
||||
face = "documentation";
|
||||
modifiers = ["documentation"];
|
||||
token = "comment";
|
||||
}
|
||||
{
|
||||
face = "default+d";
|
||||
modifiers = ["readonly"];
|
||||
token = "variable";
|
||||
}
|
||||
{
|
||||
face = "default+d";
|
||||
modifiers = ["constant"];
|
||||
token = "variable";
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
selectOr = attr: default: map (conf: conf.${attr} or default) pluginConfigs;
|
||||
selectList = attr: lib.flatten (selectOr attr []);
|
||||
in {
|
||||
programs.kakoune = {
|
||||
enable = true;
|
||||
|
||||
config = {
|
||||
ui.enableMouse = true;
|
||||
ui.assistant = "none";
|
||||
showMatching = true;
|
||||
|
||||
hooks = selectList "hooks";
|
||||
|
||||
keyMappings = (selectList "mappings") ++ additionalMappings;
|
||||
};
|
||||
|
||||
extraConfig = (toString (selectOr "config" "")) + additionalConfig;
|
||||
|
||||
plugins = map (conf: conf.pkg) pluginConfigs;
|
||||
};
|
||||
|
||||
# home.sessionVariables = {
|
||||
# EDITOR = kakBin;
|
||||
# VISUAL = "${pkgs.kitty}/bin/kitty ${kakBin}";
|
||||
# };
|
||||
|
||||
xdg.configFile."kak-lsp/kak-lsp.toml".source = kakLspConfigGen.generate "kak-lsp.toml" kakLspConfig;
|
||||
|
||||
services.darkman.scripts."kakoune.sh" = {
|
||||
onLight = pkgs.writeScript "kakoune-light" ''
|
||||
#!${pkgs.runtimeShell}
|
||||
${installTheme lightModeConfig}
|
||||
for id in $(${kakBin} -l); do
|
||||
echo 'colorscheme ${currentThemeName}' | ${kakBin} -p $id
|
||||
done
|
||||
'';
|
||||
onDark = pkgs.writeScript "kakoune-dark" ''
|
||||
#!${pkgs.runtimeShell}
|
||||
${installTheme darkModeConfig}
|
||||
for id in $(${kakBin} -l); do
|
||||
echo 'colorscheme ${currentThemeName}' | ${kakBin} -p $id
|
||||
done
|
||||
'';
|
||||
initialize = pkgs.writeScript "kakoune-initialize" ''
|
||||
# Create the folder for custom themes
|
||||
mkdir -p ${configDir}/colors
|
||||
if [[ ! -e ${configDir}/colors/${currentThemeName} ]]; then
|
||||
${installTheme lightModeConfig}
|
||||
fi
|
||||
'';
|
||||
};
|
||||
}
|
|
@ -143,7 +143,7 @@
|
|||
|
||||
[general]
|
||||
default_action = list
|
||||
editor = kak
|
||||
editor = hx
|
||||
merge_editor = vimdiff
|
||||
|
||||
[contact table]
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
{pkgs, ...}: {
|
||||
home.packages = with pkgs; [
|
||||
(pkgs.callPackage ../../pkgs/rip.nix {})
|
||||
bottom
|
||||
fd
|
||||
fishPlugins.done
|
||||
|
|
|
@ -16,11 +16,11 @@
|
|||
timewarriorExtensions = pkgs.stdenvNoCC.mkDerivation {
|
||||
name = "timewarrior-totals";
|
||||
version = "v1.4.3";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
src = pkgs.fetchFromGitHub rec {
|
||||
owner = "GothenburgBitFactory";
|
||||
repo = "timewarrior";
|
||||
rev = "v1.4.3";
|
||||
sha256 = "+HsUiU287bWZ5Ytl+N5i+STuG9YlqlaKWxd69y0PRds=";
|
||||
sha256 = nixosConfig.state.hashes.timewarrior."${rev}";
|
||||
};
|
||||
buildInputs = [pkgs.coreutils];
|
||||
propagatedBuildInputs = [pythonWithLibs];
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
{
|
||||
nixosConfig,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
|
@ -6,7 +7,7 @@
|
|||
inherit (lib.hm.gvariant) mkTuple;
|
||||
bg = pkgs.fetchurl {
|
||||
url = "https://images.pexels.com/photos/2559941/pexels-photo-2559941.jpeg";
|
||||
sha256 = "sha256-Su2UwFpZKj5sa80UrcDSX9O2GuVI6XR2gSLpp4gJZP0=";
|
||||
hash = nixosConfig.state.hashes.pexel-bg.hash;
|
||||
};
|
||||
in {
|
||||
imports = [../modules/restic-backup.nix];
|
||||
|
|
|
@ -11,7 +11,7 @@ in {
|
|||
|
||||
package = lib.mkOption {
|
||||
description = "Boilr package to use";
|
||||
default = pkgs.callPackage ../../pkgs/boilr.nix {};
|
||||
default = pkgs.boilr;
|
||||
type = lib.types.package;
|
||||
};
|
||||
|
||||
|
|
|
@ -173,54 +173,6 @@ in {
|
|||
set recolor-darkcolor "${color "base06"}"
|
||||
'';
|
||||
|
||||
mkKakouneTheme = colorscheme: let
|
||||
color = name: "rgb:${colorscheme.colors.${name}}";
|
||||
in
|
||||
pkgs.writeText "kakoune-theme-${colorscheme.slug}" ''
|
||||
# https://github.com/leira/base16-kakoune/blob/2f93127b420328d9c11ffa1ffa1837ac009a6f7d/templates/default.mustache
|
||||
## code
|
||||
face global value ${color "base09"}
|
||||
face global type ${color "base0A"}+b
|
||||
face global identifier ${color "base08"}
|
||||
face global string ${color "base0B"}
|
||||
face global keyword ${color "base0E"}+b
|
||||
face global operator ${color "base05"}
|
||||
face global attribute ${color "base0C"}
|
||||
face global comment ${color "base03"}
|
||||
face global meta ${color "base0D"}
|
||||
face global builtin ${color "base0D"}+b
|
||||
## markup
|
||||
face global title ${color "base0D"}+b
|
||||
face global header ${color "base0D"}+b
|
||||
face global bold ${color "base0A"}+b
|
||||
face global italic ${color "base0E"}
|
||||
face global mono ${color "base0B"}
|
||||
face global block ${color "base0C"}
|
||||
face global link ${color "base09"}
|
||||
face global bullet ${color "base08"}
|
||||
face global list ${color "base08"}
|
||||
## builtin
|
||||
face global Default ${color "base05"},${color "base00"}
|
||||
face global PrimarySelection ${color "base06"},${color "base0D"}
|
||||
face global SecondarySelection ${color "base06"},${color "base0F"}
|
||||
face global PrimaryCursor ${color "base00"},${color "base05"}
|
||||
face global SecondaryCursor ${color "base06"},${color "base0C"}
|
||||
face global LineNumbers ${color "base02"},${color "base00"}
|
||||
face global LineNumberCursor ${color "base0A"},${color "base00"}
|
||||
face global MenuForeground ${color "base05"},${color "base02"}
|
||||
face global MenuBackground ${color "base05"},${color "base01"}
|
||||
face global MenuInfo ${color "base02"}
|
||||
face global Information Default
|
||||
face global Error ${color "base00"},${color "base08"}
|
||||
face global StatusLine ${color "base04"},${color "base01"}
|
||||
face global StatusLineMode ${color "base0B"}
|
||||
face global StatusLineInfo ${color "base0D"}
|
||||
face global StatusLineValue ${color "base0C"}
|
||||
face global StatusCursor ${color "base00"},${color "base05"}
|
||||
face global Prompt ${color "base0D"},${color "base01"}
|
||||
face global MatchingChar ${color "base06"},${color "base02"}+b
|
||||
face global BufferPadding ${color "base03"},${color "base00"}
|
||||
'';
|
||||
# https://github.com/mnussbaum/base16-waybar
|
||||
mkCSSVariables = colorscheme: let
|
||||
color = name: "#${colorscheme.colors.${name}}";
|
||||
|
|
Loading…
Reference in a new issue