Merge branch 'master' of ssh://ssh.nx2.site:50022/nx2/dotfiles

This commit is contained in:
Lennart J. Kurzweg (Nx2)
2025-06-17 18:02:53 +02:00
26 changed files with 594 additions and 1016 deletions

15
.ignore Normal file
View File

@@ -0,0 +1,15 @@
flake.lock
*.remmina
*.pem
*.env
*.key
*.ovpn
sops-secrets.yaml
*.png
*.jpg
*.webp
*.gif
*.mp3
*.mp4

View File

@@ -1,7 +1,7 @@
keys: keys:
- &users: - &users:
- &nx2backup age1sgzc2jh8af30a3cp6g7l4hyzusqrn3x3xw7frghc4akvjaplwa3stfemxc
- &nx2 22FB2CC03DC5292AB81CF67D0AF27B383170E634 - &nx2 22FB2CC03DC5292AB81CF67D0AF27B383170E634
- &nx2_key_13 age1x2lpsennl74n0f5jl60uv2ffjcuqymzf9ap3frlz2quyv0x3hq3scnewwq
- &hosts: - &hosts:
- &north age1vkqn2nars5qmpr35tac0x9vshphrq6nnzjfyxwusgn27kt3zualssv0u8e - &north age1vkqn2nars5qmpr35tac0x9vshphrq6nnzjfyxwusgn27kt3zualssv0u8e
- &xps age1jvf2lyrt2dw9jfnwgvnhmj9fmvyq8vvtepqjpkyycc5dqkkd4edqhxsgv6 - &xps age1jvf2lyrt2dw9jfnwgvnhmj9fmvyq8vvtepqjpkyycc5dqkkd4edqhxsgv6
@@ -13,6 +13,6 @@ creation_rules:
- *north - *north
- *xps - *xps
- *ace - *ace
- *nx2backup - *nx2_key_13
pgp: pgp:
- *nx2 - *nx2

View File

