1
Fork 0
mirror of https://github.com/thegeneralist01/config.git synced 2026-03-07 10:59:55 +01:00

prep main darwin config

This commit is contained in:
TheGeneralist 2025-05-29 15:35:31 +02:00
parent 50da7ffff8
commit 523aaff701
No known key found for this signature in database
GPG key ID: C391D4D52D630F45
32 changed files with 423 additions and 142 deletions

View file

@ -0,0 +1,9 @@
{ pkgs, ... }: {
environment.systemPackages = with pkgs; [
agenix
];
age.identityPaths = [
"~/.ssh/id_ed25519"
];
}

View file

@ -0,0 +1,11 @@
{ lib, pkgs, ... }:
{
options = {
onLinux = lib.mkOption {
type = lib.types.bool;
default = pkgs.stdenv.isLinux;
description = "Whether the system is running on Linux";
};
};
}

View file

@ -1 +0,0 @@
{}

View file

@ -0,0 +1,13 @@
{ lib, options, ... }: let
inherit (lib) mkOption;
in {
options.dnsServers = mkOption {
default = [
"45.90.28.0#365fed.dns.nextdns.io"
"2a07:a8c0::#365fed.dns.nextdns.io"
"45.90.30.0#365fed.dns.nextdns.io"
"2a07:a8c1::#365fed.dns.nextdns.io"
"100.100.100.100#shorthair-wall.ts.net"
];
};
}

View file

@ -0,0 +1,29 @@
{ pkgs, ... }: {
# environment.variables = {
# TERMINAL = "ghostty";
# };
#
# home-manager.sharedModules = [{
# programs.ghostty = {
# enable = true;
# package = pkgs.ghostty;
#
# clearDefaultKeybinds = false;
# settings = {
# theme = "tokyonight";
# font-family = "JetBrainsMono NL NFM Medium";
# font-size = 16;
#
# shell-integration-features = "no-cursor";
#
# cursor-style = "block";
# background-opacity = 1;
#
# background-blur-radius = 0;
#
# gtk-titlebar = false;
# mouse-hide-while-typing = true;
# };
# };
# }];
}

27
modules/common/git.nix Normal file
View file

@ -0,0 +1,27 @@
{
home-manager.sharedModules = [{
programs.git = {
enable = true;
userName = "TheGeneralist";
userEmail = "180094941+thegeneralist01@users.noreply.github.com";
lfs = {
enable = true;
};
extraConfig = {
commit.gpgSign = true;
tag.gpgSign = true;
gpg.format = "ssh";
user.signingKey = "~/.ssh/id_ed25519";
};
};
programs.gh = {
enable = true;
};
programs.gh-dash = {
enable = true;
};
}];
}

View file

@ -0,0 +1,6 @@
{
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
};
}

44
modules/common/neovim.nix Normal file
View file

@ -0,0 +1,44 @@
{ pkgs, options, lib, ... }: {
environment.variables.EDITOR = "nvim";
home-manager.sharedModules = [{
programs.neovim = {
enable = true;
extraLuaConfig = lib.fileContents ../home/dotfiles/nvim/init.lua;
};
home.sessionVariables = {
EDITOR = "nvim";
};
home.packages = with pkgs; [
vimPlugins.markdown-preview-nvim
# Lua
luajitPackages.luarocks_bootstrap
lua-language-server
python311
nodejs
nodePackages."sass"
gcc_multi
#llvmPackages_20.clangWithLibcAndBasicRtAndLibcxx
];
home.file = lib.mkIf options.onLinux {
".config/i3status" = {
source = ../home/dotfiles/i3status;
force = true;
recursive = true;
};
};
# TODO: this
# programs.npm.npmrc = ''
# prefix=~/.npm-packages
# color=true
# '';
}];
}

24
modules/common/nix.nix Normal file
View file

@ -0,0 +1,24 @@
{ pkgs, lib, ...}: {
# todo: gc
# todo: cache
environment.systemPackages = with pkgs; [
nh
];
lib.debug.traceVal = pkgs.nh;
nix.settings.experimental-features = [
"flakes"
"nix-command"
"pipe-operators"
];
home-manager.sharedModules = [{
programs.nh = {
enable = true;
clean.enable = true;
clean.extraArgs = "--keep-since 4d --keep 3";
flake = "~/config";
};
}];
}

View file

