initial
This commit is contained in:
+84
@@ -0,0 +1,84 @@
|
||||
{
|
||||
general = {
|
||||
Hostname = "TEXAS";
|
||||
Username = "kenji";
|
||||
Timezone = "America/Chicago";
|
||||
|
||||
allowUnfree = true; # allows installation of commercial apps.
|
||||
|
||||
terminal = {
|
||||
Font = "JetBrainsMono Nerd Font"; # e.g., JetBrainsMono Nerd Font
|
||||
Size = "11";
|
||||
Shell = "fish";
|
||||
Aliases = {
|
||||
ls = "ls --color=auto";
|
||||
update = ''
|
||||
if [[ $(uname) == "Darwin" ]];
|
||||
sudo darwin-rebuild switch --flake ~/.config/nixos#macos
|
||||
else
|
||||
sudo nixos-rebuild switch --flake ~/.config/nixos#desktop && home-manager switch --flake ~/.config/nixos#desktop
|
||||
fi
|
||||
'';
|
||||
agu = "pkill gjs & ags run ~/.config/nixos/pkgs/ags/biscuit/app.ts & disown (jobs -p) &";
|
||||
};
|
||||
};
|
||||
gitProfile = {
|
||||
User = "kenji";
|
||||
Email = "kenji@texas.sakamoto.dev";
|
||||
defaultBranch = "master";
|
||||
};
|
||||
ssh = {
|
||||
extraConfig = ''
|
||||
Host macair
|
||||
User biscuit
|
||||
HostName 192.168.68.81
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
builds = {
|
||||
builder = {
|
||||
trustedUsers = [
|
||||
"@groups"
|
||||
"biscuit"
|
||||
];
|
||||
buildMachines = [
|
||||
{
|
||||
hostName = "192.168.68.81";
|
||||
sshUser = "biscuit";
|
||||
sshKey = "/home/biscuit/.ssh/id_rsa.pub";
|
||||
system = "x86_64-linux";
|
||||
supportedFeatures = ["big-parallel" "kvm" "nixos-test"];
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
linux = {
|
||||
system = "x86_64";
|
||||
|
||||
vpn = {
|
||||
Enable = true;
|
||||
secretFile = builtins.toPath ./secrets/.vpn.yaml;
|
||||
};
|
||||
|
||||
touchpadSupport = false;
|
||||
logitech-hardware.enable = false;
|
||||
|
||||
# Custom Applications
|
||||
linux-apps = {
|
||||
gaming = true;
|
||||
my-apps = pkgs:
|
||||
with pkgs; [
|
||||
jellyfin-media-player
|
||||
];
|
||||
};
|
||||
hyprconf = {
|
||||
Monitor = [
|
||||
# hyprctl monitors all
|
||||
# monitor, resolution@refreshrate, position (e.g., 0x0 is middle, 0x1080 is top), scale
|
||||
",highres@highrr,auto,auto"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{username, ...}: {
|
||||
imports = [
|
||||
];
|
||||
|
||||
programs.home-manager.enable = true;
|
||||
|
||||
home = {
|
||||
username = "${username}";
|
||||
homeDirectory = "/home/${username}";
|
||||
packages = [];
|
||||
sessionVariables = {};
|
||||
};
|
||||
|
||||
systemd.user.startServices = "sd-switch";
|
||||
home.stateVersion = "23.05";
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{general, ...}: {
|
||||
imports = [
|
||||
];
|
||||
|
||||
programs.home-manager.enable = true;
|
||||
|
||||
home = {
|
||||
username = "${general.Username}";
|
||||
homeDirectory = "/home/${general.Username}";
|
||||
packages = [];
|
||||
sessionVariables = {};
|
||||
};
|
||||
|
||||
systemd.user.startServices = "sd-switch";
|
||||
home.stateVersion = "23.05";
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
../packages/fish/default.nix
|
||||
../packages/kitty/default.nix
|
||||
../packages/neovim/default.nix
|
||||
];
|
||||
|
||||
programs.home-manager.enable = true;
|
||||
|
||||
home.packages = [];
|
||||
home.stateVersion = "23.05";
|
||||
}
|
||||
@@ -0,0 +1,125 @@
|
||||
{
|
||||
description = "Sakamoto's NixOS Configuration";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
|
||||
home-manager.url = "github:nix-community/home-manager";
|
||||
home-manager.inputs.nixpkgs.follows = "nixpkgs"; # `follows` ensure it follows nixpkgs versiona. Avoids breaking updates.
|
||||
darwin.url = "github:lnl7/nix-darwin";
|
||||
darwin.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
ags.url = "github:aylur/ags";
|
||||
ags.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
hyprland.url = "github:hyprwm/Hyprland";
|
||||
hyprland.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
unlisted-fonts.url = "git+https://git.sakamoto.dev/kenji/nix-fonts.git";
|
||||
unlisted-fonts.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
nixovim.url = "git+https://git.sakamoto.dev/kenji/nix-neovim.git";
|
||||
nixovim.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
matugen.url = "github:/InioX/Matugen";
|
||||
matugen.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
nix-gaming.url = "github:fufexan/nix-gaming";
|
||||
nix-gaming.inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
outputs = {
|
||||
self,
|
||||
nixpkgs,
|
||||
home-manager,
|
||||
darwin,
|
||||
ags,
|
||||
hyprland,
|
||||
unlisted-fonts,
|
||||
nixovim,
|
||||
...
|
||||
} @ inputs: let
|
||||
config = import ./config.nix;
|
||||
lib = nixpkgs.lib;
|
||||
system = "x86_64-linux";
|
||||
# pkgs = nixpkgs.legacyPackages.${system}; # alternative, without overlays. Unused.
|
||||
args =
|
||||
{
|
||||
inherit inputs system;
|
||||
}
|
||||
// config;
|
||||
in {
|
||||
# nixosConfiguration for linux system
|
||||
nixosConfigurations = {
|
||||
desktop = lib.nixosSystem {
|
||||
inherit system;
|
||||
specialArgs = args;
|
||||
modules = [
|
||||
./hosts/desktop/configuration.nix
|
||||
];
|
||||
};
|
||||
gaming = lib.nixosSystem {
|
||||
inherit system;
|
||||
specialArgs = args;
|
||||
modules = [
|
||||
./hosts/gaming/configuration.nix
|
||||
];
|
||||
};
|
||||
headless = lib.nixosSystem {
|
||||
inherit system;
|
||||
specialArgs = args;
|
||||
modules = [
|
||||
./hosts/headless/configuration.nix
|
||||
];
|
||||
};
|
||||
};
|
||||
homeConfigurations = {
|
||||
desktop = home-manager.lib.homeManagerConfiguration {
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
overlays = [
|
||||
# (final: prev: {
|
||||
# ags_1 = prev.ags_1.overrideAttrs (old: {
|
||||
# buildInputs = old.buildInputs ++ [pkgs.libdbusmenu-gtk3];
|
||||
# });
|
||||
# })
|
||||
];
|
||||
};
|
||||
extraSpecialArgs = args;
|
||||
modules = [./dotfiles/desktop.nix];
|
||||
};
|
||||
|
||||
gaming = home-manager.lib.homeManagerConfiguration {
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
overlays = [];
|
||||
};
|
||||
extraSpecialArgs = args;
|
||||
modules = [./dotfiles/gaming.nix];
|
||||
};
|
||||
headless = home-manager.lib.homeManagerConfiguration {
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
overlays = [];
|
||||
};
|
||||
extraSpecialArgs = args;
|
||||
modules = [./dotfiles/headless.nix];
|
||||
};
|
||||
};
|
||||
# darwinConfiguration for macOS M series
|
||||
darwinConfigurations = {
|
||||
macos = darwin.lib.darwinSystem {
|
||||
system = "aarch64-darwin";
|
||||
specialArgs = args;
|
||||
modules = [
|
||||
./nixos/macos/darwin.nix
|
||||
home-manager.darwinModules.home-manager
|
||||
{
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.extraSpecialArgs = args;
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
{
|
||||
pkgs,
|
||||
general,
|
||||
builds,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
# Include the results of the hardware scan.
|
||||
];
|
||||
|
||||
environment.systemPackages = with pkgs; [];
|
||||
|
||||
nixpkgs.config.allowUnfree = general.allowUnfree;
|
||||
|
||||
nix.settings = {
|
||||
trusted-users = builds.builder.trustedUsers;
|
||||
experimental-features = ["nix-command" "flakes"];
|
||||
};
|
||||
|
||||
programs.ssh.extraConfig = general.ssh.extraConfig;
|
||||
|
||||
nix.distributedBuilds = true;
|
||||
nix.settings.builders-use-substitutes = true;
|
||||
|
||||
# nix.buildMachines = builder.buildMachines;
|
||||
system.stateVersion = "25.05";
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
{
|
||||
pkgs,
|
||||
general,
|
||||
builds,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
# Include the results of the hardware scan.
|
||||
./hardware-configuration.nix
|
||||
];
|
||||
|
||||
environment.systemPackages = with pkgs; [];
|
||||
|
||||
nixpkgs.config.allowUnfree = general.allowUnfree;
|
||||
|
||||
nix.settings = {
|
||||
trusted-users = builds.builder.trustedUsers;
|
||||
experimental-features = ["nix-command" "flakes"];
|
||||
};
|
||||
|
||||
programs.ssh.extraConfig = general.ssh.extraConfig;
|
||||
|
||||
nix.distributedBuilds = true;
|
||||
nix.settings.builders-use-substitutes = true;
|
||||
|
||||
# nix.buildMachines = builder.buildMachines;
|
||||
system.stateVersion = "25.05";
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
{
|
||||
pkgs,
|
||||
builds,
|
||||
general,
|
||||
...
|
||||
}: {
|
||||
# List packages installed in system profile. To search by name, run:
|
||||
# $ nix-env -qaP | grep wget
|
||||
environment.systemPackages = with pkgs; [
|
||||
python313
|
||||
];
|
||||
|
||||
# Auto upgrade nix package and the daemon service.
|
||||
# services.nix-daemon.enable = true;
|
||||
# services.karabiner-elements.enable = true;
|
||||
# nix.package = pkgs.nix;
|
||||
|
||||
# Necessary for using flakes on this system.
|
||||
nix.settings.experimental-features = "nix-command flakes";
|
||||
nix.settings.trusted-users = builds.builder.trustedUsers;
|
||||
|
||||
# Create /etc/zshrc that loads the nix-darwin environment.
|
||||
programs.zsh.enable = true; # default shell on catalina
|
||||
programs.fish.enable = true;
|
||||
|
||||
# $ darwin-rebuild changelog
|
||||
system.stateVersion = 5;
|
||||
|
||||
# The platform the configuration will be used on.
|
||||
nixpkgs.hostPlatform = "aarch64-darwin";
|
||||
|
||||
users.users.${general.Username} = {
|
||||
name = "${general.Username}";
|
||||
home = "/Users/${general.Username}";
|
||||
shell = pkgs.${general.terminal.Shell};
|
||||
};
|
||||
|
||||
home-manager.users.${general.Username} = import ../../dotfiles/macos.nix;
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
{
|
||||
pkgs,
|
||||
general,
|
||||
...
|
||||
}: {
|
||||
programs.zoxide.enable = true;
|
||||
programs.fish = {
|
||||
enable = true;
|
||||
interactiveShellInit = ''
|
||||
set fish_greeting
|
||||
fish_vi_key_bindings
|
||||
zoxide init fish | source
|
||||
|
||||
'';
|
||||
shellAliases = general.terminal.Aliases;
|
||||
|
||||
plugins = with pkgs.fishPlugins; [
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
{terminal, ...}: {
|
||||
programs.kitty = {
|
||||
enable = true;
|
||||
|
||||
themeFile = "kanagawa";
|
||||
settings = {
|
||||
confirm_os_window_close = 0;
|
||||
window_padding_width = 10;
|
||||
|
||||
font_size = terminal.Size;
|
||||
font_family = terminal.Font;
|
||||
bold_font = "auto";
|
||||
italic_font = "auto";
|
||||
bold_italic_font = "auto";
|
||||
|
||||
# optimization
|
||||
input_delay = 0;
|
||||
repaint_delay = 2;
|
||||
sync_to_monitor = false;
|
||||
wayland_enable_ime = false;
|
||||
allow_remote_control = true;
|
||||
};
|
||||
extraConfig = "include colors.conf";
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}: let
|
||||
nixovim = inputs.nixovim.packages.${pkgs.system}.default;
|
||||
in {
|
||||
home.packages = [
|
||||
nixovim
|
||||
pkgs.lazygit
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
wl-clipboard
|
||||
hypridle
|
||||
hyprlock
|
||||
];
|
||||
programs.hyprland = {
|
||||
enable = true;
|
||||
# package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
|
||||
# portalPackage = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
|
||||
};
|
||||
hardware = {
|
||||
graphics.enable = true;
|
||||
};
|
||||
services = {
|
||||
# displayManager.sddm.wayland = true;
|
||||
displayManager.gdm.enable = true;
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
environment.systemPackages = [
|
||||
# or home.packages
|
||||
inputs.nix-gaming.packages.${pkgs.system}.wine # installs a package
|
||||
];
|
||||
programs.steam.platformOptimizations.enable = true;
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
|
||||
lowLatency = {
|
||||
# enable this module
|
||||
enable = true;
|
||||
# defaults (no need to be set unless modified)
|
||||
quantum = 64;
|
||||
rate = 48000;
|
||||
};
|
||||
};
|
||||
|
||||
# make pipewire realtime-capable
|
||||
security.rtkit.enable = true;
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
{
|
||||
pkgs,
|
||||
general,
|
||||
terminal,
|
||||
...
|
||||
}: {
|
||||
users = {
|
||||
defaultUserShell = pkgs.${terminal.Shell};
|
||||
users = {
|
||||
${general.Username} = {
|
||||
isNormalUser = true;
|
||||
extraGroups = ["wheel" "networkmanager" "input"];
|
||||
initialHashedPassword = "$6$Qab6SSvEJM2YRtVA$7Oyl7E3pp/FKtCC.2Tb2tyzp3yp7BFHFAKngUYJssQJ.v1Q2mqsgW9m7njpaKNcka2vyCwrnmw1R.YPlFqR0p1";
|
||||
useDefaultShell = true;
|
||||
packages = [
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user