mirror of
https://github.com/kittywitch/nixfiles.git
synced 2026-02-09 12:29:19 -08:00
Compare commits
No commits in common. "4482ec422a111ce2f4290e4c495fa54444b42e65" and "4c6f2aa34a23e1bbe6d928a19abb7fa9e154fdc1" have entirely different histories.
4482ec422a
...
4c6f2aa34a
20 changed files with 101 additions and 209 deletions
18
TODO.md
18
TODO.md
|
|
@ -1,18 +0,0 @@
|
|||
# To-dos
|
||||
|
||||
- [ ] Make personal homepage o:
|
||||
- [ ] Make my own quickshell config
|
||||
|
||||
## New service deployments
|
||||
|
||||
- [ ] Fauna
|
||||
- [ ] Immich
|
||||
|
||||
## Migrations
|
||||
|
||||
- [ ] Move away from flakes to either npins or lon (not that they replied; https://github.com/nikstur/lon/issues/57#issue-3652308987)
|
||||
- [ ] Move to a setup similar to https://notashelf.dev/posts/impermanence - investigate encrypted swap WITH hibernation support
|
||||
- [ ] Move away from gmail fully
|
||||
- [ ] Move away from Discord primarily
|
||||
- [ ] Move away from Spotify fully
|
||||
- [ ] Move away from Cloudflare for DNS and hosting
|
||||
6
flake.lock
generated
6
flake.lock
generated
|
|
@ -1006,11 +1006,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1764853849,
|
||||
"narHash": "sha256-0J2wo7WLd5uRD769MXsCJqu1VwAhuA2hmIKr2+ltb6s=",
|
||||
"lastModified": 1753213430,
|
||||
"narHash": "sha256-2FNsT26OnFO3mh/0L42i7BNAN2JJhlIbmn+KB05CJMU=",
|
||||
"owner": "kittywitch",
|
||||
"repo": "konawall-py",
|
||||
"rev": "fcbf702ab31286231ef71e0a7260e99cd7bbab86",
|
||||
"rev": "c8877270497a34e0146342f942a093ef406c6fed",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
|
|||
|
|
@ -44,16 +44,16 @@ in {
|
|||
"Mod+Shift+Escape".action = sh ''${noctalia} sessionMenu toggle'';
|
||||
#"Mod+Shift+Escape".action = sh ''${getExe config.programs.swaylock.package} -f'';
|
||||
"Mod+L".action = sh ''${noctalia} lockScreen toggle'';
|
||||
#"Mod+Tab" = {
|
||||
# #repeat = false;
|
||||
# cooldown-ms = 150;
|
||||
# action.spawn = ["${getExe' pkgs.glib "gdbus"}" "call" "--session" "--dest" "io.github.isaksamsten.Niriswitcher" "--object-path" "/io/github/isaksamsten/Niriswitcher" "--method" "io.github.isaksamsten.Niriswitcher.application"];
|
||||
#};
|
||||
#"Mod+Shift+Tab" = {
|
||||
# cooldown-ms = 150;
|
||||
# #repeat = false;
|
||||
# action.spawn = ["${getExe' pkgs.glib "gdbus"}" "call" "--session" "--dest" "io.github.isaksamsten.Niriswitcher" "--object-path" "/io/github/isaksamsten/Niriswitcher" "--method" "io.github.isaksamsten.Niriswitcher.application"];
|
||||
#};
|
||||
"Mod+Tab" = {
|
||||
#repeat = false;
|
||||
cooldown-ms = 150;
|
||||
action.spawn = ["${getExe' pkgs.glib "gdbus"}" "call" "--session" "--dest" "io.github.isaksamsten.Niriswitcher" "--object-path" "/io/github/isaksamsten/Niriswitcher" "--method" "io.github.isaksamsten.Niriswitcher.application"];
|
||||
};
|
||||
"Mod+Shift+Tab" = {
|
||||
cooldown-ms = 150;
|
||||
#repeat = false;
|
||||
action.spawn = ["${getExe' pkgs.glib "gdbus"}" "call" "--session" "--dest" "io.github.isaksamsten.Niriswitcher" "--object-path" "/io/github/isaksamsten/Niriswitcher" "--method" "io.github.isaksamsten.Niriswitcher.application"];
|
||||
};
|
||||
"Mod+Shift+Ctrl+Page_Down".action.move-workspace-to-monitor-previous = {};
|
||||
"Mod+Shift+Ctrl+Page_Up".action.move-workspace-to-monitor-next = {};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -75,35 +75,32 @@ in {
|
|||
#deactivate-unfocused-windows = {};
|
||||
};
|
||||
workspaces = {
|
||||
"01" = {
|
||||
name = "一";
|
||||
"01-notes" = {
|
||||
name = "notes";
|
||||
};
|
||||
"02" = {
|
||||
name = "二";
|
||||
"02-chat" = {
|
||||
name = "chat";
|
||||
};
|
||||
"03" = {
|
||||
name = "三";
|
||||
"03-browser" = {
|
||||
name = "browser";
|
||||
};
|
||||
"04" = {
|
||||
name = "四";
|
||||
"04-code" = {
|
||||
name = "code";
|
||||
};
|
||||
"05" = {
|
||||
name = "五";
|
||||
"05-term" = {
|
||||
name = "term";
|
||||
};
|
||||
"06" = {
|
||||
name = "六";
|
||||
"06-mail" = {
|
||||
name = "mail";
|
||||
};
|
||||
"07" = {
|
||||
name = "七";
|
||||
"07-game" = {
|
||||
name = "game";
|
||||
};
|
||||
"08" = {
|
||||
name = "八";
|
||||
"08-video" = {
|
||||
name = "video";
|
||||
};
|
||||
"09" = {
|
||||
name = "九";
|
||||
};
|
||||
"10" = {
|
||||
name = "十";
|
||||
"09-audio" = {
|
||||
name = "audio";
|
||||
};
|
||||
};
|
||||
environment = {
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ in {
|
|||
backgroundOpacity = 0.9;
|
||||
monitors = [];
|
||||
density = "comfortable";
|
||||
showCapsule = false;
|
||||
showCapsule = true;
|
||||
floating = true;
|
||||
marginVertical = 0.25;
|
||||
marginHorizontal = 0.25;
|
||||
|
|
@ -22,8 +22,7 @@ in {
|
|||
left = [
|
||||
{
|
||||
id = "Workspace";
|
||||
labelMode = "index+name";
|
||||
characterCount = 10;
|
||||
labelMode = "name";
|
||||
}
|
||||
{
|
||||
id = "ActiveWindow";
|
||||
|
|
@ -31,11 +30,6 @@ in {
|
|||
}
|
||||
];
|
||||
center = [
|
||||
];
|
||||
right = [
|
||||
{
|
||||
id = "Tray";
|
||||
}
|
||||
{
|
||||
id = "MediaMini";
|
||||
showAlbumArt = true;
|
||||
|
|
@ -46,6 +40,30 @@ in {
|
|||
# if not, rewrite their system for it o.o
|
||||
widgetWidth = 300;
|
||||
}
|
||||
{
|
||||
id = "Clock";
|
||||
formatHorizontal = "yyyy-MM-dd HH:mm t";
|
||||
}
|
||||
{
|
||||
id = "NightLight";
|
||||
}
|
||||
{
|
||||
id = "DarkMode";
|
||||
}
|
||||
{
|
||||
id = "KeepAwake";
|
||||
}
|
||||
{
|
||||
id = "ScreenRecorder";
|
||||
}
|
||||
];
|
||||
right = [
|
||||
{
|
||||
id = "SystemMonitor";
|
||||
}
|
||||
{
|
||||
id = "Tray";
|
||||
}
|
||||
{
|
||||
id = "NotificationHistory";
|
||||
}
|
||||
|
|
@ -58,25 +76,8 @@ in {
|
|||
{
|
||||
id = "Brightness";
|
||||
}
|
||||
{
|
||||
id = "NightLight";
|
||||
}
|
||||
{
|
||||
id = "DarkMode";
|
||||
}
|
||||
{
|
||||
id = "KeepAwake";
|
||||
}
|
||||
{
|
||||
id = "ScreenRecorder";
|
||||
}
|
||||
{
|
||||
id = "Clock";
|
||||
formatHorizontal = "yyyy-MM-dd HH:mm t";
|
||||
}
|
||||
{
|
||||
id = "ControlCenter";
|
||||
useDistroLogo = true;
|
||||
}
|
||||
];
|
||||
};
|
||||
|
|
|
|||
|
|
@ -25,16 +25,16 @@
|
|||
polarity = "dark";
|
||||
fonts = {
|
||||
sansSerif = {
|
||||
name = "M+2 Nerd Font";
|
||||
package = pkgs.nerd-fonts."m+";
|
||||
name = "Atkinson Hyperlegible Next";
|
||||
package = pkgs.atkinson-hyperlegible-next;
|
||||
};
|
||||
serif = {
|
||||
name = "Libre Baskerville";
|
||||
package = pkgs.libre-baskerville;
|
||||
};
|
||||
monospace = {
|
||||
name = "M+1Code Nerd Font Mono";
|
||||
package = pkgs.nerd-fonts."m+";
|
||||
name = "Atkinson Hyperlegible Mono";
|
||||
package = pkgs.atkinson-hyperlegible-mono;
|
||||
};
|
||||
};
|
||||
autoEnable = true;
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
stylix.targets.alacritty.enable = true;
|
||||
programs.alacritty = {
|
||||
enable = true;
|
||||
package = pkgs.alacritty;
|
||||
package = pkgs.alacritty-graphics;
|
||||
settings = {
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
{pkgs, ...}: {
|
||||
home.packages = with pkgs; [
|
||||
anki
|
||||
# Password manager
|
||||
bitwarden
|
||||
|
||||
# Task managers
|
||||
btop
|
||||
|
|
@ -8,7 +10,8 @@
|
|||
|
||||
aseprite
|
||||
# Chat
|
||||
telegram-desktop # Telegram
|
||||
tdesktop # Telegram
|
||||
dino # XMPP
|
||||
signal-desktop
|
||||
mumble
|
||||
keymapp
|
||||
|
|
|
|||
|
|
@ -23,24 +23,6 @@ _: {
|
|||
flavor = "gmail.com";
|
||||
};
|
||||
in {
|
||||
main =
|
||||
mainEnable
|
||||
// katIdentity
|
||||
// {
|
||||
flavor = "plain";
|
||||
userName = "kat@dork.dev";
|
||||
address = "kat@dork.dev";
|
||||
imap = {
|
||||
tls.enable = true;
|
||||
host = "rinnosuke.inskip.me";
|
||||
port = 993;
|
||||
};
|
||||
smtp = {
|
||||
tls.enable = true;
|
||||
host = "rinnosuke.inskip.me";
|
||||
port = 465;
|
||||
};
|
||||
};
|
||||
primary =
|
||||
gmailAccount
|
||||
// katIdentity
|
||||
|
|
|
|||
|
|
@ -26,16 +26,16 @@
|
|||
polarity = "dark";
|
||||
fonts = {
|
||||
sansSerif = {
|
||||
name = "M+2 Nerd Font";
|
||||
package = pkgs.nerd-fonts."m+";
|
||||
name = "Atkinson Hyperlegible Next";
|
||||
package = pkgs.atkinson-hyperlegible-next;
|
||||
};
|
||||
serif = {
|
||||
name = "Libre Baskerville";
|
||||
package = pkgs.libre-baskerville;
|
||||
};
|
||||
monospace = {
|
||||
name = "M+1Code Nerd Font Mono";
|
||||
package = pkgs.nerd-fonts."m+";
|
||||
name = "Atkinson Hyperlegible Mono";
|
||||
package = pkgs.atkinson-hyperlegible-mono;
|
||||
};
|
||||
};
|
||||
autoEnable = true;
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@
|
|||
blacklistedKernelModules = ["k10temp"];
|
||||
extraModulePackages = [config.boot.kernelPackages.zenpower];
|
||||
kernelModules = ["zenpower"];
|
||||
kernelParams = ["microcode.amd_sha_check=off"];
|
||||
};
|
||||
services.ucodenix.enable = true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,6 +4,5 @@ _: {
|
|||
grub.configurationLimit = 8;
|
||||
systemd-boot.configurationLimit = 8;
|
||||
};
|
||||
lanzaboote.configurationLimit = 5;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
pkgs,
|
||||
lib,
|
||||
inputs,
|
||||
...
|
||||
}: let
|
||||
inherit (lib.lists) singleton;
|
||||
|
|
@ -20,21 +21,21 @@ in {
|
|||
monadoEnvironment = {
|
||||
XRT_COMPOSITOR_COMPUTE = "1";
|
||||
};
|
||||
package = pkgs.wivrn.overrideAttrs (_old: rec {
|
||||
package = pkgs.wivrn.overrideAttrs (old: rec {
|
||||
cudaSupport = true;
|
||||
#version = "84e5203be3019278925ac03708567f2982360f8a";
|
||||
#src = pkgs.fetchFromGitHub {
|
||||
# owner = "notpeelz";
|
||||
# repo = "WiVRn";
|
||||
# rev = version;
|
||||
# # This will throw an error when evaluating and give you the correct hash - put that here
|
||||
# hash = "sha256-2s3j6vRtIRf6x+lQPobcuT1vzlCh1lMA54EUiCnxoFI=";
|
||||
#};
|
||||
#cmakeFlags =
|
||||
# old.cmakeFlags
|
||||
# ++ [
|
||||
# (lib.cmakeBool "WIVRN_FEATURE_SOLARXR" true)
|
||||
# ];
|
||||
version = "84e5203be3019278925ac03708567f2982360f8a";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "notpeelz";
|
||||
repo = "WiVRn";
|
||||
rev = version;
|
||||
# This will throw an error when evaluating and give you the correct hash - put that here
|
||||
hash = "sha256-2s3j6vRtIRf6x+lQPobcuT1vzlCh1lMA54EUiCnxoFI=";
|
||||
};
|
||||
cmakeFlags =
|
||||
old.cmakeFlags
|
||||
++ [
|
||||
(lib.cmakeBool "WIVRN_FEATURE_SOLARXR" true)
|
||||
];
|
||||
});
|
||||
defaultRuntime = true;
|
||||
config = {
|
||||
|
|
@ -92,8 +93,8 @@ in {
|
|||
'')
|
||||
];
|
||||
})
|
||||
#slimevr
|
||||
#slimevr-server
|
||||
#inputs.slimevr-wrangler.packages.${pkgs.system}.slimevr-wrangler
|
||||
slimevr
|
||||
slimevr-server
|
||||
inputs.slimevr-wrangler.packages.${pkgs.system}.slimevr-wrangler
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
noto-fonts-cjk-sans
|
||||
twitter-color-emoji
|
||||
corefonts
|
||||
vista-fonts
|
||||
vistafonts
|
||||
open-dyslexic
|
||||
ubuntu-sans
|
||||
monaspace
|
||||
|
|
|
|||
|
|
@ -4,12 +4,11 @@
|
|||
...
|
||||
}: {
|
||||
boot.extraModulePackages = with config.boot.kernelPackages; [
|
||||
# TODO: check if working post 2025-12-04
|
||||
#v4l2loopback
|
||||
v4l2loopback
|
||||
];
|
||||
programs.obs-studio = {
|
||||
enable = true;
|
||||
#enableVirtualCamera = true;
|
||||
enableVirtualCamera = true;
|
||||
plugins = with pkgs.obs-studio-plugins; [
|
||||
#obs-vaapi
|
||||
#obs-tuna
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@
|
|||
imagemagick
|
||||
];
|
||||
services.udev.packages = [
|
||||
pkgs.android-udev-rules
|
||||
pkgs.zsa-udev-rules
|
||||
pkgs.via
|
||||
];
|
||||
|
|
|
|||
|
|
@ -8,8 +8,6 @@
|
|||
fqdn = "rinnosuke.inskip.me";
|
||||
domains = ["dork.dev"];
|
||||
|
||||
fullTextSearch.enable = true;
|
||||
|
||||
# A list of all login accounts. To create the password hashes, use
|
||||
# nix-shell -p mkpasswd --run 'mkpasswd -sm bcrypt'
|
||||
loginAccounts = {
|
||||
|
|
|
|||
|
|
@ -1,8 +1,6 @@
|
|||
_: let
|
||||
hostConfig = {
|
||||
tree,
|
||||
pkgs,
|
||||
utils,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
|
|
@ -39,9 +37,9 @@ _: let
|
|||
};
|
||||
};
|
||||
swap = rec {
|
||||
raw = "/dev/disk/by-id/nvme-CT1000P5PSSD8_22343AC9A481-part2";
|
||||
result = {
|
||||
device = "/dev/mapper/cryptswap";
|
||||
options = ["x-systemd.device-timeout=15s" "nofail" "x-systemd.wants=systemd-cryptsetup@cryptswap.service"];
|
||||
device = raw;
|
||||
randomEncryption = false; # fix hibernation
|
||||
};
|
||||
};
|
||||
|
|
@ -56,8 +54,8 @@ _: let
|
|||
quiet-boot
|
||||
wireless
|
||||
laptop
|
||||
gaming
|
||||
performance
|
||||
secureboot
|
||||
])
|
||||
++ (with tree.nixos.environments; [
|
||||
niri
|
||||
|
|
@ -90,87 +88,19 @@ _: let
|
|||
datasetEntries
|
||||
// {
|
||||
"/boot" = drives.boot.result;
|
||||
"/boot-keystore" = {
|
||||
#neededForBoot = true;
|
||||
device = "/dev/mapper/boot-keystore";
|
||||
fsType = "ext4";
|
||||
noCheck = true;
|
||||
options = ["ro"];
|
||||
};
|
||||
};
|
||||
|
||||
systemd.enableEmergencyMode = true;
|
||||
boot.initrd = {
|
||||
systemd = {
|
||||
emergencyAccess = true;
|
||||
mounts = let
|
||||
inherit (utils) escapeSystemdPath;
|
||||
# maybe add a require for the /dev/mapper
|
||||
sysrooty = escapeSystemdPath "/sysroot";
|
||||
requiredBy = [
|
||||
"${sysrooty}.mount"
|
||||
]; #"systemd-cryptsetup@cryptswap.service" ];
|
||||
requires = ["systemd-cryptsetup@boot-keystore.service"];
|
||||
in [
|
||||
{
|
||||
where = "/boot-keystore";
|
||||
what = "/dev/mapper/boot-keystore";
|
||||
type = "ext4";
|
||||
options = "ro";
|
||||
unitConfig = {
|
||||
};
|
||||
before = requiredBy;
|
||||
wantedBy = requiredBy;
|
||||
inherit requires;
|
||||
after = requires;
|
||||
}
|
||||
{
|
||||
where = "/sysroot/boot-keystore";
|
||||
what = "/boot-keystore";
|
||||
type = "none";
|
||||
options = "bind";
|
||||
unitConfig = {
|
||||
RequiresMountsFor = [
|
||||
"/boot-keystore"
|
||||
"/sysroot"
|
||||
];
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
luks.devices = {
|
||||
"boot-keystore".device = "/dev/disk/by-uuid/d80f77bb-fd82-43dd-9aa4-05da8d2b6154";
|
||||
"cryptswap" = {
|
||||
device = "/dev/disk/by-uuid/94948ee7-8c89-4b60-bd8c-68171b488d19";
|
||||
keyFile = "/boot-keystore/swapkey";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
environment.etc.crypttab = let
|
||||
raw = "/dev/disk/by-uuid/94948ee7-8c89-4b60-bd8c-68171b488d19";
|
||||
in {
|
||||
mode = "0600";
|
||||
text = ''
|
||||
cryptswap ${raw} /boot-keystore/swapkey keyfile-timeout=5s
|
||||
'';
|
||||
};
|
||||
|
||||
#boot.resumeDevice = "/dev/mapper/cryptswap";
|
||||
|
||||
swapDevices = [
|
||||
drives.swap.result
|
||||
];
|
||||
|
||||
environment.systemPackages = [
|
||||
pkgs.e2fsprogs
|
||||
];
|
||||
|
||||
powerManagement.enable = true;
|
||||
|
||||
boot = {
|
||||
loader = {
|
||||
grub.useOSProber = true;
|
||||
#systemd-boot.enable = lib.mkForce false;
|
||||
systemd-boot.enable = true;
|
||||
};
|
||||
zfs = {
|
||||
forceImportRoot = false;
|
||||
|
|
|
|||
|
|
@ -93,8 +93,8 @@ resource "cloudflare_record" "webmail" {
|
|||
proxied = false
|
||||
ttl = 3600
|
||||
type = "CNAME"
|
||||
value = "rinnosuke.inskip.me"
|
||||
zone_id = local.zone_ids.dork
|
||||
value = "rinnosukeinskip.me"
|
||||
zone_id = local.zone_ids.kittywitch
|
||||
}
|
||||
|
||||
resource "cloudflare_record" "dork_mail_mx" {
|
||||
|
|
@ -121,7 +121,7 @@ resource "cloudflare_record" "dork_mail_dkim" {
|
|||
proxied = false
|
||||
ttl = 10800
|
||||
type = "TXT"
|
||||
value = "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsfSxe5JNdrSyHoPuESnOles7KxP5NtHD60YZ7SXLANNkEb8/tSHmg4nGqLhqKrA7+gcrurjowibDYs4hAM/ozkMNch53n2ZVKRl1ExMSRAPlGl5ZNCGGYVuRQlTMGvek2tIp3GbxafGF6QWSG1sA63fI9pxGosf/qc3wX5gtHxmKB9jn1Q6d9SDuJN72StIRjl81zaJFQJswvKx5keNvbW9oOP/xBVFPbnNZq52f/MsIpo4R33Vk0CrFvj5lnEKh5t6Bx1XUpJnkzQE934h+x1B+ypLkAPpLw4VnbDBMNc/ZkGbfJuM9YsasoEYgeoAtWKkyJV2WKZfppo1pUtR7swIDAQAB"
|
||||
value = "v=DKIM1; k=rsa; s=email; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsfSxe5JNdrSyHoPuESnOles7KxP5NtHD60YZ7SXLANNkEb8/tSHmg4nGqLhqKrA7+gcrurjowibDYs4hAM/ozkMNch53n2ZVKRl1ExMSRAPlGl5ZNCGGYVuRQlTMGvek2tIp3GbxafGF6QWSG1sA63fI9pxGosf/qc3wX5gtHxmKB9jn1Q6d9SDuJN72StIRjl81zaJFQJswvKx5keNvbW9oOP/xBVFPbnNZq52f/MsIpo4R33Vk0CrFvj5lnEKh5t6Bx1XUpJnkzQE934h+x1B+ypLkAPpLw4VnbDBMNc/ZkGbfJuM9YsasoEYgeoAtWKkyJV2WKZfppo1pUtR7swIDAQAB"
|
||||
zone_id = local.zone_ids.dork
|
||||
}
|
||||
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
Loading…
Add table
Add a link
Reference in a new issue