style: format entire depot with nixpkgs-fmt
This CL can be used to compare the style of nixpkgs-fmt against other formatters (nixpkgs, alejandra). Change-Id: I87c6abff6bcb546b02ead15ad0405f81e01b6d9e Reviewed-on: https://cl.tvl.fyi/c/depot/+/4397 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org> Reviewed-by: lukegb <lukegb@tvl.fyi> Reviewed-by: wpcarro <wpcarro@gmail.com> Reviewed-by: Profpatsch <mail@profpatsch.de> Reviewed-by: kanepyork <rikingcoding@gmail.com> Reviewed-by: tazjin <tazjin@tvl.su> Reviewed-by: cynthia <cynthia@tvl.fyi> Reviewed-by: edef <edef@edef.eu> Reviewed-by: eta <tvl@eta.st> Reviewed-by: grfn <grfn@gws.fyi>
This commit is contained in:
parent
2d10d60fac
commit
aa122cbae7
310 changed files with 7278 additions and 5490 deletions
|
|
@ -11,12 +11,16 @@ let
|
|||
getDay = f: head (matchSolution f);
|
||||
|
||||
solutionFiles = filter (e: dir."${e}" == "regular" && isSolution e) (attrNames dir);
|
||||
solutions = map (f: let day = getDay f; in {
|
||||
name = day;
|
||||
value = depot.nix.writeElispBin {
|
||||
name = "aoc2019";
|
||||
deps = p: with p; [ dash s ht ];
|
||||
src = ./. + ("/" + f);
|
||||
};
|
||||
}) solutionFiles;
|
||||
in listToAttrs solutions
|
||||
solutions = map
|
||||
(f:
|
||||
let day = getDay f; in {
|
||||
name = day;
|
||||
value = depot.nix.writeElispBin {
|
||||
name = "aoc2019";
|
||||
deps = p: with p; [ dash s ht ];
|
||||
src = ./. + ("/" + f);
|
||||
};
|
||||
})
|
||||
solutionFiles;
|
||||
in
|
||||
listToAttrs solutions
|
||||
|
|
|
|||
|
|
@ -11,12 +11,16 @@ let
|
|||
getDay = f: head (matchSolution f);
|
||||
|
||||
solutionFiles = filter (e: dir."${e}" == "regular" && isSolution e) (attrNames dir);
|
||||
solutions = map (f: let day = getDay f; in depot.nix.writeElispBin {
|
||||
name = day;
|
||||
deps = p: with p; [ dash s ht p.f ];
|
||||
src = ./. + ("/" + f);
|
||||
}) solutionFiles;
|
||||
in pkgs.symlinkJoin {
|
||||
solutions = map
|
||||
(f:
|
||||
let day = getDay f; in depot.nix.writeElispBin {
|
||||
name = day;
|
||||
deps = p: with p; [ dash s ht p.f ];
|
||||
src = ./. + ("/" + f);
|
||||
})
|
||||
solutionFiles;
|
||||
in
|
||||
pkgs.symlinkJoin {
|
||||
name = "aoc2020";
|
||||
paths = solutions;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ let
|
|||
|
||||
posts = filter includePost (list post (import ./posts.nix));
|
||||
|
||||
rendered = pkgs.runCommandNoCC "tazjins-blog" {} ''
|
||||
rendered = pkgs.runCommandNoCC "tazjins-blog" { } ''
|
||||
mkdir -p $out
|
||||
|
||||
${lib.concatStringsSep "\n" (map (post:
|
||||
|
|
@ -31,13 +31,16 @@ let
|
|||
) posts)}
|
||||
'';
|
||||
|
||||
in {
|
||||
in
|
||||
{
|
||||
inherit posts rendered config;
|
||||
|
||||
# Generate embeddable nginx configuration for redirects from old post URLs
|
||||
oldRedirects = lib.concatStringsSep "\n" (map (post: ''
|
||||
location ~* ^(/en)?/${post.oldKey} {
|
||||
return 301 https://tazj.in/blog/${post.key};
|
||||
}
|
||||
'') (filter (hasAttr "oldKey") posts));
|
||||
oldRedirects = lib.concatStringsSep "\n" (map
|
||||
(post: ''
|
||||
location ~* ^(/en)?/${post.oldKey} {
|
||||
return 301 https://tazj.in/blog/${post.key};
|
||||
}
|
||||
'')
|
||||
(filter (hasAttr "oldKey") posts));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@
|
|||
key = "the-smu-problem";
|
||||
title = "The SMU-problem of messaging apps";
|
||||
date = 1450354078;
|
||||
content =./posts/the-smu-problem.md;
|
||||
content = ./posts/the-smu-problem.md;
|
||||
oldKey = "1450354078";
|
||||
}
|
||||
{
|
||||
|
|
|
|||
|
|
@ -2,11 +2,12 @@
|
|||
{ depot, pkgs, ... }:
|
||||
|
||||
let
|
||||
checkZone = zone: file: pkgs.runCommandNoCC "${zone}-check" {} ''
|
||||
checkZone = zone: file: pkgs.runCommandNoCC "${zone}-check" { } ''
|
||||
${pkgs.bind}/bin/named-checkzone -i local ${zone} ${file} | tee $out
|
||||
'';
|
||||
|
||||
in depot.nix.readTree.drvTargets {
|
||||
kontemplate-works = checkZone "kontemplate.works"./kontemplate.works.zone;
|
||||
in
|
||||
depot.nix.readTree.drvTargets {
|
||||
kontemplate-works = checkZone "kontemplate.works" ./kontemplate.works.zone;
|
||||
tazj-in = checkZone "tazj.in" ./tazj.in.zone;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,166 +2,173 @@
|
|||
# and my personal Emacs configuration.
|
||||
{ lib, pkgs, ... }:
|
||||
|
||||
pkgs.makeOverridable({ emacs ? pkgs.emacsGcc }:
|
||||
let
|
||||
emacsWithPackages = (pkgs.emacsPackagesGen emacs).emacsWithPackages;
|
||||
pkgs.makeOverridable
|
||||
({ emacs ? pkgs.emacsGcc }:
|
||||
let
|
||||
emacsWithPackages = (pkgs.emacsPackagesGen emacs).emacsWithPackages;
|
||||
|
||||
# If switching telega versions, use this variable because it will
|
||||
# keep the version check, binary path and so on in sync.
|
||||
currentTelega = epkgs: epkgs.melpaPackages.telega;
|
||||
# If switching telega versions, use this variable because it will
|
||||
# keep the version check, binary path and so on in sync.
|
||||
currentTelega = epkgs: epkgs.melpaPackages.telega;
|
||||
|
||||
# $PATH for binaries that need to be available to Emacs
|
||||
emacsBinPath = lib.makeBinPath [
|
||||
(currentTelega pkgs.emacsPackages)
|
||||
pkgs.libwebp # for dwebp, required by telega
|
||||
];
|
||||
# $PATH for binaries that need to be available to Emacs
|
||||
emacsBinPath = lib.makeBinPath [
|
||||
(currentTelega pkgs.emacsPackages)
|
||||
pkgs.libwebp # for dwebp, required by telega
|
||||
];
|
||||
|
||||
identity = x: x;
|
||||
identity = x: x;
|
||||
|
||||
tazjinsEmacs = pkgfun: (emacsWithPackages(epkgs: pkgfun(with epkgs; [
|
||||
ace-link
|
||||
ace-window
|
||||
avy
|
||||
bazel
|
||||
browse-kill-ring
|
||||
cargo
|
||||
clojure-mode
|
||||
cmake-mode
|
||||
company
|
||||
counsel
|
||||
counsel-notmuch
|
||||
d-mode
|
||||
direnv
|
||||
dockerfile-mode
|
||||
eglot
|
||||
elfeed
|
||||
elixir-mode
|
||||
elm-mode
|
||||
erlang
|
||||
exwm
|
||||
flymake
|
||||
go-mode
|
||||
google-c-style
|
||||
gruber-darker-theme
|
||||
haskell-mode
|
||||
ht
|
||||
hydra
|
||||
idle-highlight-mode
|
||||
ivy
|
||||
ivy-prescient
|
||||
jq-mode
|
||||
kotlin-mode
|
||||
lsp-mode
|
||||
magit
|
||||
markdown-toc
|
||||
meson-mode
|
||||
multi-term
|
||||
multiple-cursors
|
||||
nginx-mode
|
||||
nix-mode
|
||||
notmuch
|
||||
paredit
|
||||
password-store
|
||||
pinentry
|
||||
polymode
|
||||
prescient
|
||||
protobuf-mode
|
||||
rainbow-delimiters
|
||||
rainbow-mode
|
||||
refine
|
||||
request
|
||||
restclient
|
||||
rust-mode
|
||||
sly
|
||||
string-edit
|
||||
swiper
|
||||
telephone-line
|
||||
terraform-mode
|
||||
toml-mode
|
||||
transient
|
||||
undo-tree
|
||||
use-package
|
||||
uuidgen
|
||||
vterm
|
||||
web-mode
|
||||
websocket
|
||||
which-key
|
||||
xelb
|
||||
yaml-mode
|
||||
yasnippet
|
||||
zoxide
|
||||
tazjinsEmacs = pkgfun: (emacsWithPackages (epkgs: pkgfun (with epkgs; [
|
||||
ace-link
|
||||
ace-window
|
||||
avy
|
||||
bazel
|
||||
browse-kill-ring
|
||||
cargo
|
||||
clojure-mode
|
||||
cmake-mode
|
||||
company
|
||||
counsel
|
||||
counsel-notmuch
|
||||
d-mode
|
||||
direnv
|
||||
dockerfile-mode
|
||||
eglot
|
||||
elfeed
|
||||
elixir-mode
|
||||
elm-mode
|
||||
erlang
|
||||
exwm
|
||||
flymake
|
||||
go-mode
|
||||
google-c-style
|
||||
gruber-darker-theme
|
||||
haskell-mode
|
||||
ht
|
||||
hydra
|
||||
idle-highlight-mode
|
||||
ivy
|
||||
ivy-prescient
|
||||
jq-mode
|
||||
kotlin-mode
|
||||
lsp-mode
|
||||
magit
|
||||
markdown-toc
|
||||
meson-mode
|
||||
multi-term
|
||||
multiple-cursors
|
||||
nginx-mode
|
||||
nix-mode
|
||||
notmuch
|
||||
paredit
|
||||
password-store
|
||||
pinentry
|
||||
polymode
|
||||
prescient
|
||||
protobuf-mode
|
||||
rainbow-delimiters
|
||||
rainbow-mode
|
||||
refine
|
||||
request
|
||||
restclient
|
||||
rust-mode
|
||||
sly
|
||||
string-edit
|
||||
swiper
|
||||
telephone-line
|
||||
terraform-mode
|
||||
toml-mode
|
||||
transient
|
||||
undo-tree
|
||||
use-package
|
||||
uuidgen
|
||||
vterm
|
||||
web-mode
|
||||
websocket
|
||||
which-key
|
||||
xelb
|
||||
yaml-mode
|
||||
yasnippet
|
||||
zoxide
|
||||
|
||||
# Wonky stuff
|
||||
(currentTelega epkgs)
|
||||
# Wonky stuff
|
||||
(currentTelega epkgs)
|
||||
|
||||
# Custom depot packages (either ours, or overridden ones)
|
||||
tvlPackages.dottime
|
||||
tvlPackages.nix-util
|
||||
tvlPackages.passively
|
||||
tvlPackages.rcirc
|
||||
tvlPackages.term-switcher
|
||||
tvlPackages.tvl
|
||||
])));
|
||||
# Custom depot packages (either ours, or overridden ones)
|
||||
tvlPackages.dottime
|
||||
tvlPackages.nix-util
|
||||
tvlPackages.passively
|
||||
tvlPackages.rcirc
|
||||
tvlPackages.term-switcher
|
||||
tvlPackages.tvl
|
||||
])));
|
||||
|
||||
# Tired of telega.el runtime breakages through tdlib
|
||||
# incompatibility. Target to make that a build failure instead.
|
||||
tdlibCheck =
|
||||
let
|
||||
tgEmacs = emacsWithPackages(epkgs: [ (currentTelega epkgs) ]);
|
||||
verifyTdlibVersion = builtins.toFile "verify-tdlib-version.el" ''
|
||||
(require 'telega)
|
||||
(defvar tdlib-version "${pkgs.tdlib.version}")
|
||||
(when (or (version< tdlib-version
|
||||
telega-tdlib-min-version)
|
||||
(and telega-tdlib-max-version
|
||||
(version< telega-tdlib-max-version
|
||||
tdlib-version)))
|
||||
(message "Found TDLib version %s, but require %s to %s"
|
||||
tdlib-version telega-tdlib-min-version telega-tdlib-max-version)
|
||||
(kill-emacs 1))
|
||||
'';
|
||||
in pkgs.runCommandNoCC "tdlibCheck" {} ''
|
||||
# Tired of telega.el runtime breakages through tdlib
|
||||
# incompatibility. Target to make that a build failure instead.
|
||||
tdlibCheck =
|
||||
let
|
||||
tgEmacs = emacsWithPackages (epkgs: [ (currentTelega epkgs) ]);
|
||||
verifyTdlibVersion = builtins.toFile "verify-tdlib-version.el" ''
|
||||
(require 'telega)
|
||||
(defvar tdlib-version "${pkgs.tdlib.version}")
|
||||
(when (or (version< tdlib-version
|
||||
telega-tdlib-min-version)
|
||||
(and telega-tdlib-max-version
|
||||
(version< telega-tdlib-max-version
|
||||
tdlib-version)))
|
||||
(message "Found TDLib version %s, but require %s to %s"
|
||||
tdlib-version telega-tdlib-min-version telega-tdlib-max-version)
|
||||
(kill-emacs 1))
|
||||
'';
|
||||
in
|
||||
pkgs.runCommandNoCC "tdlibCheck" { } ''
|
||||
export PATH="${emacsBinPath}:$PATH"
|
||||
${tgEmacs}/bin/emacs --script ${verifyTdlibVersion} && touch $out
|
||||
'';
|
||||
in
|
||||
lib.fix
|
||||
(self: l: f: pkgs.writeShellScriptBin "tazjins-emacs" ''
|
||||
export PATH="${emacsBinPath}:$PATH"
|
||||
${tgEmacs}/bin/emacs --script ${verifyTdlibVersion} && touch $out
|
||||
'';
|
||||
in lib.fix(self: l: f: pkgs.writeShellScriptBin "tazjins-emacs" ''
|
||||
export PATH="${emacsBinPath}:$PATH"
|
||||
exec ${tazjinsEmacs f}/bin/emacs \
|
||||
--debug-init \
|
||||
--no-site-file \
|
||||
--no-site-lisp \
|
||||
--no-init-file \
|
||||
--directory ${./config} ${if l != null then "--directory ${l}" else ""} \
|
||||
--eval "(require 'init)" $@
|
||||
'' // {
|
||||
# Call overrideEmacs with a function (pkgs -> pkgs) to modify the
|
||||
# packages that should be included in this Emacs distribution.
|
||||
overrideEmacs = f': self l f';
|
||||
|
||||
# Call withLocalConfig with the path to a *folder* containing a
|
||||
# `local.el` which provides local system configuration.
|
||||
withLocalConfig = confDir: self confDir f;
|
||||
|
||||
# Build a derivation that uses the specified local Emacs (i.e.
|
||||
# built outside of Nix) instead
|
||||
withLocalEmacs = emacsBin: pkgs.writeShellScriptBin "tazjins-emacs" ''
|
||||
export PATH="${emacsBinPath}:$PATH"
|
||||
export EMACSLOADPATH="${(tazjinsEmacs f).deps}/share/emacs/site-lisp:"
|
||||
exec ${emacsBin} \
|
||||
exec ${tazjinsEmacs f}/bin/emacs \
|
||||
--debug-init \
|
||||
--no-site-file \
|
||||
--no-site-lisp \
|
||||
--no-init-file \
|
||||
--directory ${./config} \
|
||||
${if l != null then "--directory ${l}" else ""} \
|
||||
--directory ${./config} ${if l != null then "--directory ${l}" else ""} \
|
||||
--eval "(require 'init)" $@
|
||||
'';
|
||||
'' // {
|
||||
# Call overrideEmacs with a function (pkgs -> pkgs) to modify the
|
||||
# packages that should be included in this Emacs distribution.
|
||||
overrideEmacs = f': self l f';
|
||||
|
||||
# Expose telega/tdlib version check as a target that is built in
|
||||
# CI.
|
||||
#
|
||||
# TODO(tazjin): uncomment when telega works again
|
||||
inherit tdlibCheck;
|
||||
# meta.targets = [ "tdlibCheck" ];
|
||||
}) null identity
|
||||
) {}
|
||||
# Call withLocalConfig with the path to a *folder* containing a
|
||||
# `local.el` which provides local system configuration.
|
||||
withLocalConfig = confDir: self confDir f;
|
||||
|
||||
# Build a derivation that uses the specified local Emacs (i.e.
|
||||
# built outside of Nix) instead
|
||||
withLocalEmacs = emacsBin: pkgs.writeShellScriptBin "tazjins-emacs" ''
|
||||
export PATH="${emacsBinPath}:$PATH"
|
||||
export EMACSLOADPATH="${(tazjinsEmacs f).deps}/share/emacs/site-lisp:"
|
||||
exec ${emacsBin} \
|
||||
--debug-init \
|
||||
--no-site-file \
|
||||
--no-site-lisp \
|
||||
--no-init-file \
|
||||
--directory ${./config} \
|
||||
${if l != null then "--directory ${l}" else ""} \
|
||||
--eval "(require 'init)" $@
|
||||
'';
|
||||
|
||||
# Expose telega/tdlib version check as a target that is built in
|
||||
# CI.
|
||||
#
|
||||
# TODO(tazjin): uncomment when telega works again
|
||||
inherit tdlibCheck;
|
||||
# meta.targets = [ "tdlibCheck" ];
|
||||
})
|
||||
null
|
||||
identity
|
||||
)
|
||||
{ }
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ let
|
|||
date = post.date;
|
||||
});
|
||||
|
||||
formatDate = defun [ int string ] (date: readFile (runCommandNoCC "date" {} ''
|
||||
formatDate = defun [ int string ] (date: readFile (runCommandNoCC "date" { } ''
|
||||
date --date='@${toString date}' '+%Y-%m-%d' > $out
|
||||
''));
|
||||
|
||||
|
|
@ -67,7 +67,8 @@ let
|
|||
pageEntries = import ./entries.nix;
|
||||
homepage = index ((map postToEntry users.tazjin.blog.posts) ++ pageEntries);
|
||||
atomFeed = import ./feed.nix (args // { inherit entry pageEntries; });
|
||||
in runCommandNoCC "website" {} ''
|
||||
in
|
||||
runCommandNoCC "website" { } ''
|
||||
mkdir $out
|
||||
cp ${homepage} $out/index.html
|
||||
cp ${atomFeed} $out/feed.atom
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ let
|
|||
});
|
||||
|
||||
allEntries = (with depot.users.tazjin.blog; map (blog.toFeedEntry config) posts)
|
||||
++ (map pageEntryToEntry pageEntries);
|
||||
++ (map pageEntryToEntry pageEntries);
|
||||
|
||||
feed = {
|
||||
id = "https://tazj.in/";
|
||||
|
|
@ -39,4 +39,5 @@ let
|
|||
|
||||
entries = allEntries;
|
||||
};
|
||||
in writeText "feed.atom" (atom-feed.renderFeed feed)
|
||||
in
|
||||
writeText "feed.atom" (atom-feed.renderFeed feed)
|
||||
|
|
|
|||
|
|
@ -1,7 +1,8 @@
|
|||
# This file configures camden.tazj.in, my homeserver.
|
||||
{ depot, pkgs, lib, ... }:
|
||||
|
||||
config: let
|
||||
config:
|
||||
let
|
||||
nginxRedirect = { from, to, acmeHost }: {
|
||||
serverName = from;
|
||||
useACMEHost = acmeHost;
|
||||
|
|
@ -9,18 +10,21 @@ config: let
|
|||
|
||||
extraConfig = "return 301 https://${to}$request_uri;";
|
||||
};
|
||||
in lib.fix(self: {
|
||||
in
|
||||
lib.fix (self: {
|
||||
# Disable the current ACME module and use the old one from 19.09
|
||||
# instead, until the various regressions have been sorted out.
|
||||
# TODO(tazjin): Remove this once the new ACME module works.
|
||||
disabledModules = [ "security/acme" ];
|
||||
imports =
|
||||
let oldChannel = fetchTarball {
|
||||
# NixOS 19.09 on 2020-10-04
|
||||
url = "https://github.com/NixOS/nixpkgs-channels/archive/75f4ba05c63be3f147bcc2f7bd4ba1f029cedcb1.tar.gz";
|
||||
sha256 = "157c64220lf825ll4c0cxsdwg7cxqdx4z559fdp7kpz0g6p8fhhr";
|
||||
};
|
||||
in [
|
||||
let
|
||||
oldChannel = fetchTarball {
|
||||
# NixOS 19.09 on 2020-10-04
|
||||
url = "https://github.com/NixOS/nixpkgs-channels/archive/75f4ba05c63be3f147bcc2f7bd4ba1f029cedcb1.tar.gz";
|
||||
sha256 = "157c64220lf825ll4c0cxsdwg7cxqdx4z559fdp7kpz0g6p8fhhr";
|
||||
};
|
||||
in
|
||||
[
|
||||
"${depot.path}/ops/modules/quassel.nix"
|
||||
"${depot.path}/ops/modules/smtprelay.nix"
|
||||
"${oldChannel}/nixos/modules/security/acme.nix"
|
||||
|
|
@ -37,8 +41,14 @@ in lib.fix(self: {
|
|||
boot = {
|
||||
initrd = {
|
||||
availableKernelModules = [
|
||||
"ahci" "xhci_pci" "usbhid" "usb_storage" "sd_mod" "sdhci_pci"
|
||||
"rtsx_usb_sdmmc" "r8169"
|
||||
"ahci"
|
||||
"xhci_pci"
|
||||
"usbhid"
|
||||
"usb_storage"
|
||||
"sd_mod"
|
||||
"sdhci_pci"
|
||||
"rtsx_usb_sdmmc"
|
||||
"r8169"
|
||||
];
|
||||
|
||||
kernelModules = [ "dm-snapshot" ];
|
||||
|
|
@ -152,7 +162,7 @@ in lib.fix(self: {
|
|||
};
|
||||
|
||||
# Set up a user & group for general git shenanigans
|
||||
groups.git = {};
|
||||
groups.git = { };
|
||||
users.git = {
|
||||
group = "git";
|
||||
isSystemUser = true;
|
||||
|
|
@ -220,9 +230,9 @@ in lib.fix(self: {
|
|||
|
||||
# Forward logs to Google Cloud Platform
|
||||
services.journaldriver = {
|
||||
enable = true;
|
||||
logStream = "home";
|
||||
googleCloudProject = "tazjins-infrastructure";
|
||||
enable = true;
|
||||
logStream = "home";
|
||||
googleCloudProject = "tazjins-infrastructure";
|
||||
applicationCredentials = "/etc/gcp/key.json";
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
{ depot, lib, pkgs, ... }:
|
||||
|
||||
config: let
|
||||
config:
|
||||
let
|
||||
inherit (pkgs) lieer;
|
||||
|
||||
quasselClient = pkgs.quassel.override {
|
||||
|
|
@ -8,7 +9,8 @@ config: let
|
|||
enableDaemon = false;
|
||||
monolithic = false;
|
||||
};
|
||||
in lib.fix(self: {
|
||||
in
|
||||
lib.fix (self: {
|
||||
imports = [
|
||||
"${depot.path}/ops/modules/v4l2loopback.nix"
|
||||
];
|
||||
|
|
@ -61,8 +63,8 @@ in lib.fix(self: {
|
|||
|
||||
nix = {
|
||||
maxJobs = 48;
|
||||
binaryCaches = ["ssh://nix-ssh@whitby.tvl.fyi"];
|
||||
binaryCachePublicKeys = ["cache.tvl.fyi:fd+9d1ceCPvDX/xVhcfv8nAa6njEhAGAEe+oGJDEeoc="];
|
||||
binaryCaches = [ "ssh://nix-ssh@whitby.tvl.fyi" ];
|
||||
binaryCachePublicKeys = [ "cache.tvl.fyi:fd+9d1ceCPvDX/xVhcfv8nAa6njEhAGAEe+oGJDEeoc=" ];
|
||||
};
|
||||
|
||||
networking = {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
{ depot, lib, pkgs, ... }:
|
||||
|
||||
config: let
|
||||
config:
|
||||
let
|
||||
quasselClient = pkgs.quassel.override {
|
||||
client = true;
|
||||
enableDaemon = false;
|
||||
|
|
@ -15,7 +16,8 @@ config: let
|
|||
${pkgs.xorg.setxkbmap}/bin/setxkbmap -option caps:super
|
||||
exec ${pkgs.xsecurelock}/bin/xsecurelock
|
||||
'';
|
||||
in lib.fix(self: {
|
||||
in
|
||||
lib.fix (self: {
|
||||
imports = [
|
||||
"${depot.third_party.impermanence}/nixos.nix"
|
||||
"${pkgs.home-manager.src}/nixos"
|
||||
|
|
@ -43,7 +45,7 @@ in lib.fix(self: {
|
|||
};
|
||||
|
||||
fileSystems = {
|
||||
"/" = {
|
||||
"/" = {
|
||||
device = "tmpfs";
|
||||
fsType = "tmpfs";
|
||||
options = [ "defaults" "size=8G" "mode=755" ];
|
||||
|
|
@ -320,109 +322,109 @@ in lib.fix(self: {
|
|||
zoxide
|
||||
]);
|
||||
|
||||
systemd.user.services.lieer-tazjin = {
|
||||
description = "Synchronise mail@tazj.in via lieer";
|
||||
script = "${pkgs.lieer}/bin/gmi sync";
|
||||
systemd.user.services.lieer-tazjin = {
|
||||
description = "Synchronise mail@tazj.in via lieer";
|
||||
script = "${pkgs.lieer}/bin/gmi sync";
|
||||
|
||||
serviceConfig = {
|
||||
WorkingDirectory = "%h/mail/account.tazjin";
|
||||
Type = "oneshot";
|
||||
serviceConfig = {
|
||||
WorkingDirectory = "%h/mail/account.tazjin";
|
||||
Type = "oneshot";
|
||||
};
|
||||
};
|
||||
|
||||
systemd.user.timers.lieer-tazjin = {
|
||||
wantedBy = [ "timers.target" ];
|
||||
|
||||
timerConfig = {
|
||||
OnActiveSec = "1";
|
||||
OnUnitActiveSec = "180";
|
||||
};
|
||||
};
|
||||
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.users.tazjin = { config, lib, ... }: {
|
||||
imports = [ "${depot.third_party.impermanence}/home-manager.nix" ];
|
||||
|
||||
home.persistence."/persist/tazjin/home" = {
|
||||
allowOther = true;
|
||||
|
||||
directories = [
|
||||
".cargo"
|
||||
".config/audacity"
|
||||
".config/google-chrome"
|
||||
".config/quassel-irc.org"
|
||||
".config/spotify"
|
||||
".config/syncthing"
|
||||
".elfeed"
|
||||
".gnupg"
|
||||
".local/share/Steam"
|
||||
".local/share/audacity"
|
||||
".local/share/direnv"
|
||||
".local/share/fish"
|
||||
".local/share/keyrings"
|
||||
".local/share/zoxide"
|
||||
".mozilla/firefox"
|
||||
".password-store"
|
||||
".rustup"
|
||||
".ssh"
|
||||
".steam"
|
||||
".telega"
|
||||
"go"
|
||||
"mail"
|
||||
];
|
||||
|
||||
files = [
|
||||
".notmuch-config"
|
||||
];
|
||||
};
|
||||
|
||||
home.activation.screenshots = lib.hm.dag.entryAnywhere ''
|
||||
$DRY_RUN_CMD mkdir -p $HOME/screenshots
|
||||
'';
|
||||
|
||||
programs.git = {
|
||||
enable = true;
|
||||
userName = "Vincent Ambo";
|
||||
userEmail = "mail@tazj.in";
|
||||
extraConfig = {
|
||||
pull.rebase = true;
|
||||
init.defaultBranch = "canon";
|
||||
};
|
||||
};
|
||||
|
||||
systemd.user.timers.lieer-tazjin = {
|
||||
wantedBy = [ "timers.target" ];
|
||||
|
||||
timerConfig = {
|
||||
OnActiveSec = "1";
|
||||
OnUnitActiveSec = "180";
|
||||
};
|
||||
};
|
||||
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.users.tazjin = { config, lib, ... }: {
|
||||
imports = [ "${depot.third_party.impermanence}/home-manager.nix" ];
|
||||
|
||||
home.persistence."/persist/tazjin/home" = {
|
||||
allowOther = true;
|
||||
|
||||
directories = [
|
||||
".cargo"
|
||||
".config/audacity"
|
||||
".config/google-chrome"
|
||||
".config/quassel-irc.org"
|
||||
".config/spotify"
|
||||
".config/syncthing"
|
||||
".elfeed"
|
||||
".gnupg"
|
||||
".local/share/Steam"
|
||||
".local/share/audacity"
|
||||
".local/share/direnv"
|
||||
".local/share/fish"
|
||||
".local/share/keyrings"
|
||||
".local/share/zoxide"
|
||||
".mozilla/firefox"
|
||||
".password-store"
|
||||
".rustup"
|
||||
".ssh"
|
||||
".steam"
|
||||
".telega"
|
||||
"go"
|
||||
"mail"
|
||||
];
|
||||
|
||||
files = [
|
||||
".notmuch-config"
|
||||
];
|
||||
};
|
||||
|
||||
home.activation.screenshots = lib.hm.dag.entryAnywhere ''
|
||||
$DRY_RUN_CMD mkdir -p $HOME/screenshots
|
||||
programs.fish = {
|
||||
enable = true;
|
||||
interactiveShellInit = ''
|
||||
${pkgs.zoxide}/bin/zoxide init fish | source
|
||||
'';
|
||||
|
||||
programs.git = {
|
||||
enable = true;
|
||||
userName = "Vincent Ambo";
|
||||
userEmail = "mail@tazj.in";
|
||||
extraConfig = {
|
||||
pull.rebase = true;
|
||||
init.defaultBranch = "canon";
|
||||
};
|
||||
};
|
||||
|
||||
programs.fish = {
|
||||
enable = true;
|
||||
interactiveShellInit = ''
|
||||
${pkgs.zoxide}/bin/zoxide init fish | source
|
||||
'';
|
||||
};
|
||||
|
||||
services.screen-locker = {
|
||||
enable = true;
|
||||
enableDetectSleep = true;
|
||||
inactiveInterval = 10; # minutes
|
||||
lockCmd = "${screenLock}/bin/tazjin-screen-lock";
|
||||
};
|
||||
|
||||
services.picom = {
|
||||
enable = true;
|
||||
vSync = true;
|
||||
backend = "glx";
|
||||
};
|
||||
|
||||
# Enable the dunst notification daemon, but force the
|
||||
# configuration file separately instead of going via the strange
|
||||
# Nix->dunstrc encoding route.
|
||||
services.dunst.enable = true;
|
||||
xdg.configFile."dunst/dunstrc" = {
|
||||
source = depot.users.tazjin.dotfiles.dunstrc;
|
||||
onChange = ''
|
||||
${pkgs.procps}/bin/pkill -u "$USER" ''${VERBOSE+-e} dunst || true
|
||||
'';
|
||||
};
|
||||
|
||||
systemd.user.startServices = true;
|
||||
};
|
||||
|
||||
system.stateVersion = "20.09";
|
||||
services.screen-locker = {
|
||||
enable = true;
|
||||
enableDetectSleep = true;
|
||||
inactiveInterval = 10; # minutes
|
||||
lockCmd = "${screenLock}/bin/tazjin-screen-lock";
|
||||
};
|
||||
|
||||
services.picom = {
|
||||
enable = true;
|
||||
vSync = true;
|
||||
backend = "glx";
|
||||
};
|
||||
|
||||
# Enable the dunst notification daemon, but force the
|
||||
# configuration file separately instead of going via the strange
|
||||
# Nix->dunstrc encoding route.
|
||||
services.dunst.enable = true;
|
||||
xdg.configFile."dunst/dunstrc" = {
|
||||
source = depot.users.tazjin.dotfiles.dunstrc;
|
||||
onChange = ''
|
||||
${pkgs.procps}/bin/pkill -u "$USER" ''${VERBOSE+-e} dunst || true
|
||||
'';
|
||||
};
|
||||
|
||||
systemd.user.startServices = true;
|
||||
};
|
||||
|
||||
system.stateVersion = "20.09";
|
||||
})
|
||||
|
|
|
|||
|
|
@ -4,24 +4,26 @@
|
|||
|
||||
with pkgs;
|
||||
|
||||
let tex = texlive.combine {
|
||||
inherit (texlive)
|
||||
beamer
|
||||
beamertheme-metropolis
|
||||
etoolbox
|
||||
euenc
|
||||
extsizes
|
||||
fontspec
|
||||
lualibs
|
||||
luaotfload
|
||||
luatex
|
||||
minted
|
||||
ms
|
||||
pgfopts
|
||||
scheme-basic
|
||||
translator;
|
||||
};
|
||||
in stdenv.mkDerivation {
|
||||
let
|
||||
tex = texlive.combine {
|
||||
inherit (texlive)
|
||||
beamer
|
||||
beamertheme-metropolis
|
||||
etoolbox
|
||||
euenc
|
||||
extsizes
|
||||
fontspec
|
||||
lualibs
|
||||
luaotfload
|
||||
luatex
|
||||
minted
|
||||
ms
|
||||
pgfopts
|
||||
scheme-basic
|
||||
translator;
|
||||
};
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
name = "nuug-bootstrapping-slides";
|
||||
src = ./.;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue