feat: hyprland improvements, terraform email

This commit is contained in:
Kat Inskip 2025-12-18 15:30:52 -08:00
parent 4759970fe8
commit c7c485f955
20 changed files with 205 additions and 100 deletions

21
flake.lock generated
View file

@ -1803,6 +1803,26 @@
"type": "github"
}
},
"nixpkgs-unfree": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1755249704,
"narHash": "sha256-J1mqsd/gqZ32G3YOzWk9sppLbXXLEpu37hrZfRcTtdg=",
"owner": "numtide",
"repo": "nixpkgs-unfree",
"rev": "12d82a604d21a65df008bdb1515eecb96f9e55dc",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "nixpkgs-unfree",
"type": "github"
}
},
"nixpkgs-xr": {
"inputs": {
"flake-compat": [
@ -2233,6 +2253,7 @@
"nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs_4",
"nixpkgs-lib": "nixpkgs-lib_2",
"nixpkgs-unfree": "nixpkgs-unfree",
"nixpkgs-xr": "nixpkgs-xr",
"nixvim": "nixvim",
"noctalia": "noctalia",

View file

@ -117,6 +117,10 @@
url = "github:nixos/nixpkgs/nixos-unstable";
#inputs.nixpkgs.follows = "chaotic/nixpkgs";
};
nixpkgs-unfree = {
url = "github:numtide/nixpkgs-unfree";
inputs.nixpkgs.follows = "nixpkgs";
};
qml-niri = {
url = "github:juuyokka/qml-niri/feat-nix-flake";
inputs.nixpkgs.follows = "nixpkgs";

View file

@ -125,8 +125,9 @@
in [
"$mod, ${ws}, workspace, ${toString (x + 1)}"
"$mod SHIFT, ${ws}, hy3:movetoworkspace, ${toString (x + 1)}"
"$mod, F${ws}, workspace, ${toString (x + 11)}"
"$mod SHIFT, F${ws}, hy3:movetoworkspace, ${toString (x + 11)}"
# using F keys was confusing, as was using mod+alt, so now we use Alt instead of Super
"ALT, ${ws}, workspace, ${toString (x + 11)}"
"ALT SHIFT, F${ws}, hy3:movetoworkspace, ${toString (x + 11)}"
]
)
10)

View file

@ -44,8 +44,11 @@ in {
"CLUTTER_BACKEND,wayland"
];
render = {
direct_scanout = true;
new_render_scheduling = true;
#direct_scanout = true;
#new_render_scheduling = true;
};
misc = {
vfr = true;
};
#debug.disable_logs = false;
exec-once = [

View file

@ -2,14 +2,14 @@
inherit (std) list;
in {
wayland.windowManager.hyprland.settings.workspace = let
commonOptions = "gapsin:0,gapsout:0,rounding:false";
commonOptions = "gapsin:5,gapsout:5,rounding:true,persistent:true";
in
["1,monitor:DP-1,default:true,${commonOptions}"]
["1,default:true,${commonOptions}"]
++ (list.map (
workspace: "${toString workspace},monitor:DP-1${commonOptions}"
workspace: "${toString workspace},${commonOptions}"
) (list.range 2 10))
++ ["11,monitor:HDMI-A-1,default:true"]
++ ["11,${commonOptions}"]
++ (list.map (
workspace: "${toString workspace},monitor:HDMI-A-1${commonOptions}"
workspace: "${toString workspace},${commonOptions}"
) (list.range 12 20));
}

View file

@ -29,6 +29,8 @@ in {
{
id = "Workspace";
labelMode = "label";
hideUnoccupied = false;
showLabelsOnlyWhenOccupied = false;
#characterCount = 10;
}
{
@ -37,15 +39,10 @@ in {
}
];
center = [
];
right = [
{
id = "Tray";
}
{
id = "MediaMini";
showAlbumArt = true;
showVisualizer = true;
showVisualizer = false;
scrollingMode = "always";
autoHide = true;
# check if this works,
@ -53,16 +50,8 @@ in {
widgetWidth = 300;
}
{
id = "NotificationHistory";
}
{
id = "Battery";
}
{
id = "Volume";
}
{
id = "Brightness";
id = "Clock";
formatHorizontal = "yyyy-MM-dd HH:mm t";
}
{
id = "NightLight";
@ -76,9 +65,22 @@ in {
{
id = "ScreenRecorder";
}
];
right = [
{
id = "Clock";
formatHorizontal = "yyyy-MM-dd HH:mm t";
id = "Tray";
}
{
id = "NotificationHistory";
}
{
id = "Battery";
}
{
id = "Volume";
}
{
id = "Brightness";
}
{
id = "ControlCenter";

View file

@ -10,13 +10,6 @@
#portalPackage = inputs.hyprland.packages."${pkgs.system}".xdg-desktop-portal-hyprland;
};
# auto launch hyprland on tty1
environment.loginShellInit = ''
if [ -z "$DISPLAY" ] && [ "$XDG_VTNR" = 1 ] && uwsm check may-start; then
exec uwsm start hyprland-uwsm.desktop
fi
'';
services = {
noctalia-shell.enable = true;
clipboard-sync.enable = true;

View file

@ -1,16 +0,0 @@
{
config,
lib,
...
}: let
inherit (lib.modules) mkForce;
in {
programs.regreet = {
enable = true;
theme = mkForce config.home-manager.users.kat.gtk.theme;
};
stylix.targets.regreet.enable = true;
services.greetd = {
enable = true;
};
}

View file

@ -10,5 +10,4 @@
enable = true;
package = pkgs.niri-unstable;
};
services.noctalia-shell.enable = true;
}

View file

@ -1,6 +1,7 @@
{
pkgs,
lib,
inputs,
...
}: let
inherit (lib.lists) singleton;
@ -33,8 +34,8 @@ in {
U_PACING_APP_IMMEDIATE_WAIT_FRAME_RETURN="1";
XRT_COMPOSITOR_FORCE_WAYLAND_DIRECT = "1";
};
package = pkgs.wivrn.override { cudaSupport = true; };
highPriority = true;
package = pkgs.wivrn;
defaultRuntime = true;
config = {
enable = true;
@ -59,7 +60,6 @@ in {
};
};
};
services.lact.enable = true;
# SlimeVR ports
networking.firewall = let
@ -83,7 +83,6 @@ in {
monado-vulkan-layers
bs-manager
vrcx
lact
appimage-run
(unityhub.override {
extraLibs = unityhubPkgs: [

View file

@ -5,6 +5,7 @@
}: let
inherit (lib.modules) mkForce;
in {
services.noctalia-shell.enable = true;
programs.regreet = {
enable = true;
theme = mkForce config.home-manager.users.kat.gtk.theme;

View file

@ -6,7 +6,7 @@
enable = true;
stateVersion = 3;
fqdn = "rinnosuke.inskip.me";
domains = ["dork.dev"];
domains = ["dork.dev" "kittywit.ch" "inskip.me"];
fullTextSearch.enable = true;
@ -17,9 +17,13 @@
hashedPasswordFile = config.sops.secrets.kat-password.path;
aliases = [
"@dork.dev"
"@inskip.me"
"@kittywit.ch"
];
catchAll = [
"dork.dev"
"inskip.me"
"kittywit.ch"
];
};
};

View file

@ -32,9 +32,6 @@
hash = "sha256-8UWf1RKsRNWJ8CC6ceDeIOv4eY3ybxZ9tv5MCHx80NY=";
};
};
wivrn = prev.wivrn.overrideAttrs (old: {
cudaSupport = true;
});
})
inputs.rbw-bitw.overlays.default
#inputs.arcexprs.overlays.default
@ -45,4 +42,9 @@
inputs.niri.overlays.niri
inputs.proton-cachyos.overlays.default
(import tree.packages.default {inherit inputs tree;})
(_final: prev: {
wivrn = prev.wivrn.overrideAttrs (old: {
cudaSupport = true;
});
})
]

View file

@ -1,3 +1,3 @@
#!/usr/bin/env bash
adb reverse tcp:9757 tcp:9757
adb shell am start -a android.intent.action.VIEW -d "wivrn+tcp://localhost" org.meumeu.wivrn.github.nightly
adb shell am start -a android.intent.action.VIEW -d "wivrn+tcp://localhost" org.meumeu.wivrn.github

View file

@ -4,6 +4,7 @@ _: let
lib,
pkgs,
tree,
std,
inputs,
...
}: let
@ -52,10 +53,11 @@ _: let
gaming
performance
dev
tiling
])
++ (with tree.nixos.environments; [
hyprland
#niri
niri
])
++ (with tree.nixos.servers; [
forgejo-runner
@ -129,44 +131,56 @@ _: let
# return-type = "";
# };
# };
# niri.settings = {
# outputs = {
# "LG Electronics LG Ultra HD 0x0001AC91" = {
# scale = 1.0;
# position = {
# x = 1920;
# y = 0;
# };
# mode = {
# width = 2560;
# height = 1440;
# refresh = 59.951;
# };
# };
# "Samsung Electric Company SAMSUNG Unknown" = {
# position = {
# x = 0;
# y = 0;
# };
# };
# "PNP(XXX) Beyond TV 0x00010000" = {
# mode = {
# width = 2560;
# height = 1440;
# refresh = 119.998;
# };
# };
# };
# environment = {
# NVD_BACKEND = "direct";
# ELECTRON_OZONE_PLATFORM_HINT = "auto";
# LIBVA_DRIVER_NAME = "nvidia";
# NIXOS_OZONE_WL = "1";
# QT_QTA_PLATFORM = "wayland;xcb";
# };
# };
niri.settings = {
outputs = {
"LG Electronics LG Ultra HD 0x0001AC91" = {
scale = 1.0;
position = {
x = 1920;
y = 0;
};
mode = {
width = 2560;
height = 1440;
refresh = 59.951;
};
};
"Samsung Electric Company SAMSUNG Unknown" = {
position = {
x = 0;
y = 0;
};
};
"PNP(XXX) Beyond TV 0x00010000" = {
mode = {
width = 2560;
height = 1440;
refresh = 119.998;
};
};
};
environment = {
NVD_BACKEND = "direct";
ELECTRON_OZONE_PLATFORM_HINT = "auto";
LIBVA_DRIVER_NAME = "nvidia";
NIXOS_OZONE_WL = "1";
QT_QTA_PLATFORM = "wayland;xcb";
};
};
};
wayland.windowManager.hyprland.settings = {
wayland.windowManager.hyprland.settings.workspace = let
inherit (std) list;
commonOptions = "gapsin:5,gapsout:5,rounding:true,persistent:true";
in lib.mkForce (
["1,monitor:DP-2,default:true,${commonOptions}"]
++ (list.map (
workspace: "${toString workspace},monitor:DP-2,${commonOptions}"
) (list.range 2 10))
++ ["11,monitor:HDMI-A-1,default:true,${commonOptions}"]
++ (list.map (
workspace: "${toString workspace},monitor:HDMI-A-1,${commonOptions}"
) (list.range 12 20)));
monitor = [
"HDMI-A-1, 1920x1080, 0x0, 1"
"DP-2, 2560x1440, auto-right, 1"
@ -177,7 +191,6 @@ _: let
"LIBVA_DRIVER_NAME,nvidia"
"__GLX_VENDOR_LIBRARY_NAME,nvidia"
"NIXOS_OZONE_WL,1"
"__NV_DISABLE_EXPLICIT_SYNC,1"
"QT_QPA_PLATFORM,wayland;xcb"
];
};
@ -188,7 +201,7 @@ _: let
])
++ (with tree.home.environments; [
hyprland
#niri
niri
]);
};