@ -0,0 +1,45 @@
$env.config.buffer_editor = "/home/thegeneralist/.nix-profile/bin/nvim"
$env.config.show_banner = false
$env.config = {
shell_integration: {
osc2: false
osc7: true
osc8: true
osc9_9: false
osc133: true
osc633: true
reset_application_mode: true
}
}
# Basic Aliases
alias v = nvim .
alias ff = fastfetch --load-config examples/10.jsonc
alias g = glimpse --interactive -o both -f llm.md
def gg [] {
open llm.md | save -r /dev/stdout | ^xclip -sel c
}
alias rn = yazi
# Zoxide init
#^zoxide init nushell | save --force ~/.config/nushell/zoxide.nu
#source ~/.config/nushell/zoxide.nu
alias c = clear
alias e = exa
alias el = exa -la
alias l = ls -a
alias ll = ls -la
alias cl = c; l
alias ap = cd ~/personal
alias ad = cd ~/Downloads
alias ab = cd ~/books
alias a = cd ~
alias ah = cd ~/dotfiles/hosts/thegeneralist
alias ai3 = nvim /home/thegeneralist/dotfiles/hosts/thegeneralist/dotfiles/i3/config
# alias rb = sudo nixos-rebuild switch --flake ~/dotfiles#thegeneralist
alias rb = nh os switch . -v -- --show-trace --verbose
source ~/.zoxide.nu

View file

@ -0,0 +1,61 @@
{ config, pkgs, lib, wrapper-manager, ... }: let
inherit (lib) readFile getExe mkIf optionalAttrs;
in {
# TODO: starship + change the zoxide src
# TODO: Rust tooling
home-manager.sharedModules = [
(homeArgs: {
xdg = {
enable = true;
configHome = "~/.config";
};
programs.nushell = {
enable = true;
package = pkgs.nushell;
configFile.text = readFile ./config.nu;
envFile.text = readFile ./env.nu;
environmentVariables = config.environment.variables // homeArgs.config.home.sessionVariables;
};
})
];
environment = optionalAttrs config.onLinux {
sessionVariables.SHELLS = getExe pkgs.nushell;
} // {
shells = mkIf (!config.onLinux) [ pkgs.nushell pkgs.zsh ];
systemPackages = with pkgs; [
nushell
fish
zoxide
ripgrep
jq
yq-go
eza
fzf
gh
fastfetch
];
shellAliases = {
v = "nvim .";
ff = "fastfetch --load-config examples/10.jsonc";
g = "glimpse --interactive -o both -f llm.md";
gg = "open llm.md | save -r /dev/stdout | ^xclip -sel c";
rn = "yazi";
c = "clear";
e = "exa";
el = "exa -la";
l = "ls -a";
ll = "ls -la";
cl = "c; l";
ap = "cd ~/personal";
ad = "cd ~/Downloads";
ab = "cd ~/books";
a = "cd ~";
ah = "cd ~/dotfiles/hosts/thegeneralist";
ai3 = "nvim /home/thegeneralist/dotfiles/hosts/thegeneralist/dotfiles/i3/config";
rb = "nh os switch . -v -- --show-trace --verbose";
};
};
}

View file

@ -0,0 +1,37 @@
$env.ENV_CONVERSIONS.PATH = {
from_string: {|string|
$string | split row (char esep) | path expand --no-symlink
}
to_string: {|value|
$value | path expand --no-symlink | str join (char esep)
}
}
# NVM
# source ("/Users/thegeneralist/.nvm/" | path join "nvm.sh")
# GPG TTY
# $env.GPG_TTY = (tty)
# Extra PATHs
# $env.PATH = [
# # "/home/thegeneralist/AppImages"
# # ($env.HOME | path join "personal/zen")
# # ($env.HOME | path join ".local/scripts")
# # ($env.HOME | path join ".local/bin")
# # ($env.HOME | path join ".bun/bin")
# # ($env.HOME | path join ".nix-profile/bin")
# # "/nix/var/nix/profiles/default/bin"
# # ($env.HOME | path join ".local/share/pnpm")
# # "/usr/bin"
# # "/usr/sbin"
# # "/sbin"
# # "/Applications/Ghostty.app/Contents/MacOS"
# # ($env.HOME | path join ".local/bin")
# # ($env.HOME | path join ".cargo/env")
# # ($env.HOME | path join ".cargo/bin")
# # "/usr/local/go/bin"
# # ($env.HOME | path join "go/bin")
# # ($env.HOME | path join ".npm-packages/bin")
# # ($env.HOME | path join ".Android/Sdk/platform-tools")
# # ($env.HOME | path join ".Android/Sdk/emulator")
# ] ++ $env.PATH

View file

@ -0,0 +1,13 @@
{ pkgs, lib, ...}: let
inherit (lib) attrValues;
in {
environment.systemPackages = attrValues {
inherit (pkgs)
wget
zsh
neovim
vim
home-manager
;
};
}

View file

@ -0,0 +1,7 @@
{ config, ... }: {
services.tailscale = {
enable = true;
};
networking.search = [ "shorthair-wall.ts.net" ];
}

11
modules/common/zsh.nix Normal file
View file

@ -0,0 +1,11 @@
{
home-manager.sharedModules = [{
programs.zsh = {
enable = true;
enableCompletion = true;
autocd = true;
autosuggestion.enable = true;
};
}];
environment.pathsToLink = [ "/share/zsh" ];
}