50 Commits

Author SHA1 Message Date
kenji cbd2575515 git 2025-07-07 14:22:27 -05:00
lsoriano-mcm 1e73f9ce06 test 2025-07-04 22:37:37 -05:00
kenji c08bc7a576 test 2025-07-02 21:09:17 -05:00
kenji 27cc1641f2 added gaming module 2025-07-02 19:28:47 -05:00
kenji e1de9403e4 test 2025-07-02 08:11:25 -05:00
kenji d1ed8bc004 added 2025-07-02 08:03:25 -05:00
kenji 11da625ace py 2025-07-02 08:02:22 -05:00
kenji 357b9a4f04 test 2025-07-01 09:31:36 -05:00
kenji 2d69f55eba n 2025-07-01 09:22:28 -05:00
kenji c7787f3d27 added quickshell 2025-07-01 08:57:33 -05:00
kenji b37edeed36 major changes 2025-07-01 08:55:17 -05:00
kenji 945ed455c9 added security.nix 2025-06-30 15:45:32 -05:00
kenji 8f4de3964f added amd 2025-06-30 15:42:14 -05:00
kenji d7489f811a graphics added 2025-06-30 15:19:13 -05:00
kenji ed24c8eaea added mangohud 2025-06-30 14:37:42 -05:00
kenji d2baeeba6d added gaming scopes 2025-06-30 14:20:06 -05:00
kenji 6cdfd4c169 fixed gaming 2025-06-30 13:43:35 -05:00
kenji 30a55ac796 fixed browser 2025-06-30 13:35:51 -05:00
biscuit 277e7a1191 test 2025-06-30 13:31:00 -05:00
kenji 59a18fbe85 fixed formatting 2025-06-30 13:26:24 -05:00
kenji 31d4628955 test 2025-06-30 13:20:46 -05:00
biscuit 39162c5ead added config.toml for matugen 2025-06-30 13:15:36 -05:00
biscuit 2cee6724c8 fix minor stuff 2025-06-30 13:14:35 -05:00
biscuit 080f4ec678 added BOOT 2025-06-30 13:08:05 -05:00
biscuit 4271d20f44 major DESKTOP changes 2025-06-30 13:05:11 -05:00
biscuit 71c6d75ff7 users 2025-06-30 12:55:18 -05:00
biscuit 571645a2e6 test 2025-06-30 12:54:23 -05:00
biscuit f52a8923fd test 2025-06-30 12:51:52 -05:00
lsoriano-mcm 1fdd8f51fe changed initialHashedPassword 2025-06-28 21:21:06 -05:00
lsoriano-mcm 8c4c69b5dd changed initialHashedPassword 2025-06-28 21:20:28 -05:00
lsoriano-mcm 79a22e0041 renamed console.nix to terminal.nix 2025-06-28 21:17:45 -05:00
lsoriano-mcm fba74facdc test 2025-06-28 21:16:53 -05:00
lsoriano-mcm bdab858be2 nixos: system revamp 2025-06-28 21:15:22 -05:00
lsoriano-mcm 37e982c983 added SOPS 2025-06-28 21:00:01 -05:00
lsoriano-mcm 6fc18f11a5 added authentication for darwin system 2025-06-28 19:10:41 -05:00
lsoriano-mcm d9128fcf06 cleaned up v1 2025-06-28 17:56:08 -05:00
lsoriano-mcm b7d0583aaf changed initialHasedPasswd 2025-06-28 17:45:45 -05:00
lsoriano-mcm 2d5f115468 flakes updated 2025-06-28 17:40:14 -05:00
lsoriano-mcm 306ee40129 Revert "FIX: finally fixed flake.lock"
This reverts commit 1e19f865de.
2025-06-28 17:31:47 -05:00
lsoriano-mcm f7b315be25 Revert "udp"
This reverts commit 3ebe0c9fca.
2025-06-28 17:30:23 -05:00
lsoriano-mcm d00c9836d6 test2 2025-06-28 17:28:50 -05:00
lsoriano-mcm ea86b6f7e5 test 2025-06-28 17:27:08 -05:00
lsoriano-mcm 1e19f865de FIX: finally fixed flake.lock 2025-06-28 17:14:07 -05:00
lsoriano-mcm 3ebe0c9fca udp 2025-06-23 17:55:39 -05:00
lsoriano-mcm f214789d22 upd 2025-06-23 17:00:36 -05:00
lsoriano-mcm fe79d7a2c4 upd 2025-06-23 16:54:51 -05:00
lsoriano-mcm cc7aa6df6a upd 2025-06-23 16:46:05 -05:00
lsoriano-mcm e8e7b3dd4f upd 2025-06-23 16:27:29 -05:00
lsoriano-mcm 1d5dd8ac1f initial 2025-06-23 16:17:41 -05:00
lsoriano-mcm b631cb20a4 initial 2025-06-23 14:32:58 -05:00
115 changed files with 1247 additions and 2545 deletions
+1
View File
@@ -0,0 +1 @@
hosts/desktop/hardware-configuration.nix
+47 -44
View File
@@ -1,55 +1,58 @@
# Nix Sakamoto
A rewrite of the original Sakamoto NixOS configuration.
# Sakamoto NixOS
Sakamoto NixOS is built with various profiles intended for reproducibility.
## Available Hosts
- MacBook M series
- Linux
## Installation
Installing Sakamoto Nix configuration may vary on your current operating system.
| Hosts | Description |
|----------|--------------|
| hakase | gaming desktop (linux) |
| sakamoto | \[unavailable] server that uses containers (linux) |
| nano | \[unavailable] windows configuration |
| macos | macos configuration |
1. Install [Nix](https://nixos.org/download/).
**Note: Replace `${Hosts}` with one of the options from the table above.**
2. Ensure Nix is installed properly by running the following (this also gives you `nano` for editing later):
### Linux Installation
```sh
nix-shell -p nano
```
1. Install [Nix](https://nixos.org).
2. Clone this directory.
```sh
$ git clone https://git.sakamoto.dev/kenji/nixos.git ~/.config/nixos
```
3. Create a hardware-configuration.conf
```sh
$ sudo nixos-generate-config --dir ~/.config/nixos/hosts/${Hosts}/
```
4. ⚠️ Modify `config.nix` that suits your configuration. **Be sure to edit `config.nix`! Most especially `myConfig.essentials.Username`. Otherwise, your OS could break!!!**
5. Rebuild.
```sh
$ sudo nixos-rebuild switch --flake ~/.config/nixos/hosts/#${Hosts}
```
6. Install unstable channel (fixes `pkgs.fish` misconfiguration).
```sh
$ nix-channel --add https://nixos.org/channels/nixos-unstable nixos nix-channel --update
```
7. (Optional) You can install `proton-ge` by running the following command:
```sh
protonup
```
8. (Optional) Add Decky Loader for Steam via this command:
```sh
touch ~/.steam/steam/.cef-enable-remote-debugging
3. Clone the git repository:
```
### MacOS (Darwin) Installation
1. Install [Nix](https://nixos.org).
2. Clone this directory.
```sh
$ git clone https://git.sakamoto.dev/kenji/nixos.git ~/.config/nixos
git clone https://git.sakamoto.dev/kenji/nixos.git ~/.config/nixos && cd ~/.config/nixos/
```
3. ⚠️ Modify `config.nix` that suits your configuration. **Be sure to edit `config.nix`! Most especially `myConfig.essentials.Username`. Otherwise, configuration would not work!!!**
4. Rebuild.
4. Copy `info.default.nix` and rename it to `info.local.nix`:
```sh
$ sudo nix run nix-darwin --extra-experimental-features "nix-command flakes" -- switch --flake ~/.config/nixos#macos
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

+73 -66
View File
@@ -1,79 +1,37 @@
{
myConfig = {
essentials = {
# !!! replace it with your own, else system might malfunction.
Username = "kenji";
};
general = {
Terminal = {
font = "JetBrainsMono Nerd Font";
size = "18";
shell = "fish"; # or zsh
aliases = {};
};
allowUnfree = true;
};
nixos = {
Hostname = "hakase";
Username = "kenji";
Timezone = "America/Chicago";
Boot = {
mode = "systemd"; # 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
goverlay
geekbench_6
gparted
ntfs3g
todoist
feishin
discord
xfce.thunar
];
};
Hyprland = {
enable = false;
monitors = [
"DP-1, highres@165,0x1080,1,vrr,1"
"DP-2, highres@highrr,0x0,1"
"HDMI-A-1, 1920x1080@120, 20000x20000,1"
# "HDMI-A-1, disabled"
];
};
Git = {
user = "";
email = "";
gitProfile = {
User = "kenji";
Email = "kenji@sakamoto.dev";
defaultBranch = "master";
};
};
optionals = {
Builds = {
trustedUsers = [
"@groups"
];
buildMachines = [
{
hostName = "";
sshUser = "";
sshKey = "";
system = "";
supportedFeatures = ["big-parallel" "kvm" "nixos-test"];
}
];
};
Ssh = {
ssh = {
extraConfig = ''
Host macair
User biscuit
HostName 192.168.68.81
Host gitea.sakamoto.dev
User kenji
ProxyCommand cloudflared access ssh --hostname %h
@@ -81,5 +39,54 @@
'';
};
};
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";
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
+205 -443
View File
@@ -1,18 +1,23 @@
{
"nodes": {
"app2unit-src": {
"flake": false,
"ags": {
"inputs": {
"astal": "astal",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1751917736,
"narHash": "sha256-TjePNU9Wu9kaXSczMAZcMV0HSC9zqzLcgKXdbkyLSAU=",
"owner": "Vladimir-csp",
"repo": "app2unit",
"rev": "6a2fe29210fd939571fdfcd78581965ef479c749",
"lastModified": 1744557573,
"narHash": "sha256-XAyj0iDuI51BytJ1PwN53uLpzTDdznPDQFG4RwihlTQ=",
"owner": "aylur",
"repo": "ags",
"rev": "3ed9737bdbc8fc7a7c7ceef2165c9109f336bff6",
"type": "github"
},
"original": {
"owner": "Vladimir-csp",
"repo": "app2unit",
"owner": "aylur",
"repo": "ags",
"type": "github"
}
},
@@ -36,11 +41,11 @@
]
},
"locked": {
"lastModified": 1751740947,
"narHash": "sha256-35040CHH7P3JGmhGVfEb2oJHL/A5mI2IXumhkxrBnao=",
"lastModified": 1747864449,
"narHash": "sha256-PIjVAWghZhr3L0EFM2UObhX84UQxIACbON0IC0zzSKA=",
"owner": "hyprwm",
"repo": "aquamarine",
"rev": "dfc1db15a08c4cd234288f66e1199c653495301f",
"rev": "389372c5f4dc1ac0e7645ed29a35fd6d71672ef5",
"type": "github"
},
"original": {
@@ -49,83 +54,24 @@
"type": "github"
}
},
"caelestia-cli-src": {
"flake": false,
"locked": {
"lastModified": 1752705650,
"narHash": "sha256-+XPGBYwjvbsPx7HhST9QTliDWl2HG43l2mvV7bjHqr4=",
"ref": "refs/heads/main",
"rev": "4a0bd16dd50587343a2b95b2817608d2d5c47c3e",
"revCount": 268,
"type": "git",
"url": "https://git.sakamoto.dev/kenji/caelestia-cli"
},
"original": {
"type": "git",
"url": "https://git.sakamoto.dev/kenji/caelestia-cli"
}
},
"caelestia-shell": {
"astal": {
"inputs": {
"app2unit-src": "app2unit-src",
"caelestia-cli-src": "caelestia-cli-src",
"caelestia-shell-src": "caelestia-shell-src",
"flake-utils": "flake-utils",
"nixpkgs": [
"ags",
"nixpkgs"
],
"quickshell": "quickshell"
]
},
"locked": {
"lastModified": 1752705685,
"narHash": "sha256-0lh61BB1wR555O239wdf2wHeWn2xwbZxVxqF+nln5V4=",
"ref": "refs/heads/master",
"rev": "418754a149d692b3efd43dfb5cc3586c4d07d07f",
"revCount": 14,
"type": "git",
"url": "https://git.sakamoto.dev/kenji/caelestia-nix"
},
"original": {
"type": "git",
"url": "https://git.sakamoto.dev/kenji/caelestia-nix"
}
},
"caelestia-shell-src": {
"flake": false,
"locked": {
"lastModified": 1751355641,
"narHash": "sha256-GDarX9uOlXGc2NstZmCFXBl1g5iWvchL1QA9zuWKw4Q=",
"ref": "refs/heads/main",
"rev": "4b341ca16fda528987e5ac2745945d28f422d839",
"revCount": 806,
"type": "git",
"url": "https://git.sakamoto.dev/kenji/caelestia-dots"
},
"original": {
"type": "git",
"url": "https://git.sakamoto.dev/kenji/caelestia-dots"
}
},
"chaotic": {
"inputs": {
"flake-schemas": "flake-schemas",
"home-manager": "home-manager",
"jovian": "jovian",
"nixpkgs": "nixpkgs",
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1751984126,
"narHash": "sha256-PrNg+sypyNMU0dHLbfVFQx58NEnS59DUIu0SZSq3DSk=",
"owner": "chaotic-cx",
"repo": "nyx",
"rev": "8feb220c99c94c4957d37253eff6100cc33d7e8a",
"lastModified": 1742571008,
"narHash": "sha256-5WgfJAeBpxiKbTR/gJvxrGYfqQRge5aUDcGKmU1YZ1Q=",
"owner": "aylur",
"repo": "astal",
"rev": "dc0e5d37abe9424c53dcbd2506a4886ffee6296e",
"type": "github"
},
"original": {
"owner": "chaotic-cx",
"ref": "nyxpkgs-unstable",
"repo": "nyx",
"owner": "aylur",
"repo": "astal",
"type": "github"
}
},
@@ -136,11 +82,11 @@
]
},
"locked": {
"lastModified": 1751313918,
"narHash": "sha256-HsJM3XLa43WpG+665aGEh8iS8AfEwOIQWk3Mke3e7nk=",
"lastModified": 1749194393,
"narHash": "sha256-vt6hM9DNywnXXuW1qPDLzECmbDcmxhh58wpb0EEQjAo=",
"owner": "lnl7",
"repo": "nix-darwin",
"rev": "e04a388232d9a6ba56967ce5b53a8a6f713cdfcf",
"rev": "19346808c445f23b08652971be198b9df6c33edc",
"type": "github"
},
"original": {
@@ -205,6 +151,24 @@
"inputs": {
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1749398372,
"narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_2": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib_2"
},
"locked": {
"lastModified": 1738453229,
"narHash": "sha256-7H9XgNiGLKN1G1CgRh0vUL4AheZSYzPm+zmZ7vxbJdo=",
@@ -219,7 +183,7 @@
"type": "github"
}
},
"flake-parts_2": {
"flake-parts_3": {
"inputs": {
"nixpkgs-lib": [
"nixovim",
@@ -241,44 +205,9 @@
"type": "github"
}
},
"flake-parts_3": {
"inputs": {
"nixpkgs-lib": [
"nur",
"nixpkgs"
]
},
"locked": {
"lastModified": 1733312601,
"narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-schemas": {
"locked": {
"lastModified": 1721999734,
"narHash": "sha256-G5CxYeJVm4lcEtaO87LKzOsVnWeTcHGKbKxNamNWgOw=",
"rev": "0a5c42297d870156d9c57d8f99e476b738dcd982",
"revCount": 75,
"type": "tarball",
"url": "https://api.flakehub.com/f/pinned/DeterminateSystems/flake-schemas/0.1.5/0190ef2f-61e0-794b-ba14-e82f225e55e6/source.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://flakehub.com/f/DeterminateSystems/flake-schemas/%3D0.1.5.tar.gz"
}
},
"flake-utils": {
"inputs": {
"systems": "systems"
"systems": "systems_3"
},
"locked": {
"lastModified": 1731533236,
@@ -296,25 +225,7 @@
},
"flake-utils_2": {
"inputs": {
"systems": "systems_2"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_3": {
"inputs": {
"systems": "systems_5"
"systems": "systems_4"
},
"locked": {
"lastModified": 1731533236,
@@ -406,16 +317,15 @@
"home-manager": {
"inputs": {
"nixpkgs": [
"chaotic",
"nixpkgs"
]
},
"locked": {
"lastModified": 1751824240,
"narHash": "sha256-aDDC0CHTlL7QDKWWhdbEgVPK6KwWt+ca0QkmHYZxMzI=",
"lastModified": 1748979197,
"narHash": "sha256-mKYwYcO9RmA2AcAFIXGDBOw5iv/fbjw6adWvMbnfIuk=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "fd9e55f5fac45a26f6169310afca64d56b681935",
"rev": "34a13086148cbb3ae65a79f753eb451ce5cac3d3",
"type": "github"
},
"original": {
@@ -425,26 +335,6 @@
}
},
"home-manager_2": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1751578154,
"narHash": "sha256-7zfDzmaidDESMZpdmzK/+APeKN432CJuphHHETX88Ls=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "7044c3eced5319148c09fe9612659765b9297d4a",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"home-manager_3": {
"inputs": {
"nixpkgs": [
"nixovim",
@@ -482,11 +372,11 @@
]
},
"locked": {
"lastModified": 1749155331,
"narHash": "sha256-XR9fsI0zwLiFWfqi/pdS/VD+YNorKb3XIykgTg4l1nA=",
"lastModified": 1745948457,
"narHash": "sha256-lzTV10FJTCGNtMdgW5YAhCAqezeAzKOd/97HbQK8GTU=",
"owner": "hyprwm",
"repo": "hyprcursor",
"rev": "45fcc10b4c282746d93ec406a740c43b48b4ef80",
"rev": "ac903e80b33ba6a88df83d02232483d99f327573",
"type": "github"
},
"original": {
@@ -511,11 +401,11 @@
]
},
"locked": {
"lastModified": 1751808145,
"narHash": "sha256-OXgL0XaKMmfX2rRQkt9SkJw+QNfv0jExlySt1D6O72g=",
"lastModified": 1745015490,
"narHash": "sha256-apEJ9zoSzmslhJ2vOKFcXTMZLUFYzh1ghfB6Rbw3Low=",
"owner": "hyprwm",
"repo": "hyprgraphics",
"rev": "b841473a0bd4a1a74a0b64f1ec2ab199035c349f",
"rev": "60754910946b4e2dc1377b967b7156cb989c5873",
"type": "github"
},
"original": {
@@ -538,15 +428,15 @@
"nixpkgs"
],
"pre-commit-hooks": "pre-commit-hooks",
"systems": "systems_3",
"systems": "systems",
"xdph": "xdph"
},
"locked": {
"lastModified": 1751995875,
"narHash": "sha256-ud9sl1RjmzAzalH2ocmGPs182xvr7GktjVIYvzJamwo=",
"lastModified": 1749049255,
"narHash": "sha256-QXg2B/bF/f9IeSiZwJuhdnz2xcnpu/hDfz4eIHWVhz8=",
"owner": "hyprwm",
"repo": "Hyprland",
"rev": "9517d0eaa4ef93de67dc80fecca7a826f7ad556d",
"rev": "d7a87ce6e2535f1029fc93b062d2828e8549c525",
"type": "github"
},
"original": {
@@ -567,11 +457,11 @@
]
},
"locked": {
"lastModified": 1749046714,
"narHash": "sha256-kymV5FMnddYGI+UjwIw8ceDjdeg7ToDVjbHCvUlhn14=",
"lastModified": 1743714874,
"narHash": "sha256-yt8F7NhMFCFHUHy/lNjH/pjZyIDFNk52Q4tivQ31WFo=",
"owner": "hyprwm",
"repo": "hyprland-protocols",
"rev": "613878cb6f459c5e323aaafe1e6f388ac8a36330",
"rev": "3a5c2bda1c1a4e55cc1330c782547695a93f05b2",
"type": "github"
},
"original": {
@@ -599,11 +489,11 @@
]
},
"locked": {
"lastModified": 1749154592,
"narHash": "sha256-DO7z5CeT/ddSGDEnK9mAXm1qlGL47L3VAHLlLXoCjhE=",
"lastModified": 1737634706,
"narHash": "sha256-nGCibkfsXz7ARx5R+SnisRtMq21IQIhazp6viBU8I/A=",
"owner": "hyprwm",
"repo": "hyprland-qt-support",
"rev": "4c8053c3c888138a30c3a6c45c2e45f5484f2074",
"rev": "8810df502cdee755993cb803eba7b23f189db795",
"type": "github"
},
"original": {
@@ -635,11 +525,11 @@
]
},
"locked": {
"lastModified": 1750371812,
"narHash": "sha256-D868K1dVEACw17elVxRgXC6hOxY+54wIEjURztDWLk8=",
"lastModified": 1745951494,
"narHash": "sha256-2dModE32doiyQMmd6EDAQeZnz+5LOs6KXyE0qX76WIg=",
"owner": "hyprwm",
"repo": "hyprland-qtutils",
"rev": "b13c7481e37856f322177010bdf75fccacd1adc8",
"rev": "4be1d324faf8d6e82c2be9f8510d299984dfdd2e",
"type": "github"
},
"original": {
@@ -664,11 +554,11 @@
]
},
"locked": {
"lastModified": 1750371198,
"narHash": "sha256-/iuJ1paQOBoSLqHflRNNGyroqfF/yvPNurxzcCT0cAE=",
"lastModified": 1747484975,
"narHash": "sha256-+LAQ81HBwG0lwshHlWe0kfWg4KcChIPpnwtnwqmnoEU=",
"owner": "hyprwm",
"repo": "hyprlang",
"rev": "cee01452bca58d6cadb3224e21e370de8bc20f0b",
"rev": "163c83b3db48a17c113729c220a60b94596c9291",
"type": "github"
},
"original": {
@@ -689,11 +579,11 @@
]
},
"locked": {
"lastModified": 1751888065,
"narHash": "sha256-F2SV9WGqgtRsXIdUrl3sRe0wXlQD+kRRZcSfbepjPJY=",
"lastModified": 1746635225,
"narHash": "sha256-W9G9bb0zRYDBRseHbVez0J8qVpD5QbizX67H/vsudhM=",
"owner": "hyprwm",
"repo": "hyprutils",
"rev": "a8229739cf36d159001cfc203871917b83fdf917",
"rev": "674ea57373f08b7609ce93baff131117a0dfe70d",
"type": "github"
},
"original": {
@@ -714,11 +604,11 @@
]
},
"locked": {
"lastModified": 1751881472,
"narHash": "sha256-meB0SnXbwIe2trD041MLKEv6R7NZ759QwBcVIhlSBfE=",
"lastModified": 1747584298,
"narHash": "sha256-PH9qZqWLHvSBQiUnA0NzAyQA3tu2no2z8kz0ZeHWj4w=",
"owner": "hyprwm",
"repo": "hyprwayland-scanner",
"rev": "8fb426b3e5452fd9169453fd6c10f8c14ca37120",
"rev": "e511882b9c2e1d7a75d45d8fddd2160daeafcbc3",
"type": "github"
},
"original": {
@@ -757,55 +647,12 @@
"type": "github"
}
},
"jovian": {
"inputs": {
"nix-github-actions": "nix-github-actions",
"nixpkgs": [
"chaotic",
"nixpkgs"
]
},
"locked": {
"lastModified": 1751529406,
"narHash": "sha256-jwKDHyUycp678zDYa5Hyfq3msO73YMXdZPxp96dU7po=",
"owner": "Jovian-Experiments",
"repo": "Jovian-NixOS",
"rev": "b2e5ce654e4f5bf8905c2e07a96dcf4966e6277d",
"type": "github"
},
"original": {
"owner": "Jovian-Experiments",
"repo": "Jovian-NixOS",
"type": "github"
}
},
"jovian_2": {
"inputs": {
"nix-github-actions": "nix-github-actions_2",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1752755091,
"narHash": "sha256-H/k35QJLyQxkFnXR5ckMv/Z+ElNa5f22qNKdyGBMAn4=",
"owner": "Jovian-Experiments",
"repo": "Jovian-NixOS",
"rev": "0d09755fe1df1886e5f07dbb16f7ed373080f86a",
"type": "github"
},
"original": {
"owner": "Jovian-Experiments",
"repo": "Jovian-NixOS",
"type": "github"
}
},
"matugen": {
"inputs": {
"nixpkgs": [
"nixpkgs"
],
"systems": "systems_4"
"systems": "systems_2"
},
"locked": {
"lastModified": 1745334376,
@@ -843,66 +690,42 @@
"type": "github"
}
},
"nix-github-actions": {
"nix-gaming": {
"inputs": {
"flake-parts": "flake-parts",
"nixpkgs": [
"chaotic",
"jovian",
"nixpkgs"
]
},
"locked": {
"lastModified": 1729697500,
"narHash": "sha256-VFTWrbzDlZyFHHb1AlKRiD/qqCJIripXKiCSFS8fAOY=",
"owner": "zhaofengli",
"repo": "nix-github-actions",
"rev": "e418aeb728b6aa5ca8c5c71974e7159c2df1d8cf",
"lastModified": 1751075759,
"narHash": "sha256-MNAlH/IlSkg5ODfLEgYuDvs4XrM8n3Ukmh6OqQxoJ6s=",
"owner": "fufexan",
"repo": "nix-gaming",
"rev": "622e26d86942642483e1a49d4f0dea2cbb80e6c1",
"type": "github"
},
"original": {
"owner": "zhaofengli",
"ref": "matrix-name",
"repo": "nix-github-actions",
"type": "github"
}
},
"nix-github-actions_2": {
"inputs": {
"nixpkgs": [
"jovian",
"nixpkgs"
]
},
"locked": {
"lastModified": 1729697500,
"narHash": "sha256-VFTWrbzDlZyFHHb1AlKRiD/qqCJIripXKiCSFS8fAOY=",
"owner": "zhaofengli",
"repo": "nix-github-actions",
"rev": "e418aeb728b6aa5ca8c5c71974e7159c2df1d8cf",
"type": "github"
},
"original": {
"owner": "zhaofengli",
"ref": "matrix-name",
"repo": "nix-github-actions",
"owner": "fufexan",
"repo": "nix-gaming",
"type": "github"
}
},
"nixovim": {
"inputs": {
"flake-parts": "flake-parts",
"flake-parts": "flake-parts_2",
"nixpkgs": [
"nixpkgs"
],
"nixvim": "nixvim",
"rust-overlay": "rust-overlay_2"
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1751734292,
"narHash": "sha256-AeW333kvHQPHyhF1MH4ogtAuQmReNeCOJmOcvD2IHcM=",
"lastModified": 1749068064,
"narHash": "sha256-pxszYA1LsrW89Z++jMshDqRpNx99QcvfpFIK5mdmneA=",
"ref": "refs/heads/master",
"rev": "13cd454fb30d75a204ed245ec094210635cc22a6",
"revCount": 67,
"rev": "be2e51f4ddec2389d282280871ca484f3f1f0892",
"revCount": 60,
"type": "git",
"url": "https://git.sakamoto.dev/kenji/nixovim.git"
},
@@ -912,34 +735,6 @@
}
},
"nixpkgs": {
"locked": {
"lastModified": 1751792365,
"narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-lib": {
"locked": {
"lastModified": 1738452942,
"narHash": "sha256-vJzFZGaCpnmo7I6i416HaBLpC+hvcURh/BQwROcGIp8=",
"type": "tarball",
"url": "https://github.com/NixOS/nixpkgs/archive/072a6db25e947df2f31aab9eccd0ab75d5b2da11.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://github.com/NixOS/nixpkgs/archive/072a6db25e947df2f31aab9eccd0ab75d5b2da11.tar.gz"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1738797219,
"narHash": "sha256-KRwX9Z1XavpgeSDVM/THdFd6uH8rNm/6R+7kIbGa+2s=",
@@ -955,7 +750,34 @@
"type": "github"
}
},
"nixpkgs_3": {
"nixpkgs-lib": {
"locked": {
"lastModified": 1748740939,
"narHash": "sha256-rQaysilft1aVMwF14xIdGS3sj1yHlI6oKQNBRTF40cc=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "656a64127e9d791a334452c6b6606d17539476e2",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixpkgs.lib",
"type": "github"
}
},
"nixpkgs-lib_2": {
"locked": {
"lastModified": 1738452942,
"narHash": "sha256-vJzFZGaCpnmo7I6i416HaBLpC+hvcURh/BQwROcGIp8=",
"type": "tarball",
"url": "https://github.com/NixOS/nixpkgs/archive/072a6db25e947df2f31aab9eccd0ab75d5b2da11.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://github.com/NixOS/nixpkgs/archive/072a6db25e947df2f31aab9eccd0ab75d5b2da11.tar.gz"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1736320768,
"narHash": "sha256-nIYdTAiKIGnFNugbomgBJR+Xv5F1ZQU+HfaBqJKroC0=",
@@ -971,17 +793,17 @@
"type": "github"
}
},
"nixpkgs_4": {
"nixpkgs_3": {
"locked": {
"lastModified": 1751271578,
"narHash": "sha256-P/SQmKDu06x8yv7i0s8bvnnuJYkxVGBWLWHaU+tt4YY=",
"owner": "NixOS",
"lastModified": 1748693115,
"narHash": "sha256-StSrWhklmDuXT93yc3GrTlb0cKSS0agTAxMGjLKAsY8=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "3016b4b15d13f3089db8a41ef937b13a9e33a8df",
"rev": "910796cabe436259a29a72e8d3f5e180fc6dfacc",
"type": "github"
},
"original": {
"owner": "NixOS",
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
@@ -991,11 +813,11 @@
"inputs": {
"devshell": "devshell",
"flake-compat": "flake-compat_2",
"flake-parts": "flake-parts_2",
"flake-parts": "flake-parts_3",
"git-hooks": "git-hooks",
"home-manager": "home-manager_3",
"home-manager": "home-manager_2",
"nix-darwin": "nix-darwin",
"nixpkgs": "nixpkgs_2",
"nixpkgs": "nixpkgs",
"nuschtosSearch": "nuschtosSearch",
"treefmt-nix": "treefmt-nix"
},
@@ -1013,31 +835,9 @@
"type": "github"
}
},
"nur": {
"inputs": {
"flake-parts": "flake-parts_3",
"nixpkgs": [
"nixpkgs"
],
"treefmt-nix": "treefmt-nix_2"
},
"locked": {
"lastModified": 1751596056,
"narHash": "sha256-YYSPbbr900ciunCWYPIvUbSnnchcMWH907w4LY7uyZs=",
"owner": "nix-community",
"repo": "NUR",
"rev": "8062772f4de4a7ce091bfdb88322e236cffcff30",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "NUR",
"type": "github"
}
},
"nuschtosSearch": {
"inputs": {
"flake-utils": "flake-utils_3",
"flake-utils": "flake-utils",
"ixx": "ixx",
"nixpkgs": [
"nixovim",
@@ -1069,11 +869,11 @@
]
},
"locked": {
"lastModified": 1750779888,
"narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=",
"lastModified": 1747372754,
"narHash": "sha256-2Y53NGIX2vxfie1rOW0Qb86vjRZ7ngizoo+bnXU9D9k=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d",
"rev": "80479b6ec16fefd9c1db3ea13aeb038c60530f46",
"type": "github"
},
"original": {
@@ -1085,36 +885,15 @@
"quickshell": {
"inputs": {
"nixpkgs": [
"caelestia-shell",
"nixpkgs"
]
},
"locked": {
"lastModified": 1752486994,
"narHash": "sha256-/11zPRDdPPn61GXDyvDes9otFTP5lLqmETAtwMdeYWI=",
"lastModified": 1751354716,
"narHash": "sha256-bLMNn3gh09gtkIEwZW3USt4ehLrmwmfnb3rqahYBI+4=",
"ref": "refs/heads/master",
"rev": "5ac9096c1c63f6940c6b95f1118b540dfe029278",
"revCount": 632,
"type": "git",
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
},
"original": {
"type": "git",
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
}
},
"quickshell_2": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1751880110,
"narHash": "sha256-5fQ2cetL3rTHqXe2VM3puawL/8u5j6ujBr6Gdt7Iues=",
"ref": "refs/heads/master",
"rev": "5d7e07508ae3e5487edb1ac5a152120434f091d5",
"revCount": 607,
"rev": "f681e2016fd71b42985bd520b3a20c62488582e9",
"revCount": 599,
"type": "git",
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
},
@@ -1125,44 +904,22 @@
},
"root": {
"inputs": {
"caelestia-shell": "caelestia-shell",
"chaotic": "chaotic",
"ags": "ags",
"darwin": "darwin",
"flake-utils": "flake-utils_2",
"home-manager": "home-manager_2",
"home-manager": "home-manager",
"hyprland": "hyprland",
"jovian": "jovian_2",
"matugen": "matugen",
"nix-gaming": "nix-gaming",
"nixovim": "nixovim",
"nixpkgs": "nixpkgs_4",
"nur": "nur",
"quickshell": "quickshell_2"
"nixpkgs": "nixpkgs_3",
"quickshell": "quickshell",
"sops-nix": "sops-nix",
"unlisted-fonts": "unlisted-fonts"
}
},
"rust-overlay": {
"inputs": {
"nixpkgs": [
"chaotic",
"nixpkgs"
]
},
"locked": {
"lastModified": 1751856221,
"narHash": "sha256-/QE1eV0ckFvgRMcKjZqgdJDoXFNwSMepwRoBjaw2MCk=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "34cae4b56929c5b340e1c5b10d9a98a425b2a51e",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"rust-overlay_2": {
"inputs": {
"nixpkgs": "nixpkgs_3"
"nixpkgs": "nixpkgs_2"
},
"locked": {
"lastModified": 1739327257,
@@ -1178,22 +935,57 @@
"type": "github"
}
},
"sops-nix": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1750119275,
"narHash": "sha256-Rr7Pooz9zQbhdVxux16h7URa6mA80Pb/G07T4lHvh0M=",
"owner": "Mic92",
"repo": "sops-nix",
"rev": "77c423a03b9b2b79709ea2cb63336312e78b72e2",
"type": "github"
},
"original": {
"owner": "Mic92",
"repo": "sops-nix",
"type": "github"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"repo": "default-linux",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"repo": "default-linux",
"type": "github"
}
},
"systems_2": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems",
"repo": "default-linux",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default-linux",
"type": "github"
}
},
"systems_3": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
@@ -1208,37 +1000,7 @@
"type": "github"
}
},
"systems_3": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems",
"repo": "default-linux",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default-linux",
"type": "github"
}
},
"systems_4": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems",
"repo": "default-linux",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default-linux",
"type": "github"
}
},
"systems_5": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
@@ -1275,25 +1037,25 @@
"type": "github"
}
},
"treefmt-nix_2": {
"unlisted-fonts": {
"inputs": {
"flake-utils": "flake-utils_2",
"nixpkgs": [
"nur",
"nixpkgs"
]
},
"locked": {
"lastModified": 1733222881,
"narHash": "sha256-JIPcz1PrpXUCbaccEnrcUS8jjEb/1vJbZz5KkobyFdM=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "49717b5af6f80172275d47a418c9719a31a78b53",
"type": "github"
"lastModified": 1748987994,
"narHash": "sha256-13QQRwZx9tRDmL79+XBM1YaC4W68mVrVW2NCv2w25WA=",
"ref": "refs/heads/master",
"rev": "468d51f24d3dd22c543e657c359fb333ff4df726",
"revCount": 1,
"type": "git",
"url": "https://git.sakamoto.dev/kenji/nix-fonts.git"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
"type": "git",
"url": "https://git.sakamoto.dev/kenji/nix-fonts.git"
}
},
"xdph": {
@@ -1324,11 +1086,11 @@
]
},
"locked": {
"lastModified": 1751300244,
"narHash": "sha256-PFuv1TZVYvQhha0ac53E3YgdtmLShrN0t4T6xqHl0jE=",
"lastModified": 1745871725,
"narHash": "sha256-M24SNc2flblWGXFkGQfqSlEOzAGZnMc9QG3GH4K/KbE=",
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
"rev": "6115f3fdcb2c1a57b4a80a69f3c797e47607b90a",
"rev": "76bbf1a6b1378e4ab5230bad00ad04bc287c969e",
"type": "github"
},
"original": {
+86 -82
View File
@@ -1,113 +1,117 @@
{
description = "A rewrite of the original Sakamoto NixOS config.";
description = "Sakamoto's NixOS Configuration";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
chaotic.url = "github:chaotic-cx/nyx/nyxpkgs-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";
nur = {
url = "github:nix-community/NUR";
inputs.nixpkgs.follows = "nixpkgs";
};
jovian = {
url = "github:Jovian-Experiments/Jovian-NixOS";
inputs.nixpkgs.follows = "nixpkgs";
};
ags.url = "github:aylur/ags";
ags.inputs.nixpkgs.follows = "nixpkgs";
hyprland.url = "github:hyprwm/Hyprland";
hyprland.inputs.nixpkgs.follows = "nixpkgs";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
unlisted-fonts.url = "git+https://git.sakamoto.dev/kenji/nix-fonts.git";
unlisted-fonts.inputs.nixpkgs.follows = "nixpkgs";
darwin = {
url = "github:lnl7/nix-darwin";
inputs.nixpkgs.follows = "nixpkgs";
};
nixovim.url = "git+https://git.sakamoto.dev/kenji/nixovim.git";
nixovim.inputs.nixpkgs.follows = "nixpkgs";
nixovim = {
url = "git+https://git.sakamoto.dev/kenji/nixovim.git";
inputs.nixpkgs.follows = "nixpkgs";
};
matugen.url = "github:/InioX/Matugen";
matugen.inputs.nixpkgs.follows = "nixpkgs";
matugen = {
url = "github:/InioX/Matugen";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-gaming.url = "github:fufexan/nix-gaming";
nix-gaming.inputs.nixpkgs.follows = "nixpkgs";
quickshell = {
url = "git+https://git.outfoxxed.me/outfoxxed/quickshell";
inputs.nixpkgs.follows = "nixpkgs";
};
sops-nix.url = "github:Mic92/sops-nix";
sops-nix.inputs.nixpkgs.follows = "nixpkgs";
caelestia-shell = {
url = "git+https://git.sakamoto.dev/kenji/caelestia-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: let
config = import ./config.nix;
mkArgs = system:
lib = nixpkgs.lib;
system = "x86_64-linux";
# pkgs = nixpkgs.legacyPackages.${system}; # alternative, without overlays. Unused.
args =
{
inherit inputs system;
}
// config;
systems = ["x86_64-linux" "aarch64-linux"];
in
flake-utils.lib.eachSystem systems (system: let
pkgs = import nixpkgs {
in {
# nixosConfiguration for linux system
nixosConfigurations = {
desktop = lib.nixosSystem {
inherit system;
config.allowUnfree = true;
};
args = mkArgs system;
in {
})
// {
nixosConfigurations = {
hakase = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = mkArgs "x86_64-linux";
modules = [
./hosts/hakase/configuration.nix
];
};
};
homeConfigurations = {
hakase = home-manager.lib.homeManagerConfiguration {
pkgs = import nixpkgs {
system = "x86_64-linux";
config.allowUnfree = true;
extraSpecialArgs = mkArgs "x86_64-linux";
};
modules = [
./home/hakase.nix
];
};
};
darwinConfigurations = {
macos = darwin.lib.darwinSystem {
system = "aarch64-darwin";
specialArgs = mkArgs "aarch64-darwin";
modules = [
./hosts/macos/darwin.nix
];
};
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;
}
];
};
};
};
}
-27
View File
@@ -1,27 +0,0 @@
#!/usr/bin/env bash
set -xeuo pipefail
gamescopeArgs=(
--adaptive-sync # VRR support
--hdr-enabled
--mangoapp # performance overlay
--rt
--steam
)
steamArgs=(
-pipewire-dmabuf
-tenfoot
)
mangoConfig=(
cpu_temp
gpu_temp
ram
vram
)
mangoVars=(
MANGOHUD=1
MANGOHUD_CONFIG="$(IFS=,; echo "${mangoConfig[*]}")"
)
export "${mangoVars[@]}"
exec gamescope "${gamescopeArgs[@]}" -- steam "${steamArgs[@]}"
+22
View File
@@ -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";
}
-16
View File
@@ -1,16 +0,0 @@
{
pkgs,
inputs,
...
}: let
info = import ../config.nix;
in {
imports = [
# inputs.chaotic.homeManagerModules.default
../modules/home/desktop.nix
../modules/home/terminal.nix
];
# nix.package = pkgs.nix;
home.packages = info.myConfig.nixos.Apps.packages pkgs;
home.stateVersion = "25.05";
}
View File
+2 -2
View File
@@ -5,11 +5,11 @@
...
}: {
imports = [
../modules/home/terminal.nix
../modules/terminal.nix
];
programs.home-manager.enable = true;
home.packages = [];
home.stateVersion = "25.11";
home.stateVersion = "23.05";
}
+36
View File
@@ -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";
}
-186
View File
@@ -1,186 +0,0 @@
{
pkgs,
myConfig,
inputs,
lib,
specialArgs,
...
}: {
imports = [
inputs.home-manager.nixosModules.home-manager
inputs.chaotic.nixosModules.default
./hardware-configuration.nix
../../modules/default/desktop.nix
../../modules/default/dev.nix
../../modules/default/remote.nix
];
environment.systemPackages = with pkgs; [
pavucontrol
wl-clipboard
wget
protontricks
];
users = {
defaultUserShell = pkgs.${myConfig.general.Terminal.shell};
users = {
${myConfig.essentials.Username} = {
isNormalUser = true;
extraGroups = ["wheel" "networkmanager" "input" "video"];
initialHashedPassword = "$y$j9T$NHFtSwF4NJtEmgMjy4Xdg.$9WQltjEx3eEfZ7GbpGLW8lBhJtiXPOeIawrxdmx0.vB";
useDefaultShell = true;
packages = [];
};
};
};
home-manager = {
backupFileExtension = "backup";
useGlobalPkgs = true;
useUserPackages = true;
extraSpecialArgs = specialArgs;
users.${myConfig.essentials.Username} = import ../../home/hakase.nix;
};
nixpkgs.config.allowUnfree = myConfig.general.allowUnfree;
hardware.logitech.wireless.enable = true;
hardware.bluetooth.enable = true;
hardware.bluetooth.powerOnBoot = true;
hardware.bluetooth.settings = {
General = {
MultiProfile = "multiple";
FastConnectable = true;
};
};
hardware.graphics = {
enable = true;
enable32Bit = true;
};
i18n.defaultLocale = "en_US.UTF-8";
time.timeZone = "${myConfig.nixos.Timezone}";
boot.loader = {
systemd-boot = lib.mkIf (myConfig.nixos.Boot.mode == "systemd") {
enable = true;
};
grub = lib.mkIf (myConfig.nixos.Boot.mode == "grub") {
efiSupport = true;
enable = true;
device = "nodev";
useOSProber = true;
};
efi = {
canTouchEfiVariables = true;
efiSysMountPoint = "/boot";
};
};
programs.ssh.extraConfig = myConfig.optionals.Ssh.extraConfig;
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;
};
services = {
displayManager.sessionPackages = [inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland];
# getty.autologinUser = "${myConfig.essentials.Username}";
# greetd = {
# enable = true;
# settings.default_session = {
# user = "${myConfig.essentials.Username}";
# command = "Hyprland";
# };
# };
seatd.enable = true;
upower.enable = true;
scx.enable = true; # by default uses scx_rustland scheduler
libinput.enable = true;
blueman.enable = true;
printing.enable = true;
openssh.enable = true;
pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
# lowLatency = {
# enable = true;
# quantum = 64;
# rate = 48000;
# };
};
};
# make pipewire realtime-capable
security.rtkit.enable = true;
nix = {
distributedBuilds = true;
settings = {
builders-use-substitutes = true;
trusted-users = myConfig.optionals.Builds.trustedUsers;
experimental-features = ["nix-command" "flakes"];
};
};
console = {
earlySetup = false;
font = "${pkgs.terminus_font}/share/consolefonts/ter-132n.psf.gz";
packages = with pkgs; [terminus_font];
useXkbConfig = true;
};
networking = {
networkmanager.enable = true;
firewall = {
enable = true;
allowedTCPPorts = [22 80];
allowedUDPPorts = [53];
};
proxy.default = null;
proxy.noProxy = null;
};
boot.loader.timeout = 0;
boot.loader.limine.maxGenerations = 5;
hardware.amdgpu.initrd.enable = true;
boot.kernelParams = ["quiet"];
boot.kernelPackages = pkgs.linuxPackages_cachyos;
boot.kernel.sysctl = {
"kernel.split_lock_mitigate" = 0;
"kernel.nmi_watchdog" = 0;
"kernel.sched_bore" = "1";
};
boot.initrd = {
systemd.enable = true;
kernelModules = [];
verbose = false;
};
boot.plymouth.enable = true;
boot.consoleLogLevel = 0;
systemd.extraConfig = "DefaultTimeoutStopSec=5s";
# 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";
system.stateVersion = "25.05";
}
-47
View File
@@ -1,47 +0,0 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/532ac73e-1370-4e4d-9d5a-15033de0b96d";
fsType = "btrfs";
options = [ "subvol=@" ];
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/1368-D3F3";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
};
fileSystems."/home" =
{ device = "/dev/disk/by-uuid/780aa81f-c4d6-478b-9c51-2d60362fdb07";
fsType = "ext4";
};
swapDevices =
[ { device = "/dev/disk/by-uuid/b02ef55c-4caf-4a24-a6a2-fb8001eafe22"; }
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp11s0.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp10s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}
+9 -13
View File
@@ -2,17 +2,16 @@
pkgs,
myConfig,
inputs,
system,
mkArgs,
...
}: {
imports = [
../../modules/default/darwin.nix
inputs.home-manager.darwinModules.home-manager
../../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;
@@ -21,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
@@ -34,14 +33,11 @@
nixpkgs.hostPlatform = "aarch64-darwin";
security.pam.services.sudo_local.touchIdAuth = true;
users.users.${myConfig.essentials.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.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = mkArgs system;
home-manager.users.${myConfig.essentials.Username} = import ../../home/darwin.nix;
home-manager.users.${myConfig.general.Username} = import ../../home/macos.nix;
}
View File
-169
View File
@@ -1,169 +0,0 @@
{
config,
pkgs,
lib,
myConfig,
inputs,
...
}: {
imports = [
# Include the results of the hardware scan.
inputs.chaotic.nixosModules.default
./hardware-configuration.nix
];
nix.settings.experimental-features = ["nix-command" "flakes"];
nixpkgs.config.allowUnfree = true;
####################
# Boot & Kernel #
####################
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
boot.loader.timeout = 0;
boot.loader.limine.maxGenerations = 5;
hardware.amdgpu.initrd.enable = true;
boot.kernelParams = ["quiet"];
boot.kernelPackages = pkgs.linuxPackages_cachyos;
boot.kernel.sysctl = {
"kernel.split_lock_mitigate" = 0;
"kernel.nmi_watchdog" = 0;
"kernel.sched_bore" = "1";
};
boot.initrd = {
systemd.enable = true;
kernelModules = [];
verbose = false;
};
boot.plymouth.enable = true;
boot.consoleLogLevel = 0;
systemd.extraConfig = "DefaultTimeoutStopSec=5s";
################
# FileSystems #
################
# fileSystems."/" = {
# options = ["compress=zstd"];
# };
############
# Network #
############
networking = {
networkmanager.enable = true;
firewall.enable = false;
hostName = "nixos";
};
#################
# Bluetooth #
#################
hardware.bluetooth.enable = true;
hardware.bluetooth.settings = {
General = {
MultiProfile = "multiple";
FastConnectable = true;
};
};
#################
# Sound & RTKit #
#################
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
########################
# Graphical & Greetd #
########################
services.xserver.enable = false;
services.getty.autologinUser = "steamos";
services.greetd = {
enable = true;
settings.default_session = {
user = "${myConfig.essentials.Username}";
command = "steam-gamescope > /dev/null 2>&1";
};
};
########################
# Programs & Gaming #
########################
services.automatic-timezoned.enable = true;
services.flatpak.enable = true;
xdg.portal.enable = true;
xdg.portal.config.common.default = "*";
xdg.portal.extraPortals = [pkgs.xdg-desktop-portal-gtk];
# programs.steam.gamescopeSession.args = ["-w 1920" "-h 1080" "-r 120" "--xwayland-count 2" "-e" "--hdr-enabled" "--mangoapp"];
programs = {
appimage = {
enable = true;
binfmt = true;
};
fish = {enable = true;};
mosh = {enable = true;};
tmux = {enable = true;};
gamescope.capSysNice = true;
steam = {
enable = true;
gamescopeSession.enable = true;
extraCompatPackages = with pkgs; [proton-ge-bin];
extraPackages = with pkgs; [
mangohud
gamescope-wsi
];
};
};
environment.sessionVariables = {
PROTON_USE_NTSYNC = "1";
ENABLE_HDR_WSI = "1";
DXVK_HDR = "1";
PROTON_ENABLE_AMD_AGS = "1";
PROTON_ENABLE_NVAPI = "1";
ENABLE_GAMESCOPE_WSI = "1";
STEAM_MULTIPLE_XWAYLANDS = "1";
};
###################
# Virtualization #
###################
virtualisation.docker.enable = true;
virtualisation.docker.enableOnBoot = false;
virtualisation.libvirtd.enable = true;
###############
# Users #
###############
users.users.${myConfig.essentials.Username} = {
isNormalUser = true;
description = "SteamOS user";
extraGroups = ["networkmanager" "wheel" "docker" "video" "seat" "audio" "libvirtd"];
# password = "steamos";
};
#################
# Security #
#################
security.sudo.wheelNeedsPassword = false;
security.polkit.enable = true;
services.seatd.enable = true;
services.openssh.enable = true;
######################
######################
########################
# System State Version #
########################
system.stateVersion = "25.05";
}
-47
View File
@@ -1,47 +0,0 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/532ac73e-1370-4e4d-9d5a-15033de0b96d";
fsType = "btrfs";
options = [ "subvol=@" ];
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/1368-D3F3";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
};
fileSystems."/home" =
{ device = "/dev/disk/by-uuid/780aa81f-c4d6-478b-9c51-2d60362fdb07";
fsType = "ext4";
};
swapDevices =
[ { device = "/dev/disk/by-uuid/b02ef55c-4caf-4a24-a6a2-fb8001eafe22"; }
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp11s0.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp10s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}
+19
View File
@@ -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) [
];
}
-5
View File
@@ -1,5 +0,0 @@
{
imports = [
../../packages/python/default.nix
];
}
-19
View File
@@ -1,19 +0,0 @@
{
lib,
myConfig,
...
}: {
imports =
[
../../packages/hyprland/default.nix
../../packages/matugen/default.nix
../../packages/quickshell/default.nix
]
++ [
../../packages/steam/default.nix
../../packages/bottles/default.nix
]
++ lib.optionals (myConfig.nixos.Gaming.enable == true) [
../../packages/steam/jovian.nix
];
}
-5
View File
@@ -1,5 +0,0 @@
{
imports = [
../../packages/python/default.nix
];
}
-4
View File
@@ -1,4 +0,0 @@
{
imports = [
];
}
+20
View File
@@ -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
];
}
+7
View File
@@ -0,0 +1,7 @@
{
imports = [
../system/stream.nix
../system/gaming.nix
../system/appimage.nix
];
}
-26
View File
@@ -1,26 +0,0 @@
{
imports =
[
../../packages/fonts/home.nix
../../packages/firefox/home.nix
../../packages/hyprland/home.nix
../../packages/hyprlock/home.nix
../../packages/hypridle/home.nix
../../packages/quickshell/home.nix
../../packages/swww/home.nix
../../packages/hyprsunset/home.nix
../../packages/matugen/home.nix
../../packages/rofi/home.nix
../../packages/bibata/home.nix
]
++ [
../../packages/solaar/home.nix
]
++ [
../../packages/mangohud/home.nix
../../packages/protonup/home.nix
../../packages/lutris/home.nix
../../packages/steam/home.nix
];
}
-6
View File
@@ -1,6 +0,0 @@
{
imports = [
../../packages/moondeck-buddy/appimage.nix
../../packages/sunshine/default.nix
];
}
-19
View File
@@ -1,19 +0,0 @@
{
imports = [
../../packages/fish/home.nix
../../packages/kitty/home.nix
../../packages/neovim/home.nix
../../packages/starship/home.nix
../../packages/fastfetch/home.nix
../../packages/zsh/home.nix
../../packages/zoxide/home.nix
../../packages/fonts/home.nix
../../packages/git/home.nix
../../packages/btop/home.nix
../../packages/eza/home.nix
../../packages/cloudflared/home.nix
];
}
+7
View File
@@ -0,0 +1,7 @@
{...}: {
imports = [
../system/dev/tools.nix
../system/dev/python.nix
../system/dev/linux.nix
];
}
+6
View File
@@ -0,0 +1,6 @@
{...}: {
imports = [
../system/dev/tools.nix
../system/dev/python.nix
];
}
+13
View File
@@ -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
];
}
+11
View File
@@ -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
];
}
@@ -8,7 +8,7 @@
programs.ags = {
enable = true;
configDir = ./custom;
configDir = ./biscuit;
extraPackages = let
agsPkgs = inputs.ags.packages.${system};
-5
View File
@@ -1,5 +0,0 @@
{pkgs, ...}: {
home.packages = with pkgs; [
bibata-cursors
];
}
-9
View File
@@ -1,9 +0,0 @@
{
programs.btop = {
enable = true;
settings = {
vim_keys = true;
theme_background = false;
};
};
}
-5
View File
@@ -1,5 +0,0 @@
{pkgs, ...}: {
home.packages = with pkgs; [
cloudflared
];
}
-12
View File
@@ -1,12 +0,0 @@
{pkgs, ...}: {
programs.eza = {
enable = true;
git = true;
colors = "auto";
icons = "auto";
enableZshIntegration = true;
enableFishIntegration = true;
enableBashIntegration = true;
};
}
-113
View File
@@ -1,113 +0,0 @@
{
programs.firefox = {
enable = true;
languagePacks = [
"en-US"
];
profiles = {
hakase = {
search.force = true;
isDefault = true;
search.default = "ddg";
settings = {
"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;
"browser.startup.homepage" = "https://dash.sakamoto.dev";
"browser.newtabpage.pinned" = [
{
title = "Dashboard";
url = "https://dash.sakamoto.dev";
}
];
};
bookmarks = {
force = true;
settings = [
{
toolbar = true;
bookmarks = [
{
name = "Home Manager";
url = "https://mynixos.com/home-manager/options/programs";
}
{
name = "YouTube";
url = "https://youtube.com";
}
];
}
];
};
};
};
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 = "always"; # 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";
"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";
# };
};
};
};
}
@@ -3,6 +3,7 @@
myConfig,
...
}: {
programs.zoxide.enable = true;
programs.fish = {
enable = true;
interactiveShellInit = ''
@@ -11,7 +12,7 @@
zoxide init fish | source
'';
shellAliases = myConfig.general.Terminal.aliases;
shellAliases = myConfig.general.terminal.Aliases;
plugins = with pkgs.fishPlugins; [
];
-8
View File
@@ -1,8 +0,0 @@
{pkgs, ...}: {
fonts = {
fontconfig.enable = true;
};
home.packages = with pkgs; [
nerd-fonts.jetbrains-mono
];
}
+10
View File
@@ -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}";
};
};
}
-10
View File
@@ -1,10 +0,0 @@
{myConfig, ...}: {
programs.git = {
enable = true;
extraConfig = {
user.name = "${myConfig.nixos.Git.user}";
user.email = "${myConfig.nixos.Git.email}";
init.defaultBranch = "${myConfig.nixos.Git.defaultBranch}";
};
};
}
+38
View File
@@ -0,0 +1,38 @@
{...}: {
services.hypridle = {
enable = true;
settings = {
general = {
lock_cmd = "pidof hyprlock || hyprlock"; # avoid starting multiple hyprlock instances.
before_sleep_cmd = "loginctl lock-session"; # lock before suspend.
after_sleep_cmd = "hyprctl dispatch dpms on && agu"; # avoid needing to press a key twice to turn on the display.
};
listener = [
{
timeout = 150;
on-timeout = "brightnessctl -s set 10"; # set monitor backlight to minimum, avoid 0 on OLED monitor.
on-resume = "brightnessctl -r"; # restore monitor backlight.
}
{
timeout = 150;
on-timeout = "brightnessctl -sd rgb:kbd_backlight set 0"; # turn off keyboard backlight.
on-resume = "brightnessctl -rd rgb:kbd_backlight"; # turn on keyboard backlight.
}
{
timeout = 300;
on-timeout = "loginctl lock-session"; # lock screen when timeout has passed.
}
{
timeout = 330;
on-timeout = "hyprctl dispatch dpms off"; # screen off after 5.5min.
on-resume = "hyprctl dispatch dpms on && brightnessctl -r"; # screen on and restore brightness on resume.
}
{
timeout = 500;
on-timeout = "systemctl suspend"; # suspend PC after 30min.
}
];
};
};
}
-38
View File
@@ -1,38 +0,0 @@
{...}: {
services.hypridle = {
enable = true;
settings = {
general = {
lock_cmd = "pidof hyprlock || hyprlock"; # avoid starting multiple hyprlock instances.
before_sleep_cmd = "loginctl lock-session"; # lock before suspend.
after_sleep_cmd = "hyprctl dispatch dpms on && agu"; # avoid needing to press a key twice to turn on the display.
};
listener = [
# {
# timeout = 150;
# on-timeout = "brightnessctl -s set 10"; # set monitor backlight to minimum, avoid 0 on OLED monitor.
# on-resume = "brightnessctl -r"; # restore monitor backlight.
# }
# {
# timeout = 150;
# on-timeout = "brightnessctl -sd rgb:kbd_backlight set 0"; # turn off keyboard backlight.
# on-resume = "brightnessctl -rd rgb:kbd_backlight"; # turn on keyboard backlight.
# }
# {
# timeout = 300;
# on-timeout = "loginctl lock-session"; # lock screen when timeout has passed.
# }
# {
# timeout = 330;
# on-timeout = "hyprctl dispatch dpms off"; # screen off after 5.5min.
# on-resume = "hyprctl dispatch dpms on && brightnessctl -r"; # screen on and restore brightness on resume.
# }
{
timeout = 500;
on-timeout = "systemctl suspend"; # suspend PC after 30min.
}
];
};
};
}
-42
View File
@@ -1,42 +0,0 @@
{
config,
pkgs,
myConfig,
...
}: {
wayland.windowManager.hyprland.settings = {
animations = {
enabled = true;
bezier = [
"linear, 0, 0, 1, 1"
"md3_standard, 0.2, 0, 0, 1"
"md3_decel, 0.05, 0.7, 0.1, 1"
"md3_accel, 0.3, 0, 0.8, 0.15"
"overshot, 0.05, 0.9, 0.1, 1.1"
"crazyshot, 0.1, 1.5, 0.76, 0.92"
"hyprnostretch, 0.05, 0.9, 0.1, 1.0"
"menu_decel, 0.1, 1, 0, 1"
"menu_accel, 0.38, 0.04, 1, 0.07"
"easeInOutCirc, 0.85, 0, 0.15, 1"
"easeOutCirc, 0, 0.55, 0.45, 1"
"easeOutExpo, 0.16, 1, 0.3, 1"
"softAcDecel, 0.26, 0.26, 0.15, 1"
"md2, 0.4, 0, 0.2, 1"
];
animation = [
"windows, 1, 3, md3_decel, popin 60%"
"windowsIn, 1, 3, md3_decel, popin 60%"
"windowsOut, 1, 3, md3_accel, popin 60%"
"border, 1, 10, default"
"fade, 1, 3, md3_decel"
"layersIn, 1, 3, menu_decel, slide"
"layersOut, 1, 1.6, menu_accel"
"fadeLayersIn, 1, 2, menu_decel"
"fadeLayersOut, 1, 0.5, menu_accel"
"workspaces, 1, 7, menu_decel, slide"
"specialWorkspace, 1, 3, md3_decel, slidevert"
];
};
};
}
-297
View File
@@ -1,297 +0,0 @@
{
config,
pkgs,
...
}: {
wayland.windowManager.hyprland.settings = {
exec = [
"hyprctl dispatch submap global"
];
submap = [
"global"
];
# Shell keybinds
bindi = [
"$mod, Super_L, global, caelestia:launcher" # bind to `bind` because `bindi` maps to it
# Launcher
];
bindin =
[
"$mod, catchall, global, caelestia:launcherInterrupt"
"$mod, mouse:272, global, caelestia:launcherInterrupt"
"$mod, mouse:273, global, caelestia:launcherInterrupt"
"$mod, mouse:274, global, caelestia:launcherInterrupt"
"$mod, mouse:275, global, caelestia:launcherInterrupt"
"$mod, mouse:276, global, caelestia:launcherInterrupt"
"$mod, mouse:277, global, caelestia:launcherInterrupt"
"$mod, mouse_up, global, caelestia:launcherInterrupt"
"$mod, mouse_down, global, caelestia:launcherInterrupt"
"$mod, K, global, caelestia:launcherInterrupt"
"$mod, H, global, caelestia:launcherInterrupt"
"$mod, J, global, caelestia:launcherInterrupt"
"$mod, L, global, caelestia:launcherInterrupt"
"$mod, S, global, caelestia:launcherInterrupt"
"$mod, G, global, caelestia:launcherInterrupt"
"$mod, T, global, caelestia:launcherInterrupt"
"$mod, D, global, caelestia:launcherInterrupt"
"$mod, Escape, global, caelestia:launcherInterrupt"
"$mod, PERIOD, global, caelestia:launcherInterrupt"
"$mod, E, global, caelestia:launcherInterrupt"
"$mod, V, global, caelestia:launcherInterrupt"
"$mod, W, global, caelestia:launcherInterrupt"
"$mod, Q, global, caelestia:launcherInterrupt"
"$mod, C, global, caelestia:launcherInterrupt"
"$mod, Return, global, caelestia:launcherInterrupt"
]
++ (
# Go to workspace group #
builtins.concatLists (builtins.genList (
i: let
ws = i + 1;
in [
"$mod, ${toString ws}, global, caelestia:launcherInterrupt"
]
)
9)
)
++ [
"$mod, 0, global, caelestia:launcherInterrupt"
];
bind =
[
# Misc
"Control+Alt, Delete, exec, caelestia:session"
"$mod ALT, A, global, caelestia:showall"
"$mod ALT, L, global, caelestia:lock"
# Restore lock - these are `bindl` in your original, but `exec` should be fine here.
# However, `bindl` is typically for a *release* event. If `caelestia shell -d` is a daemon,
# and `caelestia:lock` is a quickshell internal, you might need to reconsider.
# For direct translation, they go into `bindl` list.
# Media - handled by bindl below
# Apps
"$mod, Return, exec, app2unit -- kitty"
"$mod, W, exec, app2unit -- firefox"
"$mod, E, exec, app2unit -- thunar"
"$mod, Q, killactive"
"$mod ALT, E, exec, app2unit -- nemo"
"Control+Alt, Escape, exec, app2unit -- qps"
"Control+Alt, V, exec, app2unit -- pavucontrol"
# Utilities
"$mod SHIFT, S, global, caelestia:screenshotFreeze"
"$mod SHIFT ALT, S, global, caelestia:screenshot"
"$mod ALT, R, exec, caelestia record -s"
"Control+Alt, R, exec, caelestia record"
"$mod SHIFT ALT, R, exec, caelestia record -r"
"$mod SHIFT, C, exec, hyprpicker -a" # Colour picker
# Sleep
"$mod SHIFT, PRINT, exec, systemctl suspend-then-hibernate"
# Clipboard and emoji picker
"$mod, V, exec, pkill fuzzel || caelestia clipboard"
"$mod ALT, V, exec, pkill fuzzel || caelestia clipboard -d"
"$mod, Period, exec, pkill fuzzel || caelestia emoji -p"
# Testing
# This is a `bindl` (key release), so move it to `bindl` list below.
# Window actions
"$mod, H, movefocus, l"
"$mod, L, movefocus, r"
"$mod, K, movefocus, u"
"$mod, J, movefocus, d"
"$mod SHIFT, H, movewindow, l"
"$mod SHIFT, L, movewindow, r"
"$mod SHIFT, K, movewindow, u"
"$mod SHIFT, J, movewindow, d"
"$mod CTRL, Backslash, centerwindow, 1"
"$mod CTRL ALT, Backslash, resizeactive, exact 55% 70%"
"$mod CTRL ALT, Backslash, centerwindow, 1"
"$mod ALT, Backslash, exec, caelestia pip"
"$mod, P, pin"
"$mod, F, fullscreen, 0"
"$mod ALT, F, fullscreen, 1"
# Special workspace toggles
"Control+Shift, Escape, exec, caelestia toggle sysmon"
"$mod, Escape, exec, caelestia toggle sysmon"
"$mod, M, exec, caelestia toggle music"
"$mod, D, exec, caelestia toggle communication"
"$mod, R, exec, caelestia toggle todo"
"$mod, G, togglespecialworkspace, gaming"
"$mod SHIFT, G, movetoworkspace, special:gaming"
"$mod, T, exec, caelestia toggle steam"
# "$mod, T, togglespecialworkspace, special:steam"
# "$mod SHIFT, T, movetoworkspace, special:steam"
# Toggle special workspace
"$mod, S, exec, caelestia toggle specialws"
# Window groups
"$mod, Comma, togglegroup"
"$mod SHIFT, Comma, lockactivegroup, toggle"
# Go to workspace -1/+1 (mouse binds are `bind` for mouse-wheel)
"$mod, mouse_down, workspace, -1"
"$mod, mouse_up, workspace, +1"
# Move window to workspace -1/+1
"$mod ALT, mouse_down, movetoworkspace, -1"
"$mod ALT, mouse_up, movetoworkspace, +1"
# Move window to/from special workspace
"$mod CTRL SHIFT, up, movetoworkspace, special:special"
"$mod CTRL SHIFT, down, movetoworkspace, e+0"
"$mod ALT, S, movetoworkspace, special:special"
]
++ (
# Go to workspace #
let
wsaction = "~/.config/hypr/scripts/wsaction.fish";
in
builtins.concatLists (builtins.genList (
i: let
ws = i + 1;
in [
"$mod, ${toString ws}, exec, ${wsaction} workspace ${toString ws}"
]
)
9) # For workspaces 1-9
)
++ [
# "$mod, 0, exec, ${config.wayland.windowManager.hyprland.settings.workspaceRule."0".exec} workspace 10" # Workaround for workspace 0
# Re-adding `wsaction` since it's used here.
"$mod, 0, exec, ~/.config/hypr/scripts/wsaction.fish workspace 10"
]
++ (
# Go to workspace group #
let
wsaction = "~/.config/hypr/scripts/wsaction.fish";
in
builtins.concatLists (builtins.genList (
i: let
ws = i + 1;
in [
"Control+$mod, ${toString ws}, exec, ${wsaction} -g workspace ${toString ws}"
]
)
9)
)
++ [
"Control+$mod, 0, exec, ~/.config/hypr/scripts/wsaction.fish -g workspace 10"
]
++ (
# Move window to workspace #
let
wsaction = "~/.config/hypr/scripts/wsaction.fish";
in
builtins.concatLists (builtins.genList (
i: let
ws = i + 1;
in [
"$mod SHIFT, ${toString ws}, exec, ${wsaction} movetoworkspace ${toString ws}"
]
)
9)
)
++ [
"$mod SHIFT, 0, exec, ~/.config/hypr/scripts/wsaction.fish movetoworkspace 10"
]
++ (
# Move window to workspace group #
let
wsaction = "~/.config/hypr/scripts/wsaction.fish";
in
builtins.concatLists (builtins.genList (
i: let
ws = i + 1;
in [
"Control+$mod ALT, ${toString ws}, exec, ${wsaction} -g movetoworkspace ${toString ws}"
]
)
9)
)
++ [
"Control+$mod ALT, 0, exec, ~/.config/hypr/scripts/wsaction.fish -g movetoworkspace 10"
];
binde = [
"$mod, Minus, splitratio, -0.1"
"$mod, Equal, splitratio, 0.1"
"Control+$mod, left, workspace, -1"
"$mod, Page_Up, workspace, -1"
"Control+$mod, right, workspace, +1"
"$mod, Page_Down, workspace, +1"
"$mod ALT, Page_Up, movetoworkspace, -1"
"$mod ALT, Page_Down, movetoworkspace, +1"
"Control+$mod SHIFT, right, movetoworkspace, +1"
"Control+$mod SHIFT, left, movetoworkspace, -1"
"Alt, Tab, cyclenext, activewindow" # `binde` for cycle next
"Control+Alt, Tab, changegroupactive, f" # `binde` for change group active
];
bindm = [
"$mod, mouse:272, movewindow"
"$mod, Z, movewindow"
"$mod, mouse:273, resizewindow"
"$mod, X, resizewindow"
];
bindl = [
# Restore lock
"$mod ALT, L, exec, caelestia shell -d"
"$mod ALT, L, global, caelestia:lock" # This is a Hyprland `global` command, not an `exec`
# Brightness
", XF86MonBrightnessUp, global, caelestia:brightnessUp"
", XF86MonBrightnessDown, global, caelestia:brightnessDown"
# Media
"Control+$mod, Space, global, caelestia:mediaToggle"
", XF86AudioPlay, global, caelestia:mediaToggle"
", XF86AudioPause, global, caelestia:mediaToggle"
"Control+$mod, Equal, global, caelestia:mediaNext"
", XF86AudioNext, global, caelestia:mediaNext"
"Control+$mod, Minus, global, caelestia:mediaPrev"
", XF86AudioPrev, global, caelestia:mediaPrev"
", XF86AudioStop, global, caelestia:mediaStop"
# Utilities (screenshot is `bindl` in your original)
", Print, exec, caelestia screenshot" # Full screen capture > clipboard
# Volume
", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
"$mod SHIFT, M, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
# Clipboard and emoji picker (alternate paste is `bindl`)
"Control+Shift+Alt, V, exec, sleep 0.5s && ydotool type -d 1 \"$(cliphist list | head -1 | cliphist decode)\""
# Testing
"$mod ALT, f12, exec, notify-send -u low -i dialog-information-symbolic 'Test notification' \"Here's a really long message to test truncation and wrapping\\nYou can middle click or flick this notification to dismiss it!\" -a 'Shell' -A \"Test1=I got it!\" -A \"Test2=Another action\""
];
bindel = [
# Volume
", XF86AudioRaiseVolume, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ 0; wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 10%+"
", XF86AudioLowerVolume, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ 0; wpctl set-volume @DEFAULT_AUDIO_SINK@ 10%-"
];
bindr = [
# Kill/restart
"Control+$mod SHIFT, R, exec, qs -c caelestia kill"
"Control+$mod ALT, R, exec, qs -c caelestia kill; caelestia shell -d"
];
};
}
-27
View File
@@ -1,27 +0,0 @@
{
config,
pkgs,
myConfig,
...
}: {
wayland.windowManager.hyprland.settings = {
exec = [
"cp -L --no-preserve=mode --update=none ~/.config/hypr/scheme/default.conf ~/.config/hypr/scheme/current.conf"
];
source = [
"~/.config/hypr/scheme/current.conf"
];
group = {
groupbar = {
"text_color" = "rgb($onPrimary)";
"col.active" = "rgba($primaryd4)";
"col.inactive" = "rgba($outlined4)";
"col.locked_active" = "rgba($primaryd4)";
"col.locked_inactive" = "rgba($secondaryd4)";
};
};
misc = {
background_color = "rgb($surfaceVariant)";
};
};
}
-33
View File
@@ -1,33 +0,0 @@
{
config,
pkgs,
myConfig,
...
}: {
wayland.windowManager.hyprland.settings = {
decoration = {
rounding = 10;
rounding_power = 2;
active_opacity = 1.0;
inactive_opacity = 1.0;
dim_inactive = true;
dim_strength = 0.1;
dim_special = 0.8;
shadow = {
enabled = true;
range = 4;
render_power = 3;
color = "rgba(1a1a1aee)";
};
blur = {
enabled = true;
size = 3;
passes = 1;
vibrancy = 0.1696;
};
};
};
}
-31
View File
@@ -1,31 +0,0 @@
{
config,
pkgs,
myConfig,
...
}: {
wayland.windowManager.hyprland.settings = {
env = [
"HYPRCURSOR_THEME, Bibata-Original-Classic"
"HYPRCURSOR_SIZE, 24"
"QT_QPA_PLATFORMTHEME, qt5ct"
"QT_WAYLAND_DISABLE_WINDOWDECORATION, 1"
"QT_AUTO_SCREEN_SCALE_FACTOR, 1"
"XCURSOR_THEME, sweet-rainbow"
"XCURSOR_SIZE, 24"
"GDK_BACKEND, wayland,x11"
"QT_QPA_PLATFORM, wayland;xcb"
"SDL_VIDEODRIVER, wayland,x11"
"CLUTTER_BACKEND, wayland"
"ELECTRON_OZONE_PLATFORM_HINT, auto"
"XDG_CURRENT_DESKTOP, Hyprland"
"XDG_SESSION_TYPE, wayland"
"XDG_SESSION_DESKTOP, Hyprland"
"_JAVA_AWT_WM_NONREPARENTING, 1"
];
};
}
-27
View File
@@ -1,27 +0,0 @@
{
config,
pkgs,
myConfig,
...
}: {
wayland.windowManager.hyprland.settings = {
exec-once = [
# "[workspace special:communication silent] discord"
"[workspace special:steam silent] steam"
"[workspace special:preload silent] kitty --single-instance --hold fastfetch"
"[workspace special:preload silent] firefox"
"[workspace 1] kitty --single-instance --hold -e fish -C fastfetch"
"hyprctl setcursor Bibata-Modern-Ice 24"
"solaar -w hide"
# "sunshine"
# "moondeck-buddy"
"wl-paste --type text --watch cliphist store"
"wl-paste --type image --watch cliphist store"
"sleep 3 && caelestia shell"
];
};
}
-128
View File
@@ -1,128 +0,0 @@
{
config,
pkgs,
myConfig,
...
}: {
wayland.windowManager.hyprland.settings = {
# ######## Window rules ########
windowrule = [
"opaque, class:foot|equibop"
"center 1, floating:1, xwayland:0"
# Float
"float, class:guifetch"
"float, class:yad"
"float, class:zenity"
"float, class:wev"
"float, class:org\\.gnome\\.FileRoller" # Escaped backslash
"float, class:file-roller"
"float, class:blueman-manager"
"float, class:com\\.github\\.GradienceTeam\\.Gradience" # Escaped backslash
"float, class:feh"
"float, class:imv"
"float, class:system-config-printer"
"float, class:quickshell"
# Float, resize and center
"float, class:foot, title:nmtui"
"size 60% 70%, class:foot, title:nmtui"
"center 1, class:foot, title:nmtui"
"float, class:org\\.gnome\\.Settings"
"size 70% 80%, class:org\\.gnome\\.Settings"
"center 1, class:org\\.gnome\\.Settings"
"float, class:org\\.pulseaudio\\.pavucontrol|yad-icon-browser"
"size 60% 70%, class:org\\.pulseaudio\\.pavucontrol|yad-icon-browser"
"center 1, class:org\\.pulseaudio\\.pavucontrol|yad-icon-browser"
"float, class:nwg-look"
"size 50% 60%, class:nwg-look"
"center 1, class:nwg-look"
# Special workspaces
"workspace special:sysmon, class:btop"
"workspace special:music, class:feishin|Spotify|Supersonic"
"workspace special:music, initialTitle:Spotify( Free)?"
"workspace special:communication, class:discord|equibop|vesktop|whatsapp"
"workspace special:todo, class:Todoist"
"workspace special:steam, class:^(steam_app_.*)$"
"noinitialfocus, class:discord"
"focusonactivate 0, class:discord"
# Always full screen
# "fullscreen, title:^(Steam Big Picture Mode)$"
# "fullscreen, title:^(steam_app_.*)$"
# Dialogs
"float, title:(Select|Open)( a)? (File|Folder)(s)?"
"float, title:File (Operation|Upload)( Progress)?"
"float, title:.* Properties"
"float, title:Export Image as PNG"
"float, title:GIMP Crash Debug"
"float, title:Save As"
"float, title:Library"
# Picture in picture (resize and move done via script)
"move 100%-w-2% 100%-w-3%, title:Picture(-| )in(-| )[Pp]icture"
"keepaspectratio, title:Picture(-| )in(-| )[Pp]icture"
"float, title:Picture(-| )in(-| )[Pp]icture"
"pin, title:Picture(-| )in(-| )[Pp]icture"
# Steam
"workspace special:steam, class:steam"
"rounding 10, title:, class:steam"
"float, title:Friends List, class:steam"
"immediate, class:steam_app_[0-9]+"
"idleinhibit always, class:steam_app_[0-9]+"
# ATLauncher console
"float, class:com-atlauncher-App, title:ATLauncher Console"
# Autodesk Fusion 360
"noblur, title:Fusion360|(Marking Menu), class:fusion360\\.exe" # Escaped backslash
# Ugh xwayland popups
"nodim, xwayland:1, title:win[0-9]+"
"noshadow, xwayland:1, title:win[0-9]+"
"rounding 10, xwayland:1, title:win[0-9]+"
];
# ######## Workspace rules ########
workspace = [
"w[tv1]s[false], gapsout:20, gapsin:20"
"f[1]s[false], gapsout:20, gapsin:20"
"1, monitor:DP-1, default:true"
"2, monitor:DP-1"
"3, monitor:DP-1"
"4, monitor:DP-2"
"5, monitor:DP-2"
"6, monitor:DP-2"
"special:gaming, monitor:DP-1, persistent:true"
"special:steam, monitor:DP-1, persistent:true, on-created-empty:steam"
];
# ######## Layer rules ########
layerrule = [
"animation fade, hyprpicker"
"animation fade, logout_dialog"
"animation fade, selection"
"animation fade, wayfreeze"
# Fuzzel
"animation popin 80%, launcher"
"blur, launcher"
# Shell
"noanim, caelestia-(launcher|osd|notifications|border-exclusion|area-picker)"
"animation fade, caelestia-(drawers|background)"
"order 1, caelestia-border-exclusion"
"order 2, caelestia-bar"
# The commented out lines below need to remain commented if you don't want them active
#"xray 1, caelestia-(border|launcher|bar|sidebar|navbar|mediadisplay|screencorners)"
#"blur, caelestia-.*"
#"blurpopups, caelestia-.*"
#"ignorealpha 0.57, caelestia-.*"
];
};
}
+219 -10
View File
@@ -1,12 +1,221 @@
{
pkgs,
inputs,
myConfig,
...
}: {
programs.hyprland = {
enable = myConfig.nixos.Hyprland.enable;
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
portalPackage = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
{myConfig, ...}: {
wayland.windowManager.hyprland = {
enable = true;
xwayland.enable = true;
settings = {
"$mod" = "SUPER";
"$term" = "kitty --single-instance";
"$browser" = "firefox";
monitor = myConfig.linux.hyprconf.Monitor;
exec-once = [
"[workspace 20 silent] kitty --single-insance --hold fastfetch"
"[workspace 20 silent] firefox"
"[workspace 1] kitty --single-instance --hold fastfetch"
"pkill gjs & ags run"
"matugen image /home/${myConfig.general.Username}/.config/nixos/assets/wallpapers/ultrawide-nixos-default.png"
"hyprctl setcursor Bibata-Original-Classic 24"
"solaar -w hide"
];
general = {
gaps_in = 2;
gaps_out = 5;
border_size = 2;
# col.active_border = "#0DB7D4FF";
# col.inactive_border = "#31313600";
# col = {
# "inactive_border" = "rgba(595959aa)";
# "active_border" = "rgba(33ccffee) rgba(00ff99ee) 45deg";
# };
resize_on_border = false;
allow_tearing = false;
layout = "dwindle";
};
decoration = {
rounding = 0;
rounding_power = 2;
active_opacity = 1.0;
inactive_opacity = 1.0;
dim_inactive = true;
dim_strength = 0.1;
dim_special = 0.8;
shadow = {
enabled = true;
range = 4;
render_power = 3;
color = "rgba(1a1a1aee)";
};
blur = {
enabled = true;
size = 3;
passes = 1;
vibrancy = 0.1696;
};
};
animations = {
enabled = true;
bezier = [
"linear, 0, 0, 1, 1"
"md3_standard, 0.2, 0, 0, 1"
"md3_decel, 0.05, 0.7, 0.1, 1"
"md3_accel, 0.3, 0, 0.8, 0.15"
"overshot, 0.05, 0.9, 0.1, 1.1"
"crazyshot, 0.1, 1.5, 0.76, 0.92"
"hyprnostretch, 0.05, 0.9, 0.1, 1.0"
"menu_decel, 0.1, 1, 0, 1"
"menu_accel, 0.38, 0.04, 1, 0.07"
"easeInOutCirc, 0.85, 0, 0.15, 1"
"easeOutCirc, 0, 0.55, 0.45, 1"
"easeOutExpo, 0.16, 1, 0.3, 1"
"softAcDecel, 0.26, 0.26, 0.15, 1"
"md2, 0.4, 0, 0.2, 1"
];
animation = [
"windows, 1, 3, md3_decel, popin 60%"
"windowsIn, 1, 3, md3_decel, popin 60%"
"windowsOut, 1, 3, md3_accel, popin 60%"
"border, 1, 10, default"
"fade, 1, 3, md3_decel"
"layersIn, 1, 3, menu_decel, slide"
"layersOut, 1, 1.6, menu_accel"
"fadeLayersIn, 1, 2, menu_decel"
"fadeLayersOut, 1, 0.5, menu_accel"
"workspaces, 1, 7, menu_decel, slide"
"specialWorkspace, 1, 3, md3_decel, slidevert"
];
};
dwindle = {
pseudotile = true;
preserve_split = true;
};
master = {
new_status = "master";
};
misc = {
force_default_wallpaper = -1;
disable_hyprland_logo = true;
};
input = {
kb_layout = "us";
follow_mouse = 1;
sensitivity = 0;
force_no_accel = true;
repeat_delay = 250;
repeat_rate = 35;
touchpad = {
natural_scroll = false;
};
numlock_by_default = true;
};
gestures = {
workspace_swipe = false;
};
binds = {
workspace_back_and_forth = true;
scroll_event_delay = 0;
};
device = [
{
name = "epic-mouse-v1";
sensitivity = -0.5;
}
];
bind =
[
"$mod, Return, exec, $term"
"$mod, Q, killactive,"
"$mod, M, exit,"
"$mod, E, exec, $fileManager"
"$mod, V, togglefloating,"
"$mod, R, exec, $menu"
"$mod, P, pseudo,"
"$mod, B, togglesplit,"
"$mod, W, exec, $browser"
"$mod, H, movefocus, l"
"$mod, L, movefocus, r"
"$mod, K, movefocus, u"
"$mod, J, movefocus, d"
"$mod SHIFT, K, movewindow, u"
"$mod SHIFT, J, movewindow, d"
"$mod SHIFT, H, movewindow, l"
"$mod SHIFT, L, movewindow, r"
"$mod CTRL, K, resizeactive, 0 -50"
"$mod CTRL, J, resizeactive, 0 50"
"$mod CTRL, H, resizeactive, -50 0"
"$mod CTRL, L, resizeactive, 50 0"
"$mod, S, togglespecialworkspace, magic"
"$mod SHIFT, S, movetoworkspace, special:magic"
"$mod, mouse_down, workspace, e+1"
"$mod, mouse_up, workspace, e-1"
"$mod, F, fullscreen, 0"
"$mod, Space, exec, pkill rofi || rofi -show drun"
"$mod, C, exec, pkill rofi || rofi -show calc -modi calc -no-show-match -no-sort"
]
++ (
# workspaces
builtins.concatLists (builtins.genList (
i: let
ws = i + 1;
in [
"$mod, ${toString ws}, workspace, ${toString ws}"
"$mod SHIFT, ${toString ws}, movetoworkspace, ${toString ws}"
]
)
9)
)
++ [
"$mod, 0, workspace, 10"
"$mod, 0, movetoworkspace, 10"
];
bindm = [
"$mod, mouse:272, movewindow"
"$mod, mouse:273, resizewindow"
];
bindel = [
",XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+"
",XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
",XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
",XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"
",XF86MonBrightnessUp, exec, brightnessctl s 10%+"
",XF86MonBrightnessDown, exec, brightnessctl s 10%-"
];
bindl = [
",XF86AudioNext, exec, playerctl next"
",XF86AudioPause, exec, playerctl play-pause"
",XF86AudioPlay, exec, playerctl play-pause"
",XF86AudioPrev, exec, playerctl previous"
];
env = [
"HYPRCURSOR_THEME, Bibata-Original-Classic"
"HYPRCURSOR_SIZE, 24"
];
};
};
}
-86
View File
@@ -1,86 +0,0 @@
{
myConfig,
pkgs,
...
}: {
imports = [
./config/binds.nix
./config/execs.nix
./config/rules.nix
./config/animation.nix
./config/decoration.nix
./config/env.nix
./config/colours.nix
];
home.file.".config/hypr/scripts/wsaction.fish" = {
source = builtins.toPath ./scripts/wsaction.fish;
executable = true;
};
wayland.windowManager.hyprland = {
enable = true;
xwayland.enable = true;
systemd.enable = true;
settings = {
"$mod" = "SUPER";
"$term" = "kitty --single-instance";
"$browser" = "firefox";
"$wsaction" = "fish -c ./scripts/wsaction.fish";
"$widget" = "qs -c caelestia";
monitor = myConfig.nixos.Hyprland.monitors;
general = {
gaps_in = 2;
gaps_out = 5;
border_size = 2;
# col.active_border = "#0DB7D4FF";
# col.inactive_border = "#31313600";
# col = {
# "inactive_border" = "rgba(595959aa)";
# "active_border" = "rgba(33ccffee) rgba(00ff99ee) 45deg";
# };
resize_on_border = false;
allow_tearing = false;
layout = "dwindle";
};
dwindle = {
pseudotile = true;
preserve_split = true;
};
master = {
new_status = "master";
};
misc = {
force_default_wallpaper = -1;
disable_hyprland_logo = true;
};
input = {
kb_layout = "us";
follow_mouse = 1;
sensitivity = 0;
force_no_accel = true;
repeat_delay = 250;
repeat_rate = 35;
touchpad = {
natural_scroll = false;
};
numlock_by_default = true;
};
gestures = {
workspace_swipe = false;
};
binds = {
workspace_back_and_forth = true;
scroll_event_delay = 0;
};
};
};
}
-21
View File
@@ -1,21 +0,0 @@
#!/usr/bin/env fish
if test "$argv[1]" = '-g'
set group
set -e $argv[1]
end
if test (count $argv) -ne 2
echo 'Wrong number of arguments. Usage: ./wsaction.fish [-g] <dispatcher> <workspace>'
exit 1
end
set -l active_ws (hyprctl activeworkspace -j | jq -r '.id')
if set -q group
# Move to group
hyprctl dispatch $argv[1] (math "($argv[2] - 1) * 10 + $active_ws % 10")
else
# Move to ws in group
hyprctl dispatch $argv[1] (math "floor(($active_ws - 1) / 10) * 10 + $argv[2]")
end
-8
View File
@@ -1,8 +0,0 @@
{pkgs, ...}: {
# home.packages = with pkgs; [
# hyprsunset
# ];
services.hyprsunset = {
enable = true;
};
}
@@ -1,23 +1,17 @@
{
myConfig,
pkgs,
...
}: {
{myConfig, ...}: {
programs.kitty = {
enable = true;
# themeFile = "kanagawa";
themeFile = "Catppuccin-Mocha";
themeFile = "kanagawa";
settings = {
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 = "${pkgs.${myConfig.general.Terminal.shell}}/bin/${myConfig.general.Terminal.shell}";
# optimization
input_delay = 0;
@@ -26,6 +20,6 @@
wayland_enable_ime = false;
allow_remote_control = true;
};
# extraConfig = "include colors.conf";
extraConfig = "include colors.conf";
};
}
-5
View File
@@ -1,5 +0,0 @@
{pkgs, ...}: {
home.packages = with pkgs; [
lutris
];
}
+23
View File
@@ -0,0 +1,23 @@
{...}: {
programs.mangohud = {
enable = true;
enableSessionWide = true;
settings = {
toggle_hud = "Shift_R+F12";
full = true;
gpu_temp = true;
cpu_temp = true;
fps_only = false;
blacklist = [
"pamac-manager"
"lact"
"ghb"
"bitwig-studio"
"ptyxis"
"yumex"
];
};
};
}
-88
View File
@@ -1,88 +0,0 @@
{myConfig, ...}: {
programs.mangohud = {
enable = true;
enableSessionWide = true;
settings = {
legacy_layout = false;
horizontal = true;
background_alpha = 0.6;
round_corners = 10;
background_color = "000000";
font_size = 24;
text_color = "FFFFFF";
position = "top-left";
toggle_hud = "Shift_R+F12";
no_display = true;
pci_dev = "0:03:00.0";
table_columns = 3;
gpu_text = "GPU";
gpu_stats = true;
gpu_load_change = true;
gpu_load_value = [50 90];
gpu_load_color = ["FFFFFF" "FFAA7F" "CC0000"];
gpu_temp = true;
gpu_power = true;
gpu_color = "2E9762";
cpu_text = "CPU";
cpu_stats = true;
cpu_load_change = true;
cpu_load_value = [50 90];
cpu_load_color = ["FFFFFF" "FFAA7F" "CC0000"];
cpu_temp = true;
cpu_power = true;
cpu_color = "2E97CB";
vram = true;
vram_color = "AD64C1";
ram = true;
ram_color = "C26693";
battery = true;
battery_color = "00FF00";
fps = true;
fps_metrics = ["avg" "0.01"];
engine_version = true;
engine_color = "EB5B5B";
arch = true;
frame_timing = true;
frametime_color = "FA8000";
fps_limit_method = "late";
toggle_fps_limit = "Shift_L+F1";
fps_limit = 0;
resolution = true;
refresh_rate = true;
# custom_text = [
# "-"
# "$(cat /home/kenji/.config/goverlay/distro)"
# "-"
# "$(uname -r)"
# "Session:"
# "$(echo $XDG_SESSION_TYPE)"
# ];
fps_color_change = true;
fps_color = ["B22222" "FDFD09" "39F900"];
fps_value = [30 60];
time = true;
output_folder = "/home/${myConfig.essentials.Username}/.mangohud/";
log_duration = 30;
autostart_log = false;
log_interval = 100;
toggle_logging = "Shift_L+F2";
blacklist = [
"pamac-manager"
"lact"
"ghb"
"bitwig-studio"
"ptyxis"
"yumex"
];
};
};
}
+5 -4
View File
@@ -1,10 +1,11 @@
{
inputs,
pkgs,
inputs,
system,
...
}: {
imports = [inputs.matugen.nixosModules.default];
environment.systemPackages = with pkgs; [
inputs.matugen.packages.${system}.default
];
home.file.".config/matugen/config.toml" = {
source = builtins.toPath ./custom/config.toml;
};
}
-10
View File
@@ -1,10 +0,0 @@
{
pkgs,
inputs,
system,
...
}: {
home.file.".config/matugen/config.toml" = {
source = builtins.toPath ./custom/config.toml;
};
}
-57
View File
@@ -1,57 +0,0 @@
# /etc/nixos/configuration.nix
{
config,
pkgs,
lib,
fetchurl,
...
}: let
moondeckBuddyWrapped = pkgs.appimageTools.wrapType2 {
pname = "moondeck-buddy";
version = "1.8.2";
src = pkgs.fetchurl {
url = "https://github.com/FrogTheFrog/moondeck-buddy/releases/download/v1.8.2/MoonDeckBuddy-1.8.2-x86_64.AppImage";
hash = "sha256-D+9XIi3pIwaAq22DGHWAUqKub778qHQSjCU0aIjXmYY="; # Don't forget to update this!
};
extraPkgs = pkgs:
with pkgs; [
# Your extraPkgs here
];
desktopItems = [
(pkgs.makeDesktopItem {
name = "Moondeck Buddy";
exec = "moondeck-buddy";
icon = "applications-other";
comment = "A Sunshine/Moondeck Buddy.";
categories = ["Utility" "Productivity"];
})
];
meta = with lib; {
description = "Moondeck Buddy is an companion app for NVIDIA Sunshine/Moonlight.";
homepage = "https://github.com/FrogTheFrog/moondeck-buddy";
license = licenses.gpl3Only;
platforms = platforms.linux;
mainProgram = "moondeck-buddy";
};
};
in {
environment.systemPackages = with pkgs; [
moondeckBuddyWrapped
];
programs.appimage.enable = true;
programs.appimage.binfmt = true;
# --- Firewall Configuration ---
networking.firewall.allowedTCPPorts = [
59999 # Allow Moondeck Buddy to listen on this port
];
# If Moondeck Buddy also needs UDP, uncomment and add it here:
# networking.firewall.allowedUDPPorts = [
# 59999
# ];
}
+12
View File
@@ -0,0 +1,12 @@
{
pkgs,
inputs,
...
}: let
nixovim = inputs.nixovim.packages.${pkgs.system}.default;
in {
home.packages = [
nixovim
pkgs.lazygit
];
}
-10
View File
@@ -1,10 +0,0 @@
{
pkgs,
inputs,
system,
...
}: {
home.packages = [
inputs.nixovim.packages.${system}.default
];
}
-13
View File
@@ -1,13 +0,0 @@
{
pkgs,
myConfig,
...
}: {
home.packages = with pkgs; [
protonup
];
home.sessionVariables = {
STEAM_EXTRA_COMPAT_TOOLS_PATHS = "/home/${myConfig.essentials.Username}/.steam/root/compatibilitytools.d";
};
}
-5
View File
@@ -1,5 +0,0 @@
{pkgs, ...}: {
environment.systemPackages = with pkgs; [
python313Full
];
}
-14
View File
@@ -1,16 +1,2 @@
{
inputs,
pkgs,
system,
...
}: {
environment.systemPackages = [
inputs.caelestia-shell.packages.${system}.caelestia-shell
inputs.caelestia-shell.packages.${system}.caelestia-cli
inputs.caelestia-shell.packages.${system}.beat-detector
];
environment.sessionVariables = {
# Set CAELESTIA_BD_PATH to the store path of beat-detector
CAELESTIA_BD_PATH = "${inputs.caelestia-shell.packages.${system}.beat-detector}/bin/beat_detector";
};
}
-47
View File
@@ -1,47 +0,0 @@
{
pkgs,
inputs,
system,
...
}: let
caelestia-shell = pkgs.fetchFromGitHub {
owner = "caelestia-dots";
repo = "shell";
rev = "main";
sha256 = "sha256-FHPCSy/Fd9hIpFA2BxhTkbwBtY9vtvsEUYC3+ZX6zNQ=";
};
in {
imports = [
];
home.packages = with pkgs; [
inputs.quickshell.packages.${system}.default
wl-screenrec
libnotify
grim
foot
hyprpicker
qalculate-qt
fuzzel
inotify-tools
app2unit
fish
jq
fd
cliphist
(pkgs.python3.withPackages (python-pkgs:
with python-pkgs; [
aubio
pyaudio
numpy
]))
cava
bluez
ddcutil
brightnessctl
curl
material-symbols
];
home.file.".config/quickshell/caelestia" = {
source = caelestia-shell;
};
}
-5
View File
@@ -1,5 +0,0 @@
{pkgs, ...}: {
home.packages = with pkgs; [
solaar
];
}
-19
View File
@@ -1,19 +0,0 @@
{
pkgs,
myConfig,
...
}: {
environment.systemPackages = with pkgs; [
steam-run
];
programs.steam = {
enable = true;
gamescopeSession.enable = true;
extraCompatPackages = with pkgs; [proton-ge-bin];
extraPackages = with pkgs; [
mangohud
gamescope-wsi
];
};
programs.gamemode.enable = true;
}
-35
View File
@@ -1,35 +0,0 @@
{pkgs, ...}: {
xdg.desktopEntries = {
steam = {
name = "Steam";
genericName = "Game Platform";
comment = "Play and discuss games.";
# exec = "${pkgs.mangohud}/bin/mangohud ${pkgs.steam}/bin/steam %U"; # The standard command to launch Steam
exec = "${pkgs.steam}/bin/steam %U"; # The standard command to launch Steam
terminal = false;
icon = "steam"; # Assumes the 'steam' icon is available in your icon theme
type = "Application";
categories = ["Game" "Network"];
mimeType = [
"x-scheme-handler/steam" # For handling steam:// links
];
actions = {
BigPicture = {
name = "Big Picture Mode";
# exec = "${pkgs.mangohud}/bin/mangohud ${pkgs.steam}/bin/steam steam://open/bigpicture";
exec = "${pkgs.steam}/bin/steam steam://open/bigpicture";
};
Store = {
name = "Store";
# exec = "${pkgs.mangohud}/bin/mangohud ${pkgs.steam}/bin/steam steam://store";
exec = "${pkgs.steam}/bin/steam steam://open/bigpicture";
};
Library = {
name = "Library";
# exec = "${pkgs.mangohud}/bin/mangohud ${pkgs.steam}/bin/steam steam://library";
exec = "${pkgs.steam}/bin/steam steam://open/bigpicture";
};
};
};
};
}
-17
View File
@@ -1,17 +0,0 @@
{
inputs,
pkgs,
myConfig,
...
}: {
imports = [
inputs.jovian.nixosModules.default
];
# environment.systemPackages = with pkgs; [inputs.jovian.packages.${system}.default];
jovian.steam.enable = true;
jovian.steam.autoStart = true;
jovian.steam.desktopSession = "hyprland";
jovian.steam.user = "${myConfig.essentials.Username}";
jovian.hardware.has.amd.gpu = true;
jovian.decky-loader.enable = true;
}
-57
View File
@@ -1,57 +0,0 @@
{pkgs, ...}: let
mangoConfigList = ["cpu_temp" "gpu_temp" "ram" "vram"];
mangoConfigStr = builtins.concatStringsSep "," mangoConfigList;
gamescopeArgsList = [
"--adaptive-sync"
"--hdr-enabled"
"--mangoapp"
"--rt"
"--steam"
];
gamescopeArgsStr = builtins.concatStringsSep " " gamescopeArgsList;
steamArgsList = [
"-pipewire-dmabuf"
"-tenfoot"
];
steamArgsStr = builtins.concatStringsSep " " steamArgsList;
myGamescopeSteamScript = pkgs.writeShellApplication {
name = "start-gamescope-steam";
runtimeInputs = [
pkgs.gamescope
pkgs.steam
pkgs.mangohud
];
text = ''
#!/usr/bin/env bash
set -xeuo pipefail
export MANGOHUD=1
export MANGOHUD_CONFIG="${mangoConfigStr}"
exec ${pkgs.gamescope}/bin/gamescope ${gamescopeArgsStr} -- ${pkgs.steam}/bin/steam ${steamArgsStr}
'';
};
in {
programs = {
gamescope = {
enable = true;
capSysNice = true;
};
steam = {
enable = true;
remotePlay.openFirewall = true;
dedicatedServer.openFirewall = true;
localNetworkGameTransfers.openFirewall = true;
gamescopeSession.enable = true;
};
};
hardware.xone.enable = true;
environment.loginShellInit = ''
[[ "$(tty)" = "/dev/tty1" ]] && ${myGamescopeSteamScript}/bin/start-gamescope-steam
'';
}
-8
View File
@@ -1,8 +0,0 @@
{
programs.zoxide = {
enable = true;
enableFishIntegration = true;
enableZshIntegration = true;
enableBashIntegration = true;
};
}
@@ -3,13 +3,17 @@
myConfig,
...
}: {
home.packages = with pkgs; [
zoxide
];
programs.zsh.enable = true;
programs.zoxide.enable = true;
programs.zsh = {
enableCompletion = false;
syntaxHighlighting.enable = false;
shellAliases = myConfig.general.Terminal.aliases;
shellAliases = myConfig.general.terminal.Aliases;
history.size = 10000;
antidote = {
enable = true;
+11
View File
@@ -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
+1
View File
@@ -0,0 +1 @@
abcd: hello-world
+14
View File
@@ -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"];
};
}
+15
View File
@@ -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
# ];
# };
};
}
+14
View File
@@ -0,0 +1,14 @@
{...}: {
boot.loader = {
systemd-boot = {
enable = false;
};
efi = {
canTouchEfiVariables = true;
};
grub = {
enable = true;
device = "nodev";
};
};
}
+107
View File
@@ -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;
};
};
};
}
@@ -1,5 +1,5 @@
{pkgs, ...}: {
environment.systemPackages = with pkgs; [
bottles
busybox
];
}
+8
View File
@@ -0,0 +1,8 @@
{pkgs, ...}: {
environment.systemPackages = with pkgs; [
python3Full
python3Packages.build
python3Packages.pip
python3Packages.installer
];
}
+12
View File
@@ -0,0 +1,12 @@
{pkgs, ...}: {
environment.systemPackages = with pkgs; [
git
p7zip
tldr
jq
btop
rar
cloudflared
];
}

Some files were not shown because too many files have changed in this diff Show More