mirror of
https://github.com/kittywitch/nixfiles.git
synced 2026-02-09 04:19:19 -08:00
feat: vicinae, update servers
This commit is contained in:
parent
0e91b2184d
commit
edd507c0ec
20 changed files with 188 additions and 187 deletions
1
TODO.md
1
TODO.md
|
|
@ -6,6 +6,7 @@
|
||||||
- [ ] matrix.org or nix.dev
|
- [ ] matrix.org or nix.dev
|
||||||
- [ ] Desktop
|
- [ ] Desktop
|
||||||
- [ ] Test performance for virtual machines on laptop and desktop
|
- [ ] Test performance for virtual machines on laptop and desktop
|
||||||
|
- [ ] Clean up password manager
|
||||||
|
|
||||||
## New service deployments
|
## New service deployments
|
||||||
|
|
||||||
|
|
|
||||||
68
flake.lock
generated
68
flake.lock
generated
|
|
@ -2004,6 +2004,9 @@
|
||||||
"tree": "tree",
|
"tree": "tree",
|
||||||
"treefmt-nix": "treefmt-nix_3",
|
"treefmt-nix": "treefmt-nix_3",
|
||||||
"ucodenix": "ucodenix",
|
"ucodenix": "ucodenix",
|
||||||
|
"vicinae": "vicinae",
|
||||||
|
"vicinae-extensions": "vicinae-extensions",
|
||||||
|
"vicinae-rbw": "vicinae-rbw",
|
||||||
"wezterm": "wezterm"
|
"wezterm": "wezterm"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
@ -2577,6 +2580,71 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"vicinae": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"systems": [
|
||||||
|
"systems"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1765272078,
|
||||||
|
"narHash": "sha256-etv2HJA9OWvTkjnrjaNSqvebu9gWLIGPYb9PWr4qkfM=",
|
||||||
|
"owner": "vicinaehq",
|
||||||
|
"repo": "vicinae",
|
||||||
|
"rev": "32cf6b1f82e007cddba9c9ae037eff670219cd55",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "vicinaehq",
|
||||||
|
"repo": "vicinae",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"vicinae-extensions": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"systems": [
|
||||||
|
"systems"
|
||||||
|
],
|
||||||
|
"vicinae": [
|
||||||
|
"vicinae"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1765122409,
|
||||||
|
"narHash": "sha256-CR4yU44yKqQHOuS5i/ca+05K90sKfcZ+7uoARjrOOJo=",
|
||||||
|
"owner": "vicinaehq",
|
||||||
|
"repo": "extensions",
|
||||||
|
"rev": "6e0c6e9eec288a577183998fb24bc8134b236e5d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "vicinaehq",
|
||||||
|
"repo": "extensions",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"vicinae-rbw": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1765285656,
|
||||||
|
"narHash": "sha256-ncZmIQw89KRof41ZrgAvt2L+UjIHGy11EMq767Nw5yg=",
|
||||||
|
"owner": "kittywitch",
|
||||||
|
"repo": "vicinae-rbw",
|
||||||
|
"rev": "ae004193b80bf38a0bd66dae37a82c8308191163",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "kittywitch",
|
||||||
|
"repo": "vicinae-rbw",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"wezterm": {
|
"wezterm": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": [
|
"flake-utils": [
|
||||||
|
|
|
||||||
19
flake.nix
19
flake.nix
|
|
@ -62,6 +62,25 @@
|
||||||
rust.follows = "rust";
|
rust.follows = "rust";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
vicinae = {
|
||||||
|
url = "github:vicinaehq/vicinae";
|
||||||
|
inputs = {
|
||||||
|
systems.follows = "systems";
|
||||||
|
nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
vicinae-rbw = {
|
||||||
|
url = "github:kittywitch/vicinae-rbw";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
|
vicinae-extensions = {
|
||||||
|
url = "github:vicinaehq/extensions";
|
||||||
|
inputs = {
|
||||||
|
systems.follows = "systems";
|
||||||
|
nixpkgs.follows = "nixpkgs";
|
||||||
|
vicinae.follows = "vicinae";
|
||||||
|
};
|
||||||
|
};
|
||||||
# better than nixpkgs.lib
|
# better than nixpkgs.lib
|
||||||
nix-std = {
|
nix-std = {
|
||||||
url = "github:chessai/nix-std";
|
url = "github:chessai/nix-std";
|
||||||
|
|
|
||||||
|
|
@ -1,19 +1,8 @@
|
||||||
{
|
{config, ...}: let
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
cfg = config.programs.anyrun;
|
cfg = config.programs.anyrun;
|
||||||
inherit (lib.meta) getExe;
|
|
||||||
in {
|
in {
|
||||||
programs.niri.settings.binds = {
|
|
||||||
"Mod+D".action = let
|
|
||||||
sh = config.lib.niri.actions.spawn "sh" "-c";
|
|
||||||
in
|
|
||||||
sh (getExe cfg.package);
|
|
||||||
};
|
|
||||||
programs.anyrun = {
|
programs.anyrun = {
|
||||||
enable = true;
|
enable = false;
|
||||||
config = {
|
config = {
|
||||||
x = {fraction = 0.5;};
|
x = {fraction = 0.5;};
|
||||||
y = {fraction = 0.3;};
|
y = {fraction = 0.3;};
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,7 @@ in {
|
||||||
personalBindings = {
|
personalBindings = {
|
||||||
"Mod+Return".action = sh ''${getExe config.programs.alacritty.package}'';
|
"Mod+Return".action = sh ''${getExe config.programs.alacritty.package}'';
|
||||||
"Mod+T".action.toggle-window-floating = {};
|
"Mod+T".action.toggle-window-floating = {};
|
||||||
|
"Mod+D".action = sh ''${getExe config.programs.vicinae.package} toggle'';
|
||||||
#"Mod+D".action = sh ''${getExe config.programs.fuzzel.package} -D no -T "${getExe config.programs.alacritty.package} --command"'';
|
#"Mod+D".action = sh ''${getExe config.programs.fuzzel.package} -D no -T "${getExe config.programs.alacritty.package} --command"'';
|
||||||
#"Mod+D".action = sh ''${noctalia} launcher toggle'';
|
#"Mod+D".action = sh ''${noctalia} launcher toggle'';
|
||||||
#"Mod+Shift+D".action = sh ''${noctalia} launcher clipboard'';
|
#"Mod+Shift+D".action = sh ''${noctalia} launcher clipboard'';
|
||||||
|
|
|
||||||
31
home/environments/niri/vicinae.nix
Normal file
31
home/environments/niri/vicinae.nix
Normal file
|
|
@ -0,0 +1,31 @@
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
brotab
|
||||||
|
oath-toolkit
|
||||||
|
];
|
||||||
|
programs.vicinae = {
|
||||||
|
enable = true;
|
||||||
|
systemd.enable = true;
|
||||||
|
extensions =
|
||||||
|
(with inputs.vicinae-extensions.packages.${pkgs.stdenv.hostPlatform.system}; [
|
||||||
|
bluetooth
|
||||||
|
nix
|
||||||
|
mullvad
|
||||||
|
player-pilot
|
||||||
|
wifi-commander
|
||||||
|
ssh
|
||||||
|
niri
|
||||||
|
brotab
|
||||||
|
])
|
||||||
|
++ [
|
||||||
|
(inputs.vicinae.packages.${pkgs.stdenv.hostPlatform.system}.mkVicinaeExtension rec {
|
||||||
|
pname = "vicinae-rbw";
|
||||||
|
src = inputs.${pname}.outPath;
|
||||||
|
})
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -13,7 +13,6 @@
|
||||||
enable = true;
|
enable = true;
|
||||||
defaultApplications = {
|
defaultApplications = {
|
||||||
"inode/directory" = "pcmanfm.desktop";
|
"inode/directory" = "pcmanfm.desktop";
|
||||||
"text/plain" = "nvim.desktop";
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@
|
||||||
sponsorblock
|
sponsorblock
|
||||||
link-cleaner
|
link-cleaner
|
||||||
canvasblocker
|
canvasblocker
|
||||||
|
brotab
|
||||||
a11ycss
|
a11ycss
|
||||||
view-image
|
view-image
|
||||||
wappalyzer
|
wappalyzer
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
{nur, ...}: {
|
{nur, ...}: {
|
||||||
programs.librewolf.profiles.main.extensions = {
|
programs.librewolf.profiles.main.extensions = {
|
||||||
packages = with nur.repos.rycee.firefox-addons; [
|
packages = with nur.repos.rycee.firefox-addons; [
|
||||||
adnauseam
|
#adnauseam
|
||||||
|
ublock-origin
|
||||||
];
|
];
|
||||||
settings = {
|
settings = {
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,20 +1,58 @@
|
||||||
{pkgs, ...}: {
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
inherit (lib.attrsets) genAttrs;
|
||||||
|
in {
|
||||||
|
xdg.mimeApps.defaultApplications = let
|
||||||
|
genDefault = application: types: genAttrs types (_: application);
|
||||||
|
imageTypes = map (x: "image/${x}") [
|
||||||
|
"apng"
|
||||||
|
"avif"
|
||||||
|
"bmp"
|
||||||
|
"gif"
|
||||||
|
"heic"
|
||||||
|
"heif"
|
||||||
|
"jpeg"
|
||||||
|
"png"
|
||||||
|
"svg+xml"
|
||||||
|
"webp"
|
||||||
|
];
|
||||||
|
videoTypes = map (x: "video/${x}") [
|
||||||
|
"AV1"
|
||||||
|
"H264"
|
||||||
|
"H265"
|
||||||
|
"matroska"
|
||||||
|
"mp4"
|
||||||
|
"MPV"
|
||||||
|
"mpeg"
|
||||||
|
"ogg"
|
||||||
|
"VP8"
|
||||||
|
"VP9"
|
||||||
|
];
|
||||||
|
imageDefaults = genDefault "imv.desktop" imageTypes;
|
||||||
|
videoDefaults = genDefault "mpv.desktop" videoTypes;
|
||||||
|
combinedDefaults = imageDefaults // videoDefaults;
|
||||||
|
in
|
||||||
|
combinedDefaults;
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
anki
|
anki
|
||||||
|
|
||||||
# Task managers
|
# Imagery
|
||||||
btop
|
|
||||||
htop
|
|
||||||
|
|
||||||
aseprite
|
aseprite
|
||||||
|
imv
|
||||||
|
gimp
|
||||||
|
|
||||||
# Chat
|
# Chat
|
||||||
telegram-desktop # Telegram
|
telegram-desktop # Telegram
|
||||||
signal-desktop
|
signal-desktop
|
||||||
fluffychat
|
fluffychat
|
||||||
dino
|
dino
|
||||||
mumble
|
mumble
|
||||||
keymapp
|
|
||||||
# Archivery
|
# Archivery
|
||||||
|
xarchiver
|
||||||
unzip
|
unzip
|
||||||
zip
|
zip
|
||||||
p7zip
|
p7zip
|
||||||
|
|
@ -30,7 +68,5 @@
|
||||||
pwvucontrol
|
pwvucontrol
|
||||||
veracrypt
|
veracrypt
|
||||||
deluge
|
deluge
|
||||||
gimp
|
|
||||||
xarchiver
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,9 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
|
xdg.mimeApps.defaultApplications = {
|
||||||
|
"text/plain" = "nvim.desktop";
|
||||||
|
};
|
||||||
programs.nixvim = {
|
programs.nixvim = {
|
||||||
enable = true;
|
enable = true;
|
||||||
defaultEditor = true;
|
defaultEditor = true;
|
||||||
|
|
|
||||||
|
|
@ -14,13 +14,13 @@
|
||||||
jujutsu = {
|
jujutsu = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
|
delta = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
git = {
|
git = {
|
||||||
inherit (tree.home.user.data) userName userEmail;
|
inherit (tree.home.user.data) userName userEmail;
|
||||||
package = pkgs.gitFull;
|
package = pkgs.gitFull;
|
||||||
enable = true;
|
enable = true;
|
||||||
delta = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
extraConfig = {
|
extraConfig = {
|
||||||
init = {defaultBranch = "main";};
|
init = {defaultBranch = "main";};
|
||||||
protocol.gcrypt.allow = "always";
|
protocol.gcrypt.allow = "always";
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,11 @@ in {
|
||||||
services.openssh = {
|
services.openssh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
KexAlgorithms = ["curve25519-sha256@libssh.org"];
|
KexAlgorithms = [
|
||||||
|
"mlkem768x25519-sha256"
|
||||||
|
"sntrup761x25519-sha512"
|
||||||
|
"curve25519-sha256@libssh.org"
|
||||||
|
];
|
||||||
PasswordAuthentication = false;
|
PasswordAuthentication = false;
|
||||||
KbdInteractiveAuthentication = false;
|
KbdInteractiveAuthentication = false;
|
||||||
PermitRootLogin = mkDefault "prohibit-password";
|
PermitRootLogin = mkDefault "prohibit-password";
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,13 @@
|
||||||
{config, ...}: {
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
security.acme = {
|
security.acme = {
|
||||||
defaults = {
|
defaults = {
|
||||||
dnsProvider = "cloudflare";
|
dnsProvider = "cloudflare";
|
||||||
credentialsFile = config.sops.secrets.acme_credentials.path;
|
credentialsFile = config.sops.secrets.acme_credentials.path;
|
||||||
|
email = lib.mkDefault "acme@inskip.me";
|
||||||
};
|
};
|
||||||
acceptTerms = true;
|
acceptTerms = true;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
2
scripts/brotab.sh
Executable file
2
scripts/brotab.sh
Executable file
|
|
@ -0,0 +1,2 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
brotab "$@"
|
||||||
|
|
@ -69,7 +69,6 @@ _: let
|
||||||
};
|
};
|
||||||
"localhost" = vHost;
|
"localhost" = vHost;
|
||||||
};
|
};
|
||||||
security.acme.defaults.email = "acme@inskip.me";
|
|
||||||
system.stateVersion = "23.11";
|
system.stateVersion = "23.11";
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
|
|
|
||||||
|
|
@ -1,157 +0,0 @@
|
||||||
_: let
|
|
||||||
hostConfig = {
|
|
||||||
tree,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
inherit (lib.attrsets) nameValuePair listToAttrs;
|
|
||||||
datasets = [
|
|
||||||
"root"
|
|
||||||
"nix"
|
|
||||||
"games"
|
|
||||||
"home"
|
|
||||||
"var"
|
|
||||||
];
|
|
||||||
datasetEntry = dataset:
|
|
||||||
nameValuePair (
|
|
||||||
if dataset == "root"
|
|
||||||
then "/"
|
|
||||||
else "/${dataset}"
|
|
||||||
) {
|
|
||||||
device = "zpool/${dataset}";
|
|
||||||
fsType = "zfs";
|
|
||||||
options = ["zfsutil"];
|
|
||||||
};
|
|
||||||
datasetEntries = listToAttrs (map datasetEntry datasets);
|
|
||||||
|
|
||||||
drives = {
|
|
||||||
boot = rec {
|
|
||||||
raw = "/dev/disk/by-uuid/BEDB-489E";
|
|
||||||
result = {
|
|
||||||
device = raw;
|
|
||||||
fsType = "vfat";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
swap = rec {
|
|
||||||
raw = "/dev/disk/by-partuuid/cba02f4a-a90d-44e3-81a8-46bb4500112e";
|
|
||||||
result = {
|
|
||||||
device = raw;
|
|
||||||
randomEncryption = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
in {
|
|
||||||
imports =
|
|
||||||
(with tree.nixos.hardware; [
|
|
||||||
])
|
|
||||||
++ (with tree.nixos.profiles; [
|
|
||||||
graphical
|
|
||||||
])
|
|
||||||
++ (with tree.nixos.environments; [
|
|
||||||
niri
|
|
||||||
]);
|
|
||||||
config = {
|
|
||||||
home-manager.users.kat = {
|
|
||||||
programs = {
|
|
||||||
konawall-py.settings = {
|
|
||||||
source = "konachan";
|
|
||||||
tags = [
|
|
||||||
"rating:s"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
imports =
|
|
||||||
(with tree.home.profiles; [
|
|
||||||
graphical
|
|
||||||
])
|
|
||||||
++ (with tree.home.environments; [
|
|
||||||
niri
|
|
||||||
]);
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems =
|
|
||||||
datasetEntries
|
|
||||||
// {
|
|
||||||
"/boot" = drives.boot.result;
|
|
||||||
};
|
|
||||||
|
|
||||||
swapDevices = [
|
|
||||||
drives.swap.result
|
|
||||||
];
|
|
||||||
|
|
||||||
boot = {
|
|
||||||
loader = {
|
|
||||||
grub.useOSProber = true;
|
|
||||||
systemd-boot.enable = lib.mkForce false;
|
|
||||||
};
|
|
||||||
extraModprobeConfig = "options snd_hda_intel power_save=0";
|
|
||||||
extraModulePackages = [config.boot.kernelPackages.v4l2loopback.out];
|
|
||||||
};
|
|
||||||
|
|
||||||
services.scx = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.scx_git.full;
|
|
||||||
scheduler = "scx_lavd";
|
|
||||||
};
|
|
||||||
|
|
||||||
zramSwap.enable = true;
|
|
||||||
|
|
||||||
programs.ssh.extraConfig = ''
|
|
||||||
Host daiyousei-build
|
|
||||||
HostName 140.238.156.121
|
|
||||||
User root
|
|
||||||
IdentityAgent /run/user/1000/gnupg/S.gpg-agent.ssh
|
|
||||||
'';
|
|
||||||
|
|
||||||
nix = {
|
|
||||||
buildMachines = [
|
|
||||||
{
|
|
||||||
hostName = "daiyousei-build";
|
|
||||||
system = "aarch64-linux";
|
|
||||||
protocol = "ssh-ng";
|
|
||||||
maxJobs = 100;
|
|
||||||
speedFactor = 1;
|
|
||||||
supportedFeatures = ["benchmark" "big-parallel" "kvm"];
|
|
||||||
mandatoryFeatures = [];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
distributedBuilds = true;
|
|
||||||
extraOptions = ''
|
|
||||||
builders-use-substitutes = true
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
# optional, useful when the builder has a faster internet connection than yours
|
|
||||||
services = {
|
|
||||||
printing.enable = true;
|
|
||||||
syncthing = {
|
|
||||||
enable = true;
|
|
||||||
openDefaultPorts = true;
|
|
||||||
user = "kat";
|
|
||||||
dataDir = "/home/kat";
|
|
||||||
};
|
|
||||||
hardware.bolt.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
boot = {
|
|
||||||
supportedFilesystems = ["ntfs" "xfs"];
|
|
||||||
};
|
|
||||||
|
|
||||||
networking = {
|
|
||||||
hostId = "9ef75c48";
|
|
||||||
useDHCP = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
system.stateVersion = "24.05";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
in {
|
|
||||||
arch = "x86_64";
|
|
||||||
ci.enable = false; # Closure too large
|
|
||||||
type = "NixOS";
|
|
||||||
modules = [
|
|
||||||
hostConfig
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
PRESSURE_VESSEL_FILESYSTEMS_RW=$XDG_RUNTIME_DIR/wivrn/comp_ipc
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue