Compare commits
208 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| b4f4b67a8b | |||
| f59110c87e | |||
| 3dd4f2783e | |||
| d8657c7eeb | |||
| 3c4ed456cf | |||
| 551302a00e | |||
| 9aaffe2677 | |||
| 11cee2638a | |||
| e35dc3d28e | |||
| b686cf7751 | |||
| 7fd7cfac70 | |||
| 2023828364 | |||
| 2d8ba9f7ea | |||
| bc70242a99 | |||
| 0eabcc4fc1 | |||
| 1e301b958e | |||
| 4a4f66c08e | |||
| e33dbea82e | |||
| 50813851cb | |||
| b3c502fdf3 | |||
| 3587a7042d | |||
| cfc2f01e57 | |||
| ebef97f84b | |||
| 3740928c70 | |||
| 435742f29c | |||
| 0ebe999f92 | |||
| 005c744cb6 | |||
| a2b4b0d8ea | |||
| e8c6cb073f | |||
| 17b01cbf1c | |||
| 6d5cd6d78e | |||
| c48d1543a4 | |||
| ac41162a6e | |||
| 74f26f5997 | |||
| 0a1acae08a | |||
| 54f2f1e8f9 | |||
| a25d41100a | |||
| 381830a767 | |||
| d1c11014de | |||
| b41a820dcc | |||
| 38ba3a2fdb | |||
| 998f4905b0 | |||
| 9cc45e426d | |||
| 7053adc718 | |||
| 8d6af2f936 | |||
| f4788f863e | |||
| 2ba8639dfd | |||
| a609216012 | |||
| b6911bc045 | |||
| 09fbbec45e | |||
| b697c89aae | |||
| 0e0b8a40c7 | |||
| 555fea04b4 | |||
| fee08ad3d2 | |||
| b3e0e3e76f | |||
| 4dee2bf44f | |||
| f23d023551 | |||
| 61ac2f71d5 | |||
| ca9e487111 | |||
| f8e327d46d | |||
| 835a7fdad3 | |||
| 6034a9797c | |||
| c204eed76e | |||
| 0abf1447af | |||
| 73ece504c9 | |||
| 30f2178b6f | |||
| 5b0a8b3c49 | |||
| da0db9551c | |||
| f1b1dcdd9e | |||
| b3bcc0f058 | |||
| 2b1bc85514 | |||
| 6517af5889 | |||
| 43f8d827f6 | |||
| f7d3c7a7c4 | |||
| 7f7cbe74f7 | |||
| e3c5d8c166 | |||
| 8957622879 | |||
| 657fde7545 | |||
| f757369821 | |||
| e623b83d68 | |||
| 2b8d4a1dce | |||
| e6103c3153 | |||
| 6b0a342cdd | |||
| 280a2da2db | |||
| 363d470386 | |||
| f715f08831 | |||
| c4e0681c33 | |||
| a3121c0ce0 | |||
| 6af25e5453 | |||
| fd8da098ed | |||
| e83c8ded35 | |||
| 229b0041a6 | |||
| 128e6a04c2 | |||
| a92159168c | |||
| 1fb2d40aa8 | |||
| 7ec496be3d | |||
| 35a794a648 | |||
| b8dfddd2e8 | |||
| 4a49aba2ba | |||
| d1bffc3952 | |||
| 8b2e901680 | |||
| a5db5cc54d | |||
| efede58a6d | |||
| 7df80623d5 | |||
| 028df1fd35 | |||
| 12e64d34e6 | |||
| ba7174224c | |||
| c794974b20 | |||
| d9fdab315c | |||
| b3d37d7b20 | |||
| 88076292de | |||
| 25c0a328e6 | |||
| ab855f18ea | |||
| b7659157fa | |||
| 608df0bd38 | |||
| 1871ca6ef6 | |||
| d7eed2ecf6 | |||
| 789e6786cc | |||
| 8e9bfe9522 | |||
| 0c99dfefbb | |||
| c16cedf981 | |||
| 4f0c6d3e46 | |||
| 752a6ad1de | |||
| 802c2aa6bf | |||
| 2a6b5bc2c7 | |||
| e986b99ce7 | |||
| c17dabdbd8 | |||
| 0ab12aabff | |||
| 30ecca57ba | |||
| cd734937c0 | |||
| 477b592b06 | |||
| fda9681b84 | |||
| 694042f027 | |||
| 7e77b1acd4 | |||
| 6b765f1b54 | |||
| 97d65f2f7e | |||
| 9186f2cc28 | |||
| 6ae2221007 | |||
| e862ce8f9b | |||
| 6dbe009076 | |||
| 598abbf308 | |||
| 17ccf2ba8c | |||
| ca5b15b377 | |||
| a11926ee85 | |||
| f19b7ab674 | |||
| 306e540a67 | |||
| 5185edce48 | |||
| b3f9882c7e | |||
| ee7b59c521 | |||
| 113a15cd69 | |||
| 2ea4f6631c | |||
| e21cf63216 | |||
| f31387ab12 | |||
| 4ec339c53b | |||
| eb70a6dd52 | |||
| a9aef32984 | |||
| 58d575ebeb | |||
| be57946347 | |||
| 63c2f887db | |||
| 36222bdb63 | |||
| de69800662 | |||
| f2a1604009 | |||
| dfec0bc5da | |||
| 45ce1678d1 | |||
| 5022c31815 | |||
| 2534d83bdd | |||
| 3e7917aee3 | |||
| 530a7c9777 | |||
| a3b195da1f | |||
| fa1a376d85 | |||
| 25d034d7dc | |||
| a0572f8a95 | |||
| 6e32ac5ceb | |||
| 5278908420 | |||
| 6044c4e063 | |||
| d0532495e0 | |||
| 3339960062 | |||
| 77854b1c69 | |||
| b1ca82da64 | |||
| 72bc56a934 | |||
| aac77be6ec | |||
| 6404fbd36d | |||
| f442452a2e | |||
| 35f515e828 | |||
| 3215644a87 | |||
| 05198ddeab | |||
| 67402c3e54 | |||
| 78abaed26f | |||
| 64a56ea346 | |||
| 453bc1f249 | |||
| 7fc61d7d27 | |||
| d9edf3f389 | |||
| 4a29a676b5 | |||
| 6a61e05ae7 | |||
| ce1301af38 | |||
| dd3caf07d2 | |||
| c62421cfb6 | |||
| d4026e1559 | |||
| 53346c17ea | |||
| 52356a4a87 | |||
| c603389ebc | |||
| 2d8e528b6f | |||
| 87dea595d3 | |||
| 9629dd0ba0 | |||
| 9a722c915a | |||
| 65e7e86739 | |||
| 1b0dcd2863 | |||
| c1e4ef47f3 |
@@ -1 +0,0 @@
|
||||
hosts/desktop/hardware-configuration.nix
|
||||
|
||||
@@ -1,58 +0,0 @@
|
||||
# Sakamoto NixOS
|
||||
|
||||
Sakamoto NixOS is built with various profiles intended for reproducibility.
|
||||
|
||||
## Available Hosts
|
||||
|
||||
- MacBook M series
|
||||
- Linux
|
||||
|
||||
## Installation
|
||||
|
||||
1. Install [Nix](https://nixos.org/download/).
|
||||
|
||||
2. Ensure Nix is installed properly by running the following (this also gives you `nano` for editing later):
|
||||
|
||||
```sh
|
||||
nix-shell -p nano
|
||||
```
|
||||
|
||||
3. Clone the git repository:
|
||||
|
||||
```sh
|
||||
git clone https://git.sakamoto.dev/kenji/nixos.git ~/.config/nixos && cd ~/.config/nixos/
|
||||
```
|
||||
|
||||
4. Copy `info.default.nix` and rename it to `info.local.nix`:
|
||||
|
||||
```sh
|
||||
cp ~/.config/nixos/info.default.nix ~/.config/nixos/info.local.nix
|
||||
```
|
||||
|
||||
🚨 **CRITICAL STEP:** Edit `info.local.nix`:
|
||||
|
||||
```sh
|
||||
nano ~/.config/nixos/info.local.nix
|
||||
```
|
||||
|
||||
Modify it to fit your system — especially your **username**.
|
||||
If you accidentally leave the default `biscuit`, that user will be created.
|
||||
**Login password for `biscuit` is `Your-generic-password`.**
|
||||
|
||||
5. Execute the following command based on your host:
|
||||
|
||||
- **MacBook M series:**
|
||||
|
||||
```sh
|
||||
sudo nix run nix-darwin --extra-experimental-features "nix-command flakes" -- switch --flake ~/.config/nixos#macos
|
||||
```
|
||||
|
||||
- **Linux:**
|
||||
|
||||
```sh
|
||||
sudo nixos-rebuild --flake ~/.config/nixos#desktop --impure
|
||||
sudo nix run home-manager -- init --switch
|
||||
home-manager switch --flake ~/.config/nixos#desktop --impure
|
||||
nix-channel --add https://nixos.org/channels/nixos-unstable nixos nix-channel --update
|
||||
reboot
|
||||
```
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 42 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 2.6 MiB |
Binary file not shown.
|
Before Width: | Height: | Size: 246 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 14 MiB |
+48
-73
@@ -1,91 +1,66 @@
|
||||
{
|
||||
myConfig = {
|
||||
general = {
|
||||
Hostname = "hakase";
|
||||
essentials = {
|
||||
# !!! replace it with your own, else system might malfunction.
|
||||
Username = "kenji";
|
||||
Timezone = "America/Chicago";
|
||||
|
||||
allowUnfree = true; # allows installation of commercial apps.
|
||||
|
||||
terminal = {
|
||||
Font = "JetBrainsMono Nerd Font"; # e.g., JetBrainsMono Nerd Font
|
||||
Size = "18";
|
||||
Shell = "fish";
|
||||
Aliases = {
|
||||
};
|
||||
general = {
|
||||
Terminal = {
|
||||
font = "JetBrainsMono Nerd Font";
|
||||
size = "12";
|
||||
shell = "fish"; # or zsh
|
||||
aliases = {
|
||||
ls = "ls --color=auto";
|
||||
update = ''
|
||||
sh -c '
|
||||
if [ "$(uname)" = "Darwin" ]; then
|
||||
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/packages/ags/biscuit/app.ts & disown (jobs -p) &";
|
||||
};
|
||||
};
|
||||
gitProfile = {
|
||||
User = "kenji";
|
||||
Email = "kenji@sakamoto.dev";
|
||||
defaultBranch = "master";
|
||||
};
|
||||
ssh = {
|
||||
extraConfig = ''
|
||||
Host gitea.sakamoto.dev
|
||||
User kenji
|
||||
ProxyCommand cloudflared access ssh --hostname %h
|
||||
HostName gitea.sakamoto.dev
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
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"];
|
||||
}
|
||||
];
|
||||
nixos = {
|
||||
Hostname = "nixos";
|
||||
Timezone = "America/Chicago";
|
||||
|
||||
Boot = {
|
||||
mode = "grub"; # systemd or grub
|
||||
};
|
||||
};
|
||||
|
||||
linux = {
|
||||
system = "x86_64";
|
||||
gaming = true;
|
||||
|
||||
vpn = {
|
||||
Enable = false;
|
||||
secretFile = builtins.toPath ./secrets/.vpn.yaml;
|
||||
Gaming = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
touchpadSupport = false;
|
||||
logitech-hardware.enable = true;
|
||||
|
||||
# Custom Applications
|
||||
apps = {
|
||||
gaming = true;
|
||||
apps = pkgs:
|
||||
Apps = {
|
||||
packages = pkgs:
|
||||
with pkgs; [
|
||||
jellyfin-media-player
|
||||
];
|
||||
};
|
||||
hyprconf = {
|
||||
Monitor = [
|
||||
# hyprctl monitors all
|
||||
# monitor, resolution@refreshrate, position (e.g., 0x0 is middle, 0x1080 is top), scale
|
||||
"DP-1,highres@165,0x1080,auto"
|
||||
"DP-2,highres@highrr,0x0,auto"
|
||||
"HDMI-A-1, preferred, 20000x20000,1"
|
||||
Hyprland = {
|
||||
monitors = [];
|
||||
};
|
||||
Git = {
|
||||
user = "";
|
||||
email = "";
|
||||
defaultBranch = "master";
|
||||
};
|
||||
};
|
||||
optionals = {
|
||||
Builds = {
|
||||
trustedUsers = [
|
||||
"@groups"
|
||||
];
|
||||
buildMachines = [
|
||||
{
|
||||
hostName = "";
|
||||
sshUser = "";
|
||||
sshKey = "";
|
||||
system = "";
|
||||
supportedFeatures = ["big-parallel" "kvm" "nixos-test"];
|
||||
}
|
||||
];
|
||||
};
|
||||
Ssh = {
|
||||
extraConfig = ''
|
||||
Host macair
|
||||
User biscuit
|
||||
HostName 192.168.68.81
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
Generated
-1105
File diff suppressed because it is too large
Load Diff
@@ -1,117 +1,70 @@
|
||||
{
|
||||
description = "Sakamoto's NixOS Configuration";
|
||||
|
||||
description = "A rewrite of the original Sakamoto NixOS config.";
|
||||
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";
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
|
||||
ags.url = "github:aylur/ags";
|
||||
ags.inputs.nixpkgs.follows = "nixpkgs";
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
hyprland.url = "github:hyprwm/Hyprland";
|
||||
hyprland.inputs.nixpkgs.follows = "nixpkgs";
|
||||
flake-utils = {
|
||||
url = "github:numtide/flake-utils";
|
||||
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/nixovim.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";
|
||||
|
||||
sops-nix.url = "github:Mic92/sops-nix";
|
||||
sops-nix.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
quickshell.url = "git+https://git.outfoxxed.me/outfoxxed/quickshell";
|
||||
quickshell.inputs.nixpkgs.follows = "nixpkgs";
|
||||
darwin = {
|
||||
url = "github:lnl7/nix-darwin";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
|
||||
outputs = {
|
||||
self,
|
||||
nixpkgs,
|
||||
flake-utils,
|
||||
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;
|
||||
} @ inputs:
|
||||
flake-utils.lib.eachDefaultSystem (
|
||||
system: let
|
||||
config = import ./config.nix;
|
||||
lib = nixpkgs.lib;
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
args = {inherit inputs system;} // config;
|
||||
in {
|
||||
nixosConfigurations = {
|
||||
desktop = lib.nixosSystem {
|
||||
inherit system;
|
||||
specialArgs = args;
|
||||
modules = [];
|
||||
};
|
||||
};
|
||||
homeConfigurations = {
|
||||
desktop = home-manager.lib.homeManagerConfiguration {
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
extraSpecialArgs = args;
|
||||
modules = [];
|
||||
};
|
||||
};
|
||||
};
|
||||
darwinConfigurations = {
|
||||
macos = darwin.lib.darwinSystem {
|
||||
inherit system;
|
||||
specialArgs = args;
|
||||
modules = [
|
||||
./hosts/macos/darwin.nix
|
||||
home-manager.darwinModules.home-manager
|
||||
{
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.extraSpecialArgs = args;
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
// config;
|
||||
in {
|
||||
# nixosConfiguration for linux system
|
||||
nixosConfigurations = {
|
||||
desktop = lib.nixosSystem {
|
||||
inherit system;
|
||||
specialArgs = args;
|
||||
modules = [
|
||||
./hosts/desktop/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 = [./home/desktop.nix];
|
||||
};
|
||||
|
||||
gaming = home-manager.lib.homeManagerConfiguration {
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
overlays = [];
|
||||
};
|
||||
extraSpecialArgs = args;
|
||||
modules = [./home/gaming.nix];
|
||||
};
|
||||
headless = home-manager.lib.homeManagerConfiguration {
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
overlays = [];
|
||||
};
|
||||
extraSpecialArgs = args;
|
||||
modules = [./home/headless.nix];
|
||||
};
|
||||
};
|
||||
# darwinConfiguration for macOS M series
|
||||
darwinConfigurations = {
|
||||
macos = darwin.lib.darwinSystem {
|
||||
system = "aarch64-darwin";
|
||||
specialArgs = args;
|
||||
modules = [
|
||||
./hosts/macos/darwin.nix
|
||||
home-manager.darwinModules.home-manager
|
||||
{
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.extraSpecialArgs = args;
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
);
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
../modules/terminal.nix
|
||||
../modules/home/terminal.nix
|
||||
];
|
||||
|
||||
programs.home-manager.enable = true;
|
||||
@@ -1,22 +0,0 @@
|
||||
{
|
||||
myConfig,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
../modules/terminal.nix
|
||||
../modules/desktop.nix
|
||||
];
|
||||
|
||||
programs.home-manager.enable = true;
|
||||
|
||||
home = {
|
||||
username = "${myConfig.general.Username}";
|
||||
homeDirectory = "/home/${myConfig.general.Username}";
|
||||
packages = [];
|
||||
sessionVariables = {};
|
||||
};
|
||||
|
||||
systemd.user.startServices = "sd-switch";
|
||||
home.stateVersion = "23.05";
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
myConfig,
|
||||
inputs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
imports =
|
||||
[
|
||||
inputs.sops-nix.nixosModules.sops
|
||||
./hardware-configuration.nix
|
||||
../../modules/linuxDev.nix
|
||||
../../modules/system.nix
|
||||
../../modules/de.nix
|
||||
]
|
||||
++ lib.optionals (myConfig.linux.apps.gaming == true) [
|
||||
../../modules/gaming.nix
|
||||
];
|
||||
|
||||
environment.systemPackages = [];
|
||||
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
nix.settings = {
|
||||
trusted-users = myConfig.builds.builder.trustedUsers;
|
||||
experimental-features = ["nix-command" "flakes"];
|
||||
};
|
||||
|
||||
programs.ssh.extraConfig = myConfig.general.ssh.extraConfig;
|
||||
|
||||
nix.distributedBuilds = true;
|
||||
nix.settings.builders-use-substitutes = true;
|
||||
|
||||
# nix.buildMachines = builder.buildMachines;
|
||||
system.stateVersion = "25.05";
|
||||
}
|
||||
@@ -5,13 +5,11 @@
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
../../modules/macosDev.nix
|
||||
inputs.sops-nix.darwinModules.sops
|
||||
../../modules/default/darwin.nix
|
||||
];
|
||||
# List packages installed in system profile. To search by name, run:
|
||||
# $ nix-env -qaP | grep wget
|
||||
environment.systemPackages = with pkgs; [
|
||||
];
|
||||
environment.systemPackages = [];
|
||||
|
||||
# Auto upgrade nix package and the daemon service.
|
||||
# services.nix-daemon.enable = true;
|
||||
@@ -20,7 +18,7 @@
|
||||
|
||||
# Necessary for using flakes on this system.
|
||||
nix.settings.experimental-features = "nix-command flakes";
|
||||
nix.settings.trusted-users = myConfig.builds.builder.trustedUsers;
|
||||
nix.settings.trusted-users = myConfig.optionals.Builds.trustedUsers;
|
||||
|
||||
# Create /etc/zshrc that loads the nix-darwin environment.
|
||||
programs.zsh.enable = true; # default shell on catalina
|
||||
@@ -33,11 +31,11 @@
|
||||
nixpkgs.hostPlatform = "aarch64-darwin";
|
||||
security.pam.services.sudo_local.touchIdAuth = true;
|
||||
|
||||
users.users.${myConfig.general.Username} = {
|
||||
name = "${myConfig.general.Username}";
|
||||
home = "/Users/${myConfig.general.Username}";
|
||||
users.users.${myConfig.esssentials.Username} = {
|
||||
name = "${myConfig.essentials.Username}";
|
||||
home = "/Users/${myConfig.essentials.Username}";
|
||||
# shell = pkgs.${myConfig.general.terminal.Shell}; # no support for nix-darwin, but can be changed via chsh.
|
||||
};
|
||||
|
||||
home-manager.users.${myConfig.general.Username} = import ../../home/macos.nix;
|
||||
home-manager.users.${myConfig.essentials.Username} = import ../../home/macos.nix;
|
||||
}
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
myConfig,
|
||||
...
|
||||
}: {
|
||||
imports =
|
||||
[
|
||||
../system/font.nix
|
||||
../system/browser.nix
|
||||
../system/wayland.nix
|
||||
../system/graphics.nix
|
||||
../system/security.nix
|
||||
|
||||
# FIXME
|
||||
../system/amd.nix
|
||||
]
|
||||
++ lib.optionals (myConfig.linux.gaming == true) [
|
||||
];
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
myConfig,
|
||||
...
|
||||
}: {
|
||||
imports =
|
||||
[
|
||||
../packages/hyprland/default.nix
|
||||
../packages/hypridle/default.nix
|
||||
../packages/hyprlock/default.nix
|
||||
../packages/rofi/default.nix
|
||||
../packages/matugen/default.nix
|
||||
../packages/swww/default.nix
|
||||
../packages/quickshell/default.nix
|
||||
../packages/ags/default.nix
|
||||
]
|
||||
++ lib.optionals (myConfig.linux.gaming == true) [
|
||||
../packages/mangohud/default.nix
|
||||
];
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
{
|
||||
imports = [
|
||||
../system/stream.nix
|
||||
../system/gaming.nix
|
||||
../system/appimage.nix
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
imports = [
|
||||
../../packages/zsh/home.nix
|
||||
../../packages/fish/home.nix
|
||||
../../packages/kitty/home.nix
|
||||
../../packages/neovim/home.nix
|
||||
../../packages/starship/home.nix
|
||||
];
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
{...}: {
|
||||
imports = [
|
||||
../system/dev/tools.nix
|
||||
../system/dev/python.nix
|
||||
../system/dev/linux.nix
|
||||
];
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{...}: {
|
||||
imports = [
|
||||
../system/dev/tools.nix
|
||||
../system/dev/python.nix
|
||||
];
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
{...}: {
|
||||
imports = [
|
||||
../system/users.nix
|
||||
../system/hardware.nix
|
||||
../system/locale.nix
|
||||
../system/network.nix
|
||||
../system/programs.nix
|
||||
../system/services.nix
|
||||
../system/tty.nix
|
||||
../system/firewall.nix
|
||||
../system/boot.nix
|
||||
];
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{...}: {
|
||||
imports = [
|
||||
../packages/git/default.nix
|
||||
../packages/fish/default.nix
|
||||
../packages/kitty/default.nix
|
||||
../packages/neovim/default.nix
|
||||
../packages/starship/default.nix
|
||||
../packages/fastfetch/default.nix
|
||||
../packages/zsh/default.nix
|
||||
];
|
||||
}
|
||||
@@ -12,7 +12,7 @@
|
||||
zoxide init fish | source
|
||||
|
||||
'';
|
||||
shellAliases = myConfig.general.terminal.Aliases;
|
||||
shellAliases = myConfig.general.Terminal.aliases;
|
||||
|
||||
plugins = with pkgs.fishPlugins; [
|
||||
];
|
||||
@@ -1,10 +0,0 @@
|
||||
{myConfig, ...}: {
|
||||
programs.git = {
|
||||
enable = true;
|
||||
extraConfig = {
|
||||
user.name = "${myConfig.general.gitProfile.User}";
|
||||
user.email = "${myConfig.general.gitProfile.Email}";
|
||||
init.defaultBranch = "${myConfig.general.gitProfile.defaultBranch}";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{myConfig, ...}: {
|
||||
programs.git = {
|
||||
enable = true;
|
||||
extraConfig = {
|
||||
user.name = "${myConfig.linux.Git.user}";
|
||||
user.email = "${myConfig.linux.Git.email}";
|
||||
init.defaultBranch = "${myConfig.linux.Git.defaultBranch}";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -7,12 +7,14 @@
|
||||
confirm_os_window_close = 0;
|
||||
window_padding_width = 10;
|
||||
|
||||
font_size = myConfig.general.terminal.Size;
|
||||
font_family = myConfig.general.terminal.Font;
|
||||
font_size = myConfig.general.Terminal.size;
|
||||
font_family = myConfig.general.Terminal.font;
|
||||
bold_font = "auto";
|
||||
italic_font = "auto";
|
||||
bold_italic_font = "auto";
|
||||
|
||||
shell = myConfig.general.Terminal.shell;
|
||||
|
||||
# optimization
|
||||
input_delay = 0;
|
||||
repaint_delay = 2;
|
||||
@@ -13,7 +13,7 @@
|
||||
programs.zsh = {
|
||||
enableCompletion = false;
|
||||
syntaxHighlighting.enable = false;
|
||||
shellAliases = myConfig.general.terminal.Aliases;
|
||||
shellAliases = myConfig.general.Terminal.aliases;
|
||||
history.size = 10000;
|
||||
antidote = {
|
||||
enable = true;
|
||||
@@ -1,11 +0,0 @@
|
||||
keys:
|
||||
- &admin_kenji age19pf5unuk3hcap0vrrlqr9lkh5eg24aw7z3skf0kverpjdqsltdxsdx88r8
|
||||
creation_rules:
|
||||
- path_regex: secrets/[^/]+\.(yaml|json|env|ini)$
|
||||
key_groups:
|
||||
age:
|
||||
- *admin_kenji
|
||||
- path_regex: secrets/azmidi/[^/]+\.(yaml|json|env|ini)$
|
||||
key_groups:
|
||||
age:
|
||||
- *admin_kenji
|
||||
@@ -1 +0,0 @@
|
||||
abcd: hello-world
|
||||
@@ -1,14 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
glxinfo
|
||||
vulkan-tools
|
||||
lact
|
||||
];
|
||||
systemd.packages = with pkgs; [
|
||||
lact
|
||||
];
|
||||
systemd.services.lactd = {
|
||||
enable = true;
|
||||
wantedBy = ["multi-user.target"];
|
||||
};
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
{
|
||||
programs.appimage = {
|
||||
enable = true;
|
||||
binfmt = true;
|
||||
# If moondeck-buddy.AppImage requires specific libraries not included by default
|
||||
# you might need to add them here. For example:
|
||||
# package = pkgs.appimage-run.override {
|
||||
# extraPkgs = pkgs: with pkgs; [
|
||||
# # Add any missing libraries here, e.g.,
|
||||
# # libthai
|
||||
# # qt5.full
|
||||
# ];
|
||||
# };
|
||||
};
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
{...}: {
|
||||
boot.loader = {
|
||||
systemd-boot = {
|
||||
enable = false;
|
||||
};
|
||||
efi = {
|
||||
canTouchEfiVariables = true;
|
||||
};
|
||||
grub = {
|
||||
enable = true;
|
||||
device = "nodev";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,107 +0,0 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
lock-false = {
|
||||
Value = false;
|
||||
Status = "locked";
|
||||
};
|
||||
lock-true = {
|
||||
Value = true;
|
||||
Status = "locked";
|
||||
};
|
||||
in {
|
||||
programs = {
|
||||
firefox = {
|
||||
enable = true;
|
||||
languagePacks = ["en-US"];
|
||||
|
||||
/*
|
||||
---- POLICIES ----
|
||||
*/
|
||||
# Check about:policies#documentation for options.
|
||||
policies = {
|
||||
DisableTelemetry = true;
|
||||
DisableFirefoxStudies = true;
|
||||
EnableTrackingProtection = {
|
||||
Value = true;
|
||||
Locked = true;
|
||||
Cryptomining = true;
|
||||
Fingerprinting = true;
|
||||
};
|
||||
DisablePocket = true;
|
||||
DisableFirefoxAccounts = true;
|
||||
DisableAccounts = true;
|
||||
DisableFirefoxScreenshots = true;
|
||||
OverrideFirstRunPage = "";
|
||||
OverridePostUpdatePage = "";
|
||||
DontCheckDefaultBrowser = true;
|
||||
DisplayBookmarksToolbar = "never"; # alternatives: "always" or "newtab"
|
||||
DisplayMenuBar = "default-off"; # alternatives: "always", "never" or "default-on"
|
||||
SearchBar = "unified"; # alternative: "separate"
|
||||
|
||||
/*
|
||||
---- EXTENSIONS ----
|
||||
*/
|
||||
# Check about:support for extension/add-on ID strings.
|
||||
# Valid strings for installation_mode are "allowed", "blocked",
|
||||
# "force_installed" and "normal_installed".
|
||||
ExtensionSettings = {
|
||||
"*".installation_mode = "blocked"; # blocks all addons except the ones specified below
|
||||
# uBlock Origin:
|
||||
"uBlock0@raymondhill.net" = {
|
||||
install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi";
|
||||
installation_mode = "force_installed";
|
||||
};
|
||||
"{446900e4-71c2-419f-a6a7-df9c091e268b}" = {
|
||||
install_url = "https://addons.mozilla.org/firefox/downloads/file/4493940/bitwarden_password_manager-2025.5.0.xpi";
|
||||
installation_mode = "force_installed";
|
||||
};
|
||||
"tridactyl.vim@cmcaine.co.uk" = {
|
||||
install_url = "https://addons.mozilla.org/firefox/downloads/file/4405615/tridactyl_vim-1.24.2.xpi";
|
||||
installation_mode = "force_installed";
|
||||
};
|
||||
# Privacy Badger:
|
||||
# "jid1-MnnxcxisBPnSXQ@jetpack" = {
|
||||
# install_url = "https://addons.mozilla.org/firefox/downloads/latest/privacy-badger17/latest.xpi";
|
||||
# installation_mode = "force_installed";
|
||||
# };
|
||||
# 1Password:
|
||||
# "{d634138d-c276-4fc8-924b-40a0ea21d284}" = {
|
||||
# install_url = "https://addons.mozilla.org/firefox/downloads/latest/1password-x-password-manager/latest.xpi";
|
||||
# installation_mode = "force_installed";
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
---- PREFERENCES ----
|
||||
*/
|
||||
# Check about:config for options.
|
||||
preferences = {
|
||||
# "browser.contentblocking.category" = {
|
||||
# Value = "strict";
|
||||
# Status = "locked";
|
||||
# };
|
||||
"browser.contentblocking.category" = "strict";
|
||||
"extensions.pocket.enabled" = false;
|
||||
"extensions.screenshots.disabled" = true;
|
||||
"browser.topsites.contile.enabled" = false;
|
||||
"browser.formfill.enable" = false;
|
||||
"browser.search.suggest.enabled" = false;
|
||||
"browser.search.suggest.enabled.private" = false;
|
||||
"browser.urlbar.suggest.searches" = false;
|
||||
"browser.urlbar.showSearchSuggestionsFirst" = false;
|
||||
"browser.newtabpage.activity-stream.feeds.section.topstories" = false;
|
||||
"browser.newtabpage.activity-stream.feeds.snippets" = false;
|
||||
"browser.newtabpage.activity-stream.section.highlights.includePocket" = false;
|
||||
"browser.newtabpage.activity-stream.section.highlights.includeBookmarks" = false;
|
||||
"browser.newtabpage.activity-stream.section.highlights.includeDownloads" = false;
|
||||
"browser.newtabpage.activity-stream.section.highlights.includeVisited" = false;
|
||||
"browser.newtabpage.activity-stream.showSponsored" = false;
|
||||
"browser.newtabpage.activity-stream.system.showSponsored" = false;
|
||||
"browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
busybox
|
||||
];
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
python3Full
|
||||
python3Packages.build
|
||||
python3Packages.pip
|
||||
python3Packages.installer
|
||||
];
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
git
|
||||
p7zip
|
||||
tldr
|
||||
jq
|
||||
btop
|
||||
rar
|
||||
|
||||
cloudflared
|
||||
];
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
{...}: {
|
||||
# networking.firewall.allowedTCPPorts = [ ... ];
|
||||
# networking.firewall.allowedUDPPorts = [ ... ];
|
||||
# Or disable the firewall altogether.
|
||||
# networking.firewall.enable = false;
|
||||
|
||||
# networking.proxy.default = "http://user:password@proxy:port/";
|
||||
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}: let
|
||||
unlisted-fonts = inputs.unlisted-fonts.packages.${pkgs.system};
|
||||
in {
|
||||
fonts.packages = with pkgs; [
|
||||
unlisted-fonts.rubik
|
||||
nerd-fonts.jetbrains-mono
|
||||
material-symbols
|
||||
];
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
programs.steam = {
|
||||
enable = true;
|
||||
gamescopeSession.enable = true;
|
||||
};
|
||||
environment.systemPackages = [
|
||||
# inputs.nix-gaming.packages.${pkgs.system}.default
|
||||
pkgs.protonup-qt
|
||||
pkgs.geekbench
|
||||
];
|
||||
# programs.steam.platformOptimizations.enable = true;
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
hardware.graphics = {
|
||||
enable = true;
|
||||
enable32Bit = true; # Crucial for 32-bit games
|
||||
};
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
{
|
||||
myConfig,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
hardware = {
|
||||
logitech.wireless.enable = myConfig.linux.logitech-hardware.enable;
|
||||
bluetooth = {
|
||||
enable = true;
|
||||
powerOnBoot = true;
|
||||
};
|
||||
};
|
||||
environment.systemPackages = with pkgs;
|
||||
[
|
||||
]
|
||||
++ lib.optionals (myConfig.linux.logitech-hardware.enable == true) [
|
||||
solaar
|
||||
];
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
{myConfig, ...}: {
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
time.timeZone = "${myConfig.general.Timezone}";
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
{myConfig, ...}: {
|
||||
networking.hostName = "${myConfig.general.Hostname}";
|
||||
networking.networkmanager.enable = true;
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
programs.bash = {
|
||||
interactiveShellInit = ''
|
||||
if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]]
|
||||
then
|
||||
shopt -q login_shell && LOGIN_OPTION='--login' || LOGIN_OPTION=""
|
||||
exec ${pkgs.fish}/bin/fish $LOGIN_OPTION
|
||||
fi
|
||||
'';
|
||||
};
|
||||
|
||||
programs = {
|
||||
zsh.enable = true;
|
||||
fish.enable = true;
|
||||
};
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
{...}: {
|
||||
security.polkit.enable = true;
|
||||
security.polkit.extraConfig = ''
|
||||
polkit.addRule(function(action, subject) {
|
||||
if ((action.id == "org.corectrl.helper.gpu.set" ||
|
||||
action.id == "org.corectrl.helper.gpu.apply") &&
|
||||
subject.isInGroup("wheel")) {
|
||||
return polkit.Result.YES;
|
||||
}
|
||||
});
|
||||
'';
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
{...}: {
|
||||
services = {
|
||||
openssh.enable = true;
|
||||
libinput.enable = true;
|
||||
blueman.enable = true;
|
||||
printing.enable = true;
|
||||
# sensors.enable = true;
|
||||
};
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
environment.systemPackages = [
|
||||
pkgs.pavucontrol
|
||||
];
|
||||
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;
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
sunshine
|
||||
];
|
||||
services.sunshine = {
|
||||
enable = true;
|
||||
autoStart = true;
|
||||
capSysAdmin = true;
|
||||
openFirewall = true;
|
||||
};
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{...}: {
|
||||
console = {
|
||||
font = "Lat2-Terminus16";
|
||||
useXkbConfig = true;
|
||||
};
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
myConfig,
|
||||
...
|
||||
}: {
|
||||
users = {
|
||||
defaultUserShell = pkgs.${myConfig.general.terminal.Shell};
|
||||
users = {
|
||||
${myConfig.general.Username} = {
|
||||
isNormalUser = true;
|
||||
extraGroups = ["wheel" "networkmanager" "input" "corectrl" "video"];
|
||||
initialHashedPassword = "$y$j9T$NHFtSwF4NJtEmgMjy4Xdg.$9WQltjEx3eEfZ7GbpGLW8lBhJtiXPOeIawrxdmx0.vB";
|
||||
useDefaultShell = true;
|
||||
packages = [
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
wl-clipboard
|
||||
hypridle
|
||||
hyprlock
|
||||
brightnessctl
|
||||
];
|
||||
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;
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user