@@ -1,7 +1,9 @@
{ pkgs, hyper, inputs, ... }: { pkgs, hyper, inputs, ... }:
{ {
imports = ([ imports = [
inputs.sops-nix.nixosModules.sops inputs.sops-nix.nixosModules.sops
inputs.nixpkgs.nixosModules.readOnlyPkgs
./system-modules/adb.nix ./system-modules/adb.nix
./system-modules/auto-mount.nix ./system-modules/auto-mount.nix
./system-modules/boot.nix ./system-modules/boot.nix
@@ -41,7 +43,7 @@
./system-modules/users.nix ./system-modules/users.nix
./system-modules/virtualisation.nix ./system-modules/virtualisation.nix
./system-modules/ydotool.nix ./system-modules/ydotool.nix
]) ++ (if (hyper.host == "NxACE") then [ ] ++ (if (hyper.host == "NxACE") then [
./system-modules/nx2site.nix ./system-modules/nx2site.nix
./system-modules/hugo.nix ./system-modules/hugo.nix
./system-modules/postgres.nix ./system-modules/postgres.nix
@@ -136,9 +138,9 @@
systemd.extraConfig = "DefaultLimitNOFILE=2048"; systemd.extraConfig = "DefaultLimitNOFILE=2048";
boot.tmp.useTmpfs = false; boot.tmp.useTmpfs = false;
system.stateVersion = "25.05"; system.stateVersion = pkgs.version;
nixpkgs.config.allowUnfree = true; nixpkgs.pkgs = pkgs;
nix = { nix = {
settings = { settings = {

View File

@@ -4,6 +4,8 @@
"discord" "discord"
"spotify" "spotify"
"obsidian" "obsidian"
"steam"
"steam-unwrapped"
"zoom-us" "zoom-us"
"zoom" "zoom"
@@ -35,6 +37,8 @@
"libnvjitlink" "libnvjitlink"
"libcusparse" "libcusparse"
"libnpp" "libnpp"
"vscode-extension-mhutchie-git-graph"
]; ];
inecure = [ inecure = [

View File

@@ -1,13 +1,13 @@
{ {
"base": { "base": {
"foreground": "#dbd2f8", "foreground": "#fefefe",
"background": "#0f062c" "background": "#020202"
}, },
"to_alter": { "to_alter": {
"accent": "#724ce5", "accent": "#aaaaff",
"secondary": "#ff3271", "secondary": "#aaeeff",
"tertiary": "#ffc932", "tertiary": "#aaffaa",
"special": "#bfe54b", "special": "#aaffaa",
"weird": "#e54b8b" "weird": "#ffffaa"
} }
} }

View File

@@ -13,7 +13,7 @@ pkgs: rec {
alter = let f = lib.alter-luminace-hex; in color-value: { base = color-value; dark = f color-value dark; bright = f color-value bright; }; alter = let f = lib.alter-luminace-hex; in color-value: { base = color-value; dark = f color-value dark; bright = f color-value bright; };
# ccolor = builtins.mapAttrs alter-set (builtins.fromJSON (builtins.readFile ./colors.json)); # ccolor = builtins.mapAttrs alter-set (builtins.fromJSON (builtins.readFile ./colors.json));
ccolor = builtins.mapAttrs alter-set { ccolor = builtins.mapAttrs alter-set {
black = "#111111"; # "#111111" "#001100"; black = "#040404"; # "#111111" "#001100";
white = "#dddddd"; # "#dddddd" "#66dd66"; white = "#dddddd"; # "#dddddd" "#66dd66";
blue = "#4444dd"; # "#3333dd" "#003300"; blue = "#4444dd"; # "#3333dd" "#003300";
cyan = "#44dddd"; # "#11dddd" "#00dd55"; cyan = "#44dddd"; # "#11dddd" "#00dd55";

682
flake.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -9,61 +9,48 @@
home-manager = { url = "github:nix-community/home-manager/release-25.05"; inputs.nixpkgs.follows = "nixpkgs"; }; home-manager = { url = "github:nix-community/home-manager/release-25.05"; inputs.nixpkgs.follows = "nixpkgs"; };
nixos-wsl = { url = "github:nix-community/NixOS-WSL/main"; }; nixos-wsl = { url = "github:nix-community/NixOS-WSL/main"; };
nix-on-droid = { url = "github:nix-community/nix-on-droid/release-24.05"; inputs.nixpkgs.follows = "nixpkgs"; };
sops-nix = { url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; sops-nix = { url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; };
lanzaboote = { url = "github:nix-community/lanzaboote/v0.3.0"; }; lanzaboote = { url = "github:nix-community/lanzaboote/v0.4.2"; };
hyprland = { url = "git+https://github.com/hyprwm/Hyprland?submodules=1"; }; hyprland = { url = "git+https://github.com/hyprwm/Hyprland?submodules=1"; };
hyprland-plugins = { url = "github:hyprwm/hyprland-plugins"; inputs.hyprland.follows = "hyprland"; }; hyprland-plugins = { url = "github:hyprwm/hyprland-plugins"; inputs.hyprland.follows = "hyprland"; };
hyprswitch = { url = "github:h3rmt/hyprswitch/release"; }; hyprspace = { url = "github:KZDKM/Hyprspace"; inputs.hyprland.follows = "hyprland"; };
yazi = { url = "github:sxyazi/yazi"; }; yazi = { url = "github:sxyazi/yazi"; };
yazi-plugins = { url = "github:lordkekz/nix-yazi-plugins"; inputs.nixpkgs.follows = "nixpkgs"; };
zen-browser = { url = "github:MarceColl/zen-browser-flake"; };
ghostty = { url = "github:ghostty-org/ghostty"; };
}; };
outputs = { self, ... }@inputs: with inputs; let outputs = { ... }@inputs: with inputs; let
system = "x86_64-linux"; system = "x86_64-linux";
config = { allowUnfree = true; allowUnfreePredicate = pkg: builtins.elem (pkgs.lib.getName pkg) (import ./flake-modules/allowed.nix).unfree; }; config = { allowUnfreePredicate = pkg: builtins.elem (pkgs.lib.getName pkg) (import ./flake-modules/allowed.nix).unfree; };
hyper-base = rec { hyper-base = rec {
inherit system; inherit system;
user = "nx2"; user = "nx2";
domain = "nx2.site"; domain = "nx2.site";
home = "/home/${user}/"; home = "/home/${user}/";
webroot = "/var/lib/hugo/nx2site/public";
}; };
pkgs = import nixpkgs { inherit system config; } // { pkgs = (import nixpkgs { inherit system config; }) // {
unstable = import nixpkgs-unstable { inherit system config; }; unstable = import nixpkgs-unstable { inherit system config; };
latest = import nixpkgs-latest { inherit system config; }; latest = import nixpkgs-latest { inherit system config; };
version = "25.05"; version = "25.05";
};
pkgs64 = let
system = "aarch64-linux";
in import nixpkgs { inherit system config; } // {
unstable = import nixpkgs-unstable { inherit system config; };
latest = import nixpkgs-latest { inherit system config; };
version = "24.05";
}; };
nvidia-base = import ./flake-modules/nvidia.nix; nvidia-base = import ./flake-modules/nvidia.nix;
secrets = import ./git-crypt/secrets.nix; secrets = import ./git-crypt/secrets.nix;
rice = import ./flake-modules/rice.nix pkgs; rice = import ./flake-modules/rice.nix pkgs;
in { in {
nixosConfigurations = let nixosConfigurations = let
make-nixos-system = host: nvidia-settings: nixpkgs.lib.nixosSystem { make-nixos-system = host: nvidia-settings: nixpkgs.lib.nixosSystem {
inherit system;
modules = [ ./configuration.nix ]; modules = [ ./configuration.nix ];
specialArgs = let specialArgs = let
hyper = hyper-base // { inherit host; nvidia = nvidia-base // nvidia-settings; }; hyper = hyper-base // { inherit host; nvidia = (nvidia-base // nvidia-settings); };
in { inherit pkgs inputs hyper rice secrets; }; in { inherit pkgs inputs hyper rice secrets; };
}; };
make-nixos-wsl-system = host: nixpkgs.lib.nixosSystem { make-nixos-wsl-system = host: nixpkgs.lib.nixosSystem {
inherit system;
modules = [ ./nixos-wsl.nix ]; modules = [ ./nixos-wsl.nix ];
specialArgs = let specialArgs = let
hyper = hyper-base // { inherit host; }; hyper = hyper-base // { inherit host; };
@@ -75,10 +62,6 @@
NxACE = make-nixos-system "NxACE" { enable = false; }; NxACE = make-nixos-system "NxACE" { enable = false; };
NxWSL = make-nixos-wsl-system "NxWSL"; NxWSL = make-nixos-wsl-system "NxWSL";
}; };
nixOnDroidConfigurations.default = nix-on-droid.lib.nixOnDroidConfiguration {
pkgs = pkgs64;
modules = [ ./nix-on-droid.nix ];
};
homeConfigurations = let homeConfigurations = let
make-home-configuration = host: user: nvidia-settings: home-manager.lib.homeManagerConfiguration { make-home-configuration = host: user: nvidia-settings: home-manager.lib.homeManagerConfiguration {
@@ -100,8 +83,6 @@
"${hyper-base.user}@NxNORTH" = make-home-configuration "NxNORTH" hyper-base.user { enable = true; prime = false; }; "${hyper-base.user}@NxNORTH" = make-home-configuration "NxNORTH" hyper-base.user { enable = true; prime = false; };
"${hyper-base.user}@NxACE" = make-home-configuration "NxACE" hyper-base.user { enable = false; }; "${hyper-base.user}@NxACE" = make-home-configuration "NxACE" hyper-base.user { enable = false; };
"${hyper-base.user}@NxS23U" = make-shell-configuration "NxS23U" hyper-base.user;
"${hyper-base.user}@NxWSL" = make-shell-configuration "NxWSL" hyper-base.user; "${hyper-base.user}@NxWSL" = make-shell-configuration "NxWSL" hyper-base.user;
}; };
}; };

View File

@@ -193,7 +193,7 @@ in {
"external": { "external": {
"streamlink": { "streamlink": {
"quality": "", "quality": "",
"options": "--config /${hyper.home}/.config/streamlink/config" "options": "--config ${hyper.home}/.config/streamlink/config"
} }
} }
} }

View File

@@ -0,0 +1,7 @@
{ pkgs, ... }:
{
services.clipman = {
package = pkgs.clipman;
enable = true;
};
}

View File

@@ -3,197 +3,198 @@ pkgs.lib.mkIf (hyper.host != "NxACE")
{ {
home = { home = {
packages = with pkgs; [ packages = with pkgs; [
vesktop # vesktop
discord
]; ];
file.".config/vesktop/settings/settings.json".text = let # file.".config/vesktop/settings/settings.json".text = let
settingsSyncVersion = "1729179678715"; # settingsSyncVersion = "1729179678715";
in /* json */ ''{ # in /* json */ ''{
"notifyAboutUpdates": true, # "notifyAboutUpdates": true,
"autoUpdate": false, # "autoUpdate": false,
"autoUpdateNotification": true, # "autoUpdateNotification": true,
"useQuickCss": true, # "useQuickCss": true,
"themeLinks": [ # "themeLinks": [
"https://luckfire.github.io/amoled-cord/src/amoled-cord.css" # "https://luckfire.github.io/amoled-cord/src/amoled-cord.css"
], # ],
"enabledThemes": [], # "enabledThemes": [],
"enableReactDevtools": false, # "enableReactDevtools": false,
"frameless": false, # "frameless": false,
"transparent": true, # "transparent": true,
"winCtrlQ": false, # "winCtrlQ": false,
"macosTranslucency": false, # "macosTranslucency": false,
"disableMinSize": false, # "disableMinSize": false,
"winNativeTitleBar": false, # "winNativeTitleBar": false,
"plugins": { # "plugins": {
"BadgeAPI": { "enabled": true }, # "BadgeAPI": { "enabled": true },
"CommandsAPI": { "enabled": true }, # "CommandsAPI": { "enabled": true },
"ContextMenuAPI": { "enabled": true }, # "ContextMenuAPI": { "enabled": true },
"MemberListDecoratorsAPI": { "enabled": false }, # "MemberListDecoratorsAPI": { "enabled": false },
"MessageAccessoriesAPI": { "enabled": false }, # "MessageAccessoriesAPI": { "enabled": false },
"MessageDecorationsAPI": { "enabled": false }, # "MessageDecorationsAPI": { "enabled": false },
"MessageEventsAPI": { "enabled": false }, # "MessageEventsAPI": { "enabled": false },
"MessagePopoverAPI": { "enabled": false }, # "MessagePopoverAPI": { "enabled": false },
"NoticesAPI": { "enabled": true }, # "NoticesAPI": { "enabled": true },
"ServerListAPI": { "enabled": false }, # "ServerListAPI": { "enabled": false },
"NoTrack": { "enabled": true }, # "NoTrack": { "enabled": true },
"Settings": { # "Settings": {
"enabled": true, # "enabled": true,
"settingsLocation": "aboveActivity" # "settingsLocation": "aboveActivity"
}, # },
"SupportHelper": { "enabled": true }, # "SupportHelper": { "enabled": true },
"ChatInputButtonAPI": { "enabled": false }, # "ChatInputButtonAPI": { "enabled": false },
"AlwaysAnimate": { "enabled": true }, # "AlwaysAnimate": { "enabled": true },
"AlwaysTrust": { "enabled": true }, # "AlwaysTrust": { "enabled": true },
"AnonymiseFileNames": { "enabled": false }, # "AnonymiseFileNames": { "enabled": false },
"WebRichPresence (arRPC)": { "enabled": false }, # "WebRichPresence (arRPC)": { "enabled": false },
"BANger": { "enabled": false }, # "BANger": { "enabled": false },
"BetterFolders": { "enabled": false }, # "BetterFolders": { "enabled": false },
"BetterGifAltText": { "enabled": false }, # "BetterGifAltText": { "enabled": false },
"BetterGifPicker": { "enabled": false }, # "BetterGifPicker": { "enabled": false },
"BetterNotesBox": { "enabled": false }, # "BetterNotesBox": { "enabled": false },
"BetterRoleDot": { "enabled": false }, # "BetterRoleDot": { "enabled": false },
"BetterUploadButton": { "enabled": false }, # "BetterUploadButton": { "enabled": false },
"BiggerStreamPreview": { "enabled": false }, # "BiggerStreamPreview": { "enabled": false },
"BlurNSFW": { "enabled": false }, # "BlurNSFW": { "enabled": false },
"CallTimer": { "enabled": false }, # "CallTimer": { "enabled": false },
"ClearURLs": { "enabled": false }, # "ClearURLs": { "enabled": false },
"ClientTheme": { "enabled": false }, # "ClientTheme": { "enabled": false },
"ColorSighted": { "enabled": false }, # "ColorSighted": { "enabled": false },
"ConsoleShortcuts": { "enabled": false }, # "ConsoleShortcuts": { "enabled": false },
"CopyUserURLs": { "enabled": false }, # "CopyUserURLs": { "enabled": false },
"CrashHandler": { "enabled": true }, # "CrashHandler": { "enabled": true },
"CustomRPC": { "enabled": false }, # "CustomRPC": { "enabled": false },
"Dearrow": { "enabled": false }, # "Dearrow": { "enabled": false },
"Decor": { "enabled": false }, # "Decor": { "enabled": false },
"DisableCallIdle": { "enabled": false }, # "DisableCallIdle": { "enabled": false },
"EmoteCloner": { "enabled": false }, # "EmoteCloner": { "enabled": false },
"Experiments": { "enabled": false }, # "Experiments": { "enabled": false },
"F8Break": { "enabled": false }, # "F8Break": { "enabled": false },
"FakeNitro": { "enabled": false }, # "FakeNitro": { "enabled": false },
"FakeProfileThemes": { "enabled": true }, # "FakeProfileThemes": { "enabled": true },
"FavoriteEmojiFirst": { "enabled": false }, # "FavoriteEmojiFirst": { "enabled": false },
"FavoriteGifSearch": { "enabled": false }, # "FavoriteGifSearch": { "enabled": false },
"FixCodeblockGap": { "enabled": false }, # "FixCodeblockGap": { "enabled": false },
"FixSpotifyEmbeds": { "enabled": false }, # "FixSpotifyEmbeds": { "enabled": false },
"FixYoutubeEmbeds": { "enabled": false }, # "FixYoutubeEmbeds": { "enabled": false },
"ForceOwnerCrown": { "enabled": false }, # "ForceOwnerCrown": { "enabled": false },
"FriendInvites": { "enabled": false }, # "FriendInvites": { "enabled": false },
"GameActivityToggle": { "enabled": false }, # "GameActivityToggle": { "enabled": false },
"GifPaste": { "enabled": false }, # "GifPaste": { "enabled": false },
"GreetStickerPicker": { "enabled": false }, # "GreetStickerPicker": { "enabled": false },
"HideAttachments": { "enabled": false }, # "HideAttachments": { "enabled": false },
"iLoveSpam": { "enabled": false }, # "iLoveSpam": { "enabled": false },
"IgnoreActivities": { "enabled": false }, # "IgnoreActivities": { "enabled": false },
"ImageZoom": { "enabled": false }, # "ImageZoom": { "enabled": false },
"InvisibleChat": { "enabled": false }, # "InvisibleChat": { "enabled": false },
"KeepCurrentChannel": { "enabled": false }, # "KeepCurrentChannel": { "enabled": false },
"LastFMRichPresence": { "enabled": false }, # "LastFMRichPresence": { "enabled": false },
"LoadingQuotes": { "enabled": false }, # "LoadingQuotes": { "enabled": false },
"MemberCount": { "enabled": false }, # "MemberCount": { "enabled": false },
"MessageClickActions": { "enabled": false }, # "MessageClickActions": { "enabled": false },
"MessageLinkEmbeds": { "enabled": false }, # "MessageLinkEmbeds": { "enabled": false },
"MessageLogger": { "enabled": false }, # "MessageLogger": { "enabled": false },
"MessageTags": { "enabled": false }, # "MessageTags": { "enabled": false },
"MoreCommands": { "enabled": false }, # "MoreCommands": { "enabled": false },
"MoreKaomoji": { "enabled": false }, # "MoreKaomoji": { "enabled": false },
"MoreUserTags": { "enabled": false }, # "MoreUserTags": { "enabled": false },
"Moyai": { "enabled": false }, # "Moyai": { "enabled": false },
"MutualGroupDMs": { "enabled": false }, # "MutualGroupDMs": { "enabled": false },
"NewGuildSettings": { "enabled": false }, # "NewGuildSettings": { "enabled": false },
"NoBlockedMessages": { "enabled": false }, # "NoBlockedMessages": { "enabled": false },
"NoDevtoolsWarning": { "enabled": false }, # "NoDevtoolsWarning": { "enabled": false },
"NoF1": { "enabled": false }, # "NoF1": { "enabled": false },
"NoMosaic": { "enabled": false }, # "NoMosaic": { "enabled": false },
"NoPendingCount": { "enabled": false }, # "NoPendingCount": { "enabled": false },
"NoProfileThemes": { "enabled": false }, # "NoProfileThemes": { "enabled": false },
"NoReplyMention": { "enabled": false }, # "NoReplyMention": { "enabled": false },
"NoScreensharePreview": { "enabled": false }, # "NoScreensharePreview": { "enabled": false },
"NoTypingAnimation": { "enabled": false }, # "NoTypingAnimation": { "enabled": false },
"NoUnblockToJump": { "enabled": false }, # "NoUnblockToJump": { "enabled": false },
"NormalizeMessageLinks": { "enabled": false }, # "NormalizeMessageLinks": { "enabled": false },
"NotificationVolume": { "enabled": false }, # "NotificationVolume": { "enabled": false },
"NSFWGateBypass": { "enabled": false }, # "NSFWGateBypass": { "enabled": false },
"OnePingPerDM": { "enabled": false }, # "OnePingPerDM": { "enabled": false },
"oneko": { "enabled": false }, # "oneko": { "enabled": false },
"OpenInApp": { "enabled": false }, # "OpenInApp": { "enabled": false },
"Party mode 🎉": { "enabled": false }, # "Party mode 🎉": { "enabled": false },
"PermissionFreeWill": { "enabled": false }, # "PermissionFreeWill": { "enabled": false },
"PermissionsViewer": { "enabled": false }, # "PermissionsViewer": { "enabled": false },
"petpet": { "enabled": false }, # "petpet": { "enabled": false },
"PictureInPicture": { "enabled": false }, # "PictureInPicture": { "enabled": false },
"PinDMs": { "enabled": false }, # "PinDMs": { "enabled": false },
"PlainFolderIcon": { "enabled": false }, # "PlainFolderIcon": { "enabled": false },
"PlatformIndicators": { "enabled": false }, # "PlatformIndicators": { "enabled": false },
"PreviewMessage": { "enabled": false }, # "PreviewMessage": { "enabled": false },
"PronounDB": { "enabled": false }, # "PronounDB": { "enabled": false },
"QuickMention": { "enabled": false }, # "QuickMention": { "enabled": false },
"QuickReply": { "enabled": false }, # "QuickReply": { "enabled": false },
"ReactErrorDecoder": { "enabled": false }, # "ReactErrorDecoder": { "enabled": false },
"ReadAllNotificationsButton": { "enabled": false }, # "ReadAllNotificationsButton": { "enabled": false },
"RelationshipNotifier": { "enabled": false }, # "RelationshipNotifier": { "enabled": false },
"RevealAllSpoilers": { "enabled": false }, # "RevealAllSpoilers": { "enabled": false },
"ReverseImageSearch": { "enabled": false }, # "ReverseImageSearch": { "enabled": false },
"ReviewDB": { "enabled": false }, # "ReviewDB": { "enabled": false },
"RoleColorEverywhere": { "enabled": true }, # "RoleColorEverywhere": { "enabled": true },
"SearchReply": { "enabled": false }, # "SearchReply": { "enabled": false },
"SecretRingToneEnabler": { "enabled": false }, # "SecretRingToneEnabler": { "enabled": false },
"SendTimestamps": { "enabled": false }, # "SendTimestamps": { "enabled": false },
"ServerListIndicators": { "enabled": false }, # "ServerListIndicators": { "enabled": false },
"ServerProfile": { "enabled": false }, # "ServerProfile": { "enabled": false },
"ShikiCodeblocks": { "enabled": false }, # "ShikiCodeblocks": { "enabled": false },
"ShowAllMessageButtons": { "enabled": false }, # "ShowAllMessageButtons": { "enabled": false },
"ShowConnections": { "enabled": false }, # "ShowConnections": { "enabled": false },
"ShowHiddenChannels": { "enabled": false }, # "ShowHiddenChannels": { "enabled": false },
"ShowMeYourName": { "enabled": false }, # "ShowMeYourName": { "enabled": false },
"ShowTimeouts": { "enabled": false }, # "ShowTimeouts": { "enabled": false },
"SilentMessageToggle": { "enabled": false }, # "SilentMessageToggle": { "enabled": false },
"SilentTyping": { "enabled": false }, # "SilentTyping": { "enabled": false },
"SortFriendRequests": { "enabled": false }, # "SortFriendRequests": { "enabled": false },
"SpotifyControls": { "enabled": false }, # "SpotifyControls": { "enabled": false },
"SpotifyCrack": { "enabled": false }, # "SpotifyCrack": { "enabled": false },
"SpotifyShareCommands": { "enabled": false }, # "SpotifyShareCommands": { "enabled": false },
"StartupTimings": { "enabled": false }, # "StartupTimings": { "enabled": false },
"SuperReactionTweaks": { "enabled": false }, # "SuperReactionTweaks": { "enabled": false },
"TextReplace": { "enabled": false }, # "TextReplace": { "enabled": false },
"ThemeAttributes": { "enabled": false }, # "ThemeAttributes": { "enabled": false },
"TimeBarAllActivities": { "enabled": false }, # "TimeBarAllActivities": { "enabled": false },
"Translate": { "enabled": false }, # "Translate": { "enabled": false },
"TypingIndicator": { "enabled": false }, # "TypingIndicator": { "enabled": false },
"TypingTweaks": { "enabled": false }, # "TypingTweaks": { "enabled": false },
"Unindent": { "enabled": false }, # "Unindent": { "enabled": false },
"UnsuppressEmbeds": { "enabled": false }, # "UnsuppressEmbeds": { "enabled": false },
"UrbanDictionary": { "enabled": false }, # "UrbanDictionary": { "enabled": false },
"UserVoiceShow": { "enabled": false }, # "UserVoiceShow": { "enabled": false },
"USRBG": { "enabled": false }, # "USRBG": { "enabled": false },
"ValidUser": { "enabled": false }, # "ValidUser": { "enabled": false },
"VoiceChatDoubleClick": { "enabled": false }, # "VoiceChatDoubleClick": { "enabled": false },
"VcNarrator": { "enabled": false }, # "VcNarrator": { "enabled": false },
"VencordToolbox": { "enabled": false }, # "VencordToolbox": { "enabled": false },
"ViewIcons": { "enabled": false }, # "ViewIcons": { "enabled": false },
"ViewRaw": { "enabled": false }, # "ViewRaw": { "enabled": false },
"VoiceMessages": { "enabled": false }, # "VoiceMessages": { "enabled": false },
"WebContextMenus": { # "WebContextMenus": {
"enabled": true, # "enabled": true,
"addBack": true }, # "addBack": true },
"WebKeybinds": { "enabled": true }, # "WebKeybinds": { "enabled": true },
"WhoReacted": { "enabled": false }, # "WhoReacted": { "enabled": false },
"Wikisearch": { "enabled": false }, # "Wikisearch": { "enabled": false },
"XSOverlay": { "enabled": false } # "XSOverlay": { "enabled": false }
}, # },
"notifications": { # "notifications": {
"timeout": 5000, # "timeout": 5000,
"position": "bottom-right", # "position": "bottom-right",
"useNative": "not-focused", # "useNative": "not-focused",
"logLimit": 50 # "logLimit": 50
}, # },
"cloud": { # "cloud": {
"authenticated": false, # "authenticated": false,
"url": "https://api.vencord.dev/", # "url": "https://api.vencord.dev/",
"settingsSync": false, # "settingsSync": false,
"settingsSyncVersion": ${settingsSyncVersion} # "settingsSyncVersion": ${settingsSyncVersion}
} # }
} # }
''; # '';
}; };
} }

View File

@@ -83,6 +83,7 @@
lzd = "lazydocker"; lzd = "lazydocker";
d = "docker"; d = "docker";
dcmp = "docker compose"; dcmp = "docker compose";
stui = "sudo systemctl-tui";
# nxsent = ''sent -c \${rice.color.foreground} -b \${rice.color.background}''; # nxsent = ''sent -c \${rice.color.foreground} -b \${rice.color.background}'';
# ya = "yazi"; # function # ya = "yazi"; # function

View File

@@ -1,54 +1,48 @@
{ config, rice, hyper, inputs, ... }: { pkgs, rice, ... }:
{ {
home = { programs.ghostty = {
packages = [ inputs.ghostty.packages.${hyper.system}.default ]; enable = true;
file."${config.xdg.configHome}/ghostty/config".text = with rice.color; /* ini */ '' package = pkgs.ghostty;
font-family="${rice.font.code.name}" settings = with rice.color; {
clipboard-read=allow background = background;
# clipboard-write=allow background-opacity = builtins.toString rice.transparency;
# clipboard-read=deny clipboard-paste-protection = false;
# clipboard-write=deny clipboard-read = "allow";
clipboard-trim-trailing-spaces=true clipboard-trim-trailing-spaces = true;
clipboard-paste-protection=false confirm-close-surface = false;
cursor-color = special.bright;
window-decoration=false cursor-opacity = 0.8;
confirm-close-surface=false font-family = "${rice.font.code.name}";
foreground = foreground;
window-padding-x=5 keybind = [
window-padding-y=5 "ctrl+comma=reload_config"
"ctrl+equal=increase_font_size:1"
keybind=ctrl+comma=reload_config "ctrl+minus=decrease_font_size:1"
keybind=ctrl+equal=increase_font_size:1 "ctrl+shift+v=paste_from_clipboard"
keybind=ctrl+minus=decrease_font_size:1 ];
keybind=ctrl+shift+v=paste_from_clipboard palette = with rice; [
"0=${black.base}"
background=${background} "8=${black.bright}"
foreground=${foreground} "1=${red.base}"
"9=${red.bright}"
background-opacity=${builtins.toString rice.transparency} "2=${green.base}"
"10=${green.bright}"
cursor-color=${special.bright} "3=${yellow.base}"
cursor-opacity=0.8 "11=${yellow.bright}"
"4=${blue.base}"
palette=0=${black.base} "12=${blue.bright}"
palette=8=${black.bright} "5=${magenta.base}"
palette=1=${red.base} "13=${magenta.bright}"
palette=9=${red.bright} "6=${cyan.base}"
palette=2=${green.base} "14=${cyan.bright}"
palette=10=${green.bright} "7=${white.base}"
palette=3=${yellow.base} "15=${white.bright}"
palette=11=${yellow.bright} ];
palette=4=${blue.base} selection-background = accent.base;
palette=12=${blue.bright} selection-foreground = background;
palette=5=${magenta.base} window-decoration = false;
palette=13=${magenta.bright} window-padding-x = 5;
palette=6=${cyan.base} window-padding-y = 5;
palette=14=${cyan.bright} };
palette=7=${white.base}
palette=15=${white.bright}
selection-background=${accent.base}
selection-foreground=${background}
'';
}; };
} }

View File

@@ -10,6 +10,7 @@
"blueman-manager" = "󰂯" "blueman-manager" = "󰂯"
"chatterino" = "" "chatterino" = ""
"Chromium" = "" "Chromium" = ""
"chromium-browser" = ""
"code" = "󰨞" "code" = "󰨞"
"code-oss" = "󰨞" "code-oss" = "󰨞"
"codium" = "󰨞" "codium" = "󰨞"

View File

@@ -66,6 +66,7 @@ in {
hyprland-protocols hyprland-protocols
hyprlock hyprlock
hypridle hypridle
hyprshot
hyprpicker hyprpicker
hyprcursor hyprcursor
@@ -74,8 +75,8 @@ in {
# ]) ++ (with pkgs-unstable; [ # ]) ++ (with pkgs-unstable; [
]) ++ (with inputs; [ # ]) ++ (with inputs; [
hyprswitch.packages.x86_64-linux.default # hyprswitch.packages.x86_64-linux.default
]); ]);
@@ -90,7 +91,8 @@ in {
# inputs.hyprland-plugins.packages.${pkgs.system}.hyprexpo # inputs.hyprland-plugins.packages.${pkgs.system}.hyprexpo
# inputs.hyprfocus.packages.${pkgs.system}.hyprfocus # inputs.hyprfocus.packages.${pkgs.system}.hyprfocus
# inputs.hycov.packages.${pkgs.system}.hycov # inputs.hycov.packages.${pkgs.system}.hycov
# inputs.Hyprspace.packages.${pkgs.system}.Hyprspace pkgs.hyprlandPlugins.hyprspace
# inputs.hyprspace.packages.${pkgs.system}.Hyprspace
]; ];
settings = { settings = {
@@ -133,7 +135,7 @@ in {
"27, monitor:${d2}" "27, monitor:${d2}"
"28, monitor:${d2}" "28, monitor:${d2}"
"29, monitor:${d2}" "29, monitor:${d2}"
"20, monitor:${d2}" "20, monitor:${d2}, ${compact}"
"31, monitor:${d3}, default:${let x = if hyper.host == "NxNORTH" then "true" else "false"; in x}" "31, monitor:${d3}, default:${let x = if hyper.host == "NxNORTH" then "true" else "false"; in x}"
"32, monitor:${d3}" "32, monitor:${d3}"
"33, monitor:${d3}" "33, monitor:${d3}"
@@ -208,7 +210,7 @@ in {
blur = { blur = {
enabled = true; enabled = true;
size = "3"; size = "10";
passes = "2"; passes = "2";
xray = false; xray = false;
vibrancy = 0.5; vibrancy = 0.5;
@@ -218,9 +220,10 @@ in {
animations = { animations = {
enabled = true; enabled = true;
# bezier = "myBezier, 0.01, 0.9, 0.1, 1.0"; #o bezier = "myBezier, 0.01, 0.9, 0.1, 1.0"; #o
# bezier = "myBezier, 0.83, 0, 0.17, 1"; # io # bezier = "myBezier, 0.83, 0, 0.17, 1"; # io
bezier = "myBezier, 0.33, 1, 0.68, 1"; # bezier = "myBezier, 0.05, 0.9, 0.1, 1.05";
# bezier = "myBezier, 0.33, 1, 0.68, 1";
animation = let direction = if hyper.host == "NxXPS" then "slide" else "slidevert"; in [ animation = let direction = if hyper.host == "NxXPS" then "slide" else "slidevert"; in [
"windows, 1, ${animation-speed}, myBezier, slide" "windows, 1, ${animation-speed}, myBezier, slide"
"border, 1, ${animation-speed}, myBezier" "border, 1, ${animation-speed}, myBezier"
@@ -273,65 +276,51 @@ in {
windowrulev2 = [ windowrulev2 = [
"bordercolor rgba(${rice.lib.nohash rice.color.magenta.bright}ff), pinned:1" "bordercolor rgba(${rice.lib.nohash rice.color.magenta.bright}ff), pinned:1"
"noanim, class:^(presenter)$" # sent
"float, class:^(presenter)$" # sent
"noanim, class:^(imv)$"
"float, class:^(imv)$"
"fullscreen, class:^(imv)$"
# "float, initialTitle:^(Edit Item)$" # thunderbid calendar
# "dimaround on, initialTitle:^(Edit Item)$" # thunderbid calendar
"float,class:^(thunderbird)$"
# "float,class:^(thunderbird)$,title:^(.*)(Reminder)(.*)$"
# "float,class:^(thunderbird)$,title:^About(.*)$"
# "float,class:^(thunderbird)$,title:^(Check Spelling)$"
"center 1,class:^(gimp)$"
] ++ [
"bordersize 0, floating:0, onworkspace:w[tv1]" "bordersize 0, floating:0, onworkspace:w[tv1]"
"rounding 0, floating:0, onworkspace:w[tv1]" "rounding 0, floating:0, onworkspace:w[tv1]"
"bordersize 0, floating:0, onworkspace:f[1]" "bordersize 0, floating:0, onworkspace:f[1]"
"rounding 0, floating:0, onworkspace:f[1]" "rounding 0, floating:0, onworkspace:f[1]"
] ++ [
"center 1,class:^(gimp)$"
"float, class:^(ibus-ui.*)$"
"float, class:^(ibus-ui-gtk3)$"
"float, class:^(imv)$"
"float, class:^(org.kde.polkit-kde-authentication-agent-1)$"
"float, class:^(presenter)$" # sent
"float, class:^(thunderbird)$"
"float, title:^(Compact folders)$"
"float, title:^(Ibus-ui.*)$"
"float, title:^(Ibus-ui-gtk3)$"
"float, title:^(Page Info .*)$"
"float, title:^(Picture-in-Picture)$"
"float, title:^(wlogout)$"
"fullscreen, class:^(imv)$"
"fullscreen, class:^(sent)$"
"fullscreen, class:^(wlogout)$"
"noanim, class:^(imv)$"
"noanim, class:^(presenter)$" # sent
# "opacity ${transparency}, firefox"
"opacity ${transparency}, class:^(code-oss)$"
"opacity ${transparency}, class:^(VSCodium)$"
"opacity ${transparency}, class:^(Code)$" "opacity ${transparency}, class:^(Code)$"
# "opacity ${transparency}, sent" "opacity ${transparency}, class:^(code-oss)$"
"opacity ${transparency}, class:^(neovide)$"
"opacity ${transparency}, class:^(obsidian)$"
# "opacity ${transparency}, zathura"
# "bordercolor rgba(${rice.lib.nohash rice.color.foreground}ff) rgba(${rice.lib.nohash rice.color.background}${rice.lib.float-to-drune rice.transparency}), Alacritty"
# "bordercolor rgba(${rice.lib.nohash rice.color.foreground}ff) rgba(${rice.lib.nohash rice.color.background}${rice.lib.float-to-drune rice.transparency}), ${terminal}"
"opacity ${transparency}, class:^(discord)$" "opacity ${transparency}, class:^(discord)$"
"opacity ${transparency}, class:^(vesktop)$" "opacity ${transparency}, class:^(vesktop)$"
# "opacity ${transparency}, class:^(Element)$" # "opacity ${transparency}, class:^(Element)$"
"opacity ${transparency}, class:^(lutris)$" "opacity ${transparency}, class:^(lutris)$"
"opacity ${transparency}, class:^(element)$" "opacity ${transparency}, class:^(neovide)$"
# "opacity ${transparency}, ^([sS]potify)$" "opacity ${transparency}, class:^(obsidian)$"
# "opacity ${transparency}, virt-manager" "opacity ${transparency}, class:^(vesktop)$"
# "opacity ${transparency}, thunar" "opacity ${transparency}, class:^(VSCodium)$"
"opacity ${transparency}, title:^(wlogout)$" "opacity ${transparency}, title:^(wlogout)$"
"opaque, title:^(GNU Image Manipulation Program)$" "opaque, title:^(GNU Image Manipulation Program)$"
"float, title:^(Picture-in-Picture)$"
# "float, class:^(Ibus-ui.*)$"
# "float, ^(ibus-ui.*)$"
# "float, ^(ibus-ui-gtk3)$"
"float, title:^(Ibus-ui-gtk3)$"
"pin, title:^(Picture-in-Picture)$" "pin, title:^(Picture-in-Picture)$"
"float, class:^(org.kde.polkit-kde-authentication-agent-1)$"
"float, title:^(wlogout)$"
"float, class:^(imv)$"
"float, title:^(Page Info .*)$"
"float, title:^(Compact folders)$"
"tile, class:^(sent)$" "tile, class:^(sent)$"
"fullscreen, class:^(wlogout)$"
"fullscreen, class:^(sent)$"
"workspace 14, class:^(lutris)$"
"workspace 100, title:^(Apex Legends)$"
# "workspace 100, ^(cyberpunk2077.exe)$"
"workspace 100, title:^(No Man.s Sky)$"
"workspace 100, class:^(gamescope)$" "workspace 100, class:^(gamescope)$"
]; ];
@@ -354,7 +343,6 @@ in {
########################################################################### ###########################################################################
## ROW 0: ## ROW 0:
bind = [ bind = [
"SUPER SHIFT, Escape, exit, "
"SUPER, F1, workspace, 100" "SUPER, F1, workspace, 100"
"SUPER SHIFT, F1, movetoworkspace, 100" "SUPER SHIFT, F1, movetoworkspace, 100"
# "SUPER, F2," # "SUPER, F2,"
@@ -405,8 +393,8 @@ in {
########################################################################### ###########################################################################
## ROW 2: ## ROW 2:
#bind = SUPER, TAB, hycov:toggleoverview # "SUPER, TAB, hycov:toggleoverview"
# "SUPER, TAB, overview:toggle" "SUPER, TAB, overview:toggle"
# "SUPER, TAB, hyprexpo:expo, toggle" # "SUPER, TAB, hyprexpo:expo, toggle"
"ALT, TAB, focuscurrentorlast" "ALT, TAB, focuscurrentorlast"
# "SUPER, TAB, exec, hyprswitch --daemon" # "SUPER, TAB, exec, hyprswitch --daemon"
@@ -437,7 +425,8 @@ in {
"SUPER, A, execr, waybar_mode set ' 󰹑 '" "SUPER, A, execr, waybar_mode set ' 󰹑 '"
"SUPER, A, submap, scrL" "SUPER, A, submap, scrL"
"SUPER, S, exec, spotify" "SUPER, S, exec, spotify"
"SUPER, D, exec, vesktop --disable-gpu-compositing" # "SUPER, D, exec, vesktop --disable-gpu-compositing"
"SUPER, D, exec, discord"
"SUPER, F, fullscreen" "SUPER, F, fullscreen"
# "SUPER, G," # "SUPER, G,"
"SUPER, H, movefocus, l" "SUPER, H, movefocus, l"
@@ -491,7 +480,9 @@ in {
########################################################################### ###########################################################################
## MEGA KEYS: ## MEGA KEYS:
'' , Print, exec, grim -g "$(slurp)"'' ", Print, execr, waybar_mode set '󰄀 '"
", Print, submap, screenshot"
# "SUPER, Next, resizeactive, 5% 5%" # binde # "SUPER, Next, resizeactive, 5% 5%" # binde
# "SUPER, Prior, resizeactive, -5% -5%" # binde # "SUPER, Prior, resizeactive, -5% -5%" # binde
@@ -528,6 +519,39 @@ in {
"SUPER, Next, resizeactive, 10% 10%" "SUPER, Next, resizeactive, 10% 10%"
"SUPER, Prior, resizeactive, -10% -10%" "SUPER, Prior, resizeactive, -10% -10%"
]; ];
plugin = {
overview = {
# panelHeight =
# panelBorderWidth =
onBottom = false; # whether if panel should be on bottom instead of top
# workspaceMargin = # spacing of workspaces with eachother and the edge of the panel
# reservedArea = # padding on top of the panel, for Macbook camera notch
workspaceBorderSize = rice.border-width; #
centerAligned = true; # whether if workspaces should be aligned at the center (KDE / macOS style) or at the left (Windows style)
hideBackgroundLayers = true; # do not draw background and bottom layers in overview
hideTopLayers = false; # do not draw top layers in overview
hideOverlayLayers = false; # do not draw overlay layers in overview
hideRealLayers = false; # whether to hide layers in actual workspace
drawActiveWorkspace = true; # draw the active workspace in overview as-is
overrideGaps = false; # whether if overview should override the layout gaps in the current workspace using the following values
# gapsIn = #
# gapsOut = #
affectStrut = false; # whether the panel should push window aside, disabling this option also
dots_center = true;
autoDrag = true; # mouse click always drags window when overview is open
autoScroll = true; # mouse scroll on active workspace area always switch workspace
exitOnClick = true; # mouse click without dragging exits overview
switchOnDrop = true; # switch to the workspace when a window is droppped into it
exitOnSwitch = true; # overview exits when overview is switched by clicking on workspace view or by switchOnDrop
showNewWorkspace = false; # add a new empty workspace at the end of workspaces view
showEmptyWorkspace = false; # show empty workspaces that are inbetween non-empty workspaces
showSpecialWorkspace = false; # defaults to false
disableGestures = true;
reverseSwipe = true; # reverses the direction of swipe gesture, for macOS peeps?
exitKey = true;
};
};
}; };
@@ -614,6 +638,13 @@ in {
bind = , Escape, submap, reset bind = , Escape, submap, reset
submap = reset submap = reset
submap = screenshot
${action_simple { key = "W"; cmd = ''exec,hyprshot -m window''; }}
${action_simple { key = "M"; cmd = ''exec,hyprshot -m output''; }}
${action_simple { key = "R"; cmd = ''exec,hyprshot -m region''; }}
bind = , Escape, execr, waybar_mode unset
bind = , Escape, submap, reset
submap = reset
''; '';
}; };

View File

@@ -1,11 +1,11 @@
{ pkgs, ... }: { pkgs, hyper, ... }:
{ {
home.packages = [ home.packages = [
(pkgs.writeShellApplication { (pkgs.writeShellApplication {
name = "nx_backup"; name = "nx_backup";
runtimeInputs = [ ]; runtimeInputs = [ ];
text = let text = let
web-root = "/var/nginx/webroot"; web-root = hyper.webroot;
gitea-backup = "/var/backup/gitea"; gitea-backup = "/var/backup/gitea";
postgres-backup = "/var/backup/postgresql"; postgres-backup = "/var/backup/postgresql";
in /* bash */ '' in /* bash */ ''

View File

@@ -6,6 +6,7 @@
cmake cmake
dig dig
du-dust du-dust
dysk
exiftool exiftool
eza eza
ffmpeg ffmpeg

View File

@@ -1,12 +1,12 @@
{ hyper, inputs, ... }: { pkgs, hyper, inputs, ... }:
{ {
imports = [ imports = [
inputs.sops-nix.homeManagerModules.sops inputs.sops-nix.homeManagerModules.sops
]; ];
sops = { sops = {
# age.keyFile = "/home/${user}/.config/sops/age/keys.txt"; age.keyFile = pkgs.lib.mkIf (hyper.host == "NxACE") "${hyper.home}.age_nx2_key_13.txt";
gnupg.home = "${hyper.home}/.gnupg"; gnupg.home = pkgs.lib.mkIf (hyper.host != "NxACE") "${hyper.home}.gnupg";
defaultSopsFile = ../sops-secrets.yaml; defaultSopsFile = ../sops-secrets.yaml;
# %r is $XDG_RUNTIME_DIR # %r is $XDG_RUNTIME_DIR

View File

@@ -10,14 +10,10 @@
package = inputs.yazi.packages.${hyper.system}.default; package = inputs.yazi.packages.${hyper.system}.default;
enableFishIntegration = true; enableFishIntegration = true;
shellWrapperName = "ya"; shellWrapperName = "ya";
plugins = with inputs.yazi-plugins.packages.${hyper.system}; { # plugins = with inputs.yazi-plugins.packages.${hyper.system}; { };
inherit
# chmod
starship;
};
# initLua = /* lua */ '' ''; # initLua = /* lua */ '' '';
keymap = { keymap = {
manager.keymap = [ mgr.keymap = [
{ on = "<Esc>"; run = "escape"; desc = "Exit visual mode, clear selected, or cancel search"; } { on = "<Esc>"; run = "escape"; desc = "Exit visual mode, clear selected, or cancel search"; }
{ on = "q"; run = "quit"; desc = "Exit the process"; } { on = "q"; run = "quit"; desc = "Exit the process"; }
{ on = "Q"; run = "quit --no-cwd-file"; desc = "Exit the process without writing cwd-file"; } { on = "Q"; run = "quit --no-cwd-file"; desc = "Exit the process without writing cwd-file"; }
@@ -181,7 +177,7 @@
]; ];
}; };
settings = { settings = {
manager = { mgr = {
layout = [2 3 4]; layout = [2 3 4];
sort_by = "natural"; sort_by = "natural";
sort_sensitive = true; sort_sensitive = true;
@@ -293,7 +289,7 @@
]; ];
}; };
theme = with rice.color; { theme = with rice.color; {
manager = { mgr = {
cwd = { fg = foreground; bg = background; }; cwd = { fg = foreground; bg = background; };
hovered = { fg = background; bg = accent.base; }; hovered = { fg = background; bg = accent.base; };
preview_hovered = { underline = false; }; preview_hovered = { underline = false; };

View File

@@ -1,4 +1,4 @@
{ pkgs, hyper, inputs, ... }: { pkgs, hyper, ... }:
{ {
imports = [ imports = [
./home-modules/auto-mount.nix ./home-modules/auto-mount.nix
@@ -6,6 +6,7 @@
./home-modules/bitwarden.nix ./home-modules/bitwarden.nix
./home-modules/calendar.nix ./home-modules/calendar.nix
./home-modules/chatterino.nix ./home-modules/chatterino.nix
./home-modules/clipboard.nix
./home-modules/color-pallete.nix ./home-modules/color-pallete.nix
./home-modules/direnv.nix ./home-modules/direnv.nix
./home-modules/discord.nix ./home-modules/discord.nix
@@ -104,24 +105,18 @@
reflex reflex
ripgrep ripgrep
screen screen
# speedtest-go
spicetify-cli spicetify-cli
sssnake sssnake
swww swww
systemctl-tui systemctl-tui
tldr tldr
unstable.firefox
unstable.spotify unstable.spotify
w3m w3m
wev wev
wl-clipboard wl-clipboard
xclip xclip
xfce.thunar xfce.thunar
# xournal
yt-dlp yt-dlp
inputs.zen-browser.packages."${system}".default
] ++ (if (hyper.host != "NxACE") then [ ] ++ (if (hyper.host != "NxACE") then [
signal-desktop signal-desktop
obsidian obsidian

View File

@@ -53,52 +53,51 @@ sops:
- recipient: age1vkqn2nars5qmpr35tac0x9vshphrq6nnzjfyxwusgn27kt3zualssv0u8e - recipient: age1vkqn2nars5qmpr35tac0x9vshphrq6nnzjfyxwusgn27kt3zualssv0u8e
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKdWFGWTZ4WktJNy85aUlz YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwZWl0RCszNGZqNDhzY25a
R1ZPR2xSajUxSGU5NlVDTGhpUGJ1S0RMVkc4CmhZR080ZVdHUHZnSmk1ekIyM0xm K2dPTGMvMzBSZytRMWR5d1pkTVpETmNZUTFzCmUrU25XdklVc3NicUV2OVh5bktR
ZDN6dXJ6aXYyYkg4WVdiMlgwbmNBUzAKLS0tIE9qUmFpN3Nrek9JTGlaN3RjcDA1 YmZIeGZzYkVJMXRwSkt6bXlaRGpiaEkKLS0tIEZOMDUxaEo1aXRsV050a3I0eFNR
bUZxZ0FuOXcxSVQraUgveEh3dm5XK0kKToAW0mEq3G/wWRnvfJWasW7eO8BeFlej UlIxODJVK3lEaC9lWG9wNmhaUWhuZEEKnQT50Svfxgnbo6+gTSGyLW8vt+hzehu5
OkXvP5R4+bddAsGPK83UxOUOFbZAzaYulFSaAFOssCOTui335nj+/w== djy0wdML7XGORKURUJcAnGCdgsugu7exTBPMeKldlPXySPGUf6vPRA==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
- recipient: age1jvf2lyrt2dw9jfnwgvnhmj9fmvyq8vvtepqjpkyycc5dqkkd4edqhxsgv6 - recipient: age1jvf2lyrt2dw9jfnwgvnhmj9fmvyq8vvtepqjpkyycc5dqkkd4edqhxsgv6
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvNzRERlBkMFVwbk5ka3Rz YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBISzJjS2t4OFNtd2s3RjE3
WHN5VE1XVFN6OWlMSFl1MnQyTEc4RHZVa0ZZCkZuY3doMTNUclMvWTJmQzFkbHlh V2hOUnByNVp3bjE4a0tPSkdCbXcwU093NGtFCmR2RXdzbTk1RXhQbmdVM0pkdGhE
Z3ZXSUZuRzBoN2NtU2dWUzFXMjc1MDQKLS0tIGNvN1JsdGF2ZFU2Vkl4UGtzdDFJ T2VGN1VnYlRqWXRmWEJucTd5eU5HYWsKLS0tIFJRODNibTZNRjZtZjlpN0IzbVZQ
aE9uY1NQSkFoWmg4WGlvV2JDbkcyeXMKh1yVwrTV+4XhEiiiMhA7rW7z11N+EsXU aHQwY0l3OTRVYlNSZnBQMGM4ekp0NGMKL0scPlNFywKmdPI3I8sgvmaVXOp6qm2m
FBHP2nk2UXWPQGioMiCinead8tjX2jfeQcmTwdk4aYMtnvpqWS5RVQ== O0N8BuQPEhiZXzNhPBPJnt6e/X+eW35lXdvbQ6AKv791WjZ4OlSZow==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
- recipient: age1jj7kfjw3e7rf9kwg5f87zf4ns6yr5465wcasanr9gcgwrq7c6dmq6gprgk - recipient: age1jj7kfjw3e7rf9kwg5f87zf4ns6yr5465wcasanr9gcgwrq7c6dmq6gprgk
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBva2JleWhLeERPbklkems1 YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwT2laNmNOYnhON2FEcGxl
YjJXUzlSZmhla0JFU2dtWFZzNWt4MTk4aEhFCnNvVmZmNm9Uc1pMWWNBRFpYRUJ1 OVFHa2owL1RCWWNWdDhzZWRlSkhPZmJpQjFvCjNPSGc4L1V5cENBMzY2VU56RnNW
R20vOEpsTGZFZ1p4V1JzSnVlSGJNY00KLS0tIDMreVdDSHdGVnhvVi9ENXFJY045 QmNiNGMyZXY0WmN3R0c5YURQN1RGbDQKLS0tIE5lZXZiR2FZVms4YllUd1BsOURD
ZGdKSmZmRFMveld2UmlPNmtNWTdIbWsKJkmAaS91KR1Lvx2tCuu7sfUUYq4eeLsa YTMxdkhkLzNGOWVYQkZJQnVCeW4zcXcKLaGzWYXBaR9mpLE47pWAkYUv/L5JuCR9
woel57Bqqpo8f0UMb8T6s8grdKMspZCkIu5ooR/U4xWhwOJQwd2gbw== ZH2oaOLio6BHY+pf9WbbazbjIKXMZ8KozpLTzbn7ayKYYgGxEiwdIA==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
- recipient: age1sgzc2jh8af30a3cp6g7l4hyzusqrn3x3xw7frghc4akvjaplwa3stfemxc - recipient: age1x2lpsennl74n0f5jl60uv2ffjcuqymzf9ap3frlz2quyv0x3hq3scnewwq
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBMVUJaM3MweHBMNjlxdHRD YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSByUmxCQ3ZOVGlWUWFkcGk1
blNZWHM3ZlZrUkVrQ3NhNnFkc1VIMytkMVhFCndTczlsVFc3bGRhRkZmRm5sMXp0 ZzNaR0R0UG43dkh5Wjd5MmQ5SlkwU0g3c0ZJCnVYZExQdi94ME56eUVwUG5XbjJi
dnZrOEVoS3F6L0hSSTUrYllnNldYTnMKLS0tIFNjVzEzTC9LZldGMmlZS3VYRThW OC9OSmZYeHo4anJLb0NQSEs3cmMrS1UKLS0tIFJWU1VYL09SbDlHZlJtRlhmSjFJ
SHJLR3lvdlFiRmJuU25RUHFFTmpjamMKbzycdDvQBAuOiRROTZEQSnaXoPapz73L YkJWUEMySU50ZHVxUzVudjNnYURXak0KkMn/8sFrrviqb3s8DtS/BAbrdCwJ+jv/
yVS9EUP25FSx/sGqRqaCefbeaybuM1aso6LDnlomv4Bib7zjugWKSw== A8rXQkKMjvTqG1f0fq5IlSmRAQy7XFBzkfbKdIUoefhey190WPEHaw==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
lastmodified: "2025-06-16T08:57:57Z" lastmodified: "2025-06-16T08:57:57Z"
mac: ENC[AES256_GCM,data:Qwk39Cv+WhxnW8858qWtGPiCrYb4bje5nRGOkG4OrAC/dZ+wpbMd9DXF134PUM1NB/aI3ivnl4EeVAlcv/E32EjodZJOGkseKme5Hler69+nfL0DJT00XhBDR3aGVf3YMA5Po+XR9ikLKFF1wz4DhV4ylN6RxxMrpLJltba+0NI=,iv:QUulKPfnAujRUNWKBKUsIynOHsd4E09NO8TlaQwzFy0=,tag:N1LNlbvdjkXWarIAI9tkZg==,type:str] mac: ENC[AES256_GCM,data:Qwk39Cv+WhxnW8858qWtGPiCrYb4bje5nRGOkG4OrAC/dZ+wpbMd9DXF134PUM1NB/aI3ivnl4EeVAlcv/E32EjodZJOGkseKme5Hler69+nfL0DJT00XhBDR3aGVf3YMA5Po+XR9ikLKFF1wz4DhV4ylN6RxxMrpLJltba+0NI=,iv:QUulKPfnAujRUNWKBKUsIynOHsd4E09NO8TlaQwzFy0=,tag:N1LNlbvdjkXWarIAI9tkZg==,type:str]
pgp: pgp:
- created_at: "2024-06-09T19:44:41Z" - created_at: "2025-06-08T12:35:30Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hF4DCvJ7ODFw5jQSAQdAUcAbKZ7q2ZNLG55YA8gSUc7Lyqn2G/7srJa17lezUlgw hF4DCvJ7ODFw5jQSAQdAw5PIhSmghpU+R4d8A9FY1z9NwN2C1CQvnP0u/D6k9nEw
MIhuvf6H1TfUkabE8it12NZzhSibmC+7T6FqB9tTY8UXvMn8KzVbIX5Opu/J9NNp 4jYo133RBpSmZUEOPsrAIGDwcx5rAjIwXtYEUeH3ZR1/0imfyOh0iF0NhEqF5awG
1GgBCQIQUai/KFbpw4kaUthOe2ftUuN7fYLL0Nl4ZqrGNJMFYTjwOFyb6yWE7i7C 0l4BWb/AQFnokqiIuRGQPMqpO6X3m00C2kB79nodaxorhc/WBs4JX3qz89zozsLq
fEjGjALJU2ZZIL3mZ4FYkqU1eoidKLSnDtsGArxz0ACEo8UWuR7t1QFD3oYUFu0D ao8WHHadtQJwBveKurCNHLcr2+vLatPZ93Oo3s/ky+5eB+HrottOC818TIP51tXx
i5Hfz3tyzMfPsA== =8dKb
=7FCO
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: 22FB2CC03DC5292AB81CF67D0AF27B383170E634 fp: 22FB2CC03DC5292AB81CF67D0AF27B383170E634
unencrypted_suffix: _unencrypted unencrypted_suffix: _unencrypted

View File

@@ -17,62 +17,14 @@ in
environment.systemPackages = with pkgs; [ sbctl ]; environment.systemPackages = with pkgs; [ sbctl ];
boot = { boot = {
lanzaboote = let lanzaboote = {
windows-efi-shell-fs-alias = "HD0a65535a2";
in {
enable = true; enable = true;
pkiBundle = "/etc/secureboot"; pkiBundle = "/var/lib/sbctl";
package = pkgs.lib.mkForce (pkgs.writeShellApplication {
name = "lzbt";
runtimeInputs = [
inputs.lanzaboote.packages.x86_64-linux.tool
pkgs.coreutils
pkgs.sbctl
];
# https://forum.endeavouros.com/t/tutorial-add-a-systemd-boot-loader-menu-entry-for-a-windows-installation-using-a-separate-esp-partition/37431
text = /*bash*/ ''
# execute normal lanazboote functionality
lzbt "$@"
# Create windows.nsh file
ESP='${config.boot.loader.efi.efiSysMountPoint}'
echo "${windows-efi-shell-fs-alias}:EFI\Microsoft\Boot\Bootmgfw.efi" > "$ESP/windows.nsh"
# cp efi-shell boot file
# systemd-boot will automatically add an entry for it
cp -f '${pkgs.edk2-uefi-shell.efi}' "$ESP/shellx64.efi"
# should exist already
mkdir -p "$ESP/loader/entries"
# sign shell file
sbctl sign -s "$ESP/shellx64.efi"
# Create windows.conf boot entry
cat << EOF > "$ESP/loader/entries/windows.conf"
title Windows-Hack
efi /shellx64.efi
options -nointerrupt -noconsolein -noconsoleout windows.nsh
EOF
'';
});
}; };
loader.systemd-boot = { loader.systemd-boot = {
enable = false; # let lanzaboote install systemd-boot enable = false; # let lanzaboote install systemd-boot
consoleMode = "max"; consoleMode = "max";
configurationLimit = 10; configurationLimit = 10;
# extraEntries = {
# "Windo7s-11.conf" = ''
# Windows eleven
# search --file --no-floppy --set=root /EFI/Microsoft/Boot/bootmgfw.efi
# chainloader (''${root})/EFI/Microsoft/Boot/bootmgfw.efi
# '';
# "Firmware.conf" = ''
# Firmware
# fwsetup
# '';
# "Shutdown.conf" = ''
# title Shutdown
# halt
# '';
# };
}; };
kernelPackages = pkgs.linuxPackages_zen; kernelPackages = pkgs.linuxPackages_zen;
extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ]; extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ];

View File

@@ -25,25 +25,27 @@ import requests
def filter_events(events): def filter_events(events):
return [event for event in events if ("LR" in event.name) or ("TBD" in event.name)] return [event for event in events if ("LR" in event.name) or ("TBD" in event.name)]
def fetch_and_save_ical_events(ical_url, save_path): def fetch_and_save_ical_events(ical_urls, save_path):
""" """
Fetch events from an iCal URL and save them as a single combined calendar. Fetch events from an iCal URL and save them as a single combined calendar.
""" """
try: try:
# Fetch the iCal data
response = requests.get(ical_url)
response.raise_for_status()
# Parse the iCal data
calendar = Calendar(response.text)
# Adjust events
adjusted_events = filter_events(list(calendar.events))
# Create a new combined calendar # Create a new combined calendar
combined_calendar = Calendar() combined_calendar = Calendar()
for event in adjusted_events:
combined_calendar.events.add(event) for url in ical_urls:
# Fetch the iCal data
response = requests.get(url)
response.raise_for_status()
# Parse the iCal data
calendar = Calendar(response.text)
# Adjust events
adjusted_events = filter_events(list(calendar.events))
for event in adjusted_events:
combined_calendar.events.add(event)
# Save the combined calendar to a single .ics file # Save the combined calendar to a single .ics file
with open(save_path, 'w') as file: with open(save_path, 'w') as file:
@@ -58,10 +60,13 @@ def fetch_and_save_ical_events(ical_url, save_path):
if __name__ == "__main__": if __name__ == "__main__":
# Replace with your iCal URL and target file path # Replace with your iCal URL and target file path
ICAL_URL = "https://zlypher.github.io/lol-events/cal/league-of-legends-nlc.ical" ICAL_URLS = [
"https://zlypher.github.io/lol-events/cal/league-of-legends-nlc.ical",
"https://zlypher.github.io/lol-events/cal/league-of-legends-emea-masters.ical"
]
SAVE_PATH = "${config.services.nginx.virtualHosts."${hyper.domain}".root}/lr.ics" SAVE_PATH = "${config.services.nginx.virtualHosts."${hyper.domain}".root}/lr.ics"
fetch_and_save_ical_events(ICAL_URL, SAVE_PATH) fetch_and_save_ical_events(ICAL_URLS, SAVE_PATH)
''); '');
in '' in ''
${nx_cal_lr}/bin/nx_cal_lr ${nx_cal_lr}/bin/nx_cal_lr

View File

@@ -31,7 +31,6 @@
networking.useDHCP = pkgs.lib.mkDefault true; networking.useDHCP = pkgs.lib.mkDefault true;
nixpkgs.hostPlatform = pkgs.lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = pkgs.lib.mkDefault config.hardware.enableRedistributableFirmware; hardware.cpu.intel.updateMicrocode = pkgs.lib.mkDefault config.hardware.enableRedistributableFirmware;
# from nixos-hardware # from nixos-hardware

View File

@@ -9,7 +9,7 @@
acceptTerms = true; acceptTerms = true;
defaults = { defaults = {
email = "acme@${hyper.domain}"; email = "acme@${hyper.domain}";
webroot = "/var/nginx/webroot"; webroot = config.services.nginx.virtualHosts."${hyper.domain}".root;
group = "nginx"; group = "nginx";
}; };
certs = { certs = {
@@ -77,22 +77,24 @@
}; };
in { in {
"${hyper.domain}" = vh // { "${hyper.domain}" = vh // {
root = "/var/nginx/webroot"; # root = "/var/nginx/webroot";
root = "/var/lib/hugo/nx2site/public";
default = true; default = true;
listen = dl; listen = dl;
locations = { locations = {
"/" = { "/" = {
extraConfig = '' extraConfig = ''
index index.html; index index.html;
if ($request_uri ~ ^/(.*)\.html(\?|$)) {
return 301 /$1;
}
try_files $uri $uri.html $uri/ /404.html =404;
''; '';
}; };
"~^(/ba)$" = { return = "301 /BA.pdf"; }; "~^(/ba)$" = { return = "301 /BA.pdf"; };
"/.well-known/matrix/client" = { return = "502"; }; "/.well-known/matrix/client" = { return = "502"; };
"/.well-known/matrix/server" = { return = "502"; }; "/.well-known/matrix/server" = { return = "502"; };
"/phone" = { return = "301 /en/cards/phone"; };
"/about-me" = { return = "301 /en/slides/about-me"; };
"/about-this-site" = { return = "301 /en/slides/about-this-site"; };
"/gpg" = { return = "301 /en/cards/gpg"; };
"/contact" = { return = "301 /en/cards/contact"; };
}; };
}; };
"matrix.${hyper.domain}" = { "matrix.${hyper.domain}" = {
@@ -121,7 +123,7 @@
}; };
"sync.${hyper.domain}" = vh // { "sync.${hyper.domain}" = vh // {
listen = dl; listen = dl;
locations = { "/" = { proxyPass = "http://127.0.0.1:11434"; }; }; locations = { "/" = { proxyPass = "http://127.0.0.1:8384"; }; };
}; };
# "git.${hyper.domain}" = vh // { # "git.${hyper.domain}" = vh // {
# listen = dl; # listen = dl;
@@ -157,8 +159,9 @@
proxyWebsockets = true; proxyWebsockets = true;
}; };
}; };
"wip.${hyper.domain}" = vh // { "old.${hyper.domain}" = vh // {
listen = dl; listen = dl;
root = "/var/nginx/webroot";
}; };
"dev.${hyper.domain}" = vh // { "dev.${hyper.domain}" = vh // {
listen = dl; listen = dl;

View File

@@ -16,6 +16,7 @@
ports = [ secrets.ssh.port ]; ports = [ secrets.ssh.port ];
settings = { settings = {
PasswordAuthentication = false; PasswordAuthentication = false;
PrintLastLog = false;
}; };
}; };
} }