Compare commits
50 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| cbd2575515 | |||
| 1e73f9ce06 | |||
| c08bc7a576 | |||
| 27cc1641f2 | |||
| e1de9403e4 | |||
| d1ed8bc004 | |||
| 11da625ace | |||
| 357b9a4f04 | |||
| 2d69f55eba | |||
| c7787f3d27 | |||
| b37edeed36 | |||
| 945ed455c9 | |||
| 8f4de3964f | |||
| d7489f811a | |||
| ed24c8eaea | |||
| d2baeeba6d | |||
| 6cdfd4c169 | |||
| 30a55ac796 | |||
| 277e7a1191 | |||
| 59a18fbe85 | |||
| 31d4628955 | |||
| 39162c5ead | |||
| 2cee6724c8 | |||
| 080f4ec678 | |||
| 4271d20f44 | |||
| 71c6d75ff7 | |||
| 571645a2e6 | |||
| f52a8923fd | |||
| 1fdd8f51fe | |||
| 8c4c69b5dd | |||
| 79a22e0041 | |||
| fba74facdc | |||
| bdab858be2 | |||
| 37e982c983 | |||
| 6fc18f11a5 | |||
| d9128fcf06 | |||
| b7d0583aaf | |||
| 2d5f115468 | |||
| 306ee40129 | |||
| f7b315be25 | |||
| d00c9836d6 | |||
| ea86b6f7e5 | |||
| 1e19f865de | |||
| 3ebe0c9fca | |||
| f214789d22 | |||
| fe79d7a2c4 | |||
| cc7aa6df6a | |||
| e8e7b3dd4f | |||
| 1d5dd8ac1f | |||
| b631cb20a4 |
@@ -0,0 +1 @@
|
||||
hosts/desktop/hardware-configuration.nix
|
||||
|
||||
@@ -0,0 +1,58 @@
|
||||
# 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.
|
After Width: | Height: | Size: 42 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 2.6 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 246 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 14 MiB |
+70
-45
@@ -1,66 +1,91 @@
|
||||
{
|
||||
myConfig = {
|
||||
essentials = {
|
||||
# !!! replace it with your own, else system might malfunction.
|
||||
Username = "kenji";
|
||||
};
|
||||
general = {
|
||||
Terminal = {
|
||||
font = "JetBrainsMono Nerd Font";
|
||||
size = "12";
|
||||
shell = "fish"; # or zsh
|
||||
aliases = {
|
||||
ls = "ls --color=auto";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
nixos = {
|
||||
Hostname = "nixos";
|
||||
Hostname = "hakase";
|
||||
Username = "kenji";
|
||||
Timezone = "America/Chicago";
|
||||
|
||||
Boot = {
|
||||
mode = "grub"; # systemd or grub
|
||||
allowUnfree = true; # allows installation of commercial apps.
|
||||
|
||||
terminal = {
|
||||
Font = "JetBrainsMono Nerd Font"; # e.g., JetBrainsMono Nerd Font
|
||||
Size = "18";
|
||||
Shell = "fish";
|
||||
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) &";
|
||||
};
|
||||
};
|
||||
Gaming = {
|
||||
enable = true;
|
||||
};
|
||||
Apps = {
|
||||
packages = pkgs:
|
||||
with pkgs; [
|
||||
jellyfin-media-player
|
||||
];
|
||||
};
|
||||
Hyprland = {
|
||||
monitors = [];
|
||||
};
|
||||
Git = {
|
||||
user = "";
|
||||
email = "";
|
||||
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
|
||||
'';
|
||||
};
|
||||
};
|
||||
optionals = {
|
||||
Builds = {
|
||||
|
||||
builds = {
|
||||
builder = {
|
||||
trustedUsers = [
|
||||
"@groups"
|
||||
"biscuit"
|
||||
];
|
||||
buildMachines = [
|
||||
{
|
||||
hostName = "";
|
||||
sshUser = "";
|
||||
sshKey = "";
|
||||
system = "";
|
||||
hostName = "192.168.68.81";
|
||||
sshUser = "biscuit";
|
||||
sshKey = "/home/biscuit/.ssh/id_rsa.pub";
|
||||
system = "x86_64-linux";
|
||||
supportedFeatures = ["big-parallel" "kvm" "nixos-test"];
|
||||
}
|
||||
];
|
||||
};
|
||||
Ssh = {
|
||||
extraConfig = ''
|
||||
Host macair
|
||||
User biscuit
|
||||
HostName 192.168.68.81
|
||||
'';
|
||||
};
|
||||
|
||||
linux = {
|
||||
system = "x86_64";
|
||||
gaming = true;
|
||||
|
||||
vpn = {
|
||||
Enable = false;
|
||||
secretFile = builtins.toPath ./secrets/.vpn.yaml;
|
||||
};
|
||||
|
||||
touchpadSupport = false;
|
||||
logitech-hardware.enable = true;
|
||||
|
||||
# Custom Applications
|
||||
apps = {
|
||||
gaming = true;
|
||||
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
|
||||
"DP-1,highres@165,0x1080,auto"
|
||||
"DP-2,highres@highrr,0x0,auto"
|
||||
"HDMI-A-1, preferred, 20000x20000,1"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
Generated
+1105
File diff suppressed because it is too large
Load Diff
@@ -1,70 +1,117 @@
|
||||
{
|
||||
description = "A rewrite of the original Sakamoto NixOS config.";
|
||||
description = "Sakamoto's NixOS Configuration";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
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";
|
||||
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
ags.url = "github:aylur/ags";
|
||||
ags.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
flake-utils = {
|
||||
url = "github:numtide/flake-utils";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
hyprland.url = "github:hyprwm/Hyprland";
|
||||
hyprland.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
darwin = {
|
||||
url = "github:lnl7/nix-darwin";
|
||||
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";
|
||||
};
|
||||
|
||||
outputs = {
|
||||
self,
|
||||
nixpkgs,
|
||||
flake-utils,
|
||||
home-manager,
|
||||
darwin,
|
||||
ags,
|
||||
hyprland,
|
||||
unlisted-fonts,
|
||||
nixovim,
|
||||
...
|
||||
} @ 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;
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
} @ 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
|
||||
];
|
||||
};
|
||||
};
|
||||
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;
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
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";
|
||||
}
|
||||
@@ -5,7 +5,7 @@
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
../modules/home/terminal.nix
|
||||
../modules/terminal.nix
|
||||
];
|
||||
|
||||
programs.home-manager.enable = true;
|
||||
@@ -0,0 +1,36 @@
|
||||
{
|
||||
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,11 +5,13 @@
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
../../modules/default/darwin.nix
|
||||
../../modules/macosDev.nix
|
||||
inputs.sops-nix.darwinModules.sops
|
||||
];
|
||||
# List packages installed in system profile. To search by name, run:
|
||||
# $ nix-env -qaP | grep wget
|
||||
environment.systemPackages = [];
|
||||
environment.systemPackages = with pkgs; [
|
||||
];
|
||||
|
||||
# Auto upgrade nix package and the daemon service.
|
||||
# services.nix-daemon.enable = true;
|
||||
@@ -18,7 +20,7 @@
|
||||
|
||||
# Necessary for using flakes on this system.
|
||||
nix.settings.experimental-features = "nix-command flakes";
|
||||
nix.settings.trusted-users = myConfig.optionals.Builds.trustedUsers;
|
||||
nix.settings.trusted-users = myConfig.builds.builder.trustedUsers;
|
||||
|
||||
# Create /etc/zshrc that loads the nix-darwin environment.
|
||||
programs.zsh.enable = true; # default shell on catalina
|
||||
@@ -31,11 +33,11 @@
|
||||
nixpkgs.hostPlatform = "aarch64-darwin";
|
||||
security.pam.services.sudo_local.touchIdAuth = true;
|
||||
|
||||
users.users.${myConfig.esssentials.Username} = {
|
||||
name = "${myConfig.essentials.Username}";
|
||||
home = "/Users/${myConfig.essentials.Username}";
|
||||
users.users.${myConfig.general.Username} = {
|
||||
name = "${myConfig.general.Username}";
|
||||
home = "/Users/${myConfig.general.Username}";
|
||||
# shell = pkgs.${myConfig.general.terminal.Shell}; # no support for nix-darwin, but can be changed via chsh.
|
||||
};
|
||||
|
||||
home-manager.users.${myConfig.essentials.Username} = import ../../home/macos.nix;
|
||||
home-manager.users.${myConfig.general.Username} = import ../../home/macos.nix;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
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) [
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
{
|
||||
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
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
imports = [
|
||||
../system/stream.nix
|
||||
../system/gaming.nix
|
||||
../system/appimage.nix
|
||||
];
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
{
|
||||
imports = [
|
||||
../../packages/zsh/home.nix
|
||||
../../packages/fish/home.nix
|
||||
../../packages/kitty/home.nix
|
||||
../../packages/neovim/home.nix
|
||||
../../packages/starship/home.nix
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{...}: {
|
||||
imports = [
|
||||
../system/dev/tools.nix
|
||||
../system/dev/python.nix
|
||||
../system/dev/linux.nix
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{...}: {
|
||||
imports = [
|
||||
../system/dev/tools.nix
|
||||
../system/dev/python.nix
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{...}: {
|
||||
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
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{...}: {
|
||||
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; [
|
||||
];
|
||||
@@ -0,0 +1,10 @@
|
||||
{myConfig, ...}: {
|
||||
programs.git = {
|
||||
enable = true;
|
||||
extraConfig = {
|
||||
user.name = "${myConfig.general.gitProfile.User}";
|
||||
user.email = "${myConfig.general.gitProfile.Email}";
|
||||
init.defaultBranch = "${myConfig.general.gitProfile.defaultBranch}";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
{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,14 +7,12 @@
|
||||
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;
|
||||
@@ -0,0 +1,11 @@
|
||||
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
|
||||
@@ -0,0 +1 @@
|
||||
abcd: hello-world
|
||||
@@ -0,0 +1,14 @@
|
||||
{pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
glxinfo
|
||||
vulkan-tools
|
||||
lact
|
||||
];
|
||||
systemd.packages = with pkgs; [
|
||||
lact
|
||||
];
|
||||
systemd.services.lactd = {
|
||||
enable = true;
|
||||
wantedBy = ["multi-user.target"];
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
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
|
||||
# ];
|
||||
# };
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
{...}: {
|
||||
boot.loader = {
|
||||
systemd-boot = {
|
||||
enable = false;
|
||||
};
|
||||
efi = {
|
||||
canTouchEfiVariables = true;
|
||||
};
|
||||
grub = {
|
||||
enable = true;
|
||||
device = "nodev";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,107 @@
|
||||
{
|
||||
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;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
busybox
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
python3Full
|
||||
python3Packages.build
|
||||
python3Packages.pip
|
||||
python3Packages.installer
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
git
|
||||
p7zip
|
||||
tldr
|
||||
jq
|
||||
btop
|
||||
rar
|
||||
|
||||
cloudflared
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{...}: {
|
||||
# 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";
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
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
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
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;
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{pkgs, ...}: {
|
||||
hardware.graphics = {
|
||||
enable = true;
|
||||
enable32Bit = true; # Crucial for 32-bit games
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
{
|
||||
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
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
{myConfig, ...}: {
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
time.timeZone = "${myConfig.general.Timezone}";
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
{myConfig, ...}: {
|
||||
networking.hostName = "${myConfig.general.Hostname}";
|
||||
networking.networkmanager.enable = true;
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{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;
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{...}: {
|
||||
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;
|
||||
}
|
||||
});
|
||||
'';
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{...}: {
|
||||
services = {
|
||||
openssh.enable = true;
|
||||
libinput.enable = true;
|
||||
blueman.enable = true;
|
||||
printing.enable = true;
|
||||
# sensors.enable = true;
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{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;
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
sunshine
|
||||
];
|
||||
services.sunshine = {
|
||||
enable = true;
|
||||
autoStart = true;
|
||||
capSysAdmin = true;
|
||||
openFirewall = true;
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{...}: {
|
||||
console = {
|
||||
font = "Lat2-Terminus16";
|
||||
useXkbConfig = true;
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
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 = [
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
{
|
||||
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