View file

@ -58,6 +58,7 @@ _: let
laptop
performance
secureboot
tiling
])
++ (with tree.nixos.environments; [
#niri

View file

@ -7,6 +7,7 @@ locals {
}
module "inskip-gmail" {
enable = false
source = "./gmail_dns"
cloudflare_api_key = var.cloudflare_api_key
zone_id = local.zone_ids.inskip
@ -22,6 +23,7 @@ module "dork-gmail" {
dkim = local.dkims.dork
}
module "kittywitch-gmail" {
enable = false
source = "./gmail_dns"
cloudflare_api_key = var.cloudflare_api_key
zone_id = local.zone_ids.kittywitch

View file

@ -107,6 +107,26 @@ resource "cloudflare_record" "dork_mail_mx" {
zone_id = local.zone_ids.dork
}
resource "cloudflare_record" "inskip_mail_mx" {
name = "@"
proxied = false
ttl = 3600
type = "MX"
priority = 10
value = "rinnosuke.inskip.me"
zone_id = local.zone_ids.inskip
}
resource "cloudflare_record" "kittywitch_mail_mx" {
name = "@"
proxied = false
ttl = 3600
type = "MX"
priority = 10
value = "rinnosuke.inskip.me"
zone_id = local.zone_ids.kittywitch
}
resource "cloudflare_record" "dork_mail_spf" {
name = "@"
proxied = false
@ -116,6 +136,24 @@ resource "cloudflare_record" "dork_mail_spf" {
zone_id = local.zone_ids.dork
}
resource "cloudflare_record" "inskip_mail_spf" {
name = "@"
proxied = false
ttl = 10800
type = "TXT"
value = "v=spf1 a:rinnosuke.inskip.me -all"
zone_id = local.zone_ids.inskip
}
resource "cloudflare_record" "kittywitch_mail_spf" {
name = "@"
proxied = false
ttl = 10800
type = "TXT"
value = "v=spf1 a:rinnosuke.inskip.me -all"
zone_id = local.zone_ids.kittywitch
}
resource "cloudflare_record" "dork_mail_dkim" {
name = "mail._domainkey"
proxied = false
@ -125,6 +163,25 @@ resource "cloudflare_record" "dork_mail_dkim" {
zone_id = local.zone_ids.dork
}
resource "cloudflare_record" "inskip_mail_dkim" {
name = "mail._domainkey"
proxied = false
ttl = 10800
type = "TXT"
value = "v=DKIM1; k=rsa; s=email; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn266Z2suvJyv+vISWfjajWwIdImqHjZPOJCIZ/uJ8gStp8e8X8LMnRbzG4XVmTpx5IxnACcIZz2XVzxZspub6VZsbpDbcpApSk700UpPE1zag5QCA1zKs/smOFAtN3EIcwvbQ48HrKKlQSZdV7qHsS1BPrlK1hjwi1D6JlILCg9COQR8Sscxkjvg7pNP6Q1RVK7dtbzlQnqHikHjdXUTlaf5+EVPvdP4c4Of4YI1KaJMZDcs7LpQuvGNsZmEfybA066TWIaHq+F5WSmSsUhPlTnAygGBRFic0efWn9Ij/GVwI6yDq96IWjeT9L2C7+tkfj/NAmgFoITgpAiq/2l/OwIDAQAB"
zone_id = local.zone_ids.dork
}
resource "cloudflare_record" "kittywitch_mail_dkim" {
name = "mail._domainkey"
proxied = false
ttl = 10800
type = "TXT"
value = "v=DKIM1; k=rsa; s=email; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApzVUOBiZic/cB3WYOADAgEu//H9dG6VNz8kzgopoKhAZ6AhM8o4nW5kAoFxjJP1c21ugghoYtlJJHaHqQg93nuaW8f48jsjQErMa12hMo8xeFviSBkv7G9gasviborHZIxJVHIIwSga+YZfjNmdCQHH4ABud95utZJc8AmCSJj/kE0NozmXL8HLaMLg9cFMMYB8Pv+GDsDaXCD4H0qJANqCQos/NCynmRkQHYEW7C4lm9FNJUB3wpPuTY4/i6QZcd5Ex4bPYcc9FO4km/rqSbmsZDfN2P+iofpXGIxtCm4iOJlBMjPDIhV/8jAK5t1wIWRq1+3F2DkppGL2F4DkwfQIDAQAB"
zone_id = local.zone_ids.dork
}
resource "cloudflare_record" "dork_mail_dmarc" {
name = "_dmarc"
proxied = false
@ -134,6 +191,25 @@ resource "cloudflare_record" "dork_mail_dmarc" {
zone_id = local.zone_ids.dork
}
resource "cloudflare_record" "inskip_mail_dmarc" {
name = "_dmarc"
proxied = false
ttl = 10800
type = "TXT"
value = "v=DMARC1; p=none"
zone_id = local.zone_ids.inskip
}
resource "cloudflare_record" "kittywitch_mail_dmarc" {
name = "_dmarc"
proxied = false
ttl = 10800
type = "TXT"
value = "v=DMARC1; p=none"
zone_id = local.zone_ids.kittywitch
}
resource "cloudflare_record" "dork_mail_submission_autodiscover" {
name = "_submission._tcp"
proxied = false

File diff suppressed because one or more lines are too long

View file

@ -91,7 +91,7 @@
infrastructure.nixosModules.default
lanzaboote.nixosModules.lanzaboote
solaar.nixosModules.default
nixpkgs-xr.nixosModules.nixpkgs-xr
#nixpkgs-xr.nixosModules.nixpkgs-xr
spicetify-nix.nixosModules.spicetify
clipboard-sync.nixosModules.default
nixos-cli.nixosModules.nixos-cli