stufk;
This commit is contained in:
parent
51409b72dc
commit
e8366cc6cc
9 changed files with 677 additions and 662 deletions
|
|
@ -1,261 +1,269 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
inputs,
|
||||
lib,
|
||||
...
|
||||
config,
|
||||
pkgs,
|
||||
inputs,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
cargoFile = builtins.readFile ./cargo.toml;
|
||||
cargoConfig = builtins.replaceStrings ["/path/to/sccache" "/path/to/mold"] ["${pkgs.sccache}/bin/sccache" "${pkgs.mold}/bin/mold}"] cargoFile;
|
||||
age.secrets.syncthing-NOcomputer.file = ../secrets/syncthing-NOcomputer.age;
|
||||
age.secrets.syncthing-NOlaptop.file = ../secrets/syncthing-NOlaptop.age;
|
||||
age.secrets.syncthing-uwuraid.file = ../secrets/syncthing-uwuraid.age;
|
||||
cargoFile = builtins.readFile ./cargo.toml;
|
||||
cargoConfig = builtins.replaceStrings ["/path/to/sccache" "/path/to/mold"] ["${pkgs.sccache}/bin/sccache" "${pkgs.mold}/bin/mold}"] cargoFile;
|
||||
age.secrets.syncthing-NOcomputer.file = ../secrets/syncthing-NOcomputer.age;
|
||||
age.secrets.syncthing-NOlaptop.file = ../secrets/syncthing-NOlaptop.age;
|
||||
age.secrets.syncthing-uwuraid.file = ../secrets/syncthing-uwuraid.age;
|
||||
in {
|
||||
imports = [
|
||||
./boxxy.nix
|
||||
(import ./helix.nix {inherit pkgs inputs;})
|
||||
# ./plasma.nix
|
||||
# ./firefox.nix
|
||||
];
|
||||
imports = [
|
||||
./boxxy.nix
|
||||
(import ./helix.nix {inherit pkgs inputs;})
|
||||
# ./plasma.nix
|
||||
# ./firefox.nix
|
||||
];
|
||||
|
||||
# home.sessionPath = [
|
||||
# "/home/tao/.cargo/bin"
|
||||
# ];
|
||||
home.file.".cargo/config.toml".text = cargoConfig;
|
||||
home.file.".config/autostart" = {
|
||||
source = ./autostart;
|
||||
recursive = true;
|
||||
# home.sessionPath = [
|
||||
# "/home/tao/.cargo/bin"
|
||||
# ];
|
||||
home.file.".cargo/config.toml".text = cargoConfig;
|
||||
home.file.".config/autostart" = {
|
||||
source = ./autostart;
|
||||
recursive = true;
|
||||
};
|
||||
home.file.".config/direnv/lib/".source = ./direnv;
|
||||
home.file.".config/direnv/lib/".recursive = true;
|
||||
|
||||
programs = {
|
||||
bacon = {
|
||||
enable = true;
|
||||
settings.jobs.default = {
|
||||
command = [
|
||||
"cargo"
|
||||
"clippy"
|
||||
"--"
|
||||
"-A"
|
||||
"clippy::bool_to_int_with_if"
|
||||
"-A"
|
||||
"clippy::collapsible_else_if"
|
||||
"-A"
|
||||
"clippy::collapsible_if"
|
||||
"-A"
|
||||
"clippy::derive_partial_eq_without_eq"
|
||||
"-A"
|
||||
"clippy::get_first"
|
||||
"-A"
|
||||
"clippy::if_same_then_else"
|
||||
"-A"
|
||||
"clippy::len_without_is_empty"
|
||||
"-A"
|
||||
"clippy::map_entry"
|
||||
"-A"
|
||||
"clippy::while_let_on_iterator"
|
||||
];
|
||||
need_stdout = false;
|
||||
};
|
||||
};
|
||||
home.file.".config/direnv/lib/".source = ./direnv;
|
||||
home.file.".config/direnv/lib/".recursive = true;
|
||||
|
||||
programs = {
|
||||
bacon = {
|
||||
enable = true;
|
||||
settings.jobs.default = {
|
||||
command = [
|
||||
"cargo"
|
||||
"clippy"
|
||||
"--"
|
||||
"-A"
|
||||
"clippy::bool_to_int_with_if"
|
||||
"-A"
|
||||
"clippy::collapsible_else_if"
|
||||
"-A"
|
||||
"clippy::collapsible_if"
|
||||
"-A"
|
||||
"clippy::derive_partial_eq_without_eq"
|
||||
"-A"
|
||||
"clippy::get_first"
|
||||
"-A"
|
||||
"clippy::if_same_then_else"
|
||||
"-A"
|
||||
"clippy::len_without_is_empty"
|
||||
"-A"
|
||||
"clippy::map_entry"
|
||||
"-A"
|
||||
"clippy::while_let_on_iterator"
|
||||
];
|
||||
need_stdout = false;
|
||||
};
|
||||
bat = {
|
||||
enable = true;
|
||||
config = {
|
||||
theme = "gruvbox-dark";
|
||||
};
|
||||
};
|
||||
|
||||
bottom = {
|
||||
enable = true;
|
||||
settings = {
|
||||
color = "gruvbox";
|
||||
flags = {
|
||||
battery =
|
||||
# if lib.strings.hasPrefix "NOlaptop" (builtins.readFile /etc/hostname)
|
||||
# then true
|
||||
# else false;
|
||||
true;
|
||||
hide_time = true;
|
||||
enable_gpu = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
bat = {
|
||||
enable = true;
|
||||
config = {
|
||||
theme = "gruvbox-dark";
|
||||
};
|
||||
direnv = {
|
||||
enable = true;
|
||||
enableNushellIntegration = true;
|
||||
nix-direnv.enable = true;
|
||||
};
|
||||
|
||||
jujutsu = {
|
||||
enable = true;
|
||||
settings = {
|
||||
user = {
|
||||
name = "Tao Tien";
|
||||
email = "29749622+taotien@users.noreply.github.com";
|
||||
};
|
||||
|
||||
bottom = {
|
||||
enable = true;
|
||||
settings = {
|
||||
color = "gruvbox";
|
||||
flags = {
|
||||
battery =
|
||||
# if lib.strings.hasPrefix "NOlaptop" (builtins.readFile /etc/hostname)
|
||||
# then true
|
||||
# else false;
|
||||
true;
|
||||
hide_time = true;
|
||||
enable_gpu = true;
|
||||
};
|
||||
};
|
||||
ui = {
|
||||
default-command = "log";
|
||||
};
|
||||
};
|
||||
# package = inputs.jujutsu.packages.${pkgs.system}.default;
|
||||
};
|
||||
|
||||
direnv = {
|
||||
enable = true;
|
||||
enableNushellIntegration = true;
|
||||
nix-direnv.enable = true;
|
||||
git = {
|
||||
enable = true;
|
||||
userName = "Tao Tien";
|
||||
userEmail = "29749622+taotien@users.noreply.github.com";
|
||||
# extraConfig = {
|
||||
# };
|
||||
ignores = [
|
||||
"/target"
|
||||
".direnv"
|
||||
];
|
||||
};
|
||||
|
||||
nushell = {
|
||||
enable = true;
|
||||
configFile.source = ./nushell/config.nu;
|
||||
envFile.source = ./nushell/env.nu;
|
||||
# extraConfig = builtins.readFile ./nushell/stuff.nu;
|
||||
extraConfig = lib.concatStrings (map builtins.readFile (map (x: ./nushell/extras/. + x) (map (x: "/" + x) (builtins.attrNames (builtins.readDir ./nushell/extras)))));
|
||||
};
|
||||
|
||||
ssh = {
|
||||
enable = true;
|
||||
addKeysToAgent = "yes";
|
||||
compression = true;
|
||||
matchBlocks = {
|
||||
"stargate" = {
|
||||
hostname = "stargate.cs.usfca.edu";
|
||||
user = "tltien";
|
||||
forwardAgent = true;
|
||||
identityFile = "/home/tao/.ssh/id_ed25519";
|
||||
};
|
||||
|
||||
jujutsu = {
|
||||
enable = true;
|
||||
settings = {
|
||||
user = {
|
||||
name = "Tao Tien";
|
||||
email = "29749622+taotien@users.noreply.github.com";
|
||||
};
|
||||
ui = {
|
||||
default-command = "log";
|
||||
};
|
||||
};
|
||||
# package = inputs.jujutsu.packages.${pkgs.system}.default;
|
||||
"griffin" = {
|
||||
hostname = "griffin.cs.usfca.edu";
|
||||
user = "tltien";
|
||||
forwardAgent = true;
|
||||
identityFile = "/home/tao/.ssh/id_ed25519";
|
||||
# proxyCommand = "ssh griffin.cs.usfca.edu";
|
||||
};
|
||||
|
||||
git = {
|
||||
enable = true;
|
||||
userName = "Tao Tien";
|
||||
userEmail = "29749622+taotien@users.noreply.github.com";
|
||||
# extraConfig = {
|
||||
# };
|
||||
ignores = [
|
||||
"/target"
|
||||
".direnv"
|
||||
];
|
||||
"github" = {
|
||||
hostname = "github.com";
|
||||
forwardAgent = true;
|
||||
identityFile = "/home/tao/.ssh/id_ed25519";
|
||||
};
|
||||
|
||||
nushell = {
|
||||
enable = true;
|
||||
configFile.source = ./nushell/config.nu;
|
||||
envFile.source = ./nushell/env.nu;
|
||||
# extraConfig = builtins.readFile ./nushell/stuff.nu;
|
||||
extraConfig = lib.concatStrings (map builtins.readFile (map (x: ./nushell/extras/. + x) (map (x: "/" + x) (builtins.attrNames (builtins.readDir ./nushell/extras)))));
|
||||
};
|
||||
|
||||
ssh = {
|
||||
enable = true;
|
||||
addKeysToAgent = "yes";
|
||||
compression = true;
|
||||
matchBlocks = {
|
||||
"stargate" = {
|
||||
hostname = "stargate.cs.usfca.edu";
|
||||
user = "tltien";
|
||||
forwardAgent = true;
|
||||
identityFile = "/home/tao/.ssh/id_ed25519";
|
||||
};
|
||||
"griffin" = {
|
||||
hostname = "griffin.cs.usfca.edu";
|
||||
user = "tltien";
|
||||
forwardAgent = true;
|
||||
identityFile = "/home/tao/.ssh/id_ed25519";
|
||||
# proxyCommand = "ssh griffin.cs.usfca.edu";
|
||||
};
|
||||
"github" = {
|
||||
hostname = "github.com";
|
||||
forwardAgent = true;
|
||||
identityFile = "/home/tao/.ssh/id_ed25519";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
starship = {
|
||||
enable = true;
|
||||
enableNushellIntegration = true;
|
||||
settings = builtins.fromTOML (builtins.readFile ./starship.toml);
|
||||
};
|
||||
|
||||
# taskwarrior = {
|
||||
# enable = true;
|
||||
# package = pkgs.taskwarrior3;
|
||||
# dataLocation = "/home/tao/sync";
|
||||
# "uwuraid" = {
|
||||
# hostname = "uwuraid";
|
||||
# user = "root";
|
||||
# # extraOptions = ["-t" "cd /mnt/user; exet \$SHELL -l"];
|
||||
# # requesttty = true;
|
||||
# # identityFile = "/home/tao/.ssh/id_ed25519";
|
||||
# proxyCommand = "ssh -t root@uwuraid cd /mnt/user; exec \\$SHELL -l";
|
||||
# };
|
||||
|
||||
wezterm = {
|
||||
enable = true;
|
||||
extraConfig = builtins.readFile ./wezterm.lua;
|
||||
};
|
||||
|
||||
zathura = {
|
||||
enable = true;
|
||||
options = {
|
||||
selection-clipboard = "clipboard";
|
||||
};
|
||||
};
|
||||
|
||||
zellij = {
|
||||
enable = true;
|
||||
settings = {};
|
||||
};
|
||||
|
||||
zoxide = {
|
||||
enable = true;
|
||||
enableNushellIntegration = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
services = {
|
||||
pueue = {
|
||||
enable = true;
|
||||
settings = {};
|
||||
starship = {
|
||||
enable = true;
|
||||
enableNushellIntegration = true;
|
||||
settings = builtins.fromTOML (builtins.readFile ./starship.toml);
|
||||
};
|
||||
|
||||
# taskwarrior = {
|
||||
# enable = true;
|
||||
# package = pkgs.taskwarrior3;
|
||||
# dataLocation = "/home/tao/sync";
|
||||
# };
|
||||
|
||||
wezterm = {
|
||||
enable = true;
|
||||
extraConfig = builtins.readFile ./wezterm.lua;
|
||||
};
|
||||
|
||||
zathura = {
|
||||
enable = true;
|
||||
options = {
|
||||
selection-clipboard = "clipboard";
|
||||
};
|
||||
};
|
||||
|
||||
zellij = {
|
||||
enable = true;
|
||||
settings = {};
|
||||
};
|
||||
|
||||
zoxide = {
|
||||
enable = true;
|
||||
enableNushellIntegration = true;
|
||||
};
|
||||
};
|
||||
|
||||
services = {
|
||||
pueue = {
|
||||
enable = true;
|
||||
settings = {};
|
||||
};
|
||||
};
|
||||
|
||||
services.syncthing = {
|
||||
enable = true;
|
||||
# user = "tao";
|
||||
# dataDir = "/home/tao/sync";
|
||||
# configDir = "/home/tao/.config/syncthing";
|
||||
overrideDevices = true;
|
||||
overrideFolders = true;
|
||||
# openDefaultPorts = true;
|
||||
settings = {
|
||||
devices = {
|
||||
# we do a lil anti-patterns https://github.com/ryantm/agenix?tab=readme-ov-file#builtinsreadfile-anti-pattern
|
||||
# bootstrap by commenting out devices first and rebuild switch impurely
|
||||
"nocomputer".id = builtins.readFile config.age.secrets.syncthing-NOcomputer.path;
|
||||
"nolaptop".id = builtins.readFile config.age.secrets.syncthing-NOlaptop.path;
|
||||
"uwuraid".id = builtins.readFile config.age.secrets.syncthing-uwuraid.path;
|
||||
};
|
||||
folders = let
|
||||
devs = [
|
||||
"nocomputer"
|
||||
"nolaptop"
|
||||
"uwuraid"
|
||||
];
|
||||
in {
|
||||
# "documents" = {
|
||||
# path = "/home/tao/documents";
|
||||
# devices = devs;
|
||||
# };
|
||||
"pictures" = {
|
||||
path = "/home/tao/pictures";
|
||||
devices = devs;
|
||||
};
|
||||
};
|
||||
|
||||
services.syncthing = {
|
||||
enable = true;
|
||||
# user = "tao";
|
||||
# dataDir = "/home/tao/sync";
|
||||
# configDir = "/home/tao/.config/syncthing";
|
||||
overrideDevices = true;
|
||||
overrideFolders = true;
|
||||
# openDefaultPorts = true;
|
||||
settings = {
|
||||
devices = {
|
||||
# we do a lil anti-patterns https://github.com/ryantm/agenix?tab=readme-ov-file#builtinsreadfile-anti-pattern
|
||||
# bootstrap by commenting out devices first and rebuild switch impurely
|
||||
"nocomputer".id = builtins.readFile config.age.secrets.syncthing-NOcomputer.path;
|
||||
"nolaptop".id = builtins.readFile config.age.secrets.syncthing-NOlaptop.path;
|
||||
"uwuraid".id = builtins.readFile config.age.secrets.syncthing-uwuraid.path;
|
||||
};
|
||||
folders = let
|
||||
devs = [
|
||||
"nocomputer"
|
||||
"nolaptop"
|
||||
"uwuraid"
|
||||
];
|
||||
in {
|
||||
# "documents" = {
|
||||
# path = "/home/tao/documents";
|
||||
# devices = devs;
|
||||
# };
|
||||
"pictures" = {
|
||||
path = "/home/tao/pictures";
|
||||
devices = devs;
|
||||
};
|
||||
"projects" = {
|
||||
path = "/home/tao/projects";
|
||||
devices = devs;
|
||||
};
|
||||
"school" = {
|
||||
path = "/home/tao/school";
|
||||
devices = devs;
|
||||
};
|
||||
"sync" = {
|
||||
path = "/home/tao/sync";
|
||||
devices = devs;
|
||||
};
|
||||
# "work" = {
|
||||
# path = "/home/tao/work";
|
||||
# devices = devs;
|
||||
# };
|
||||
};
|
||||
"projects" = {
|
||||
path = "/home/tao/projects";
|
||||
devices = devs;
|
||||
};
|
||||
"school" = {
|
||||
path = "/home/tao/school";
|
||||
devices = devs;
|
||||
};
|
||||
"sync" = {
|
||||
path = "/home/tao/sync";
|
||||
devices = devs;
|
||||
};
|
||||
# "work" = {
|
||||
# path = "/home/tao/work";
|
||||
# devices = devs;
|
||||
# };
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
xdg.userDirs = {
|
||||
desktop = "desktop";
|
||||
documents = "documents";
|
||||
download = "downloads";
|
||||
music = "music";
|
||||
pictures = "pictures";
|
||||
templates = "templates";
|
||||
videos = "videos";
|
||||
publicShare = null;
|
||||
createDirectories = true;
|
||||
enable = true;
|
||||
};
|
||||
xdg.userDirs = {
|
||||
desktop = "desktop";
|
||||
documents = "documents";
|
||||
download = "downloads";
|
||||
music = "music";
|
||||
pictures = "pictures";
|
||||
templates = "templates";
|
||||
videos = "videos";
|
||||
publicShare = null;
|
||||
createDirectories = true;
|
||||
enable = true;
|
||||
};
|
||||
|
||||
home.username = "tao";
|
||||
home.homeDirectory = "/home/tao";
|
||||
home.stateVersion = "23.11";
|
||||
home.username = "tao";
|
||||
home.homeDirectory = "/home/tao";
|
||||
home.stateVersion = "23.11";
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue