mirror of
https://github.com/thegeneralist01/config.git
synced 2026-03-07 10:59:55 +01:00
initial commit
This commit is contained in:
commit
50da7ffff8
68 changed files with 3086 additions and 0 deletions
9
modules/linux/agenix.nix
Normal file
9
modules/linux/agenix.nix
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
{ pkgs, ... }: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
agenix
|
||||
];
|
||||
|
||||
age.identityPaths = [
|
||||
"/home/thegeneralist/.ssh/id_ed25519"
|
||||
];
|
||||
}
|
||||
6
modules/linux/boot.nix
Normal file
6
modules/linux/boot.nix
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
# Use the systemd-boot EFI boot loader.
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
boot.loader.grub.device = "/dev/nvme0n1";
|
||||
}
|
||||
29
modules/linux/ghostty.nix
Normal file
29
modules/linux/ghostty.nix
Normal 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/linux/git.nix
Normal file
27
modules/linux/git.nix
Normal 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;
|
||||
};
|
||||
}];
|
||||
}
|
||||
41
modules/linux/neovim.nix
Normal file
41
modules/linux/neovim.nix
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
{ pkgs, 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.".config/i3status" = {
|
||||
source = ../home/dotfiles/i3status;
|
||||
force = true;
|
||||
recursive = true;
|
||||
};
|
||||
}];
|
||||
|
||||
programs.npm.npmrc = ''
|
||||
prefix=~/.npm-packages
|
||||
color=true
|
||||
'';
|
||||
}
|
||||
5
modules/linux/networking.nix
Normal file
5
modules/linux/networking.nix
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
networking.hostName = "thegeneralist";
|
||||
networking.networkmanager.enable = true;
|
||||
networking.networkmanager.wifi.powersave = false;
|
||||
}
|
||||
8
modules/linux/nix.nix
Normal file
8
modules/linux/nix.nix
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
# todo: gc
|
||||
nix.settings.experimental-features = [
|
||||
"flakes"
|
||||
"nix-command"
|
||||
"pipe-operators"
|
||||
];
|
||||
}
|
||||
33
modules/linux/nushell/config.nu
Normal file
33
modules/linux/nushell/config.nu
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
$env.config.buffer_editor = "/home/thegeneralist/.nix-profile/bin/nvim"
|
||||
$env.config.show_banner = false
|
||||
|
||||
# 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
|
||||
49
modules/linux/nushell/default.nix
Normal file
49
modules/linux/nushell/default.nix
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
{ config, pkgs, lib, ... }: let
|
||||
inherit (lib) readFile;
|
||||
in {
|
||||
# TODO: starship + change the zoxide src
|
||||
# TODO: Rust tooling
|
||||
environment = {
|
||||
systemPackages = with pkgs; [
|
||||
nushell
|
||||
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";
|
||||
};
|
||||
};
|
||||
|
||||
home-manager.sharedModules = [{
|
||||
programs.nushell = {
|
||||
enable = true;
|
||||
configFile.text = readFile ./config.nu;
|
||||
envFile.text = readFile ./env.nu;
|
||||
environmentVariables = config.environment.variables;
|
||||
};
|
||||
}];
|
||||
}
|
||||
31
modules/linux/nushell/env.nu
Normal file
31
modules/linux/nushell/env.nu
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
|
||||
# NVM
|
||||
# TODO: this
|
||||
# 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
|
||||
10
modules/linux/nvidia.nix
Normal file
10
modules/linux/nvidia.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
hardware.nvidia = {
|
||||
open = true;
|
||||
modesetting.enable = true;
|
||||
};
|
||||
|
||||
services.xserver.videoDrivers = [ "nvidia" ];
|
||||
|
||||
hardware.graphics.enable = true;
|
||||
}
|
||||
21
modules/linux/packages.nix
Normal file
21
modules/linux/packages.nix
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
{ pkgs, lib, agenix, ...}: let
|
||||
inherit (lib) attrValues;
|
||||
in {
|
||||
environment.systemPackages = attrValues {
|
||||
inherit (pkgs)
|
||||
wget
|
||||
zsh
|
||||
neovim
|
||||
vim
|
||||
home-manager
|
||||
protonup-qt
|
||||
pipewire
|
||||
pwvucontrol
|
||||
wireplumber
|
||||
playerctl
|
||||
|
||||
xsane
|
||||
simple-scan
|
||||
;
|
||||
};
|
||||
}
|
||||
18
modules/linux/printers.nix
Normal file
18
modules/linux/printers.nix
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
{ pkgs, ... }: {
|
||||
# Enable CUPS to print documents.
|
||||
services.printing.enable = true;
|
||||
|
||||
# Enable sound.
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
};
|
||||
|
||||
# Epson proprietary backend
|
||||
hardware.sane.enable = true;
|
||||
hardware.sane.extraBackends = [
|
||||
pkgs.epkowa
|
||||
];
|
||||
}
|
||||
13
modules/linux/ssh.nix
Normal file
13
modules/linux/ssh.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
services.openssh = {
|
||||
enable = true;
|
||||
settings = {
|
||||
PermitRootLogin = "no";
|
||||
PasswordAuthentication = false;
|
||||
};
|
||||
};
|
||||
|
||||
networking.firewall.enable = true;
|
||||
networking.firewall.allowedTCPPorts = [ 22 ];
|
||||
# networking.firewall.allowedUDPPorts = [ ... ];
|
||||
}
|
||||
17
modules/linux/steam.nix
Normal file
17
modules/linux/steam.nix
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
{ lib, ... }: {
|
||||
programs.steam = {
|
||||
enable = true;
|
||||
remotePlay.openFirewall = true;
|
||||
dedicatedServer.openFirewall = true;
|
||||
localNetworkGameTransfers.openFirewall = true;
|
||||
};
|
||||
|
||||
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
|
||||
"steam"
|
||||
"steam-original"
|
||||
"steam-unwrapped"
|
||||
"steam-run"
|
||||
];
|
||||
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
}
|
||||
5
modules/linux/tailscale-marshall.age
Normal file
5
modules/linux/tailscale-marshall.age
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
age-encryption.org/v1
|
||||
-> ssh-ed25519 pp9qdQ 6l47mExiqqxdEP4ELKCvj/YnFows5CSfNqgSuI9Pumc
|
||||
eqQCf0gVfLblki2WaTZBsfxwU3CZ5yAoW2K1yY7kewk
|
||||
--- cuSZYUOIOdGIjEtNCfZ2/GMqF2PCn0J56GS0K3yISHw
|
||||
Çc–3&ñ¼øY8{€*ÔS¨æùêòϘ9Ï:ísˆöŒßªômç|¬fÌTÀ[«€h\^–e‘ˆ7ØrÕ’lÙ<6C><C399>PËDF°Mô¢¬]ëÓp¢5ÓT§ssîD§
|
||||
17
modules/linux/tailscale.nix
Normal file
17
modules/linux/tailscale.nix
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
{ config, ... }: {
|
||||
age.secrets.tailscaleMarshall.file = ./tailscale-marshall.age;
|
||||
services.tailscale = {
|
||||
enable = true;
|
||||
interfaceName = "tailscale0";
|
||||
useRoutingFeatures = "both";
|
||||
openFirewall = true; # or false?
|
||||
extraUpFlags = [ "--ssh" ];
|
||||
extraSetFlags = [ "--advertise-exit-node" ];
|
||||
disableTaildrop = false;
|
||||
authKeyFile = config.age.secrets.tailscaleMarshall.path;
|
||||
};
|
||||
|
||||
networking.nameservers = [ "100.100.100.100" "8.8.8.8" "1.1.1.1" ];
|
||||
networking.search = [ "shorthair-wall.ts.net" ];
|
||||
networking.firewall.trustedInterfaces = [ "tailscale0" ];
|
||||
}
|
||||
50
modules/linux/xserver.nix
Normal file
50
modules/linux/xserver.nix
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
{ pkgs, ... }: {
|
||||
# TODO: write i3 and i3status here instead of stowing
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
|
||||
displayManager = {
|
||||
lightdm = {
|
||||
enable = true;
|
||||
greeters = {
|
||||
gtk = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
windowManager.i3 = {
|
||||
enable = true;
|
||||
package = pkgs.i3;
|
||||
configFile = ../home/dotfiles/i3/config;
|
||||
|
||||
extraPackages = with pkgs; [
|
||||
i3
|
||||
i3status
|
||||
rofi
|
||||
dmenu
|
||||
feh
|
||||
picom # transparency effects compositor
|
||||
dunst # notification daemon
|
||||
xfce.thunar
|
||||
nemo
|
||||
arandr # screen conf
|
||||
lxappearance
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
# Configure keymap in X11
|
||||
services.xserver.xkb.layout = "us,ru";
|
||||
# services.xserver.xkb.options = "eurosign:e,caps:escape";
|
||||
|
||||
# home.file.".xprofile".text = ''
|
||||
# xrandr --output HDMI-0 --primary
|
||||
# '';
|
||||
# services.xserver.xrandrHeads = builtins.map (head:
|
||||
# head // {
|
||||
# primary = if head.output == "HDMI-0" then true else head.primary;
|
||||
# }
|
||||
# ) options.services.xserver.xrandrHeads;
|
||||
}
|
||||
11
modules/linux/zsh.nix
Normal file
11
modules/linux/zsh.nix
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
home-manager.sharedModules = [{
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
enableCompletion = true;
|
||||
autocd = true;
|
||||
autosuggestion.enable = true;
|
||||
};
|
||||
}];
|
||||
environment.pathsToLink = [ "/share/zsh" ];
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue