From 1feb294a75d4572d7772533e29ae9a28e636d095 Mon Sep 17 00:00:00 2001 From: tv Date: Thu, 30 Apr 2020 16:46:41 +0200 Subject: htgen: 1.2.2 -> 1.2.3 --- krebs/5pkgs/simple/htgen/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/krebs/5pkgs/simple/htgen/default.nix b/krebs/5pkgs/simple/htgen/default.nix index 0fca8bdf..a44c1a7d 100644 --- a/krebs/5pkgs/simple/htgen/default.nix +++ b/krebs/5pkgs/simple/htgen/default.nix @@ -1,14 +1,14 @@ { coreutils, dash, fetchgit, gnused, stdenv, ucspi-tcp }: with import ; let - version = "1.2.2"; + version = "1.2.3"; in stdenv.mkDerivation { name = "htgen-${version}"; src = fetchgit { url = "http://cgit.krebsco.de/htgen"; rev = "refs/tags/v${version}"; - sha256 = "0a8vn35vq6pxgk6d3d2cjp0vdxzq9nqf0zgkvnd6668v4cmdf91b"; + sha256 = "0lml336w31ckgspp633ym2jnppzln3f8mvmy3y2vz9yanf59j0hb"; }; installPhase = '' -- cgit v1.2.3 From 7603f9e568ffb5025027a0a433ba5bccb2951767 Mon Sep 17 00:00:00 2001 From: tv Date: Fri, 1 May 2020 10:24:18 +0200 Subject: xwaitforwindow: init --- krebs/5pkgs/simple/xwaitforwindow.nix | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 krebs/5pkgs/simple/xwaitforwindow.nix diff --git a/krebs/5pkgs/simple/xwaitforwindow.nix b/krebs/5pkgs/simple/xwaitforwindow.nix new file mode 100644 index 00000000..41ce6502 --- /dev/null +++ b/krebs/5pkgs/simple/xwaitforwindow.nix @@ -0,0 +1,15 @@ +{ writeDashBin, xdotool, xorg }: +writeDashBin "xwaitforwindow" '' + # usage: xwaitforwindow ARGS + # see xdotool search for possible ARGS + # example: xwaitforwindow -name WINDOWNAME + set -efu + + if id=$(${xdotool}/bin/xdotool search "$@"); then + printf 'waiting for window %#x\n' "$id" >&2 + exec ${xorg.xprop}/bin/xprop -spy -id "$id" >/dev/null + else + printf 'no window found with xdotool search %s\n' "$*" >&2 + exit 1 + fi +'' -- cgit v1.2.3 From b0549ee61b60d658751e1088810acd307847fec6 Mon Sep 17 00:00:00 2001 From: tv Date: Fri, 1 May 2020 11:02:01 +0200 Subject: flameshot-once: 1.2.0 -> 1.3.0 --- krebs/5pkgs/haskell/flameshot-once.nix | 6 +++--- krebs/5pkgs/simple/flameshot-once/default.nix | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/krebs/5pkgs/haskell/flameshot-once.nix b/krebs/5pkgs/haskell/flameshot-once.nix index 5b369362..1b54f7db 100644 --- a/krebs/5pkgs/haskell/flameshot-once.nix +++ b/krebs/5pkgs/haskell/flameshot-once.nix @@ -4,11 +4,11 @@ }: mkDerivation { pname = "flameshot-once"; - version = "1.2.0"; + version = "1.3.0"; src = fetchgit { url = "https://cgit.krebsco.de/flameshot-once"; - sha256 = "01c11dk8ss37awfn9xqsgx668dcrf4kvzfxlq7ycnqsnpbjjvm0a"; - rev = "cebaefa37095e74ad2253c4e2f9d9ab390f88737"; + sha256 = "1jy73379srnkq79i7k3al406r0kb3pxwgg6f64i89jhzxjn7zmzl"; + rev = "81ce6b9bb68c2739ec5bda067fcfaeab931d55dd"; fetchSubmodules = true; }; isLibrary = false; diff --git a/krebs/5pkgs/simple/flameshot-once/default.nix b/krebs/5pkgs/simple/flameshot-once/default.nix index c442a2e9..20c709fb 100644 --- a/krebs/5pkgs/simple/flameshot-once/default.nix +++ b/krebs/5pkgs/simple/flameshot-once/default.nix @@ -16,6 +16,7 @@ in pkgs.flameshot pkgs.qt5.qtbase pkgs.xclip + pkgs.xwaitforwindow ]} ${optionalString (config != null) /* sh */ '' . ${import ./profile.nix { inherit config pkgs; }} -- cgit v1.2.3 From a269f84b1d11cf51b4c1344e78e8813e29867e6b Mon Sep 17 00:00:00 2001 From: tv Date: Fri, 1 May 2020 11:58:42 +0200 Subject: proot: move to override overlay --- krebs/5pkgs/default.nix | 6 ------ krebs/5pkgs/override/default.nix | 10 ++++++++++ 2 files changed, 10 insertions(+), 6 deletions(-) create mode 100644 krebs/5pkgs/override/default.nix diff --git a/krebs/5pkgs/default.nix b/krebs/5pkgs/default.nix index 4cdaedeb..ab25934c 100644 --- a/krebs/5pkgs/default.nix +++ b/krebs/5pkgs/default.nix @@ -16,10 +16,4 @@ foldl' mergeAttrs {} reaktor2 = self.haskellPackages.reaktor2; ReaktorPlugins = self.callPackage ./simple/Reaktor/plugins.nix {}; - - # https://github.com/proot-me/PRoot/issues/106 - proot = self.writeDashBin "proot" '' - export PROOT_NO_SECCOMP=1 - exec ${super.proot}/bin/proot "$@" - ''; } diff --git a/krebs/5pkgs/override/default.nix b/krebs/5pkgs/override/default.nix new file mode 100644 index 00000000..5199d90d --- /dev/null +++ b/krebs/5pkgs/override/default.nix @@ -0,0 +1,10 @@ +with import ; +self: super: { + + # https://github.com/proot-me/PRoot/issues/106 + proot = self.writeDashBin "proot" '' + export PROOT_NO_SECCOMP=1 + exec ${super.proot}/bin/proot "$@" + ''; + +} -- cgit v1.2.3 From b6c670fea48a52492f50d1ed0713b3817891a123 Mon Sep 17 00:00:00 2001 From: tv Date: Fri, 1 May 2020 12:00:36 +0200 Subject: flameshot: make imgur URLs configurable --- krebs/5pkgs/override/default.nix | 41 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/krebs/5pkgs/override/default.nix b/krebs/5pkgs/override/default.nix index 5199d90d..7a7b979c 100644 --- a/krebs/5pkgs/override/default.nix +++ b/krebs/5pkgs/override/default.nix @@ -1,6 +1,47 @@ with import ; self: super: { + flameshot = super.flameshot.overrideAttrs (old: rec { + patches = old.patches or [] ++ [ + (self.writeText "flameshot-imgur.patch" /* diff */ '' +--- a/src/tools/imgur/imguruploader.cpp ++++ b/src/tools/imgur/imguruploader.cpp +@@ -40,6 +40,7 @@ + #include + #include + #include ++#include + + ImgurUploader::ImgurUploader(const QPixmap &capture, QWidget *parent) : + QWidget(parent), m_pixmap(capture) +@@ -74,7 +75,10 @@ void ImgurUploader::handleReply(QNetworkReply *reply) { + QJsonObject json = response.object(); + QJsonObject data = json["data"].toObject(); + m_imageURL.setUrl(data["link"].toString()); +- m_deleteImageURL.setUrl(QString("https://imgur.com/delete/%1").arg( ++ char *deleteImageURLPattern = secure_getenv("IMGUR_DELETE_URL"); ++ if (deleteImageURLPattern == NULL) ++ deleteImageURLPattern = "https://imgur.com/delete/%1"; ++ m_deleteImageURL.setUrl(QString(deleteImageURLPattern).arg( + data["deletehash"].toString())); + onUploadOk(); + } else { +@@ -105,7 +109,10 @@ void ImgurUploader::upload() { + QString description = FileNameHandler().parsedPattern(); + urlQuery.addQueryItem("description", description); + +- QUrl url("https://api.imgur.com/3/image"); ++ char *createImageURLPattern = secure_getenv("IMGUR_CREATE_URL"); ++ if (createImageURLPattern == NULL) ++ createImageURLPattern = "https://api.imgur.com/3/image"; ++ QUrl url(createImageURLPattern); + url.setQuery(urlQuery); + QNetworkRequest request(url); + request.setHeader(QNetworkRequest::ContentTypeHeader, + '') + ]; + }); + # https://github.com/proot-me/PRoot/issues/106 proot = self.writeDashBin "proot" '' export PROOT_NO_SECCOMP=1 -- cgit v1.2.3 From 66a3597034c0f400a948b551e95234f94c227859 Mon Sep 17 00:00:00 2001 From: tv Date: Fri, 1 May 2020 23:51:47 +0200 Subject: flameshot-once: add imgur support --- krebs/5pkgs/simple/flameshot-once/profile.nix | 68 ++++++++++++++++++++++++++- 1 file changed, 67 insertions(+), 1 deletion(-) diff --git a/krebs/5pkgs/simple/flameshot-once/profile.nix b/krebs/5pkgs/simple/flameshot-once/profile.nix index 8ea8a850..4427e5b2 100644 --- a/krebs/5pkgs/simple/flameshot-once/profile.nix +++ b/krebs/5pkgs/simple/flameshot-once/profile.nix @@ -48,7 +48,9 @@ let "SAVE" "EXIT" "BLUR" - ]; + ] + ++ optional cfg.imgur.enable "IMAGEUPLOADER" + ; type = types.listOf (types.enum (attrNames ButtonType)); }; disabledTrayIcon = mkOption { @@ -65,6 +67,44 @@ let # This is types.filename extended by [%:][%:+]* types.addCheck types.str (test "[%:0-9A-Za-z._][%:+0-9A-Za-z._-]*"); }; + imgur = mkOption { + default = {}; + type = types.submodule { + options = { + enable = mkEnableOption "imgur"; + createUrl = mkOption { + example = "http://p.r/image"; + type = types.str; + }; + deleteUrl = mkOption { + example = "http://p.r/image/delete/%1"; + type = types.str; + }; + xdg-open = mkOption { + default = {}; + type = types.submodule { + options = { + enable = mkEnableOption "imgur.xdg-open" // { + default = true; + }; + browser = mkOption { + default = "${pkgs.coreutils}/bin/false"; + type = types.str; + }; + createPrefix = mkOption { + default = cfg.imgur.createUrl; + type = types.str; + }; + deletePrefix = mkOption { + default = removeSuffix "/%1" cfg.imgur.deleteUrl; + type = types.str; + }; + }; + }; + }; + }; + }; + }; savePath = mkOption { default = "/tmp"; type = types.absolute-pathname; @@ -135,4 +175,30 @@ in export FLAMESHOT_CAPTURE_PATH=${cfg.savePath} export FLAMESHOT_ONCE_TIMEOUT=${toString cfg.timeout} export XDG_CONFIG_HOME=${XDG_CONFIG_HOME} + ${optionalString cfg.imgur.enable /* sh */ '' + export IMGUR_CREATE_URL=${shell.escape cfg.imgur.createUrl} + export IMGUR_DELETE_URL=${shell.escape cfg.imgur.deleteUrl} + ${optionalString cfg.imgur.xdg-open.enable /* sh */ '' + PATH=$PATH:${makeBinPath [ + (pkgs.writeDashBin "xdg-open" '' + set -efu + uri=$1 + prefix=$(${pkgs.coreutils}/bin/dirname "$uri") + case $prefix in + (${shell.escape cfg.imgur.xdg-open.createPrefix}) + echo "opening image in browser: $uri" >&2 + exec ${config.imgur.xdg-open.browser} "$uri" + ;; + (${shell.escape cfg.imgur.xdg-open.deletePrefix}) + echo "deleting image: $uri" >&2 + exec ${pkgs.curl}/bin/curl -fsS -X DELETE "$uri" + ;; + (*) + echo "don't know how to open URI: $uri" >&2 + exit 1 + esac + '') + ]} + ''} + ''} '' -- cgit v1.2.3 From d437145ae1c3f5b4a4975cc681e6c0eadf05712f Mon Sep 17 00:00:00 2001 From: tv Date: Tue, 5 May 2020 16:38:59 +0200 Subject: htgen-imgur: init at 1.0.0 --- krebs/5pkgs/simple/htgen-imgur/default.nix | 29 ++++ krebs/5pkgs/simple/htgen-imgur/src/htgen-imgur | 209 +++++++++++++++++++++++++ 2 files changed, 238 insertions(+) create mode 100644 krebs/5pkgs/simple/htgen-imgur/default.nix create mode 100644 krebs/5pkgs/simple/htgen-imgur/src/htgen-imgur diff --git a/krebs/5pkgs/simple/htgen-imgur/default.nix b/krebs/5pkgs/simple/htgen-imgur/default.nix new file mode 100644 index 00000000..fe0b2ab0 --- /dev/null +++ b/krebs/5pkgs/simple/htgen-imgur/default.nix @@ -0,0 +1,29 @@ +with import ; +{ attr, coreutils, exiv2, findutils, gnugrep, jq, nix, utillinux, stdenv }: +stdenv.mkDerivation rec { + pname = "htgen-imgur"; + version = "1.0.0"; + + src = ./src; + + buildPhase = '' + ( + exec > htgen-imgur + echo PATH=${makeBinPath [ + attr + coreutils + exiv2 + findutils + gnugrep + jq + nix utillinux + ]} + echo STATEDIR=${shell.escape "\${STATEDIR-$HOME}"} + cat $src/htgen-imgur + ) + ''; + + installPhase = '' + install -D htgen-imgur $out/bin/htgen-imgur + ''; +} diff --git a/krebs/5pkgs/simple/htgen-imgur/src/htgen-imgur b/krebs/5pkgs/simple/htgen-imgur/src/htgen-imgur new file mode 100644 index 00000000..af092d00 --- /dev/null +++ b/krebs/5pkgs/simple/htgen-imgur/src/htgen-imgur @@ -0,0 +1,209 @@ +find_item() { + if test ${#1} -ge 7; then + set -- "$(find "$STATEDIR/items" -mindepth 1 -maxdepth 1 \ + -regex "$STATEDIR/items/$1[0-9A-Za-z]*$")" + if test -n "$1" && test $(echo "$1" | wc -l) = 1; then + echo "$1" + return 0 + fi + fi + return 1 +} + +# https://api.imgur.com/models/basic +basic_response() {( + status_code=$1 + status_reason=$2 + data=${3-null} + + response_body=$(jq -cn \ + --argjson data "$data" \ + --argjson status "$status_code" \ + ' + { + data: $data, + status: $status, + success: (200 <= $status and $status <= 299), + } + ') + + printf "HTTP/1.1 $status_code $status_reason\r\n" + printf 'Connection: close\r\n' + printf 'Content-Length: %d\r\n' $(expr ${#response_body} + 1) + printf 'Content-Type: application/json; charset=UTF-8\r\n' + printf 'Server: %s\r\n' "$Server" + printf '\r\n' + printf '%s\n' "$response_body" + +)} + +file_response() { + jq -n -r \ + --argjson data "$(attr -q -g data "$1")" \ + --arg server "$Server" \ + ' + [ "HTTP/1.1 200 OK\r" + , "Connection: close\r" + , "Content-Length: \($data.size)\r" + , "Content-Type: \($data.type)\r" + , "Server: \($server)\r" + , "\r" + ][] + ' + cat "$1" +} + +read_uri() { + jq -cn --arg uri "$1" ' + $uri | + capture("^((?[^:]*):)?(//(?[^/]*))?(?[^?#]*)([?](?[^#]*))?([#](?.*))?$") | + . + { + query: (.query | if . != null then + split("&") | + map(split("=") | {key:.[0],value:.[1]}) | + from_entries + else . end) + } + ' +} + +uri=$(read_uri "$Request_URI") +path=$(jq -nr --argjson uri "$uri" '$uri.path') + +case "$Method $path" in + 'POST /image') + echo create image >&2 + + content=$(mktemp -t htgen.$$.content.XXXXXXXX) + trap "rm $content >&2" EXIT + + case ${req_expect-} in 100-continue) + printf 'HTTP/1.1 100 Continue\r\n\r\n' + esac + + head -c $req_content_length > $content + + sha256=$(sha256sum -b $content | cut -d\ -f1) + base32=$(nix-hash --to-base32 --type sha256 $sha256) + item=$STATEDIR/items/$base32 + + if ! test -e $item; then + mkdir -v -p $STATEDIR/items >&2 + cp -v $content $item >&2 + fi + + base32short=$(echo $base32 | cut -b-7) + + scheme=${req_x_forwarded_proto-http} + link=$scheme://$req_host/image/$base32short + + if item=$(find_item $base32short); then + + deletehash=$(uuidgen) + + info=$( + exiv2 print "$item" | + jq -csR ' + split("\n") | + map( + match("^(.*\\S)\\s*:\\s*(.*)").captures | + map(.string) | + {key:.[0],value:.[1]} + ) | + from_entries | + + . + ( + .["Image size"] | + match("^(?[0-9]+)\\s*x\\s*(?[0-9]+)$").captures | + map({key:.name,value:(.string|tonumber)}) | + from_entries + ) | + . + ( + .["File size"] | + match("^(?[0-9]+)\\s*Bytes$").captures | + map({key:.name,value:(.string|tonumber)}) | + from_entries + ) | + . + ' + ) + + data=$(jq -cn \ + --arg deletehash "$deletehash" \ + --arg id "$base32" \ + --arg link "$link" \ + --argjson info "$info" \ + --argjson uri "$uri" \ + ' + { + id: $id, + title: $uri.query.title, + description: $uri.query.description, + datetime: now, + type: $info["MIME type"], + animated: false, + width: $info.width, + height: $info.height, + size: $info.size, + views: 0, + bandwidth: 0, + vote: null, + favorite: false, + nsfw: null, + section: null, + account_url: null, + acount_id: 0, + is_ad: false, + is_most_viral: false, + tags: [], + ad_type: 0, + ad_url: "", + in_gallery: false, + deletehash: @uri "\($id)?deletehash=\($deletehash)", + name: "", + link: $link, + } + ') + + attr -q -s deletehash -V "$deletehash" "$item" + attr -q -s data -V "$data" "$item" + + basic_response 200 OK "$data" + exit + fi + ;; + 'GET /image/'*) + basename=$(basename "$path") + if printf %s "$basename" | grep -q '^[0-9a-z]\+$'; then + if item=$(find_item "$basename"); then + echo get image >&2 + file_response "$item" + exit + fi + fi + ;; + 'DELETE /image/delete/'*) + basename=$(basename "$path") + if printf %s "$basename" | grep -q '^[0-9a-z]\+$'; then + if item=$(find_item "$basename"); then + + deletehash=$(jq -nr --argjson uri "$uri" '$uri.query.deletehash') + + stored_deletehash=$(attr -q -g deletehash "$item") + + if test "$deletehash" = "$stored_deletehash"; then + echo "delete image" >&2 + + rm -v "$item" >&2 + + basic_response 200 OK + exit + else + echo "delete image error: bad deletehash provided: $deletehash" >&2 + basic_response 401 'Unauthorized' + exit + fi + fi + fi + ;; +esac -- cgit v1.2.3 From ebecabd51783ade50cbccfdd5f0026144fc2dceb Mon Sep 17 00:00:00 2001 From: tv Date: Tue, 5 May 2020 16:44:53 +0200 Subject: tv imgur config: init --- tv/2configs/imgur.nix | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 tv/2configs/imgur.nix diff --git a/tv/2configs/imgur.nix b/tv/2configs/imgur.nix new file mode 100644 index 00000000..ba84fd2d --- /dev/null +++ b/tv/2configs/imgur.nix @@ -0,0 +1,25 @@ +with import ; +{ config, pkgs, ... }: { + + services.nginx.virtualHosts."ni.r" = { + locations."/image" = { + extraConfig = /* nginx */ '' + client_max_body_size 20M; + + proxy_set_header Host $host; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + + proxy_pass http://127.0.0.1:${toString config.krebs.htgen.imgur.port}; + proxy_pass_header Server; + ''; + }; + }; + + krebs.htgen.imgur = { + port = 7771; + script = /* sh */ '' + (. ${pkgs.htgen-imgur}/bin/htgen-imgur) + ''; + }; +} -- cgit v1.2.3 From c077a4155f2e6b6b18ef65dab89c88bafc52b6fa Mon Sep 17 00:00:00 2001 From: tv Date: Tue, 5 May 2020 17:37:18 +0200 Subject: tv xmonad: add flameshot-once --- tv/2configs/xserver/default.nix | 7 +++++++ tv/5pkgs/haskell/xmonad-tv/src/Paths.hs | 3 +++ tv/5pkgs/haskell/xmonad-tv/src/main.hs | 7 ++++++- 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/tv/2configs/xserver/default.nix b/tv/2configs/xserver/default.nix index 35774453..4e9e3074 100644 --- a/tv/2configs/xserver/default.nix +++ b/tv/2configs/xserver/default.nix @@ -108,6 +108,13 @@ in { }; path = [ config.tv.slock.package + (pkgs.flameshot-once.override { + config.imgur.enable = true; + config.imgur.createUrl = "http://ni.r/image"; + config.imgur.deleteUrl = "http://ni.r/image/delete/%1"; + config.imgur.xdg-open.browser = "/etc/profiles/per-user/tv/bin/cr"; + config.timeout = 200; + }) pkgs.fzmenu pkgs.pulseaudioLight.out pkgs.rxvt_unicode diff --git a/tv/5pkgs/haskell/xmonad-tv/src/Paths.hs b/tv/5pkgs/haskell/xmonad-tv/src/Paths.hs index dd21511b..6b723553 100644 --- a/tv/5pkgs/haskell/xmonad-tv/src/Paths.hs +++ b/tv/5pkgs/haskell/xmonad-tv/src/Paths.hs @@ -3,6 +3,9 @@ module Paths where import Helpers.Path +flameshot :: FilePath +flameshot = findExecutable "flameshot-once" + otpmenu :: FilePath otpmenu = findExecutable "otpmenu" diff --git a/tv/5pkgs/haskell/xmonad-tv/src/main.hs b/tv/5pkgs/haskell/xmonad-tv/src/main.hs index 400c87ab..047239eb 100644 --- a/tv/5pkgs/haskell/xmonad-tv/src/main.hs +++ b/tv/5pkgs/haskell/xmonad-tv/src/main.hs @@ -22,7 +22,8 @@ import qualified XMonad.StackSet as W import Data.Map (Map) import qualified Data.Map as Map import XMonad.Hooks.UrgencyHook (SpawnUrgencyHook(..), withUrgencyHook) -import XMonad.Hooks.ManageHelpers (doCenterFloat) +import XMonad.Hooks.ManageHelpers (doCenterFloat,doRectFloat) +import Data.Ratio import XMonad.Hooks.Place (placeHook, smart) import XMonad.Actions.PerWorkspaceKeys (chooseAction) @@ -66,6 +67,8 @@ mainNoArgs = do composeAll [ appName =? "fzmenu-urxvt" --> doCenterFloat , appName =? "pinentry" --> doCenterFloat + , title =? "Upload to Imgur" --> + doRectFloat (W.RationalRect 0 0 (1 % 8) (1 % 8)) , placeHook (smart (1,0)) ] , startupHook = @@ -163,6 +166,8 @@ myKeys conf = Map.fromList $ , ((_4, xF86XK_AudioMute), pavucontrol []) , ((_4, xK_Prior), forkFile Paths.xcalib ["-invert", "-alter"] Nothing) + + , ((0, xK_Print), forkFile Paths.flameshot [] Nothing) ] where _4 = mod4Mask -- cgit v1.2.3 From a406f014ea148fe11eb2303a4d631678e41bcd6f Mon Sep 17 00:00:00 2001 From: tv Date: Wed, 20 May 2020 10:20:29 +0200 Subject: github-known-hosts: update list --- krebs/3modules/github-known-hosts.nix | 36 +++++++++++++++++++++++++---------- 1 file changed, 26 insertions(+), 10 deletions(-) diff --git a/krebs/3modules/github-known-hosts.nix b/krebs/3modules/github-known-hosts.nix index bae8b96b..39b9722e 100644 --- a/krebs/3modules/github-known-hosts.nix +++ b/krebs/3modules/github-known-hosts.nix @@ -29,21 +29,37 @@ "140.82.126.*" "140.82.127.*" "13.114.40.48" - "13.229.188.59" + "52.192.72.89" + "52.69.186.44" + "15.164.81.167" + "52.78.231.108" "13.234.176.102" "13.234.210.38" + "13.229.188.59" + "13.250.177.223" + "52.74.223.119" "13.236.229.21" "13.237.44.5" - "13.250.177.223" - "15.164.81.167" - "18.194.104.89" - "18.195.85.27" - "35.159.8.160" - "52.192.72.89" "52.64.108.95" - "52.69.186.44" - "52.74.223.119" - "52.78.231.108" + "18.228.52.138" + "18.228.67.229" + "18.231.5.6" + "18.181.13.223" + "54.238.117.237" + "54.168.17.15" + "3.34.26.58" + "13.125.114.27" + "3.7.2.84" + "3.6.106.81" + "18.140.96.234" + "18.141.90.153" + "18.138.202.180" + "52.63.152.235" + "3.105.147.174" + "3.106.158.203" + "54.233.131.104" + "18.231.104.233" + "18.228.167.86" ]; publicKey = "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ=="; }; -- cgit v1.2.3 From d8386001a04b081e5779386b911cf7d4e9fd30e0 Mon Sep 17 00:00:00 2001 From: lassulus Date: Mon, 25 May 2020 16:04:28 +0200 Subject: l: add MX entry for lassul.us --- krebs/3modules/lass/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/krebs/3modules/lass/default.nix b/krebs/3modules/lass/default.nix index 00847071..9c2c0e94 100644 --- a/krebs/3modules/lass/default.nix +++ b/krebs/3modules/lass/default.nix @@ -30,6 +30,7 @@ in { 60 IN NS ns16.ovh.net. 60 IN NS dns16.ovh.net. 60 IN A ${config.krebs.hosts.prism.nets.internet.ip4.addr} + IN MX 5 lassul.us. 60 IN TXT v=spf1 mx a:lassul.us -all 60 IN TXT ( "v=DKIM1; k=rsa; t=s; s=*; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDUv3DMndFellqu208feABEzT/PskOfTSdJCOF/HELBR0PHnbBeRoeHEm9XAcOe/Mz2t/ysgZ6JFXeFxCtoM5fG20brUMRzsVRxb9Ur5cEvOYuuRrbChYcKa+fopu8pYrlrqXD3miHISoy6ErukIYCRpXWUJHi1TlNQhLWFYqAaywIDAQAB" ) default._domainkey 60 IN TXT "k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDUv3DMndFellqu208feABEzT/PskOfTSdJCOF/HELBR0PHnbBeRoeHEm9XAcOe/Mz2t/ysgZ6JFXeFxCtoM5fG20brUMRzsVRxb9Ur5cEvOYuuRrbChYcKa+fopu8pYrlrqXD3miHISoy6ErukIYCRpXWUJHi1TlNQhLWFYqAaywIDAQAB" -- cgit v1.2.3 From 372c3514a9696b034c37c48bf24770767c4829ec Mon Sep 17 00:00:00 2001 From: lassulus Date: Mon, 25 May 2020 16:08:51 +0200 Subject: nixpkgs: f45ccd9 -> 48723f4 --- krebs/nixpkgs.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/krebs/nixpkgs.json b/krebs/nixpkgs.json index ecf2df03..8fd80096 100644 --- a/krebs/nixpkgs.json +++ b/krebs/nixpkgs.json @@ -1,7 +1,7 @@ { "url": "https://github.com/NixOS/nixpkgs-channels", - "rev": "f45ccd9d20b4e90e43c4562b9941ea1dbd8f07a4", - "date": "2020-05-20T11:42:56+02:00", - "sha256": "10476ij19glhs2yy1pmvm0azd75ifjchpfbljn7h1cnnpii1xprc", + "rev": "48723f48ab92381f0afd50143f38e45cf3080405", + "date": "2020-05-22T11:40:20+02:00", + "sha256": "0h3b3l867j3ybdgimfn76lw7w6yjhszd5x02pq5827l659ihcf53", "fetchSubmodules": false } -- cgit v1.2.3 From 211e2ca6b9a1d8b4dd92071065b0b595123fe282 Mon Sep 17 00:00:00 2001 From: lassulus Date: Mon, 25 May 2020 16:10:27 +0200 Subject: nixpkgs-unstable: b61999e -> 0f5ce2f --- krebs/nixpkgs-unstable.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/krebs/nixpkgs-unstable.json b/krebs/nixpkgs-unstable.json index 8f426cc0..c64d4386 100644 --- a/krebs/nixpkgs-unstable.json +++ b/krebs/nixpkgs-unstable.json @@ -1,7 +1,7 @@ { "url": "https://github.com/NixOS/nixpkgs-channels", - "rev": "b61999e4ad60c351b4da63ae3ff43aae3c0bbdfb", - "date": "2020-04-16T08:43:36-04:00", - "sha256": "0cggpdks4qscyirqwfprgdl91mlhjlw24wkg0riapk5f2g2llbpq", + "rev": "0f5ce2fac0c726036ca69a5524c59a49e2973dd4", + "date": "2020-05-19T01:31:20+02:00", + "sha256": "0nkk492aa7pr0d30vv1aw192wc16wpa1j02925pldc09s9m9i0r3", "fetchSubmodules": false } -- cgit v1.2.3 From 0ae752cefe8aa92e00ab704844309bc2de58adbf Mon Sep 17 00:00:00 2001 From: tv Date: Fri, 29 May 2020 12:40:51 +0200 Subject: python-dnsstamps: init at 1.3.0 --- krebs/5pkgs/simple/python-dnsstamps.nix | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 krebs/5pkgs/simple/python-dnsstamps.nix diff --git a/krebs/5pkgs/simple/python-dnsstamps.nix b/krebs/5pkgs/simple/python-dnsstamps.nix new file mode 100644 index 00000000..18d08fec --- /dev/null +++ b/krebs/5pkgs/simple/python-dnsstamps.nix @@ -0,0 +1,21 @@ +{ python3Packages, lib }: + +python3Packages.buildPythonPackage rec { + pname = "dnsstamps"; + version = "1.3.0"; + + src = python3Packages.fetchPypi { + inherit pname version; + hash = "sha256:1v334glljw60h9v739jgl8hmyldaawbpv55bbhwq1hcwm5lvdk13"; + }; + + postInstall = '' + mv $out/bin/dnsstamp.py $out/bin/dnsstamp + ''; + + meta = { + description = "Create and parse DNS stamps with ease"; + homepage = "https://github.com/chrisss404/python-dnsstamps"; + license = lib.licenses.mit; + }; +} -- cgit v1.2.3 From 8b2a87d7e12c345246d6da439754f45a5a9f3ad0 Mon Sep 17 00:00:00 2001 From: tv Date: Tue, 2 Jun 2020 22:48:44 +0200 Subject: urlwatch: modernize user config --- krebs/3modules/urlwatch.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/krebs/3modules/urlwatch.nix b/krebs/3modules/urlwatch.nix index 43535b08..0b7a71db 100644 --- a/krebs/3modules/urlwatch.nix +++ b/krebs/3modules/urlwatch.nix @@ -189,8 +189,8 @@ let ''; }; }; - users.extraUsers = singleton { - inherit (user) name uid; + users.users.${user.name} = { + inherit (user) uid; home = cfg.dataDir; createHome = true; }; -- cgit v1.2.3 From 09e620c79b70e495e9651e8e5c1b160dd1b5fb8d Mon Sep 17 00:00:00 2001 From: tv Date: Tue, 2 Jun 2020 23:32:15 +0200 Subject: tv xu: modernize luks config --- tv/1systems/xu/config.nix | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/tv/1systems/xu/config.nix b/tv/1systems/xu/config.nix index 33f9539c..503142b9 100644 --- a/tv/1systems/xu/config.nix +++ b/tv/1systems/xu/config.nix @@ -113,9 +113,7 @@ with import ; boot.initrd.luks = { cryptoModules = [ "aes" "sha512" "xts" ]; - devices = [ - { name = "xuca"; device = "/dev/sda2"; } - ]; + devices.xuca.device = "/dev/sda2"; }; fileSystems = { -- cgit v1.2.3 From d9664153486e33d2e5fb2767f8a431c364e933ef Mon Sep 17 00:00:00 2001 From: tv Date: Tue, 2 Jun 2020 23:37:02 +0200 Subject: krops: v1.19.0 -> v1.21.0 --- submodules/krops | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/krops b/submodules/krops index f1b7112a..55aa2c77 160000 --- a/submodules/krops +++ b/submodules/krops @@ -1 +1 @@ -Subproject commit f1b7112ac3cbe090e96f2c82c525b6db69b82034 +Subproject commit 55aa2c77ce8183f3d2b24f54efa33ab6a42e1e02 -- cgit v1.2.3 From 6722c8b823f6463bd2bf53395223a56c63a535a5 Mon Sep 17 00:00:00 2001 From: tv Date: Wed, 3 Jun 2020 00:44:03 +0200 Subject: tv urlwatch: add workaround for thp.io --- tv/2configs/urlwatch.nix | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tv/2configs/urlwatch.nix b/tv/2configs/urlwatch.nix index 378b5d16..619b0445 100644 --- a/tv/2configs/urlwatch.nix +++ b/tv/2configs/urlwatch.nix @@ -24,7 +24,13 @@ in { http://www.exim.org/ # ref src/nixpkgs/pkgs/tools/networking/urlwatch/default.nix - https://thp.io/2008/urlwatch/ + { + url = https://thp.io/2008/urlwatch/; + # workaround: ('Received response with content-encoding: gzip, but + # failed to decode it.', error('Error -3 while decompressing data: + # incorrect header check',)) + ignore_cached = true; + } # 2015-02-18 # ref ~/src/nixpkgs/pkgs/tools/text/qprint/default.nix -- cgit v1.2.3 From 6ad7a8801cbc68ce481ae936983178709779c813 Mon Sep 17 00:00:00 2001 From: tv Date: Wed, 3 Jun 2020 00:46:03 +0200 Subject: tv dnsmasq: listen only on configured interfaces --- tv/3modules/dnsmasq.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tv/3modules/dnsmasq.nix b/tv/3modules/dnsmasq.nix index ec927f98..ab24ac08 100644 --- a/tv/3modules/dnsmasq.nix +++ b/tv/3modules/dnsmasq.nix @@ -31,8 +31,9 @@ in { }; services.dnsmasq.enable = true; services.dnsmasq.extraConfig = '' + bind-interfaces dhcp-range=${cfg.dhcp-range} - interface=${cfg.interface} + listen-address=${cfg.address} ''; tv.iptables.extra.filter.INPUT = [ "-i ${cfg.interface} -p tcp -m tcp --dport bootps -j ACCEPT" -- cgit v1.2.3 From 739db44f3fee490d7d6581500c9201de58c6bb96 Mon Sep 17 00:00:00 2001 From: tv Date: Wed, 3 Jun 2020 10:38:48 +0200 Subject: tv Xresources: enable service when using xserver --- tv/3modules/Xresources.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tv/3modules/Xresources.nix b/tv/3modules/Xresources.nix index ce7ac9ac..ab233dd6 100644 --- a/tv/3modules/Xresources.nix +++ b/tv/3modules/Xresources.nix @@ -1,7 +1,7 @@ with import ; { config, pkgs, ... }: let cfg = { - enable = config.tv.Xresources != {}; + enable = config.services.xserver.enable && config.tv.Xresources != {}; user = config.krebs.build.user; }; in { -- cgit v1.2.3 From 73e17dfed0da4a2557771f6f2274f554c03aa0fd Mon Sep 17 00:00:00 2001 From: tv Date: Wed, 3 Jun 2020 20:41:10 +0200 Subject: tv xmonad: configure prompt font --- tv/5pkgs/haskell/xmonad-tv/src/main.hs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tv/5pkgs/haskell/xmonad-tv/src/main.hs b/tv/5pkgs/haskell/xmonad-tv/src/main.hs index 047239eb..c83b411b 100644 --- a/tv/5pkgs/haskell/xmonad-tv/src/main.hs +++ b/tv/5pkgs/haskell/xmonad-tv/src/main.hs @@ -18,6 +18,7 @@ import XMonad.Actions.CycleWS (toggleWS) import XMonad.Layout.NoBorders ( smartBorders ) import XMonad.Layout.ResizableTile (ResizableTall(ResizableTall)) import XMonad.Layout.ResizableTile (MirrorResize(MirrorExpand,MirrorShrink)) +import qualified XMonad.Prompt import qualified XMonad.StackSet as W import Data.Map (Map) import qualified Data.Map as Map @@ -154,8 +155,8 @@ myKeys conf = Map.fromList $ , ((_4 , xK_comma ), sendMessage $ IncMasterN 1) , ((_4 , xK_period ), sendMessage $ IncMasterN (-1)) - , ((_4 , xK_a ), addWorkspacePrompt def) - , ((_4 , xK_r ), renameWorkspace def) + , ((_4 , xK_a ), addWorkspacePrompt promptXPConfig) + , ((_4 , xK_r ), renameWorkspace promptXPConfig) , ((_4 , xK_Delete ), removeEmptyWorkspace) , ((_4 , xK_Return ), toggleWS) @@ -189,6 +190,9 @@ myKeys conf = Map.fromList $ resetLayout = setLayout $ XMonad.layoutHook conf + promptXPConfig = + def { XMonad.Prompt.font = myFont } + pagerConfig :: PagerConfig pagerConfig = def -- cgit v1.2.3 From 09c8cddd46bcf10bd182ce32be61dee27ba8e865 Mon Sep 17 00:00:00 2001 From: tv Date: Thu, 4 Jun 2020 17:30:22 +0200 Subject: tv zu: modernize luks config --- tv/1systems/zu/config.nix | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/tv/1systems/zu/config.nix b/tv/1systems/zu/config.nix index bbfcfafc..5a69601e 100644 --- a/tv/1systems/zu/config.nix +++ b/tv/1systems/zu/config.nix @@ -18,9 +18,7 @@ with import ; boot.initrd.luks = { cryptoModules = [ "aes" "sha512" "xts" ]; - devices = [ - { name = "zuca"; device = "/dev/sda2"; } - ]; + devices.zuca.device = "/dev/sda2"; }; fileSystems = { -- cgit v1.2.3 From 670f6ac480fda3ac232bfeac467d7bdb7c81d344 Mon Sep 17 00:00:00 2001 From: tv Date: Thu, 4 Jun 2020 18:00:21 +0200 Subject: tv nomic: modernize luks config --- tv/1systems/nomic/config.nix | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/tv/1systems/nomic/config.nix b/tv/1systems/nomic/config.nix index 86f9b7ec..cd8988d0 100644 --- a/tv/1systems/nomic/config.nix +++ b/tv/1systems/nomic/config.nix @@ -17,9 +17,7 @@ with import ; boot.initrd.luks = { cryptoModules = [ "aes" "sha512" "xts" ]; - devices = [ - { name = "luks1"; device = "/dev/sda2"; } - ]; + devices.luks1.device = "/dev/sda2"; }; # Don't use UEFI because current disk was partitioned/formatted for AO753. -- cgit v1.2.3 From 027864ec937ae7a7b8e4878e1f56e7d649e87e86 Mon Sep 17 00:00:00 2001 From: tv Date: Thu, 4 Jun 2020 20:04:18 +0200 Subject: tv querel displayManager: auto -> lightdm --- tv/1systems/querel/config.nix | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/tv/1systems/querel/config.nix b/tv/1systems/querel/config.nix index ac51f54e..06407400 100644 --- a/tv/1systems/querel/config.nix +++ b/tv/1systems/querel/config.nix @@ -75,10 +75,7 @@ with import ; }; services.xserver.desktopManager.plasma5.enable = true; - services.xserver.displayManager.auto = { - enable = true; - user = "itak"; - }; + services.xserver.displayManager.lightdm.enable = true; users.users.itak = { inherit (config.krebs.users.itak) home uid; -- cgit v1.2.3 From 344684d8a9aeb7cb3f3b90fcfffa5fee7dd231a2 Mon Sep 17 00:00:00 2001 From: tv Date: Thu, 4 Jun 2020 20:20:49 +0200 Subject: tv querel: enable autoLogin --- tv/1systems/querel/config.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tv/1systems/querel/config.nix b/tv/1systems/querel/config.nix index 06407400..e58a9b21 100644 --- a/tv/1systems/querel/config.nix +++ b/tv/1systems/querel/config.nix @@ -75,6 +75,9 @@ with import ; }; services.xserver.desktopManager.plasma5.enable = true; + + services.xserver.displayManager.lightdm.autoLogin.enable = true; + services.xserver.displayManager.lightdm.autoLogin.user = "itak"; services.xserver.displayManager.lightdm.enable = true; users.users.itak = { -- cgit v1.2.3 From 14fb6c5c5558fe5cb461ea8df307640148bd8512 Mon Sep 17 00:00:00 2001 From: tv Date: Thu, 4 Jun 2020 20:22:42 +0200 Subject: tv nomic: enable ~/bin --- tv/1systems/nomic/config.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tv/1systems/nomic/config.nix b/tv/1systems/nomic/config.nix index cd8988d0..38cc6236 100644 --- a/tv/1systems/nomic/config.nix +++ b/tv/1systems/nomic/config.nix @@ -45,6 +45,8 @@ with import ; fsType = "btrfs"; }; + environment.homeBinInPath = true; + environment.systemPackages = with pkgs; [ (writeDashBin "play" '' set -euf -- cgit v1.2.3 From 156105623451f5749c43ced91318a088ed38f0eb Mon Sep 17 00:00:00 2001 From: tv Date: Thu, 4 Jun 2020 20:26:53 +0200 Subject: tv alnus: modernize luks config --- tv/1systems/alnus/config.nix | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/tv/1systems/alnus/config.nix b/tv/1systems/alnus/config.nix index d54d5fc2..21583f74 100644 --- a/tv/1systems/alnus/config.nix +++ b/tv/1systems/alnus/config.nix @@ -11,10 +11,8 @@ with import ; boot = { initrd = { availableKernelModules = [ "ahci" ]; - luks = { - cryptoModules = [ "aes" "sha512" "xts" ]; - devices = [ { name = "luksroot"; device = "/dev/sda2"; } ]; - }; + luks.cryptoModules = [ "aes" "sha512" "xts" ]; + luks.devices.luksroot.devices = "/dev/sda2"; }; }; -- cgit v1.2.3 From 8ae780cf2689a0e62718fe0dcc8b80e584f68d23 Mon Sep 17 00:00:00 2001 From: tv Date: Sun, 7 Jun 2020 11:05:26 +0200 Subject: tv wu: modernize luks config --- tv/1systems/wu/config.nix | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/tv/1systems/wu/config.nix b/tv/1systems/wu/config.nix index 4c491d65..d4114f00 100644 --- a/tv/1systems/wu/config.nix +++ b/tv/1systems/wu/config.nix @@ -18,9 +18,7 @@ with import ; boot.initrd.luks = { cryptoModules = [ "aes" "sha512" "xts" ]; - devices = [ - { name = "wuca"; device = "/dev/sda2"; } - ]; + devices.wuca.device = "/dev/sda2"; }; fileSystems = { -- cgit v1.2.3