From 43fa5a76e2cd35616c6dde8d711d642ff1b9bf51 Mon Sep 17 00:00:00 2001 From: Mx Kookie Date: Mon, 21 Dec 2020 06:23:30 +0100 Subject: code dump --- infra/libkookie/build | 1 + infra/libkookie/roots/uwu.nix | 110 +++++++++++++++++++++++++ infra/nom/README.md | 4 + infra/website/content/blog/xxx_nuance.md | 7 ++ infra/website/content/blog/xxx_timetracking.md | 29 +++++++ 5 files changed, 151 insertions(+) create mode 100644 infra/libkookie/roots/uwu.nix create mode 100644 infra/nom/README.md create mode 100644 infra/website/content/blog/xxx_nuance.md create mode 100644 infra/website/content/blog/xxx_timetracking.md diff --git a/infra/libkookie/build b/infra/libkookie/build index 227620c8519a..4ce8da17effb 100755 --- a/infra/libkookie/build +++ b/infra/libkookie/build @@ -24,6 +24,7 @@ function build { ## Build and output build path for debugging function debug { + build "$@" echo "Build path: $OUT" exec build "$@" } diff --git a/infra/libkookie/roots/uwu.nix b/infra/libkookie/roots/uwu.nix new file mode 100644 index 000000000000..a292ba04a228 --- /dev/null +++ b/infra/libkookie/roots/uwu.nix @@ -0,0 +1,110 @@ +/* TOP LEVEL DEVICE CONFIGURATION FOR + * + * uwu (Thinkpad X230) + * + * This file only contains settings that are specific to this one + * device (hardware and things outside of nix, like partitions). + * + * This file is part of LIBKOOKIE, a collection of nix expressions. + * LIBKOOKIE is licensed under the GPL-3.0 (or later) -- see LICENSE + */ + +{ lib, config, pkgs, ... }: + + +let + forActiveUsers = (attrs: + lib.listToAttrs (map (u: lib.nameValuePair "${u}" ({ ... }: attrs)) + [ "spacekookie" ])); +in +{ + nixpkgs.config.allowUnfree = true; + + imports = [ + + + # ../legacy/nix + # ../legacy/base + # ../legacy/docker + # ../legacy/workstation + # ../legacy/workstation/hardware/trackpoint + ]; + + libkookie = { + activeUsers = [ "spacekookie" ]; + userPath = ../configuration/users; + }; + + libkookie.emacs = { + enable = true; + }; + + # libkookie.ui.i3.enable = true; + + home-manager.users = forActiveUsers { + imports = []; + }; + + boot.kernelModules = [ "kvm-intel" ]; + boot.initrd.availableKernelModules = + [ "xhci_pci" "ehci_pci" "ahci" "sd_mod" "sdhci_pci" ]; + hardware.enableRedistributableFirmware = true; + + boot.loader.grub = { + copyKernels = true; + device = "/dev/sda"; + zfsSupport = true; + enableCryptodisk = true; + }; + + boot.extraModprobeConfig = "options kvm_item nested=1"; + boot.zfs.devNodes = "/dev"; # FIXME: Why do I set this? + boot.cleanTmpDir = true; + boot.tmpOnTmpfs = true; + boot.supportedFilesystems = [ "zfs" "exfat" ]; + + services.zfs.autoSnapshot.enable = true; + + fileSystems."/" = { + device = "zroot"; + fsType = "zfs"; + + encrypted = { + enable = true; + label = "lvm"; + blkDev = "/dev/disk/by-uuid/f1440abd-99e3-46a8-aa36-7824972fee54"; + }; + }; + + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/672c497c-18aa-4b00-ac95-78e810363d81"; + fsType = "ext3"; + }; + + swapDevices = [ + { device = "/dev/disk/by-uuid/bd3d5c22-eed0-4371-ae25-456b8dfe9356"; } + ]; + + nix.maxJobs = lib.mkDefault 4; + powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; + + programs.java.enable = true; + + # owo + networking.hostName = "uwu"; + networking.hostId = "a82ecf29"; + networking.wireguard.interfaces."intranet" = { + ips = [ "10.13.12.3" ]; + privateKeyFile = "/var/lib/wg/private"; + peers = [ + { publicKey = "ugHG/NOqM/9hde9EmWpu7XsCpjT3WQbjLK99IGHtdjQ="; + allowedIPs = [ "10.13.12.0/24" "10.172.171.0/24" ]; + endpoint = "hyperion.kookie.space:51820"; + persistentKeepalive = 25; } + ]; + }; + + system.stateVersion = "19.03"; + users.users.spacekookie.hashedPassword = "$6$rounds=1000000$22ypycQ2AlCCv8iC$RrzyAbCX3D518nCgfR3MTqZhfK.GAclme7EQlKTlqH4oV1YvGd/aHdTfe59iMpf/J18tqEO2aSXsevTVQz2yW."; + +} diff --git a/infra/nom/README.md b/infra/nom/README.md new file mode 100644 index 000000000000..6d2b7a1fe10d --- /dev/null +++ b/infra/nom/README.md @@ -0,0 +1,4 @@ +# Monorepo Manager (nom) + +nom is a tool to manage a monorepo, such as kookienomicon. It was +written with the goal of reducing command overhead in mind. diff --git a/infra/website/content/blog/xxx_nuance.md b/infra/website/content/blog/xxx_nuance.md new file mode 100644 index 000000000000..6d24cca90920 --- /dev/null +++ b/infra/website/content/blog/xxx_nuance.md @@ -0,0 +1,7 @@ +Title: The relativity of nunace +Category: Blog +Tags: culture, politics +Date: 2020-12-20 +Status: Draft + + diff --git a/infra/website/content/blog/xxx_timetracking.md b/infra/website/content/blog/xxx_timetracking.md new file mode 100644 index 000000000000..1b5d7a605837 --- /dev/null +++ b/infra/website/content/blog/xxx_timetracking.md @@ -0,0 +1,29 @@ +Title: Bikeshedding time tracking tooling +Category: Blog +Date: 2020-12-16 +Tags: /dev/diary +Status: Draft + + +For the past year and a half or so I've been self employed as a +freelancer ([hire me] btw). Since then I've been confronted with the +question of time tracking. It's not something I generally did for my +personal projects, and while working for a consultancy, I usually had +access to some proprietary/enterprise tool running in the browser that +would allow me to track time done on different clients or projects. + +[hire me]: mailto:kookie@spacekookie.de + +I never quite liked the workflow of these tools however. For one, too +many things are in the browser for my taste, and secondly they often +made it difficult to see statistics, bulk edit entries, or deal with +entries with overlapping days (which is a problem when working late at +night, like I occasionally do). + +So I decided to write my own tool. Two drafts (one in Ruby, one in +Rust) later, enter: [cassiopeia], a plain text terminal time tracking +tool. + +[cassiopeia]: https://git.spacekookie.de + + -- cgit v1.2.3