Compare commits
102 commits
4d7bd7ecfa
...
0d8a07bd54
Author | SHA1 | Date | |
---|---|---|---|
Jimbo | 0d8a07bd54 | ||
Jimbo | 7ebdcf6043 | ||
Jimbo | 316f7fd66d | ||
Jimbo | 0f29b2d90d | ||
5e48797a7d | |||
Jimbo | fe73fa0d1f | ||
47bf9a94cd | |||
ac63821835 | |||
e763ff8c1d | |||
8115900d7c | |||
d17c4c169e | |||
79ba51269b | |||
420c64a70c | |||
389258a617 | |||
03e7949ebf | |||
44e89a5879 | |||
b7af0e2095 | |||
d9eba72020 | |||
e451e70b93 | |||
9d322d435c | |||
f7c3f6e279 | |||
734e76940d | |||
7bdf2029bc | |||
7f0e1801d7 | |||
951fee17e1 | |||
4012b36afc | |||
1ed45f4437 | |||
ecfac3e8b2 | |||
507049314f | |||
853df3a0fd | |||
14aad2871f | |||
d4f132616e | |||
11a93bb2c3 | |||
33b24d67c0 | |||
Jimbo | 1bd9bcf59f | ||
50e76c8fe5 | |||
95044ea50b | |||
c188a30dc2 | |||
986ff8c3d1 | |||
57fcd83770 | |||
2eb534c73d | |||
b3acebf991 | |||
9046a92e89 | |||
b0b291dd04 | |||
b0074a081a | |||
865afe8ab3 | |||
9af53874c4 | |||
9d9ae05b45 | |||
ea955536e1 | |||
4d4975fb0f | |||
db68904153 | |||
9001cdc2a4 | |||
eff426b332 | |||
c056a30383 | |||
3de87a1651 | |||
71051a6c58 | |||
09bde6129b | |||
2828d7a210 | |||
03fba91ab6 | |||
033d8f162e | |||
95155e9e93 | |||
b76d9a6cca | |||
698869fcba | |||
6419926899 | |||
a9d4c4ff63 | |||
6c4518c651 | |||
1cf5f3ea15 | |||
dc2099779b | |||
6c749ad51d | |||
a05ffd55c3 | |||
6c9778098b | |||
7c4355504e | |||
39d887dc89 | |||
6c157f5411 | |||
54a7a6e21a | |||
9ba271bb94 | |||
0eeeb603aa | |||
49ce2cd341 | |||
7f5e5f2cc0 | |||
00ab80d1b8 | |||
Jimbo | df1532ece0 | ||
f4fe4036a1 | |||
Jimbo | a5f06865de | ||
25a3a7e237 | |||
c3bc3a56f7 | |||
84cfcee9fd | |||
857c8ea289 | |||
2eba1c95c0 | |||
f3d9e8a188 | |||
9c71495c73 | |||
862743cbcf | |||
a62148572b | |||
fa3890b814 | |||
cd92b28dc6 | |||
4ad26636a7 | |||
65f90a0bf3 | |||
87fbcda3d3 | |||
35dabb4249 | |||
f29273be22 | |||
91f88b8bb2 | |||
ea79120e86 | |||
Jimbo | e3bacb2d84 |
2
.gitattributes
vendored
|
@ -1 +1 @@
|
|||
extras/secrets.nix filter=git-crypt diff=git-crypt
|
||||
variables/secrets/** filter=git-crypt diff=git-crypt
|
||||
|
|
34
README.md
|
@ -1,33 +1,39 @@
|
|||
## My Nix files, now organized in a flake.
|
||||
## Jimbo's Nix Systems
|
||||
|
||||
Thanks for taking a look at my Nix* configs!
|
||||
While this is primarily organized for my use only, you may find each individual service file or user config to be a good starting point, or something to take and adapt into your own config.
|
||||
Thanks for taking a look at my Nix* flake!
|
||||
While this is primarily organized for my own use, you may find each individual service or config useful to read, reference, learn from, and adapt for your own systems.
|
||||
|
||||
### Installation
|
||||
Installing any of my flakes onto a system should be done after any initial install. I would opt to do a minimal install, but this is up to you.
|
||||
After installing NixOS, backup your hardware-config.nix file, so you can adapt it to fit the format of ``nixos/hardware/machines``, then adjusting the other referenced files in the flake.nix file to reference your specific computer.
|
||||
Installing this flake is best done from an existing system. A minimal install is fastest, but is up to you. After installing NixOS, backup your hardware-config.nix file, and adapt it to fit the format of ``/hosts``, adjusting for your specific system.
|
||||
|
||||
An initial install will have to be ran as ``nixos-rebuild switch --flake /etc/nixos/.#HOSTNAME``, where HOSTNAME is a hostname defined in your flake. You may also have to enable "experimental" features with a flag, such as nix-command and flakes.
|
||||
Home-Manager is handled separately, despite being in the same folder. A rebuild of a user's home would have to be done with ``home-manager switch --flake /etc/nixos``. This will pull the config as defined in the flake as ``USER@HOSTNAME``, where USER is the user running the ``home-manager`` command.
|
||||
An initial install will can be done with ``nixos-rebuild switch --flake /etc/nixos/.#host``, where ``host`` is a hostname defined in this flake. You may also have to enable "experimental" features with a flag, such as nix-command and flakes.
|
||||
|
||||
Home-Manager is handled separately from the system, despite being in the same folder. A rebuild of a user's home is done with ``home-manager switch --flake /etc/nixos/.#user@host``, as defined under ``homeConfigurations`` in the flake.
|
||||
|
||||
### Usage
|
||||
My config uses these tools:
|
||||
Sway - Window manager / Desktop
|
||||
Foot - Terminal emulator
|
||||
Rofi - App launcher and menu system
|
||||
ZSH - Primary shell
|
||||
``Sway`` - Window manager / Desktop
|
||||
``ZSH`` - Primary shell
|
||||
``Foot`` - Terminal emulator
|
||||
``Rofi`` - App launcher and menu system
|
||||
|
||||
I have made shell aliases in ZSH for rebuilding the system. They are as follows:
|
||||
I have defined shell aliases in ZSH for rebuilding different parts of Nix, they are as follows:
|
||||
`flakedate` - Update the flake.lock, which renews the sources of nixpkgs. This is needed to update the system.
|
||||
`sysswitch` - Switch the system profile.
|
||||
`homeswitch` = Switch the user's home-manager profile.
|
||||
`nixswitch` = Switch to new config for both user and system.
|
||||
`nixswitch` = Switch both user and system profile.
|
||||
`nixdate` = Same as before, but updating flake.nix before doing so. This is essentially a full system update.
|
||||
|
||||
My config heavily references a gnupg-protected secrets file. These will have to be adapted and rewritten if anyone is to use my config for themselves.
|
||||
My server's config heavily references a git-crypt protected secrets file. These will have to be adapted and rewritten if anyone is to use my config directly.
|
||||
For my use, unlocking secrets can be done with this command:
|
||||
``gpg --pinentry-mode loopback --decrypt local.key.asc | git-crypt unlock -``
|
||||
|
||||
### Credits
|
||||
Without the help of heavy inspiration, I would not have been able to learn and get up and running nearly as quickly. My most heavily borrowed configs are as follows:
|
||||
[CloudyChris' nix-starter-configs fork](https://github.com/CloudyChris/NixOsConfig), the very initial base of my conversion to flakes.
|
||||
[WillPower3309's personal flake](https://github.com/WillPower3309/nixos-config) for being a pleasure in the SwayFX Discord and having a really nice flake.nix file I borrowed from.
|
||||
[Jules Sommer's minimal flake](https://github.com/WillPower3309/swayfx) for giving me a good basis for writing individual files and repeatedly helping me throughout the entire process.
|
||||
|
||||
Made with love ❤️
|
||||
|
||||
![image](./preview.png)
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
{
|
||||
auth = "doas";
|
||||
nixcfg = "ranger /etc/nixos";
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
{
|
||||
d1 = "DP-3";
|
||||
d2 = "DP-1";
|
||||
d3 = "DP-2";
|
||||
dI = "eDP-1";
|
||||
}
|
|
@ -1,11 +0,0 @@
|
|||
rec {
|
||||
netInt = "eno1";
|
||||
localSpan = "10.0.0";
|
||||
server = "${localSpan}.2";
|
||||
pc = "${localSpan}.3";
|
||||
vm = "${localSpan}.4";
|
||||
hx = "${localSpan}.70";
|
||||
|
||||
wgInt = "wg0";
|
||||
wgSpan = "10.100.0";
|
||||
}
|
|
@ -1,21 +0,0 @@
|
|||
{
|
||||
colors = {
|
||||
prime = ''3823C4''; #3823C4
|
||||
accent = ''1B1F59''; #1B1F59
|
||||
split = ''555B9E''; #555B9E
|
||||
actSplit = ''5980B7''; #5980B7
|
||||
dark = ''101419''; #101419
|
||||
mid = ''171C23''; #171C23
|
||||
light = ''272b33''; #272B33
|
||||
urgent = ''C43823''; #C43823
|
||||
text = ''C7D3E3''; #C7D3E3
|
||||
};
|
||||
fonts = {
|
||||
main = ''Ubuntu'';
|
||||
nerd = ''UbuntuMono Nerd Font'';
|
||||
};
|
||||
border = rec {
|
||||
int = 3;
|
||||
string = toString int;
|
||||
};
|
||||
}
|
|
@ -1,17 +0,0 @@
|
|||
{inputs, ...}: {
|
||||
# This one brings our custom packages from the 'pkgs' directory
|
||||
additions = final: _prev: import ./pkgs {pkgs = final;};
|
||||
|
||||
selfsuper = (self: super: {
|
||||
mpv = super.mpv.override {
|
||||
scripts = with self.mpvScripts; [mpris sponsorblock thumbnail];
|
||||
};
|
||||
});
|
||||
|
||||
finalprev = (final: prev: {
|
||||
unstable = import inputs.unstable {
|
||||
system = final.system;
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
});
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
# Custom packages, that can be defined similarly to nixpkgs
|
||||
{pkgs, ...}: {
|
||||
xash3d = pkgs.callPackage ./xash/xash3d.nix {};
|
||||
hlsdk = pkgs.callPackage ./xash/hlsdk.nix {};
|
||||
}
|
|
@ -1,72 +0,0 @@
|
|||
{
|
||||
# Define domains
|
||||
jimDomain = "";
|
||||
|
||||
# User account passwords, generated with 'mkpasswd -m sha-512'
|
||||
jimboAccPass = "";
|
||||
|
||||
# External emails
|
||||
jimUsername = "";
|
||||
jimEmail = "";
|
||||
|
||||
# SSH Keys
|
||||
jimKeys = [
|
||||
""
|
||||
""
|
||||
];
|
||||
|
||||
# System timezone in standard timezone identifier format
|
||||
timeZone = "";
|
||||
|
||||
# Cloudflare API key
|
||||
flareApiKey = "";
|
||||
|
||||
# Wireguard keys, generated with the wg command
|
||||
wgServerPriv = "";
|
||||
wgServerPub = "";
|
||||
wgClientPriv = "";
|
||||
wgClientPub = "";
|
||||
wgPixel9Pub = "";
|
||||
wgOraclePub = "";
|
||||
|
||||
# Icecast, plaintext
|
||||
castAdminPass = "";
|
||||
castSourcePass = "";
|
||||
|
||||
# Photoprism, plaintext
|
||||
prismAdminPass = "";
|
||||
|
||||
# Matrix secrets
|
||||
matrixSecret = "";
|
||||
discordBotID = "";
|
||||
discordBotToken = "";
|
||||
|
||||
# Pixelfed secret, must be 32 characters long
|
||||
pixelfedKey = ''
|
||||
APP_KEY=
|
||||
'';
|
||||
|
||||
# Transmission credentials, plaintext
|
||||
transmissionCredFile = ''
|
||||
{
|
||||
"rpc-username": "",
|
||||
"rpc-password": ""
|
||||
}
|
||||
'';
|
||||
|
||||
# Email cleartext passwords
|
||||
noreplyPassword = "";
|
||||
|
||||
# Email account hashes, generated with 'mkpasswd -m bcrypt'
|
||||
noreplyMailHash = "";
|
||||
jimboMailHash = "";
|
||||
lunaMailHash = "";
|
||||
freecornMailHash = "";
|
||||
tinyMailHash = "";
|
||||
|
||||
# IPs
|
||||
jimIP1 = "";
|
||||
jimIP2 = "";
|
||||
lunaIP = "";
|
||||
cornIP = "";
|
||||
}
|
|
@ -1,21 +0,0 @@
|
|||
{
|
||||
w0 = ''0:0'';
|
||||
w1 = ''1:1'';
|
||||
w2 = ''2:2'';
|
||||
w3 = ''3:3'';
|
||||
w4 = ''4:4'';
|
||||
w5 = ''5:5'';
|
||||
w6 = ''6:6'';
|
||||
w7 = ''7:7'';
|
||||
w8 = ''8:8'';
|
||||
w9 = ''9:9'';
|
||||
w1a = ''11:I'';
|
||||
w2a = ''22:II'';
|
||||
w3a = ''33:III'';
|
||||
w4a = ''44:IV'';
|
||||
w5a = ''55:V'';
|
||||
w6a = ''66:VI'';
|
||||
w7a = ''77:VII'';
|
||||
w8a = ''88:VIII'';
|
||||
w9a = ''99:IX'';
|
||||
}
|
127
flake.lock
|
@ -33,6 +33,30 @@
|
|||
"type": "gitlab"
|
||||
}
|
||||
},
|
||||
"chaotic": {
|
||||
"inputs": {
|
||||
"flake-schemas": "flake-schemas",
|
||||
"home-manager": "home-manager",
|
||||
"jovian": "jovian",
|
||||
"nixpkgs": [
|
||||
"unstable"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1729510449,
|
||||
"narHash": "sha256-/EwjBMYBZ3/2ROT+4M/6tLomgJEgZBpKosWhqtYZkDI=",
|
||||
"owner": "chaotic-cx",
|
||||
"repo": "nyx",
|
||||
"rev": "4e03e8d762623ca925c604800aa18f109cd3bd97",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "chaotic-cx",
|
||||
"ref": "nyxpkgs-unstable",
|
||||
"repo": "nyx",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"crane": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
|
@ -123,6 +147,20 @@
|
|||
"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"
|
||||
|
@ -198,6 +236,27 @@
|
|||
}
|
||||
},
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"chaotic",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1729414726,
|
||||
"narHash": "sha256-Dtmm1OU8Ymiy9hVWn/a2B8DhRYo9Eoyx9veERdOBR4o=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "fe56302339bb28e3471632379d733547caec8103",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"home-manager_2": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
|
@ -218,6 +277,28 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"jovian": {
|
||||
"inputs": {
|
||||
"nix-github-actions": "nix-github-actions",
|
||||
"nixpkgs": [
|
||||
"chaotic",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1729177642,
|
||||
"narHash": "sha256-DdKal+ZhB9QD/tnEwFg4cZ4j4YnrkvSljBxnyG+3eE0=",
|
||||
"owner": "Jovian-Experiments",
|
||||
"repo": "Jovian-NixOS",
|
||||
"rev": "bb69165ff372ddbd3228a03513922acd783040e8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "Jovian-Experiments",
|
||||
"repo": "Jovian-NixOS",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"lanzaboote": {
|
||||
"inputs": {
|
||||
"crane": "crane",
|
||||
|
@ -288,6 +369,29 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-github-actions": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"chaotic",
|
||||
"jovian",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1690328911,
|
||||
"narHash": "sha256-fxtExYk+aGf2YbjeWQ8JY9/n9dwuEt+ma1eUFzF8Jeo=",
|
||||
"owner": "zhaofengli",
|
||||
"repo": "nix-github-actions",
|
||||
"rev": "96df4a39c52f53cb7098b923224d8ce941b64747",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "zhaofengli",
|
||||
"ref": "matrix-name",
|
||||
"repo": "nix-github-actions",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1722221733,
|
||||
|
@ -366,18 +470,17 @@
|
|||
},
|
||||
"nixpkgs_4": {
|
||||
"locked": {
|
||||
"lastModified": 1727540905,
|
||||
"narHash": "sha256-40J9tW7Y794J7Uw4GwcAKlMxlX2xISBl6IBigo83ih8=",
|
||||
"owner": "nixos",
|
||||
"lastModified": 1728740863,
|
||||
"narHash": "sha256-u+rxA79a0lyhG+u+oPBRtTDtzz8kvkc9a6SWSt9ekVc=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "fbca5e745367ae7632731639de5c21f29c8744ed",
|
||||
"rev": "a3f9ad65a0bf298ed5847629a57808b97e6e8077",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"id": "nixpkgs",
|
||||
"ref": "nixos-24.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"nur": {
|
||||
|
@ -425,8 +528,9 @@
|
|||
"root": {
|
||||
"inputs": {
|
||||
"blender-bin": "blender-bin",
|
||||
"chaotic": "chaotic",
|
||||
"hardware": "hardware",
|
||||
"home-manager": "home-manager",
|
||||
"home-manager": "home-manager_2",
|
||||
"lanzaboote": "lanzaboote",
|
||||
"mailserver": "mailserver",
|
||||
"minecraft": "minecraft",
|
||||
|
@ -509,16 +613,15 @@
|
|||
"locked": {
|
||||
"lastModified": 1728492678,
|
||||
"narHash": "sha256-9UTxR8eukdg+XZeHgxW5hQA9fIKHsKCdOIUycTryeVw=",
|
||||
"owner": "nixos",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "5633bcff0c6162b9e4b5f1264264611e950c8ec7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"id": "nixpkgs",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"utils": {
|
||||
|
|
118
flake.nix
|
@ -1,97 +1,91 @@
|
|||
{
|
||||
description = "Jimbo's systems as a flake";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05";
|
||||
unstable.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
nixpkgs.url = "nixpkgs/nixos-24.05";
|
||||
unstable.url = "nixpkgs/nixos-unstable";
|
||||
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager/release-24.05";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
nur.url = "github:nix-community/NUR";
|
||||
mailserver.url = "gitlab:simple-nixos-mailserver/nixos-mailserver/nixos-24.05";
|
||||
chaotic = {
|
||||
url = "github:chaotic-cx/nyx/nyxpkgs-unstable";
|
||||
inputs.nixpkgs.follows = "unstable";
|
||||
};
|
||||
|
||||
blender-bin.url = "https://flakehub.com/f/edolstra/blender-bin/1.0.9.tar.gz";
|
||||
minecraft.url = "github:Infinidoge/nix-minecraft";
|
||||
hardware.url = "github:nixos/nixos-hardware/master";
|
||||
|
||||
# Secure boot
|
||||
lanzaboote = {
|
||||
url = "github:nix-community/lanzaboote/v0.4.1";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
# Home manager
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager/release-24.05";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
mailserver.url = "gitlab:simple-nixos-mailserver/nixos-mailserver/nixos-24.05";
|
||||
minecraft.url = "github:Infinidoge/nix-minecraft";
|
||||
};
|
||||
|
||||
outputs = {
|
||||
self,
|
||||
nixpkgs,
|
||||
unstable,
|
||||
home-manager,
|
||||
nur,
|
||||
mailserver,
|
||||
chaotic,
|
||||
blender-bin,
|
||||
hardware,
|
||||
lanzaboote,
|
||||
home-manager,
|
||||
mailserver,
|
||||
minecraft,
|
||||
...
|
||||
}@inputs: let
|
||||
mkNixos = modules: nixpkgs.lib.nixosSystem {
|
||||
}:
|
||||
let
|
||||
mkNix = modules: nixpkgs.lib.nixosSystem {
|
||||
inherit modules;
|
||||
specialArgs = { inherit (self) inputs outputs; };
|
||||
specialArgs = {
|
||||
inherit
|
||||
unstable
|
||||
chaotic
|
||||
hardware
|
||||
lanzaboote
|
||||
mailserver
|
||||
minecraft
|
||||
;
|
||||
};
|
||||
};
|
||||
|
||||
mkHome = modules: pkgs: home-manager.lib.homeManagerConfiguration {
|
||||
inherit modules pkgs;
|
||||
extraSpecialArgs = { inherit (self) inputs outputs; };
|
||||
extraSpecialArgs = {
|
||||
inherit
|
||||
unstable
|
||||
nur
|
||||
blender-bin
|
||||
;
|
||||
};
|
||||
};
|
||||
in {
|
||||
# Your custom packages and modifications, exported as overlays
|
||||
overlays = import ./extras/overlays.nix { inherit inputs; };
|
||||
|
||||
# Variables defined so they can be accessed globally
|
||||
secrets = import ./extras/secrets.nix;
|
||||
cmd = import ./extras/cmd.nix;
|
||||
displays = import ./extras/displays.nix;
|
||||
ips = import ./extras/ips.nix;
|
||||
look = import ./extras/look.nix;
|
||||
ws = import ./extras/workspaces.nix;
|
||||
|
||||
# NixOS configuration: 'nixos-rebuild --flake .#hostname'
|
||||
# nixos-rebuild switch --flake .#hostname
|
||||
nixosConfigurations = {
|
||||
JimDesktop = mkNixos [
|
||||
./system/hosts/JimDesktop/configuration.nix
|
||||
lanzaboote.nixosModules.lanzaboote
|
||||
];
|
||||
JimServer = mkNixos [
|
||||
./system/hosts/JimServer/configuration.nix
|
||||
mailserver.nixosModule
|
||||
];
|
||||
JimPine = mkNixos [
|
||||
./system/hosts/JimPine/configuration.nix
|
||||
hardware.nixosModules.pine64-pinebook-pro
|
||||
];
|
||||
# PCs and Laptops
|
||||
firefly = mkNix [ ./hosts/firefly/system ];
|
||||
shuttleworth = mkNix [ ./hosts/shuttleworth/system ];
|
||||
lacros = mkNix [ ./hosts/lacros/system ];
|
||||
redmond = mkNix [ ./hosts/redmond/system ];
|
||||
|
||||
# Servers
|
||||
cyberspark = mkNix [ ./hosts/cyberspark/system ];
|
||||
bomberman = mkNix [ ./hosts/bomberman/system ];
|
||||
};
|
||||
|
||||
# Home-manager configuration: 'home-manager --flake .#username@hostname'
|
||||
# home-manager switch --flake .#username@hostname
|
||||
homeConfigurations = {
|
||||
"jimbo@JimDesktop" = mkHome [
|
||||
./home/hosts/JimDesktop/home.nix
|
||||
nur.nixosModules.nur
|
||||
] nixpkgs.legacyPackages.x86_64-linux;
|
||||
"jimbo@firefly" = mkHome [ ./hosts/firefly/home ] nixpkgs.legacyPackages.x86_64-linux;
|
||||
"jimbo@shuttleworth" = mkHome [ ./hosts/shuttleworth/home ] nixpkgs.legacyPackages.aarch64-linux;
|
||||
"jimbo@lacros" = mkHome [ ./hosts/lacros/home ] nixpkgs.legacyPackages.x86_64-linux;
|
||||
"jimbo@redmond" = mkHome [ ./hosts/redmond/home ] nixpkgs.legacyPackages.x86_64-linux;
|
||||
|
||||
"jimbo@JimServer" = mkHome [
|
||||
./home/hosts/JimServer/home.nix
|
||||
] nixpkgs.legacyPackages.x86_64-linux;
|
||||
|
||||
"jimbo@JimPine" = mkHome [
|
||||
./home/hosts/JimPine/home.nix
|
||||
nur.nixosModules.nur
|
||||
] nixpkgs.legacyPackages.aarch64-linux;
|
||||
|
||||
# Profile for ssh envrionments on different non-root systems
|
||||
"jimbo@JimTerminal" = mkHome [
|
||||
./home/hosts/JimTerminal/home.nix
|
||||
] nixpkgs.legacyPackages.x86_64-linux;
|
||||
"jimbo@cyberspark" = mkHome [ ./hosts/cyberspark/home ] nixpkgs.legacyPackages.x86_64-linux;
|
||||
"jimbo@bomberman" = mkHome [ ./hosts/bomberman/home ] nixpkgs.legacyPackages.aarch64-linux;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,41 +0,0 @@
|
|||
# This is your home-manager configuration file
|
||||
# Use this to configure your home environment (it replaces ~/.config/nixpkgs/home.nix)
|
||||
{pkgs, inputs, outputs, ...}: {
|
||||
imports = [
|
||||
# Terminal apps
|
||||
./utils/zsh.nix
|
||||
./utils/fastfetch.nix
|
||||
./utils/neovim.nix
|
||||
./utils/ranger.nix
|
||||
./utils/tmux.nix
|
||||
|
||||
# Services
|
||||
./services/reloadunits.nix
|
||||
];
|
||||
|
||||
nixpkgs = {
|
||||
config.allowUnfree = true;
|
||||
overlays = [
|
||||
outputs.overlays.additions
|
||||
outputs.overlays.selfsuper
|
||||
outputs.overlays.finalprev
|
||||
inputs.blender-bin.overlays.default
|
||||
];
|
||||
};
|
||||
|
||||
# Common programs I'll need everywhere
|
||||
home.packages = with pkgs; [
|
||||
home-manager
|
||||
gotop
|
||||
tcptrack
|
||||
p7zip
|
||||
vimv
|
||||
dua
|
||||
pciutils
|
||||
usbutils
|
||||
protonvpn-cli_2
|
||||
];
|
||||
|
||||
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
|
||||
home.stateVersion = "24.05";
|
||||
}
|
|
@ -1,47 +0,0 @@
|
|||
{config, ...}: {
|
||||
imports = [
|
||||
# Common modules
|
||||
./../../base.nix
|
||||
./../../users/jimbo.nix
|
||||
./../../utils/git.nix
|
||||
|
||||
# GUI Apps
|
||||
./../../misc/guifiles.nix
|
||||
./../../misc/fonts.nix
|
||||
./../../sway/sway.nix
|
||||
./../../sway/swaylock.nix
|
||||
./../../programs/gtk.nix
|
||||
./../../programs/foot.nix
|
||||
./../../programs/librewolf.nix
|
||||
./../../programs/mangohud.nix
|
||||
./../../programs/mpv.nix
|
||||
./../../programs/obs.nix
|
||||
./../../programs/pcmanfm-qt.nix
|
||||
./../../programs/rofi.nix
|
||||
./../../programs/swappy.nix
|
||||
./../../programs/easyeffects.nix
|
||||
./../../utils/ncmpcpp.nix
|
||||
|
||||
# Misc apps and tools
|
||||
./../../misc/useful.nix
|
||||
./../../misc/avtools.nix
|
||||
./../../misc/filemanager.nix
|
||||
./../../misc/production.nix
|
||||
./../../misc/gaming.nix
|
||||
./../../misc/xash3d.nix
|
||||
#./../../misc/emulators.nix
|
||||
#./../../misc/remotedesktop.nix
|
||||
./../../misc/school.nix
|
||||
./../../misc/variables.nix
|
||||
|
||||
# Services
|
||||
./../../services/gnome-keyring.nix
|
||||
./../../services/mako.nix
|
||||
./../../services/udiskie.nix
|
||||
];
|
||||
|
||||
# Symlinks
|
||||
home.file = {
|
||||
"VMs".source = config.lib.file.mkOutOfStoreSymlink "/etc/libvirt/VMs";
|
||||
};
|
||||
}
|
|
@ -1,40 +0,0 @@
|
|||
{
|
||||
imports = [
|
||||
# Common modules
|
||||
./../../base.nix
|
||||
./../../users/jimbo.nix
|
||||
./../../utils/git.nix
|
||||
|
||||
# GUI Apps
|
||||
./../../misc/guifiles.nix
|
||||
./../../misc/fonts.nix
|
||||
./../../sway/sway.nix
|
||||
./../../sway/swaylock.nix
|
||||
./../../programs/gtk.nix
|
||||
./../../programs/foot.nix
|
||||
./../../programs/librewolf.nix
|
||||
./../../programs/mangohud.nix
|
||||
./../../programs/mpv.nix
|
||||
./../../programs/obs.nix
|
||||
./../../programs/pcmanfm-qt.nix
|
||||
./../../programs/rofi.nix
|
||||
./../../programs/swappy.nix
|
||||
./../../programs/easyeffects.nix
|
||||
./../../utils/ncmpcpp.nix
|
||||
|
||||
# Misc apps and tools
|
||||
./../../misc/useful.nix
|
||||
./../../misc/avtools.nix
|
||||
./../../misc/filemanager.nix
|
||||
./../../misc/gaming.nix
|
||||
./../../misc/xash3d.nix
|
||||
./../../misc/remotedesktop.nix
|
||||
./../../misc/school.nix
|
||||
./../../misc/variables.nix
|
||||
|
||||
# Services
|
||||
./../../services/gnome-keyring.nix
|
||||
./../../services/mako.nix
|
||||
./../../services/udiskie.nix
|
||||
];
|
||||
}
|
|
@ -1,43 +0,0 @@
|
|||
{pkgs, outputs, ...}: {
|
||||
imports = [
|
||||
# Common modules
|
||||
./../../base.nix
|
||||
./../../users/jimbo.nix
|
||||
./../../utils/git.nix
|
||||
|
||||
# GUI Apps
|
||||
./../../misc/guifiles.nix
|
||||
./../../misc/fonts.nix
|
||||
./../../sway/sway.nix
|
||||
./../../sway/swaylock.nix
|
||||
./../../programs/gtk.nix
|
||||
./../../programs/foot.nix
|
||||
./../../programs/librewolf.nix
|
||||
./../../programs/mangohud.nix
|
||||
./../../programs/mpv.nix
|
||||
./../../programs/pcmanfm-qt.nix
|
||||
./../../programs/rofi.nix
|
||||
./../../programs/swappy.nix
|
||||
./../../programs/easyeffects.nix
|
||||
./../../utils/ncmpcpp.nix
|
||||
|
||||
# Misc apps and tools
|
||||
./../../misc/useful.nix
|
||||
./../../misc/avtools.nix
|
||||
./../../misc/filemanager.nix
|
||||
./../../misc/remotedesktop.nix
|
||||
./../../misc/variables.nix
|
||||
|
||||
# Services
|
||||
./../../services/gnome-keyring.nix
|
||||
./../../services/mako.nix
|
||||
./../../services/udiskie.nix
|
||||
];
|
||||
|
||||
# Needed to make the speaker work
|
||||
home.packages = with pkgs; [
|
||||
alsa-utils
|
||||
];
|
||||
|
||||
wayland.windowManager.sway.config.output.${outputs.displays.dI}.scale = "1.3";
|
||||
}
|
|
@ -1,8 +0,0 @@
|
|||
{
|
||||
imports = [
|
||||
# Common modules
|
||||
./../../base.nix
|
||||
./../../users/jimbo.nix
|
||||
./../../utils/git.nix
|
||||
];
|
||||
}
|
|
@ -1,14 +0,0 @@
|
|||
{
|
||||
imports = [
|
||||
# Common modules
|
||||
./../../base.nix
|
||||
./../../users/jimbo.nix
|
||||
];
|
||||
|
||||
# Rebuild this entire system
|
||||
programs.zsh = {
|
||||
shellAliases = {
|
||||
termswitch = "home-manager switch --flake ~/.home-manager/.#jimbo@JimTerminal --extra-experimental-features 'nix-command flakes'";
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
{pkgs, ...}: {
|
||||
home.packages = with pkgs; [
|
||||
gnome.file-roller
|
||||
imagemagick
|
||||
poppler_utils
|
||||
];
|
||||
}
|
|
@ -1,15 +0,0 @@
|
|||
{pkgs, ...}: {
|
||||
# Files that only make sense with a GUI
|
||||
home.file = {
|
||||
".face" = {
|
||||
source = ../assets/user-icon.png;
|
||||
};
|
||||
".wallpapers" = {
|
||||
source = ../assets/wallpapers;
|
||||
recursive = true;
|
||||
};
|
||||
".icons/default" = {
|
||||
source = "${pkgs.simp1e-cursors}/share/icons/Simp1e-Dark";
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
{pkgs, ...}: {
|
||||
home.packages = with pkgs; [
|
||||
krita
|
||||
inkscape
|
||||
audacity
|
||||
blender_4_2
|
||||
sunvox
|
||||
];
|
||||
}
|
|
@ -1,30 +0,0 @@
|
|||
{pkgs, inputs, ...}: {
|
||||
# Select default apps
|
||||
xdg.mimeApps.defaultApplications = {
|
||||
"inode/directory" = ["pcmanfm-qt.desktop"];
|
||||
"text/plain" = ["nvim.desktop"];
|
||||
"image/png" = ["imv.desktop"];
|
||||
"image/jpeg" = ["imv.desktop"];
|
||||
"video/*" = ["mpv.desktop"];
|
||||
};
|
||||
|
||||
# Set dconf settings
|
||||
dconf.settings = {
|
||||
"org/gnome/desktop/interface/color-scheme" = {
|
||||
color-scheme = "prefer-dark";
|
||||
};
|
||||
"org/virt-manager/virt-manager/connections" = {
|
||||
autoconnect = ["qemu:///system"];
|
||||
uris = ["qemu:///system"];
|
||||
};
|
||||
};
|
||||
|
||||
home.file = let
|
||||
alsoftConf = ''
|
||||
drivers=pulse
|
||||
'';
|
||||
in {
|
||||
# Alsoft config
|
||||
".alsoftrc".text = alsoftConf;
|
||||
};
|
||||
}
|
|
@ -1,309 +0,0 @@
|
|||
{pkgs, ...}: {
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
easyeffects
|
||||
];
|
||||
file = let
|
||||
# An Easyeffects equalizer profile that sounds good to me
|
||||
easyEffectsProfile = ''
|
||||
{
|
||||
"output": {
|
||||
"blocklist": [],
|
||||
"crystalizer#0": {
|
||||
"band0": {
|
||||
"bypass": false,
|
||||
"intensity": 0.0,
|
||||
"mute": false
|
||||
},
|
||||
"band1": {
|
||||
"bypass": false,
|
||||
"intensity": -1.0,
|
||||
"mute": false
|
||||
},
|
||||
"band2": {
|
||||
"bypass": false,
|
||||
"intensity": -2.0,
|
||||
"mute": false
|
||||
},
|
||||
"band3": {
|
||||
"bypass": false,
|
||||
"intensity": -3.0,
|
||||
"mute": false
|
||||
},
|
||||
"band4": {
|
||||
"bypass": false,
|
||||
"intensity": -4.0,
|
||||
"mute": false
|
||||
},
|
||||
"band5": {
|
||||
"bypass": false,
|
||||
"intensity": -5.0,
|
||||
"mute": false
|
||||
},
|
||||
"band6": {
|
||||
"bypass": false,
|
||||
"intensity": -6.0,
|
||||
"mute": false
|
||||
},
|
||||
"band7": {
|
||||
"bypass": false,
|
||||
"intensity": -7.0,
|
||||
"mute": false
|
||||
},
|
||||
"band8": {
|
||||
"bypass": false,
|
||||
"intensity": -8.0,
|
||||
"mute": false
|
||||
},
|
||||
"band9": {
|
||||
"bypass": false,
|
||||
"intensity": -9.0,
|
||||
"mute": false
|
||||
},
|
||||
"band10": {
|
||||
"bypass": false,
|
||||
"intensity": -10.0,
|
||||
"mute": false
|
||||
},
|
||||
"band11": {
|
||||
"bypass": false,
|
||||
"intensity": -11.0,
|
||||
"mute": false
|
||||
},
|
||||
"band12": {
|
||||
"bypass": false,
|
||||
"intensity": -12.0,
|
||||
"mute": false
|
||||
},
|
||||
"bypass": false,
|
||||
"input-gain": 0.0,
|
||||
"output-gain": 0.0
|
||||
},
|
||||
"equalizer#0": {
|
||||
"balance": 0.0,
|
||||
"bypass": false,
|
||||
"input-gain": 0.0,
|
||||
"left": {
|
||||
"band0": {
|
||||
"frequency": 32.0,
|
||||
"gain": 1.1,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 4.36,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
},
|
||||
"band1": {
|
||||
"frequency": 64.0,
|
||||
"gain": 1.16,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 4.36,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
},
|
||||
"band2": {
|
||||
"frequency": 125.0,
|
||||
"gain": 3.33,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 4.36,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
},
|
||||
"band3": {
|
||||
"frequency": 250.0,
|
||||
"gain": 1.53,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 4.36,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
},
|
||||
"band4": {
|
||||
"frequency": 500.0,
|
||||
"gain": -1.83,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 4.36,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
},
|
||||
"band5": {
|
||||
"frequency": 1000.0,
|
||||
"gain": -0.58,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 4.36,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
},
|
||||
"band6": {
|
||||
"frequency": 2000.0,
|
||||
"gain": 1.42,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 4.36,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
},
|
||||
"band7": {
|
||||
"frequency": 4000.0,
|
||||
"gain": 4.73,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 4.36,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
},
|
||||
"band8": {
|
||||
"frequency": 16000.0,
|
||||
"gain": 7.62,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 4.36,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
},
|
||||
"band9": {
|
||||
"frequency": 156.38,
|
||||
"gain": 2.84,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 4.36,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
}
|
||||
},
|
||||
"mode": "IIR",
|
||||
"num-bands": 10,
|
||||
"output-gain": 0.0,
|
||||
"pitch-left": 0.0,
|
||||
"pitch-right": 0.0,
|
||||
"right": {
|
||||
"band0": {
|
||||
"frequency": 32.0,
|
||||
"gain": 1.1,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 4.36,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
},
|
||||
"band1": {
|
||||
"frequency": 64.0,
|
||||
"gain": 1.16,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 4.36,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
},
|
||||
"band2": {
|
||||
"frequency": 125.0,
|
||||
"gain": 3.33,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 4.36,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
},
|
||||
"band3": {
|
||||
"frequency": 250.0,
|
||||
"gain": 1.53,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 4.36,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
},
|
||||
"band4": {
|
||||
"frequency": 500.0,
|
||||
"gain": -1.83,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 4.36,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
},
|
||||
"band5": {
|
||||
"frequency": 1000.0,
|
||||
"gain": -0.58,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 4.36,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
},
|
||||
"band6": {
|
||||
"frequency": 2000.0,
|
||||
"gain": 1.42,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 4.36,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
},
|
||||
"band7": {
|
||||
"frequency": 4000.0,
|
||||
"gain": 4.73,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 4.36,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
},
|
||||
"band8": {
|
||||
"frequency": 16000.0,
|
||||
"gain": 7.62,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 4.36,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
},
|
||||
"band9": {
|
||||
"frequency": 156.38,
|
||||
"gain": 2.84,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 4.36,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
}
|
||||
},
|
||||
"split-channels": false
|
||||
},
|
||||
"plugins_order": [
|
||||
"equalizer#0",
|
||||
"crystalizer#0"
|
||||
]
|
||||
}
|
||||
}
|
||||
'';
|
||||
in {
|
||||
# Easyeffects profile
|
||||
".config/easyeffects/output/JimHeadphones.json".text = easyEffectsProfile;
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,19 +0,0 @@
|
|||
{pkgs, ...}: {
|
||||
# Swappy config file
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
swappy
|
||||
];
|
||||
file = let
|
||||
# Swappy config, for screenshot editing
|
||||
swappyConfig = ''
|
||||
[Default]
|
||||
early_exit=true
|
||||
save_dir=$HOME/Pictures/Screenshots
|
||||
'';
|
||||
in {
|
||||
# Swappy's config
|
||||
".config/swappy/config".text = swappyConfig;
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
{pkgs, ...}: {
|
||||
services.gnome-keyring = {
|
||||
enable = true;
|
||||
components = [
|
||||
"ssh"
|
||||
];
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
gnome.gnome-keyring
|
||||
gnome.libgnome-keyring
|
||||
];
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
{
|
||||
# Nicely reload system units when changing configs
|
||||
systemd.user = {
|
||||
enable = true;
|
||||
startServices = "sd-switch";
|
||||
};
|
||||
}
|
|
@ -1,269 +0,0 @@
|
|||
{config, pkgs, outputs, ...}: {
|
||||
wayland.windowManager.sway = {
|
||||
config = let
|
||||
# Set default modifier and variables
|
||||
primeMod = "Mod4";
|
||||
secMod = "Mod1";
|
||||
resizeAmount = ''55'';
|
||||
sendNotif = ''notify-send --expire-time=1500'';
|
||||
in {
|
||||
# Hotkeys
|
||||
modifier = "${primeMod}";
|
||||
keybindings = let
|
||||
# Define scripts specific to Sway
|
||||
pinWindow = pkgs.writeScript "pin-window" ''
|
||||
# Get the current border style of the focused window
|
||||
current_style=$(swaymsg -t get_tree | jq -r '.. | select(.focused?).border')
|
||||
|
||||
# Toggle between "normal" (default) and "pixel ${outputs.look.border.string}" border styles
|
||||
if [ "$current_style" == "none" ]; then
|
||||
swaymsg "sticky disable, border pixel ${outputs.look.border.string}"
|
||||
else
|
||||
swaymsg "sticky enable, border none"
|
||||
fi
|
||||
'';
|
||||
|
||||
# Kill a window or probe it for info
|
||||
swayTools = pkgs.writeScript "swaytools" ''
|
||||
# List the app name and whether or not it uses wayland
|
||||
swayprop() {
|
||||
selected_window=$(swaymsg -t get_tree | jq -r '.. | select(.pid? and .visible?) | "\(.rect.x),\(.rect.y) \(.rect.width)x\(.rect.height)"' | slurp -r -c ${outputs.look.colors.prime} -B 00000066 -b 00000000)
|
||||
if [ -n "$selected_window" ]; then
|
||||
app_id=$(swaymsg -t get_tree | jq -r '.. | select(.pid? and .visible?) | select("\(.rect.x),\(.rect.y) \(.rect.width)x\(.rect.height)" == "'"$selected_window"'") | .app_id')
|
||||
system=$(sed 's/xdg_shell/Wayland/g; s/xwayland/Xorg/g' < <(swaymsg -t get_tree | jq -r '.. | select(.pid? and .visible?) | select("\(.rect.x),\(.rect.y) \(.rect.width)x\(.rect.height)" == "'"$selected_window"'") | .shell'))
|
||||
notify-send "$(echo -e "Window's app_id: $app_id\nWindow System: $system")"
|
||||
fi
|
||||
}
|
||||
|
||||
# Kill a selected window
|
||||
swaykill() {
|
||||
selected_window=$(swaymsg -t get_tree | jq -r '.. | select(.pid? and .visible?) | "\(.rect.x),\(.rect.y) \(.rect.width)x\(.rect.height)"' | slurp -r -c ${outputs.look.colors.prime} -B 00000066 -b 00000000)
|
||||
if [ -n "$selected_window" ]; then
|
||||
pid=$(swaymsg -t get_tree | jq -r '.. | select(.pid? and .visible?) | select("\(.rect.x),\(.rect.y) \(.rect.width)x\(.rect.height)" == "'"$selected_window"'") | .pid')
|
||||
kill -9 "$pid"
|
||||
fi
|
||||
}
|
||||
|
||||
# Handle which tool we use
|
||||
if [ "$1" == "--prop" ]; then
|
||||
swayprop
|
||||
elif [ "$1" == "--kill" ]; then
|
||||
swaykill
|
||||
fi
|
||||
'';
|
||||
in {
|
||||
## Launcher keys
|
||||
|
||||
# LibreWolf profiles
|
||||
"${primeMod}+F1" = ''exec librewolf -P Jimbo --name=JimBrowser | ${sendNotif} "Main Browser"'';
|
||||
"${primeMod}+F2" = ''exec librewolf -P Alt --name=AltBrowser | ${sendNotif} "Alternate Browser"'';
|
||||
"${primeMod}+F3" = ''exec librewolf -P Misc --name=MiscBrowser | ${sendNotif} "Miscellaneous Browser"'';
|
||||
|
||||
# Discord
|
||||
"${primeMod}+F4" = ''exec vesktop --ozone-platform-hint=auto | ${sendNotif} "Discord"'';
|
||||
|
||||
# Games
|
||||
"${primeMod}+F5" = ''exec steam | ${sendNotif} "Steam"'';
|
||||
"${primeMod}+F6" = ''exec heroic | ${sendNotif} "Heroic Games"'';
|
||||
|
||||
# Looking glass for VMs
|
||||
"${primeMod}+F7" = ''exec looking-glass-client input:rawMouse=yes | ${sendNotif} "Looking Glass"'';
|
||||
|
||||
# Virtual Machines
|
||||
"${primeMod}+F10" = ''exec virt-manager | ${sendNotif} "Virtual Machines"'';
|
||||
|
||||
# BeMenu scripts
|
||||
"${primeMod}+F11" = ''exec rofiscripts --scratchpads | ${sendNotif} "Scratchpads"'';
|
||||
"${primeMod}+${secMod}+Ctrl+r" = ''exec rofiscripts --resolutions'';
|
||||
|
||||
# Open NixOS configuration files
|
||||
"${primeMod}+F12" = ''exec foot ${outputs.cmd.nixcfg} | ${sendNotif} "Nix Config"'';
|
||||
|
||||
# Terminal, rofi, clipmenu, media script, power menu, show/hide waybar
|
||||
"${primeMod}+Return" = ''exec foot'';
|
||||
"${primeMod}+s" = ''exec rofi -show run -p Command'';
|
||||
"${primeMod}+c" = ''exec clipman pick -t rofi'';
|
||||
"${primeMod}+x" = ''exec rofiscripts --power'';
|
||||
"${primeMod}+b" = ''exec pkill -USR1 waybar'';
|
||||
"${primeMod}+Escape" = ''exec ${swayTools} --kill'';
|
||||
|
||||
# PCManFM, Emoji Picker, Rofi Launcher, Bluetooth, Ranger
|
||||
"${primeMod}+Shift+t" = ''exec pcmanfm-qt'';
|
||||
"${primeMod}+Shift+e" = ''exec BEMOJI_PICKER_CMD="rofi -dmenu -i -p Emoji" bemoji -n -P 0'';
|
||||
"${primeMod}+Shift+s" = ''exec rofi -show drun -modi drun -drun-display-format {name} -show-icons -disable-history'';
|
||||
"${primeMod}+Shift+b" = ''exec rofi-bluetooth'';
|
||||
"${primeMod}+Shift+Return" = ''exec foot ranger'';
|
||||
|
||||
# Swaytools prop, colorpicker, obs-cmd
|
||||
"${primeMod}+Ctrl+x" = ''exec ${swayTools} --prop'';
|
||||
"${primeMod}+Ctrl+c" = ''exec ${pkgs.hyprpicker}/bin/hyprpicker -an && ${sendNotif} "Color copied to clipboard"'';
|
||||
"${primeMod}+Ctrl+Prior" = ''exec ${pkgs.obs-cmd}/bin/obs-cmd scene switch "Main"'';
|
||||
"${primeMod}+Ctrl+Next" = ''exec ${pkgs.obs-cmd}/bin/obs-cmd scene switch "Guest"'';
|
||||
|
||||
## Media keys
|
||||
|
||||
# Volume control
|
||||
"XF86AudioRaiseVolume" = ''exec wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+'';
|
||||
"XF86AudioLowerVolume" = ''exec wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-'';
|
||||
|
||||
# MPV volume control
|
||||
"${secMod}+XF86AudioRaiseVolume" = ''exec mpc volume +3'';
|
||||
"${secMod}+XF86AudioLowerVolume" = ''exec mpc volume -3'';
|
||||
|
||||
# Mute, Stop
|
||||
"XF86AudioMute" = ''exec wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle'';
|
||||
"XF86AudioStop" = ''exec mpc stop'';
|
||||
|
||||
# Play MPD, Firefox, or MPV
|
||||
"XF86AudioPlay" = ''exec mpc toggle'';
|
||||
"${secMod}+XF86AudioPlay" = ''exec playerctl --player=librewolf play-pause'';
|
||||
"Ctrl+XF86AudioPlay" = ''exec playerctl --player=mpv play-pause'';
|
||||
|
||||
# Next/Previous
|
||||
"XF86AudioNext" = ''exec mpc next'';
|
||||
"XF86AudioPrev" = ''exec mpc prev'';
|
||||
|
||||
# Seek
|
||||
"${secMod}+Shift+XF86AudioNext" = ''exec mpc seek +5'';
|
||||
"${secMod}+Shift+XF86AudioPrev" = ''exec mpc seek -5'';
|
||||
|
||||
## Notification keys
|
||||
|
||||
# Toggle mako
|
||||
"${primeMod}+n" = ''exec makotoggle'';
|
||||
"${primeMod}+Shift+n" = ''exec makoctl restore'';
|
||||
"${primeMod}+Ctrl+n" = ''exec makoctl dismiss -a'';
|
||||
|
||||
## Miscellaneous keys
|
||||
|
||||
# Screenshots
|
||||
"Print" = ''exec swayshot --swappy'';
|
||||
"${primeMod}+Shift+f" = ''exec swayshot --swappy'';
|
||||
"Shift+Print" = ''exec swayshot --screen'';
|
||||
|
||||
# Server SSH
|
||||
"${primeMod}+Ctrl+Return" = ''exec foot ssh ${outputs.ips.server} -p 2222'';
|
||||
|
||||
# Display Brightness and Keyboard Brightness
|
||||
"XF86MonBrightnessUp" = ''exec light -A 5'';
|
||||
"XF86MonBrightnessDown" = ''exec light -U 5'';
|
||||
"Shift+XF86MonBrightnessUp" = ''exec light -A 1'';
|
||||
"Shift+XF86MonBrightnessDown" = ''exec light -U 1'';
|
||||
"XF86KbdBrightnessUp" = ''exec light -s sysfs/leds/smc::kbd_backlight -A 5'';
|
||||
"XF86KbdBrightnessDown" = ''exec light -s sysfs/leds/smc::kbd_backlight -U 5'';
|
||||
|
||||
## Window manager keys
|
||||
"${primeMod}+q" = ''kill'';
|
||||
"${primeMod}+Shift+r" = ''reload'';
|
||||
|
||||
# Switch to workspaces
|
||||
"${primeMod}+grave" = ''workspace ${outputs.ws.w0}'';
|
||||
"${primeMod}+1" = ''workspace ${outputs.ws.w1}'';
|
||||
"${primeMod}+2" = ''workspace ${outputs.ws.w2}'';
|
||||
"${primeMod}+3" = ''workspace ${outputs.ws.w3}'';
|
||||
"${primeMod}+4" = ''workspace ${outputs.ws.w4}'';
|
||||
"${primeMod}+5" = ''workspace ${outputs.ws.w5}'';
|
||||
"${primeMod}+6" = ''workspace ${outputs.ws.w6}'';
|
||||
"${primeMod}+7" = ''workspace ${outputs.ws.w7}'';
|
||||
"${primeMod}+8" = ''workspace ${outputs.ws.w8}'';
|
||||
"${primeMod}+9" = ''workspace ${outputs.ws.w9}'';
|
||||
|
||||
# Switch to alternate workspaces
|
||||
"${secMod}+F1" = ''workspace ${outputs.ws.w1a}'';
|
||||
"${secMod}+F2" = ''workspace ${outputs.ws.w2a}'';
|
||||
"${secMod}+F3" = ''workspace ${outputs.ws.w3a}'';
|
||||
"${secMod}+F4" = ''workspace ${outputs.ws.w4a}'';
|
||||
"${secMod}+F5" = ''workspace ${outputs.ws.w5a}'';
|
||||
"${secMod}+F6" = ''workspace ${outputs.ws.w6a}'';
|
||||
"${secMod}+F7" = ''workspace ${outputs.ws.w7a}'';
|
||||
"${secMod}+F8" = ''workspace ${outputs.ws.w8a}'';
|
||||
"${secMod}+F9" = ''workspace ${outputs.ws.w9a}'';
|
||||
|
||||
# Move window to and focus new workspace
|
||||
"${primeMod}+Shift+grave" = ''move container to workspace ${outputs.ws.w0}; workspace ${outputs.ws.w0}'';
|
||||
"${primeMod}+Shift+1" = ''move container to workspace ${outputs.ws.w1}; workspace ${outputs.ws.w1}'';
|
||||
"${primeMod}+Shift+2" = ''move container to workspace ${outputs.ws.w2}; workspace ${outputs.ws.w2}'';
|
||||
"${primeMod}+Shift+3" = ''move container to workspace ${outputs.ws.w3}; workspace ${outputs.ws.w3}'';
|
||||
"${primeMod}+Shift+4" = ''move container to workspace ${outputs.ws.w4}; workspace ${outputs.ws.w4}'';
|
||||
"${primeMod}+Shift+5" = ''move container to workspace ${outputs.ws.w5}; workspace ${outputs.ws.w5}'';
|
||||
"${primeMod}+Shift+6" = ''move container to workspace ${outputs.ws.w6}; workspace ${outputs.ws.w6}'';
|
||||
"${primeMod}+Shift+7" = ''move container to workspace ${outputs.ws.w7}; workspace ${outputs.ws.w7}'';
|
||||
"${primeMod}+Shift+8" = ''move container to workspace ${outputs.ws.w8}; workspace ${outputs.ws.w8}'';
|
||||
"${primeMod}+Shift+9" = ''move container to workspace ${outputs.ws.w9}; workspace ${outputs.ws.w9}'';
|
||||
|
||||
# Move window to and focus new alternate workspace
|
||||
"${secMod}+Shift+F1" = ''move container to workspace ${outputs.ws.w1a}; workspace ${outputs.ws.w1a}'';
|
||||
"${secMod}+Shift+F2" = ''move container to workspace ${outputs.ws.w2a}; workspace ${outputs.ws.w2a}'';
|
||||
"${secMod}+Shift+F3" = ''move container to workspace ${outputs.ws.w3a}; workspace ${outputs.ws.w3a}'';
|
||||
"${secMod}+Shift+F4" = ''move container to workspace ${outputs.ws.w4a}; workspace ${outputs.ws.w4a}'';
|
||||
"${secMod}+Shift+F5" = ''move container to workspace ${outputs.ws.w5a}; workspace ${outputs.ws.w5a}'';
|
||||
"${secMod}+Shift+F6" = ''move container to workspace ${outputs.ws.w6a}; workspace ${outputs.ws.w6a}'';
|
||||
"${secMod}+Shift+F7" = ''move container to workspace ${outputs.ws.w7a}; workspace ${outputs.ws.w7a}'';
|
||||
"${secMod}+Shift+F8" = ''move container to workspace ${outputs.ws.w8a}; workspace ${outputs.ws.w8a}'';
|
||||
"${secMod}+Shift+F9" = ''move container to workspace ${outputs.ws.w9a}; workspace ${outputs.ws.w9a}'';
|
||||
|
||||
# Change focus across windows
|
||||
"${primeMod}+Up" = ''focus up'';
|
||||
"${primeMod}+Down" = ''focus down'';
|
||||
"${primeMod}+Left" = ''focus left'';
|
||||
"${primeMod}+Right" = ''focus right'';
|
||||
|
||||
# Switch focus across outputs
|
||||
"${primeMod}+j" = ''focus output ${outputs.displays.d2}'';
|
||||
"${primeMod}+k" = ''focus output ${outputs.displays.d1}'';
|
||||
"${primeMod}+l" = ''focus output ${outputs.displays.d3}'';
|
||||
|
||||
# Move focused window
|
||||
"${primeMod}+Shift+Up" = ''move up ${resizeAmount} px'';
|
||||
"${primeMod}+Shift+Down" = ''move down ${resizeAmount} px'';
|
||||
"${primeMod}+Shift+Left" = ''move left ${resizeAmount} px'';
|
||||
"${primeMod}+Shift+Right" = ''move right ${resizeAmount} px'';
|
||||
|
||||
# Move window across outputs
|
||||
"${primeMod}+Shift+j" = ''move output ${outputs.displays.d2}; focus output ${outputs.displays.d2}'';
|
||||
"${primeMod}+Shift+k" = ''move output ${outputs.displays.d1}; focus output ${outputs.displays.d1}'';
|
||||
"${primeMod}+Shift+l" = ''move output ${outputs.displays.d3}; focus output ${outputs.displays.d3}'';
|
||||
|
||||
# Change focus between floating/tiled, toggle floating
|
||||
"${primeMod}+space" = ''focus mode_toggle'';
|
||||
"${primeMod}+Shift+space" = ''floating toggle'';
|
||||
|
||||
# Allow a window to be visible on all workspaces, toggle border
|
||||
"${primeMod}+0" = ''exec ${pinWindow}'';
|
||||
|
||||
# Toggle fullscreen
|
||||
"${primeMod}+f" = ''fullscreen toggle'';
|
||||
"${primeMod}+${secMod}+Ctrl+f" = ''fullscreen toggle global'';
|
||||
|
||||
# Change container layout
|
||||
"${primeMod}+w" = ''layout toggle split'';
|
||||
"${primeMod}+e" = ''layout toggle tabbed stacking'';
|
||||
|
||||
# Change split direction
|
||||
"${primeMod}+h" = ''split h'';
|
||||
"${primeMod}+v" = ''split v'';
|
||||
|
||||
# Focus parent / child
|
||||
"${primeMod}+a" = ''focus parent'';
|
||||
"${primeMod}+d" = ''focus child'';
|
||||
|
||||
# Resize windows
|
||||
"${primeMod}+${secMod}+Up" = ''resize grow height ${resizeAmount} px or 5 ppt'';
|
||||
"${primeMod}+${secMod}+Down" = ''resize shrink height ${resizeAmount} px or 5 ppt'';
|
||||
"${primeMod}+${secMod}+Left" = ''resize shrink width ${resizeAmount} px or 5 ppt'';
|
||||
"${primeMod}+${secMod}+Right" = ''resize grow width ${resizeAmount} px or 5 ppt'';
|
||||
|
||||
# Adjust gap size
|
||||
"${primeMod}+Shift+equal" = ''gaps inner current set 5'';
|
||||
"${primeMod}+equal" = ''gaps inner current plus 5'';
|
||||
"${primeMod}+minus" = ''gaps inner current minus 5'';
|
||||
|
||||
# Scratchpads
|
||||
"Ctrl+Shift+Escape" = ''[app_id="gotop"] scratchpad show, move position center, resize set 1216 888'';
|
||||
"${primeMod}+Shift+m" = ''[app_id="music"] scratchpad show, move position center, resize set 1006 657'';
|
||||
"${primeMod}+Shift+v" = ''[app_id="sound"] scratchpad show, move position center, resize set 1000 800'';
|
||||
"${primeMod}+Shift+Backslash" = ''[app_id="com.github.wwmm.easyeffects"] scratchpad show, move position center, resize set 1000 800'';
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,14 +0,0 @@
|
|||
{config, pkgs, ...}: {
|
||||
# Enable Sway and write some scripts
|
||||
wayland.windowManager.sway = {
|
||||
package = pkgs.unstable.sway;
|
||||
extraConfig = ''
|
||||
# SwayFX specific options
|
||||
blur enable
|
||||
blur_passes 3
|
||||
blur_radius 5
|
||||
layer_effects 'rofi' blur enable
|
||||
layer_effects 'notifications' blur enable; blur_ignore_transparent enable
|
||||
'';
|
||||
};
|
||||
}
|
|
@ -1,50 +0,0 @@
|
|||
{config, pkgs, outputs, ...}: {
|
||||
# Enable Sway and write some scripts
|
||||
wayland.windowManager.sway = {
|
||||
enable = true;
|
||||
#package = pkgs.unstable.sway;
|
||||
wrapperFeatures.gtk = true;
|
||||
checkConfig = false;
|
||||
config = {
|
||||
# Theming settings
|
||||
colors = {
|
||||
focused = {
|
||||
border = "#${outputs.look.colors.prime}";
|
||||
background = "#${outputs.look.colors.prime}";
|
||||
text = "#FFFFFF";
|
||||
indicator = "#${outputs.look.colors.actSplit}";
|
||||
childBorder = "#${outputs.look.colors.prime}";
|
||||
};
|
||||
focusedInactive = {
|
||||
border = "#${outputs.look.colors.accent}";
|
||||
background = "#${outputs.look.colors.accent}";
|
||||
text = "#${outputs.look.colors.text}";
|
||||
indicator = "#${outputs.look.colors.split}";
|
||||
childBorder = "#${outputs.look.colors.accent}";
|
||||
};
|
||||
unfocused = {
|
||||
border = "#${outputs.look.colors.dark}";
|
||||
background = "#${outputs.look.colors.dark}";
|
||||
text = "#${outputs.look.colors.text}";
|
||||
indicator = "#${outputs.look.colors.split}";
|
||||
childBorder = "#${outputs.look.colors.split}";
|
||||
};
|
||||
urgent = {
|
||||
border = "#${outputs.look.colors.urgent}";
|
||||
background = "#${outputs.look.colors.urgent}";
|
||||
text = "#${outputs.look.colors.text}";
|
||||
indicator = "#${outputs.look.colors.urgent}";
|
||||
childBorder = "#${outputs.look.colors.urgent}";
|
||||
};
|
||||
};
|
||||
fonts = {
|
||||
names = ["${outputs.look.fonts.main}"];
|
||||
size = 10.5;
|
||||
};
|
||||
gaps = {
|
||||
inner = 5;
|
||||
smartGaps = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,8 +0,0 @@
|
|||
{pkgs, outputs, ...}: {
|
||||
programs.git = {
|
||||
enable = true;
|
||||
lfs.enable = true;
|
||||
userName = outputs.secrets.jimUsername;
|
||||
userEmail = outputs.secrets.jimEmail;
|
||||
};
|
||||
}
|
19
hosts/bomberman/home/default.nix
Normal file
|
@ -0,0 +1,19 @@
|
|||
{ ... }:
|
||||
{
|
||||
imports = [
|
||||
# Programs and apps
|
||||
../../../modules/home
|
||||
../../../modules/home/users
|
||||
../../../modules/home/programs/misc/headless
|
||||
../../../modules/home/programs/terminal/fastfetch
|
||||
../../../modules/home/programs/terminal/git
|
||||
../../../modules/home/programs/terminal/neovim
|
||||
../../../modules/home/programs/terminal/ranger
|
||||
../../../modules/home/programs/terminal/tmux
|
||||
../../../modules/home/utils/zsh
|
||||
|
||||
# Misc
|
||||
../../../variables/domains
|
||||
../../../variables/look/colors/purple
|
||||
];
|
||||
}
|
1
hosts/bomberman/id_ed25519.pub
Normal file
|
@ -0,0 +1 @@
|
|||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICtxnPjkLdUIi5mVqBHXM9rW+Mmsqx1C1XnpRusVTWhm jimbo@bomberman
|
28
hosts/bomberman/system/default.nix
Normal file
|
@ -0,0 +1,28 @@
|
|||
{ config, ... }:
|
||||
{
|
||||
imports = [
|
||||
./hardware
|
||||
|
||||
# Apps and programs
|
||||
../../../modules/system
|
||||
../../../modules/system/accounts
|
||||
../../../modules/system/devices/filesystems
|
||||
../../../modules/system/devices/boot/systemd
|
||||
../../../modules/system/devices/networking
|
||||
../../../modules/system/devices/networking/firewall/pc
|
||||
../../../modules/system/devices/networking/wireguard/pc
|
||||
../../../modules/system/programs/git
|
||||
../../../modules/system/programs/security
|
||||
../../../modules/system/services/common
|
||||
../../../modules/system/services/server/acme
|
||||
../../../modules/system/services/server/webhost/nginx
|
||||
../../../modules/system/services/server/mailserver
|
||||
|
||||
# Misc
|
||||
../../../overlays
|
||||
../../../variables
|
||||
];
|
||||
|
||||
networking.hostName = "bomberman";
|
||||
networking.wireguard.interfaces."${config.ips.wgInt}".ips = [ "${config.ips.wgSpan}.19/24" ];
|
||||
}
|
61
hosts/bomberman/system/hardware/default.nix
Normal file
|
@ -0,0 +1,61 @@
|
|||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
{
|
||||
imports = [
|
||||
(modulesPath + "/profiles/qemu-guest.nix")
|
||||
];
|
||||
|
||||
boot.initrd = {
|
||||
availableKernelModules = [
|
||||
"xhci_pci"
|
||||
"virtio_scsi"
|
||||
];
|
||||
kernelModules = [
|
||||
"dm-snapshot"
|
||||
];
|
||||
};
|
||||
|
||||
fileSystems = {
|
||||
"/" = {
|
||||
device = "/dev/disk/by-uuid/e50e186d-e5bc-40b0-9cd7-43b609cde3ea";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=@" ];
|
||||
};
|
||||
"/home" = {
|
||||
device = "/dev/disk/by-uuid/e50e186d-e5bc-40b0-9cd7-43b609cde3ea";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=@home" ];
|
||||
};
|
||||
"/nix" = {
|
||||
device = "/dev/disk/by-uuid/e50e186d-e5bc-40b0-9cd7-43b609cde3ea";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=@nix" ];
|
||||
};
|
||||
"/var" = {
|
||||
device = "/dev/disk/by-uuid/e50e186d-e5bc-40b0-9cd7-43b609cde3ea";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=@var" ];
|
||||
};
|
||||
"/.snapshots" = {
|
||||
device = "/dev/disk/by-uuid/e50e186d-e5bc-40b0-9cd7-43b609cde3ea";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=@snapshots" ];
|
||||
};
|
||||
"/boot" = {
|
||||
device = "/dev/disk/by-uuid/7C94-8C9A";
|
||||
fsType = "vfat";
|
||||
options = [ "fmask=0022" "dmask=0022" ];
|
||||
};
|
||||
"/export/Bulk" = {
|
||||
device = "/dev/disk/by-uuid/ef465845-cc56-4db5-9260-8ae515eb025e";
|
||||
fsType = "btrfs";
|
||||
noCheck = true;
|
||||
};
|
||||
};
|
||||
|
||||
swapDevices = [
|
||||
{ device = "/dev/disk/by-uuid/7e8c773d-c8f4-4dd8-a835-bde78e5b6760"; }
|
||||
];
|
||||
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux";
|
||||
}
|
19
hosts/cyberspark/home/default.nix
Normal file
|
@ -0,0 +1,19 @@
|
|||
{ ... }:
|
||||
{
|
||||
imports = [
|
||||
# Programs and apps
|
||||
../../../modules/home
|
||||
../../../modules/home/users
|
||||
../../../modules/home/programs/misc/headless
|
||||
../../../modules/home/programs/terminal/fastfetch
|
||||
../../../modules/home/programs/terminal/git
|
||||
../../../modules/home/programs/terminal/neovim
|
||||
../../../modules/home/programs/terminal/ranger
|
||||
../../../modules/home/programs/terminal/tmux
|
||||
../../../modules/home/utils/zsh
|
||||
|
||||
# Misc
|
||||
../../../variables/domains
|
||||
../../../variables/look/colors/purple
|
||||
];
|
||||
}
|
1
hosts/cyberspark/id_ed25519.pub
Normal file
|
@ -0,0 +1 @@
|
|||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIKC8Uqxb09V3msBgDv6lD/nETMYr/X0OgtpDo8ldcMK
|
25
hosts/cyberspark/system/default.nix
Normal file
|
@ -0,0 +1,25 @@
|
|||
{ ... }:
|
||||
{
|
||||
imports = [
|
||||
./hardware
|
||||
|
||||
# Apps and programs
|
||||
../../../modules/system
|
||||
../../../modules/system/accounts
|
||||
../../../modules/system/devices/filesystems
|
||||
../../../modules/system/devices/boot/systemd
|
||||
../../../modules/system/devices/networking
|
||||
../../../modules/system/devices/networking/firewall/server
|
||||
../../../modules/system/devices/networking/wireguard/server
|
||||
../../../modules/system/programs/git
|
||||
../../../modules/system/programs/security
|
||||
../../../modules/system/services/common
|
||||
../../../modules/system/services/server
|
||||
|
||||
# Misc
|
||||
../../../overlays
|
||||
../../../variables
|
||||
];
|
||||
|
||||
networking.hostName = "cyberspark";
|
||||
}
|
130
hosts/cyberspark/system/hardware/default.nix
Normal file
|
@ -0,0 +1,130 @@
|
|||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
{
|
||||
imports = [
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot = {
|
||||
blacklistedKernelModules = [
|
||||
"pcspkr"
|
||||
];
|
||||
initrd = {
|
||||
availableKernelModules = [
|
||||
"xhci_pci"
|
||||
"ehci_pci"
|
||||
"ahci"
|
||||
"nvme"
|
||||
"usbhid"
|
||||
"sd_mod"
|
||||
"sr_mod"
|
||||
];
|
||||
kernelModules = [
|
||||
"kvm-intel"
|
||||
];
|
||||
};
|
||||
swraid = {
|
||||
enable = true;
|
||||
mdadmConf = "MAILADDR jimbo@jimbosfiles.com";
|
||||
};
|
||||
};
|
||||
|
||||
# Main root
|
||||
fileSystems = {
|
||||
"/" = {
|
||||
device = "/dev/disk/by-uuid/b8b7ed47-c98c-4a49-af01-b2832dde1287";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=@" ];
|
||||
};
|
||||
"/home" = {
|
||||
device = "/dev/disk/by-uuid/b8b7ed47-c98c-4a49-af01-b2832dde1287";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=@home" ];
|
||||
};
|
||||
"/nix" = {
|
||||
device = "/dev/disk/by-uuid/b8b7ed47-c98c-4a49-af01-b2832dde1287";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=@nix" ];
|
||||
};
|
||||
"/var" = {
|
||||
device = "/dev/disk/by-uuid/acf95700-8669-45c7-9a72-bf3215b3c325";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=@var" ];
|
||||
};
|
||||
"/srv/minecraft" = {
|
||||
device = "/dev/disk/by-uuid/acf95700-8669-45c7-9a72-bf3215b3c325";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=@minecraft" "compress=zstd" ];
|
||||
};
|
||||
"/.snapshots" = {
|
||||
device = "/dev/disk/by-uuid/b8b7ed47-c98c-4a49-af01-b2832dde1287";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=@snapshots" ];
|
||||
};
|
||||
"/boot" = {
|
||||
device = "/dev/disk/by-uuid/CD94-1D3F";
|
||||
fsType = "vfat";
|
||||
options = [ "fmask=0022" "dmask=0022" ];
|
||||
};
|
||||
|
||||
# Atrocity of subvols
|
||||
"/export/JimboNFS/Downloads" = {
|
||||
device = "/dev/disk/by-uuid/acf95700-8669-45c7-9a72-bf3215b3c325";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=@downloads" "compress=zstd" ];
|
||||
};
|
||||
"/export/JimboNFS/Documents" = {
|
||||
device = "/dev/disk/by-uuid/acf95700-8669-45c7-9a72-bf3215b3c325";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=@docs" "compress=zstd" ];
|
||||
};
|
||||
"/export/JimboNFS/Photos" = {
|
||||
device = "/dev/disk/by-uuid/acf95700-8669-45c7-9a72-bf3215b3c325";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=@photos" "compress=zstd" ];
|
||||
};
|
||||
"/export/JimboNFS/Videos/Random" = {
|
||||
device = "/dev/disk/by-uuid/acf95700-8669-45c7-9a72-bf3215b3c325";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=@videos-random" "compress=zstd" ];
|
||||
};
|
||||
"/export/JimboNFS/Videos/Media" = {
|
||||
device = "/dev/disk/by-uuid/acf95700-8669-45c7-9a72-bf3215b3c325";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=@videos-media" "compress=zstd" ];
|
||||
};
|
||||
"/export/JimboNFS/Music/Synced" = {
|
||||
device = "/dev/disk/by-uuid/acf95700-8669-45c7-9a72-bf3215b3c325";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=@music-synced" "compress=zstd" ];
|
||||
};
|
||||
"/export/JimboNFS/Music/Unsynced" = {
|
||||
device = "/dev/disk/by-uuid/acf95700-8669-45c7-9a72-bf3215b3c325";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=@music-unsynced" "compress=zstd" ];
|
||||
};
|
||||
"/export/JimboNFS/Projects" = {
|
||||
device = "/dev/disk/by-uuid/acf95700-8669-45c7-9a72-bf3215b3c325";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=@projects" "compress=zstd" ];
|
||||
};
|
||||
"/export/JimboNFS/School" = {
|
||||
device = "/dev/disk/by-uuid/acf95700-8669-45c7-9a72-bf3215b3c325";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=@school" "compress=zstd" ];
|
||||
};
|
||||
"/export/JimboNFS/.snapshots" = {
|
||||
device = "/dev/disk/by-uuid/acf95700-8669-45c7-9a72-bf3215b3c325";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=@snapshots" "compress=zstd" ];
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
swapDevices = [
|
||||
{ device = "/dev/disk/by-uuid/57178cfc-3e71-4d35-8c7f-e355f9dc84df"; }
|
||||
];
|
||||
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
27
hosts/firefly/home/default.nix
Normal file
|
@ -0,0 +1,27 @@
|
|||
{ nur, config, ... }:
|
||||
{
|
||||
imports = [
|
||||
# Apps and programs
|
||||
../../../modules/home
|
||||
../../../modules/home/users
|
||||
../../../modules/home/files
|
||||
../../../modules/home/settings
|
||||
../../../modules/home/programs
|
||||
../../../modules/home/programs/misc/production
|
||||
../../../modules/home/programs/misc/gaming/launchers
|
||||
../../../modules/home/programs/misc/gaming/xash3d
|
||||
../../../modules/home/programs/misc/school
|
||||
../../../modules/home/sway
|
||||
../../../modules/home/utils
|
||||
|
||||
# Misc
|
||||
../../../overlays
|
||||
../../../variables
|
||||
../../../variables/look/colors/red
|
||||
|
||||
# Imports
|
||||
nur.nixosModules.nur
|
||||
];
|
||||
|
||||
wayland.windowManager.sway.config.output.${config.displays.d1}.allow_tearing = "yes";
|
||||
}
|
1
hosts/firefly/id_ed25519.pub
Normal file
|
@ -0,0 +1 @@
|
|||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIC2lMkUd+BbXITE5LTg94hEzmA6UKsIIbaf5YOjGoLzl
|
50
hosts/firefly/system/boot/default.nix
Normal file
|
@ -0,0 +1,50 @@
|
|||
{ pkgs, ... }:
|
||||
let
|
||||
commonKernelParams = [
|
||||
# Nvidia settings
|
||||
"nvidia_drm.fbdev=1"
|
||||
"nouveau.config=NvGspRm=1"
|
||||
|
||||
# VM/GPU passthrough
|
||||
"amd_iommu=on"
|
||||
"iommu=pt"
|
||||
"nested=1"
|
||||
|
||||
# Virtualization nonsense
|
||||
"transparent_hugepage=never"
|
||||
|
||||
# Isolate devices into IOMMU groups
|
||||
"pcie_acs_override=downstream,multifunction"
|
||||
"pci=routeirq"
|
||||
];
|
||||
in {
|
||||
boot = {
|
||||
kernelPackages = pkgs.linuxPackages_cachyos;
|
||||
blacklistedKernelModules = [
|
||||
"pcspkr"
|
||||
];
|
||||
kernel.sysctl."vm.max_map_count" = 2147483642;
|
||||
kernelParams = commonKernelParams ++ [
|
||||
"vfio-pci.ids=10de:1f82,10de:10fa"
|
||||
];
|
||||
|
||||
# Encryption and TPM
|
||||
initrd = {
|
||||
systemd.enable = true;
|
||||
luks.devices = {
|
||||
"crypt-ssd" = {
|
||||
device = "/dev/disk/by-uuid/52110c74-19b6-40ef-9710-e6c9b157005f";
|
||||
preLVM = true;
|
||||
allowDiscards = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# Additional entry to boot from the second GPU
|
||||
specialisation = {
|
||||
gputwo.configuration = {
|
||||
boot.kernelParams = commonKernelParams ++ [ "vfio-pci.ids=10de:2504,10de:228e" ];
|
||||
};
|
||||
};
|
||||
}
|
37
hosts/firefly/system/default.nix
Normal file
|
@ -0,0 +1,37 @@
|
|||
{ chaotic, pkgs, ... }:
|
||||
{
|
||||
imports = [
|
||||
./hardware
|
||||
./boot
|
||||
|
||||
# Apps and programs
|
||||
../../../modules/system
|
||||
../../../modules/system/accounts
|
||||
../../../modules/system/desktop
|
||||
../../../modules/system/programs
|
||||
../../../modules/system/services
|
||||
../../../modules/system/services/pc/sunshine
|
||||
../../../modules/system/services/pc/school
|
||||
../../../modules/system/services/pc/virtualization/qemu
|
||||
|
||||
# Devices and hardware
|
||||
../../../modules/system/devices
|
||||
../../../modules/system/devices/boot/lanzaboote
|
||||
../../../modules/system/devices/video/nvidia
|
||||
../../../modules/system/devices/networking/firewall/pc
|
||||
|
||||
# Misc
|
||||
../../../overlays
|
||||
../../../variables
|
||||
|
||||
# Imports
|
||||
chaotic.homeManagerModules.default
|
||||
];
|
||||
|
||||
programs.sway.package = pkgs.sway_git;
|
||||
|
||||
networking.hostName = "firefly";
|
||||
|
||||
# Force Electron to use Wayland
|
||||
environment.sessionVariables.NIXOS_OZONE_WL = "1";
|
||||
}
|
|
@ -1,36 +1,10 @@
|
|||
{ config, lib, pkgs, outputs, modulesPath, ... }: let
|
||||
# Set common boot paramaters
|
||||
commonKernelParams = [
|
||||
# Nvidia settings
|
||||
"nvidia_drm.fbdev=1"
|
||||
"nouveau.config=NvGspRm=1"
|
||||
|
||||
# VM/GPU passthrough
|
||||
"amd_iommu=on"
|
||||
"iommu=pt"
|
||||
"nested=1"
|
||||
|
||||
# Virtualization nonsense
|
||||
"transparent_hugepage=never"
|
||||
|
||||
# Isolate devices into IOMMU groups
|
||||
"pcie_acs_override=downstream,multifunction"
|
||||
"pci=routeirq"
|
||||
];
|
||||
in {
|
||||
{ config, lib, modulesPath, ... }:
|
||||
{
|
||||
imports = [
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot = {
|
||||
kernelPackages = pkgs.unstable.linuxPackages_zen;
|
||||
blacklistedKernelModules = [
|
||||
"pcspkr"
|
||||
];
|
||||
kernel.sysctl."vm.max_map_count" = 2147483642;
|
||||
kernelParams = commonKernelParams ++ [
|
||||
"vfio-pci.ids=10de:1f82,10de:10fa"
|
||||
];
|
||||
initrd = {
|
||||
availableKernelModules = [
|
||||
"nvme"
|
||||
|
@ -41,32 +15,15 @@ in {
|
|||
"sd_mod"
|
||||
];
|
||||
kernelModules = [
|
||||
"dm-snapshot"
|
||||
"vfio"
|
||||
"vfio_pci"
|
||||
"vfio_iommu_type1"
|
||||
"kvm-amd"
|
||||
];
|
||||
|
||||
# Encryption and TPM
|
||||
systemd.enable = true;
|
||||
luks.devices = {
|
||||
"crypt-ssd" = {
|
||||
device = "/dev/disk/by-uuid/52110c74-19b6-40ef-9710-e6c9b157005f";
|
||||
preLVM = true;
|
||||
allowDiscards = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# Additional entry to boot from the second GPU
|
||||
specialisation = {
|
||||
gputwo.configuration = {
|
||||
boot.kernelParams = commonKernelParams ++ [ "vfio-pci.ids=10de:2504,10de:228e" ];
|
||||
};
|
||||
};
|
||||
|
||||
# Mount everything as necessary
|
||||
fileSystems = {
|
||||
"/" = {
|
||||
device = "/dev/disk/by-uuid/bbfed7d1-62f2-4d8e-b63f-7f6ec932105b";
|
||||
|
@ -88,6 +45,11 @@ in {
|
|||
fsType = "btrfs";
|
||||
options = [ "subvol=@var" "noatime" "nodiratime" "discard" ];
|
||||
};
|
||||
"/.snapshots" = {
|
||||
device = "/dev/disk/by-uuid/bbfed7d1-62f2-4d8e-b63f-7f6ec932105b";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=@snapshots" "noatime" "nodiratime" "discard" ];
|
||||
};
|
||||
"/boot" = {
|
||||
device = "/dev/disk/by-uuid/3B4A-76C9";
|
||||
fsType = "vfat";
|
||||
|
@ -129,19 +91,57 @@ in {
|
|||
};
|
||||
|
||||
# Network mounts
|
||||
"/home/jimbo/JimboNFS" = {
|
||||
device = "${outputs.ips.server}:/export/JimboNFS";
|
||||
"/home/jimbo/JimboNFS/Downloads" = {
|
||||
device = "${config.ips.server}:/export/JimboNFS/Downloads";
|
||||
fsType = "nfs4";
|
||||
options = [ "x-systemd.automount" "_netdev" "nofail" "noauto" ];
|
||||
};
|
||||
"/home/jimbo/JimboNFS/Documents" = {
|
||||
device = "${config.ips.server}:/export/JimboNFS/Documents";
|
||||
fsType = "nfs4";
|
||||
options = [ "x-systemd.automount" "_netdev" "nofail" "noauto" ];
|
||||
};
|
||||
"/home/jimbo/JimboNFS/Photos" = {
|
||||
device = "${config.ips.server}:/export/JimboNFS/Photos";
|
||||
fsType = "nfs4";
|
||||
options = [ "x-systemd.automount" "_netdev" "nofail" "noauto" ];
|
||||
};
|
||||
"/home/jimbo/JimboNFS/Videos/Random" = {
|
||||
device = "${config.ips.server}:/export/JimboNFS/Videos/Random";
|
||||
fsType = "nfs4";
|
||||
options = [ "x-systemd.automount" "_netdev" "nofail" "noauto" ];
|
||||
};
|
||||
"/home/jimbo/JimboNFS/Videos/Media" = {
|
||||
device = "${config.ips.server}:/export/JimboNFS/Videos/Media";
|
||||
fsType = "nfs4";
|
||||
options = [ "x-systemd.automount" "_netdev" "nofail" "noauto" ];
|
||||
};
|
||||
"/home/jimbo/JimboNFS/Music/Synced" = {
|
||||
device = "${config.ips.server}:/export/JimboNFS/Music/Synced";
|
||||
fsType = "nfs4";
|
||||
options = [ "x-systemd.automount" "_netdev" "nofail" "noauto" ];
|
||||
};
|
||||
"/home/jimbo/JimboNFS/Music/Unsynced" = {
|
||||
device = "${config.ips.server}:/export/JimboNFS/Music/Unsynced";
|
||||
fsType = "nfs4";
|
||||
options = [ "x-systemd.automount" "_netdev" "nofail" "noauto" ];
|
||||
};
|
||||
"/home/jimbo/JimboNFS/Projects" = {
|
||||
device = "${config.ips.server}:/export/JimboNFS/Projects";
|
||||
fsType = "nfs4";
|
||||
options = [ "x-systemd.automount" "_netdev" "nofail" "noauto" ];
|
||||
};
|
||||
"/home/jimbo/JimboNFS/School" = {
|
||||
device = "${config.ips.server}:/export/JimboNFS/School";
|
||||
fsType = "nfs4";
|
||||
options = [ "x-systemd.automount" "_netdev" "nofail" "noauto" ];
|
||||
};
|
||||
};
|
||||
|
||||
# Set the swap partition
|
||||
swapDevices = [
|
||||
{ device = "/dev/disk/by-uuid/1a6a68d0-8ae7-4836-a585-b708597937a1"; }
|
||||
];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
22
hosts/lacros/home/default.nix
Normal file
|
@ -0,0 +1,22 @@
|
|||
{ config, nur, ... }:
|
||||
{
|
||||
imports = [
|
||||
# Apps and programs
|
||||
../../../modules/home
|
||||
../../../modules/home/users
|
||||
../../../modules/home/files
|
||||
../../../modules/home/settings
|
||||
../../../modules/home/programs
|
||||
../../../modules/home/programs/misc/remote-desktop
|
||||
../../../modules/home/sway
|
||||
../../../modules/home/utils
|
||||
|
||||
# Misc
|
||||
../../../overlays
|
||||
../../../variables
|
||||
../../../variables/look/colors/orange
|
||||
|
||||
# Imports
|
||||
nur.nixosModules.nur
|
||||
];
|
||||
}
|
1
hosts/lacros/id_ed25519.pub
Normal file
|
@ -0,0 +1 @@
|
|||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBk6ALxn+zKrRys6/c1oYSoWJaUUEo3nAM224ElhjJQR jimbo@lacros
|
17
hosts/lacros/system/boot/default.nix
Normal file
|
@ -0,0 +1,17 @@
|
|||
{ ... }:
|
||||
{
|
||||
boot = {
|
||||
kernelPackages = pkgs.linuxPackages_latest;
|
||||
kernel.sysctl."vm.max_map_count" = 2147483642;
|
||||
initrd = {
|
||||
systemd.enable = true;
|
||||
luks.devices = {
|
||||
crypt-mmc = {
|
||||
device = "/dev/disk/by-uuid/5906e176-7ad3-41e5-bc45-ae65664eb10c";
|
||||
preLVM = true;
|
||||
allowDiscards = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
34
hosts/lacros/system/default.nix
Normal file
|
@ -0,0 +1,34 @@
|
|||
{ config, lib, ... }:
|
||||
{
|
||||
imports = [
|
||||
./hardware
|
||||
./boot
|
||||
|
||||
# Apps and programs
|
||||
../../../modules/system
|
||||
../../../modules/system/accounts
|
||||
../../../modules/system/desktop
|
||||
../../../modules/system/programs
|
||||
../../../modules/system/services
|
||||
|
||||
# Devices and hardware
|
||||
../../../modules/system/devices
|
||||
../../../modules/system/devices/boot/lanzaboote
|
||||
../../../modules/system/devices/networking/wireless
|
||||
../../../modules/system/devices/networking/firewall/pc
|
||||
../../../modules/system/devices/networking/wireguard/pc
|
||||
|
||||
# Extras
|
||||
../../../overlays
|
||||
../../../variables
|
||||
];
|
||||
|
||||
services.keyd.keyboards.default.settings.main = {
|
||||
leftmeta = lib.mkForce "overload(control, esc)";
|
||||
leftcontrol = lib.mkForce "leftmeta";
|
||||
f13 = lib.mkForce "delete";
|
||||
};
|
||||
|
||||
networking.hostName = "lacros";
|
||||
networking.wireguard.interfaces."${config.ips.wgInt}".ips = [ "${config.ips.wgSpan}.18/24" ];
|
||||
}
|
63
hosts/lacros/system/hardware/default.nix
Normal file
|
@ -0,0 +1,63 @@
|
|||
{ config, lib, modulesPath, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot = {
|
||||
initrd = {
|
||||
availableKernelModules = [ "xhci_pci" "sdhci_pci" ];
|
||||
kernelModules = [ "dm-snapshot" ];
|
||||
};
|
||||
kernelModules = [ "kvm-intel" ];
|
||||
};
|
||||
|
||||
fileSystems = {
|
||||
"/" = {
|
||||
device = "/dev/disk/by-uuid/e8c9c5a8-4df0-4100-8de6-f08a1a774fad";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=@" "noatime" "nodiratime" "discard" ];
|
||||
};
|
||||
"/nix" = {
|
||||
device = "/dev/disk/by-uuid/e8c9c5a8-4df0-4100-8de6-f08a1a774fad";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=@nix" "noatime" "nodiratime" "discard" ];
|
||||
};
|
||||
"/var" = {
|
||||
device = "/dev/disk/by-uuid/e8c9c5a8-4df0-4100-8de6-f08a1a774fad";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=@var" "noatime" "nodiratime" "discard" ];
|
||||
};
|
||||
"/.snapshots" = {
|
||||
device = "/dev/disk/by-uuid/e8c9c5a8-4df0-4100-8de6-f08a1a774fad";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=@snapshots" "noatime" "nodiratime" "discard" ];
|
||||
};
|
||||
"/home" = {
|
||||
device = "/dev/disk/by-uuid/e8c9c5a8-4df0-4100-8de6-f08a1a774fad";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=@home" "noatime" "nodiratime" "discard" ];
|
||||
};
|
||||
"/boot" = {
|
||||
device = "/dev/disk/by-uuid/1C76-1006";
|
||||
fsType = "vfat";
|
||||
options = [ "fmask=0022" "dmask=0022" ];
|
||||
};
|
||||
|
||||
# Remote
|
||||
"/home/jimbo/JimboNFS" = {
|
||||
device = "${config.ips.wgSpan}.1:/export/JimboNFS";
|
||||
fsType = "nfs4";
|
||||
options = ["x-systemd.automount" "_netdev" "nofail" "noauto"];
|
||||
};
|
||||
};
|
||||
|
||||
swapDevices = [
|
||||
{ device = "/dev/disk/by-uuid/54a9cc22-4a2c-4e04-a968-313c34481489"; }
|
||||
];
|
||||
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
24
hosts/redmond/home/default.nix
Normal file
|
@ -0,0 +1,24 @@
|
|||
{ config, nur, ... }:
|
||||
{
|
||||
imports = [
|
||||
# Apps and programs
|
||||
../../../modules/home
|
||||
../../../modules/home/users
|
||||
../../../modules/home/files
|
||||
../../../modules/home/settings
|
||||
../../../modules/home/programs
|
||||
../../../modules/home/programs/misc/production
|
||||
../../../modules/home/programs/misc/gaming/launchers
|
||||
../../../modules/home/programs/misc/remote-desktop
|
||||
../../../modules/home/sway
|
||||
../../../modules/home/utils
|
||||
|
||||
# Misc
|
||||
../../../overlays
|
||||
../../../variables
|
||||
../../../variables/look/colors/green
|
||||
|
||||
# Imports
|
||||
nur.nixosModules.nur
|
||||
];
|
||||
}
|
1
hosts/redmond/id_ed25519.pub
Normal file
|
@ -0,0 +1 @@
|
|||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIG9uITpyw5WgxT7UnswueFtyWxAqQCZv4h9DfcDkr+kn jimbo@nixos
|
7
hosts/redmond/system/boot/default.nix
Normal file
|
@ -0,0 +1,7 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
boot = {
|
||||
kernelPackages = pkgs.linuxPackages_latest;
|
||||
kernel.sysctl."vm.max_map_count" = 2147483642;
|
||||
};
|
||||
}
|
28
hosts/redmond/system/default.nix
Normal file
|
@ -0,0 +1,28 @@
|
|||
{ config, ... }:
|
||||
{
|
||||
imports = [
|
||||
./hardware
|
||||
./boot
|
||||
|
||||
# Apps and programs
|
||||
../../../modules/system
|
||||
../../../modules/system/accounts
|
||||
../../../modules/system/desktop
|
||||
../../../modules/system/programs
|
||||
../../../modules/system/services
|
||||
|
||||
# Devices and hardware
|
||||
../../../modules/system/devices
|
||||
../../../modules/system/devices/boot/systemd
|
||||
../../../modules/system/devices/networking/wireless
|
||||
../../../modules/system/devices/networking/firewall/pc
|
||||
../../../modules/system/devices/networking/wireguard/pc
|
||||
|
||||
# Extras
|
||||
../../../overlays
|
||||
../../../variables
|
||||
];
|
||||
|
||||
networking.hostName = "redmond";
|
||||
networking.wireguard.interfaces."${config.ips.wgInt}".ips = [ "${config.ips.wgSpan}.20/24" ];
|
||||
}
|
|
@ -1,32 +1,24 @@
|
|||
{ config, lib, pkgs, modulesPath, ... }: {
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
{
|
||||
imports = [
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
# Set all boot options
|
||||
boot = {
|
||||
# Set a kernel version and load/blacklist drivers
|
||||
kernelPackages = pkgs.linuxPackages_zen;
|
||||
blacklistedKernelModules = [
|
||||
"pcspkr"
|
||||
];
|
||||
kernel.sysctl."vm.max_map_count" = 2147483642;
|
||||
initrd = {
|
||||
availableKernelModules = [
|
||||
"nvme"
|
||||
"xhci_pci"
|
||||
"usbhid"
|
||||
"usb_storage"
|
||||
"ahci"
|
||||
"ehci_pci"
|
||||
"sd_mod"
|
||||
"sr_mod"
|
||||
"sdhci_pci"
|
||||
];
|
||||
kernelModules = [
|
||||
"kvm-amd"
|
||||
"rtsx_usb_sdmmc"
|
||||
];
|
||||
};
|
||||
kernelModules = [ "kvm-amd" ];
|
||||
};
|
||||
|
||||
# Mount everything as necessary
|
||||
fileSystems = {
|
||||
"/" = {
|
||||
device = "/dev/disk/by-uuid/c0fe8419-88f9-48a0-8c5b-acd4c11f8037";
|
||||
|
@ -37,11 +29,14 @@
|
|||
fsType = "vfat";
|
||||
options = [ "fmask=0022" "dmask=0022" ];
|
||||
};
|
||||
"/home/jimbo/JimboNFS" = {
|
||||
device = "${config.ips.wgSpan}.1:/export/JimboNFS";
|
||||
fsType = "nfs4";
|
||||
options = ["x-systemd.automount" "_netdev" "nofail" "noauto"];
|
||||
};
|
||||
};
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
28
hosts/shuttleworth/home/default.nix
Normal file
|
@ -0,0 +1,28 @@
|
|||
{ config, pkgs, nur, ... }:
|
||||
{
|
||||
imports = [
|
||||
# Apps and programs
|
||||
../../../modules/home
|
||||
../../../modules/home/users
|
||||
../../../modules/home/files
|
||||
../../../modules/home/settings
|
||||
../../../modules/home/programs
|
||||
../../../modules/home/programs/misc/remote-desktop
|
||||
../../../modules/home/sway
|
||||
../../../modules/home/utils
|
||||
|
||||
# Misc
|
||||
../../../overlays
|
||||
../../../variables
|
||||
../../../variables/look/colors/purple
|
||||
|
||||
# Imports
|
||||
nur.nixosModules.nur
|
||||
];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
alsa-utils
|
||||
];
|
||||
|
||||
wayland.windowManager.sway.config.output.${config.displays.dI}.scale = "1.3";
|
||||
}
|
1
hosts/shuttleworth/id_ed25519.pub
Normal file
|
@ -0,0 +1 @@
|
|||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIK+L723mCLy9/9UAXwkY3+06Oq22dOj+lDnA0lMLbrsR
|
7
hosts/shuttleworth/system/boot/default.nix
Normal file
|
@ -0,0 +1,7 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
boot = {
|
||||
kernelPackages = pkgs.linuxPackages_latest;
|
||||
kernel.sysctl."vm.max_map_count" = 2147483642;
|
||||
};
|
||||
}
|
32
hosts/shuttleworth/system/default.nix
Normal file
|
@ -0,0 +1,32 @@
|
|||
{ config, lib, hardware, ... }:
|
||||
{
|
||||
imports = [
|
||||
./hardware
|
||||
./boot
|
||||
|
||||
# Apps and programs
|
||||
../../../modules/system
|
||||
../../../modules/system/accounts
|
||||
../../../modules/system/desktop
|
||||
../../../modules/system/programs
|
||||
../../../modules/system/services
|
||||
|
||||
# Devices and hardware
|
||||
../../../modules/system/devices
|
||||
../../../modules/system/devices/boot/extlinux
|
||||
../../../modules/system/devices/networking/wireless
|
||||
../../../modules/system/devices/networking/firewall/pc
|
||||
../../../modules/system/devices/networking/wireguard/pc
|
||||
|
||||
# Extras
|
||||
../../../overlays
|
||||
../../../variables
|
||||
|
||||
# Imports
|
||||
hardware.nixosModules.pine64-pinebook-pro
|
||||
];
|
||||
|
||||
networking.hostName = "shuttleworth";
|
||||
hardware.opengl.driSupport32Bit = lib.mkForce false;
|
||||
networking.wireguard.interfaces."${config.ips.wgInt}".ips = [ "${config.ips.wgSpan}.17/24" ];
|
||||
}
|
|
@ -1,5 +1,4 @@
|
|||
{ config, outputs, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
{
|
||||
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
||||
|
||||
|
@ -28,12 +27,7 @@
|
|||
fsType = "btrfs";
|
||||
};
|
||||
"/home/jimbo/JimboNFS" = {
|
||||
device = "${outputs.ips.wgSpan}.1:/export/JimboNFS";
|
||||
fsType = "nfs4";
|
||||
options = ["x-systemd.automount" "_netdev" "nofail" "noauto"];
|
||||
};
|
||||
"/home/jimbo/FreecornNFS" = {
|
||||
device = "${outputs.secrets.cornIP}:/export/freecornNFS";
|
||||
device = "${config.ips.wgSpan}.1:/export/JimboNFS";
|
||||
fsType = "nfs4";
|
||||
options = ["x-systemd.automount" "_netdev" "nofail" "noauto"];
|
||||
};
|
6
modules/home/default.nix
Normal file
|
@ -0,0 +1,6 @@
|
|||
{ ... }:
|
||||
{
|
||||
programs.home-manager.enable = true;
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
home.stateVersion = "24.05";
|
||||
}
|
Before Width: | Height: | Size: 314 KiB After Width: | Height: | Size: 314 KiB |
Before Width: | Height: | Size: 86 KiB After Width: | Height: | Size: 86 KiB |
BIN
modules/home/files/assets/wallpapers/dogmatica/1.png
Normal file
After Width: | Height: | Size: 1.5 MiB |
BIN
modules/home/files/assets/wallpapers/dogmatica/2.png
Normal file
After Width: | Height: | Size: 820 KiB |
BIN
modules/home/files/assets/wallpapers/dogmatica/3.png
Normal file
After Width: | Height: | Size: 570 KiB |
BIN
modules/home/files/assets/wallpapers/hillorange/1.png
Normal file
After Width: | Height: | Size: 1 MiB |
BIN
modules/home/files/assets/wallpapers/hillorange/2.png
Normal file
After Width: | Height: | Size: 406 KiB |
BIN
modules/home/files/assets/wallpapers/hillorange/3.png
Normal file
After Width: | Height: | Size: 470 KiB |
BIN
modules/home/files/assets/wallpapers/leaves/1.png
Normal file
After Width: | Height: | Size: 1.2 MiB |
BIN
modules/home/files/assets/wallpapers/leaves/2.png
Normal file
After Width: | Height: | Size: 1.8 MiB |
BIN
modules/home/files/assets/wallpapers/leaves/3.png
Normal file
After Width: | Height: | Size: 1.8 MiB |
Before Width: | Height: | Size: 2 MiB After Width: | Height: | Size: 2 MiB |
Before Width: | Height: | Size: 2.3 MiB After Width: | Height: | Size: 2.3 MiB |
Before Width: | Height: | Size: 1.9 MiB After Width: | Height: | Size: 1.9 MiB |
22
modules/home/files/default.nix
Normal file
|
@ -0,0 +1,22 @@
|
|||
{ pkgs, config, ... }: {
|
||||
home.file = {
|
||||
"VMs" = {
|
||||
source = config.lib.file.mkOutOfStoreSymlink "/etc/libvirt/VMs";
|
||||
};
|
||||
".face" = {
|
||||
source = ./assets/pfp.png;
|
||||
};
|
||||
".assets/wallpapers" = {
|
||||
source = ./assets/wallpapers/${config.look.colors.wallpapers};
|
||||
};
|
||||
".assets/lockscreen" = {
|
||||
source = ./assets/lockscreens/holymoly;
|
||||
};
|
||||
".icons/default" = {
|
||||
source = "${pkgs.simp1e-cursors}/share/icons/Simp1e-Dark";
|
||||
};
|
||||
".alsoftrc" = {
|
||||
text = ''drivers=pulse'';
|
||||
};
|
||||
};
|
||||
}
|
8
modules/home/programs/default.nix
Normal file
|
@ -0,0 +1,8 @@
|
|||
{ ... }:
|
||||
{
|
||||
imports = [
|
||||
./gui
|
||||
./terminal
|
||||
./misc
|
||||
];
|
||||
}
|
13
modules/home/programs/gui/default.nix
Normal file
|
@ -0,0 +1,13 @@
|
|||
{ ... }:
|
||||
{
|
||||
imports = [
|
||||
./easyeffects
|
||||
./foot
|
||||
./librewolf
|
||||
./mako
|
||||
./mangohud
|
||||
./mpv
|
||||
./pcmanfm-qt
|
||||
./rofi
|
||||
];
|
||||
}
|
294
modules/home/programs/gui/easyeffects/JimHeadphones.json
Normal file
|
@ -0,0 +1,294 @@
|
|||
{
|
||||
"output": {
|
||||
"blocklist": [],
|
||||
"crystalizer#0": {
|
||||
"band0": {
|
||||
"bypass": false,
|
||||
"intensity": 0.0,
|
||||
"mute": false
|
||||
},
|
||||
"band1": {
|
||||
"bypass": false,
|
||||
"intensity": -1.0,
|
||||
"mute": false
|
||||
},
|
||||
"band2": {
|
||||
"bypass": false,
|
||||
"intensity": -2.0,
|
||||
"mute": false
|
||||
},
|
||||
"band3": {
|
||||
"bypass": false,
|
||||
"intensity": -3.0,
|
||||
"mute": false
|
||||
},
|
||||
"band4": {
|
||||
"bypass": false,
|
||||
"intensity": -4.0,
|
||||
"mute": false
|
||||
},
|
||||
"band5": {
|
||||
"bypass": false,
|
||||
"intensity": -5.0,
|
||||
"mute": false
|
||||
},
|
||||
"band6": {
|
||||
"bypass": false,
|
||||
"intensity": -6.0,
|
||||
"mute": false
|
||||
},
|
||||
"band7": {
|
||||
"bypass": false,
|
||||
"intensity": -7.0,
|
||||
"mute": false
|
||||
},
|
||||
"band8": {
|
||||
"bypass": false,
|
||||
"intensity": -8.0,
|
||||
"mute": false
|
||||
},
|
||||
"band9": {
|
||||
"bypass": false,
|
||||
"intensity": -9.0,
|
||||
"mute": false
|
||||
},
|
||||
"band10": {
|
||||
"bypass": false,
|
||||
"intensity": -10.0,
|
||||
"mute": false
|
||||
},
|
||||
"band11": {
|
||||
"bypass": false,
|
||||
"intensity": -11.0,
|
||||
"mute": false
|
||||
},
|
||||
"band12": {
|
||||
"bypass": false,
|
||||
"intensity": -12.0,
|
||||
"mute": false
|
||||
},
|
||||
"bypass": false,
|
||||
"input-gain": 0.0,
|
||||
"output-gain": 0.0
|
||||
},
|
||||
"equalizer#0": {
|
||||
"balance": 0.0,
|
||||
"bypass": false,
|
||||
"input-gain": 0.0,
|
||||
"left": {
|
||||
"band0": {
|
||||
"frequency": 32.0,
|
||||
"gain": 1.1,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 4.36,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
},
|
||||
"band1": {
|
||||
"frequency": 64.0,
|
||||
"gain": 1.16,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 4.36,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
},
|
||||
"band2": {
|
||||
"frequency": 125.0,
|
||||
"gain": 3.33,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 4.36,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
},
|
||||
"band3": {
|
||||
"frequency": 250.0,
|
||||
"gain": 1.53,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 4.36,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
},
|
||||
"band4": {
|
||||
"frequency": 500.0,
|
||||
"gain": -1.83,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 4.36,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
},
|
||||
"band5": {
|
||||
"frequency": 1000.0,
|
||||
"gain": -0.58,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 4.36,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
},
|
||||
"band6": {
|
||||
"frequency": 2000.0,
|
||||
"gain": 1.42,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 4.36,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
},
|
||||
"band7": {
|
||||
"frequency": 4000.0,
|
||||
"gain": 4.73,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 4.36,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
},
|
||||
"band8": {
|
||||
"frequency": 16000.0,
|
||||
"gain": 7.62,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 4.36,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
},
|
||||
"band9": {
|
||||
"frequency": 156.38,
|
||||
"gain": 2.84,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 4.36,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
}
|
||||
},
|
||||
"mode": "IIR",
|
||||
"num-bands": 10,
|
||||
"output-gain": 0.0,
|
||||
"pitch-left": 0.0,
|
||||
"pitch-right": 0.0,
|
||||
"right": {
|
||||
"band0": {
|
||||
"frequency": 32.0,
|
||||
"gain": 1.1,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 4.36,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
},
|
||||
"band1": {
|
||||
"frequency": 64.0,
|
||||
"gain": 1.16,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 4.36,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
},
|
||||
"band2": {
|
||||
"frequency": 125.0,
|
||||
"gain": 3.33,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 4.36,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
},
|
||||
"band3": {
|
||||
"frequency": 250.0,
|
||||
"gain": 1.53,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 4.36,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
},
|
||||
"band4": {
|
||||
"frequency": 500.0,
|
||||
"gain": -1.83,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 4.36,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
},
|
||||
"band5": {
|
||||
"frequency": 1000.0,
|
||||
"gain": -0.58,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 4.36,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
},
|
||||
"band6": {
|
||||
"frequency": 2000.0,
|
||||
"gain": 1.42,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 4.36,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
},
|
||||
"band7": {
|
||||
"frequency": 4000.0,
|
||||
"gain": 4.73,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 4.36,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
},
|
||||
"band8": {
|
||||
"frequency": 16000.0,
|
||||
"gain": 7.62,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 4.36,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
},
|
||||
"band9": {
|
||||
"frequency": 156.38,
|
||||
"gain": 2.84,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 4.36,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
}
|
||||
},
|
||||
"split-channels": false
|
||||
},
|
||||
"plugins_order": [
|
||||
"equalizer#0",
|
||||
"crystalizer#0"
|
||||
]
|
||||
}
|
||||
}
|
11
modules/home/programs/gui/easyeffects/default.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
easyeffects
|
||||
];
|
||||
file = {
|
||||
".config/easyeffects/output/JimHeadphones.json".source = ./JimHeadphones.json;
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,19 +1,19 @@
|
|||
{outputs, ...}: {
|
||||
# Enable a terminal emulator
|
||||
{ config, ... }:
|
||||
{
|
||||
programs.foot = {
|
||||
enable = true;
|
||||
server.enable = false;
|
||||
settings = {
|
||||
main = {
|
||||
term = "xterm-256color";
|
||||
font = "${outputs.look.fonts.nerd}:size=14.7";
|
||||
font = "${config.look.fonts.nerd}:size=14.7";
|
||||
};
|
||||
cursor = {
|
||||
style = "beam";
|
||||
};
|
||||
colors = {
|
||||
alpha = "0.65";
|
||||
background = "${outputs.look.colors.dark}";
|
||||
alpha = "0.85";
|
||||
background = "${config.look.colors.dark}";
|
||||
regular0 = "3f3f3f";
|
||||
regular1 = "cc0000";
|
||||
regular2 = "4e9a06";
|
|
@ -1,30 +1,31 @@
|
|||
{pkgs, config, outputs, ...}: let
|
||||
# FireFox colors
|
||||
{ pkgs, config, ... }:
|
||||
let
|
||||
# FireFox colors, based on https://github.com/Dook97/firefox-qutebrowser-userchrome
|
||||
themeJim = ''
|
||||
:root {
|
||||
--tab-active-bg-color: #${outputs.look.colors.prime};
|
||||
--tab-hover-bg-color: #${outputs.look.colors.accent};
|
||||
--tab-inactive-bg-color: #${outputs.look.colors.dark};
|
||||
--tab-active-bg-color: #${config.look.colors.prime};
|
||||
--tab-hover-bg-color: #${config.look.colors.accent};
|
||||
--tab-inactive-bg-color: #${config.look.colors.dark};
|
||||
--tab-active-fg-fallback-color: #FFFFFF;
|
||||
--tab-inactive-fg-fallback-color: #${outputs.look.colors.text};
|
||||
--urlbar-focused-bg-color: #${outputs.look.colors.dark};
|
||||
--urlbar-not-focused-bg-color: #${outputs.look.colors.dark};
|
||||
--toolbar-bgcolor: #${outputs.look.colors.dark} !important;
|
||||
--tab-inactive-fg-fallback-color: #${config.look.colors.text};
|
||||
--urlbar-focused-bg-color: #${config.look.colors.dark};
|
||||
--urlbar-not-focused-bg-color: #${config.look.colors.dark};
|
||||
--toolbar-bgcolor: #${config.look.colors.dark} !important;
|
||||
'';
|
||||
themeAlt = ''
|
||||
:root {
|
||||
--tab-active-bg-color: #${outputs.look.colors.dark};
|
||||
--tab-hover-bg-color: #${outputs.look.colors.accent};
|
||||
--tab-inactive-bg-color: #${outputs.look.colors.prime};
|
||||
--tab-active-fg-fallback-color: #${outputs.look.colors.text};
|
||||
--tab-active-bg-color: #${config.look.colors.dark};
|
||||
--tab-hover-bg-color: #${config.look.colors.accent};
|
||||
--tab-inactive-bg-color: #${config.look.colors.prime};
|
||||
--tab-active-fg-fallback-color: #${config.look.colors.text};
|
||||
--tab-inactive-fg-fallback-color: #FFFFFF;
|
||||
--urlbar-focused-bg-color: #${outputs.look.colors.prime};
|
||||
--urlbar-not-focused-bg-color: #${outputs.look.colors.prime};
|
||||
--toolbar-bgcolor: #${outputs.look.colors.prime} !important;
|
||||
--urlbar-focused-bg-color: #${config.look.colors.prime};
|
||||
--urlbar-not-focused-bg-color: #${config.look.colors.prime};
|
||||
--toolbar-bgcolor: #${config.look.colors.prime} !important;
|
||||
'';
|
||||
quteFoxCSS = ''
|
||||
--tab-font: '${outputs.look.fonts.main}';
|
||||
--urlbar-font: '${outputs.look.fonts.main}';
|
||||
--tab-font: '${config.look.fonts.main}';
|
||||
--urlbar-font: '${config.look.fonts.main}';
|
||||
|
||||
/* try increasing if you encounter problems */
|
||||
--urlbar-height-setting: 24px;
|
||||
|
@ -335,9 +336,9 @@ in {
|
|||
};
|
||||
};
|
||||
commonSettings = {
|
||||
"font.name.serif.x-western" = "${outputs.look.fonts.main}";
|
||||
"font.name.sans-serif.x-western" = "${outputs.look.fonts.main}";
|
||||
"font.name.monospace.x-western" = "${outputs.look.fonts.nerd}";
|
||||
"font.name.serif.x-western" = "${config.look.fonts.main}";
|
||||
"font.name.sans-serif.x-western" = "${config.look.fonts.main}";
|
||||
"font.name.monospace.x-western" = "${config.look.fonts.nerd}";
|
||||
"general.autoScroll" = true;
|
||||
"browser.compactmode.show" = true;
|
||||
"browser.uidensity" = 1;
|
|
@ -1,23 +1,22 @@
|
|||
{pkgs, outputs, ...}: {
|
||||
# Notification daemon
|
||||
{ pkgs, config, ... }:
|
||||
{
|
||||
services.mako = {
|
||||
enable = true;
|
||||
borderColor = "#${outputs.look.colors.accent}";
|
||||
backgroundColor = "#${outputs.look.colors.dark}CC";
|
||||
output = "${outputs.displays.d1}";
|
||||
borderColor = "#${config.look.colors.accent}";
|
||||
backgroundColor = "#${config.look.colors.dark}D9";
|
||||
output = "${config.displays.d1}";
|
||||
sort = "+time";
|
||||
layer = "overlay";
|
||||
padding = "8";
|
||||
margin = "0";
|
||||
borderSize = outputs.look.border.int;
|
||||
borderSize = config.look.border.int;
|
||||
maxIconSize = 40;
|
||||
defaultTimeout = 6000;
|
||||
font = "${outputs.look.fonts.main} 12";
|
||||
font = "${config.look.fonts.main} 12";
|
||||
anchor = "bottom-right";
|
||||
extraConfig = "on-button-right=dismiss-all\nouter-margin=10\n[mode=do-not-disturb]\ninvisible=1";
|
||||
};
|
||||
|
||||
# Script to toggle notifications using mako
|
||||
home.packages = let
|
||||
makoToggle = pkgs.writeScriptBin "makotoggle" ''
|
||||
# Run makoctl mode and store the output in a variable
|
|
@ -1,11 +1,11 @@
|
|||
{pkgs, ...}: {
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
mangohud
|
||||
];
|
||||
file = let
|
||||
# Mangohud config file
|
||||
mangoConf = ''
|
||||
file = {
|
||||
".config/MangoHud/MangoHud.conf".text = ''
|
||||
table_columns=2
|
||||
frametime=0
|
||||
legacy_layout=0
|
||||
|
@ -24,9 +24,6 @@
|
|||
gpu_load_change
|
||||
frame_timing
|
||||
'';
|
||||
in {
|
||||
# Mangohud config
|
||||
".config/MangoHud/MangoHud.conf".text = mangoConf;
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
{ ... }:
|
||||
{
|
||||
# MPV settings
|
||||
programs.mpv = {
|
||||
enable = true;
|
||||
config = {
|
|
@ -1,12 +1,12 @@
|
|||
{pkgs, ...}: {
|
||||
# Swappy config file
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
pcmanfm-qt
|
||||
gnome.file-roller
|
||||
];
|
||||
file = let
|
||||
# File manager config
|
||||
pcmanConf = ''
|
||||
file = {
|
||||
".config/pcmanfm-qt/default/settings.conf".text = ''
|
||||
[Behavior]
|
||||
BookmarkOpenMethod=current_tab
|
||||
ConfirmDelete=true
|
||||
|
@ -53,9 +53,6 @@
|
|||
SwitchToNewTab=true
|
||||
TabPaths=@Invalid()
|
||||
'';
|
||||
in {
|
||||
# PCManFM config
|
||||
".config/pcmanfm-qt/default/settings.conf".text = pcmanConf;
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,10 +1,10 @@
|
|||
{pkgs, config, outputs, ...}: {
|
||||
# Enable Rofi
|
||||
{ pkgs, config, ... }:
|
||||
{
|
||||
programs.rofi = {
|
||||
enable = true;
|
||||
package = pkgs.rofi-wayland;
|
||||
terminal = "foot";
|
||||
font = "${outputs.look.fonts.main} 14";
|
||||
font = "${config.look.fonts.main} 14";
|
||||
theme = let
|
||||
inherit (config.lib.formats.rasi) mkLiteral;
|
||||
in {
|
||||
|
@ -15,24 +15,24 @@
|
|||
red = mkLiteral "#DC322F";
|
||||
background-color = mkLiteral "#00000000";
|
||||
separatorcolor = mkLiteral "#00000000";
|
||||
normal-foreground = mkLiteral "#${outputs.look.colors.text}";
|
||||
normal-background = mkLiteral "#${outputs.look.colors.dark}1A";
|
||||
urgent-foreground = mkLiteral "#${outputs.look.colors.urgent}";
|
||||
active-foreground = mkLiteral "#${outputs.look.colors.split}";
|
||||
selected-active-foreground = mkLiteral "#${outputs.look.colors.prime}";
|
||||
background = mkLiteral "#${outputs.look.colors.dark}B3";
|
||||
bordercolor = mkLiteral "#${outputs.look.colors.prime}";
|
||||
normal-foreground = mkLiteral "#${config.look.colors.text}";
|
||||
normal-background = mkLiteral "#${config.look.colors.dark}1A";
|
||||
urgent-foreground = mkLiteral "#${config.look.colors.urgent}";
|
||||
active-foreground = mkLiteral "#${config.look.colors.split}";
|
||||
selected-active-foreground = mkLiteral "#${config.look.colors.prime}";
|
||||
background = mkLiteral "#${config.look.colors.dark}D9";
|
||||
bordercolor = mkLiteral "#${config.look.colors.prime}";
|
||||
selected-normal-foreground = mkLiteral "#FFFFFF";
|
||||
selected-normal-background = mkLiteral "#${outputs.look.colors.prime}80";
|
||||
border-color = mkLiteral "#${outputs.look.colors.prime}";
|
||||
urgent-background = mkLiteral "#${outputs.look.colors.accent}26";
|
||||
active-background = mkLiteral "#${outputs.look.colors.accent}26";
|
||||
selected-active-background = mkLiteral "#${outputs.look.colors.split}54";
|
||||
selected-normal-background = mkLiteral "#${config.look.colors.prime}80";
|
||||
border-color = mkLiteral "#${config.look.colors.prime}";
|
||||
urgent-background = mkLiteral "#${config.look.colors.accent}26";
|
||||
active-background = mkLiteral "#${config.look.colors.accent}26";
|
||||
selected-active-background = mkLiteral "#${config.look.colors.split}54";
|
||||
};
|
||||
"#window" = {
|
||||
background-color = mkLiteral "@background";
|
||||
width = 500;
|
||||
border = mkLiteral "${outputs.look.border.string}";
|
||||
border = mkLiteral "${config.look.border.string}";
|
||||
padding = 5;
|
||||
};
|
||||
"#message" = {
|
||||
|
@ -124,7 +124,7 @@
|
|||
};
|
||||
};
|
||||
home.packages = let
|
||||
# All my rofi scripts in one file
|
||||
# A script to execute commands with Rofi
|
||||
rofiScripts = pkgs.writeScriptBin "rofiscripts" ''
|
||||
# Scratchpad function
|
||||
handle_scratchpads() {
|
||||
|
@ -155,13 +155,13 @@
|
|||
case $RET in
|
||||
Default) swaymsg reload ;;
|
||||
Wide) swaymsg "
|
||||
output ${outputs.displays.d1} enable pos 1680 0 mode 1680x1050@59.954Hz
|
||||
output ${outputs.displays.d2} enable pos 0 0 mode 1680x1050@59.954Hz
|
||||
output ${outputs.displays.d3} enable pos 3360 0 transform 0
|
||||
output ${config.displays.d1} enable pos 1680 0 mode 1680x1050@59.954Hz
|
||||
output ${config.displays.d2} enable pos 0 0 mode 1680x1050@59.954Hz
|
||||
output ${config.displays.d3} enable pos 3360 0 transform 0
|
||||
";;
|
||||
GPU2) swaymsg "
|
||||
output ${outputs.displays.d2} enable pos 1680 0 mode 1920x1080@60Hz
|
||||
output ${outputs.displays.d3} enable pos 0 0 transform 0
|
||||
output ${config.displays.d2} enable pos 1680 0 mode 1920x1080@60Hz
|
||||
output ${config.displays.d3} enable pos 0 0 transform 0
|
||||
";;
|
||||
esac
|
||||
}
|
|
@ -1,4 +1,5 @@
|
|||
{pkgs, ...}: {
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
yt-dlp
|
||||
spotdl
|
7
modules/home/programs/misc/chat/default.nix
Normal file
|
@ -0,0 +1,7 @@
|
|||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
vesktop
|
||||
fractal
|
||||
];
|
||||
}
|
9
modules/home/programs/misc/default.nix
Normal file
|
@ -0,0 +1,9 @@
|
|||
{ ... }:
|
||||
{
|
||||
imports = [
|
||||
./avtools
|
||||
./chat
|
||||
./general
|
||||
./headless
|
||||
];
|
||||
}
|
8
modules/home/programs/misc/gaming/default.nix
Normal file
|
@ -0,0 +1,8 @@
|
|||
{ ... }:
|
||||
{
|
||||
imports = [
|
||||
./launchers
|
||||
./emulators
|
||||
./xash3d
|
||||
];
|
||||
}
|
|
@ -1,10 +1,11 @@
|
|||
{pkgs, ...}: {
|
||||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
dolphin-emu
|
||||
cemu
|
||||
ryujinx
|
||||
duckstation
|
||||
pcsx2
|
||||
unstable.lime3ds
|
||||
#lime3ds
|
||||
];
|
||||
}
|
|
@ -1,4 +1,5 @@
|
|||
{pkgs, ...}: {
|
||||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
steam
|
||||
steam-run
|
|
@ -1,6 +1,6 @@
|
|||
{pkgs, ...}: {
|
||||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
xash3d
|
||||
hlsdk
|
||||
];
|
||||
}
|
|
@ -1,10 +1,9 @@
|
|||
{pkgs, ...}: {
|
||||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
imv
|
||||
qbittorrent
|
||||
libreoffice-fresh
|
||||
vesktop
|
||||
fractal
|
||||
ffmpegthumbnailer
|
||||
thunderbird
|
||||
protonvpn-cli_2
|
13
modules/home/programs/misc/headless/default.nix
Normal file
|
@ -0,0 +1,13 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
gotop
|
||||
tcptrack
|
||||
p7zip
|
||||
vimv
|
||||
dua
|
||||
pciutils
|
||||
usbutils
|
||||
protonvpn-cli_2
|
||||
];
|
||||
}
|
16
modules/home/programs/misc/production/default.nix
Normal file
|
@ -0,0 +1,16 @@
|
|||
{ pkgs, blender-bin, ... }:
|
||||
{
|
||||
imports = [
|
||||
./obs
|
||||
];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
krita
|
||||
inkscape
|
||||
audacity
|
||||
blender_4_2
|
||||
sunvox
|
||||
];
|
||||
|
||||
nixpkgs.overlays = [ blender-bin.overlays.default ];
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
{pkgs, ...}: {
|
||||
# OBS with plugins
|
||||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
programs.obs-studio = {
|
||||
enable = true;
|
||||
plugins = with pkgs.obs-studio-plugins; [
|
|
@ -1,4 +1,5 @@
|
|||
{pkgs, ...}: {
|
||||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
moonlight-qt
|
||||
rustdesk-flutter
|
|
@ -1,9 +1,9 @@
|
|||
{pkgs, ...}: {
|
||||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
remmina
|
||||
freerdp
|
||||
globalprotect-openconnect
|
||||
python3
|
||||
zoom-us
|
||||
globalprotect-openconnect
|
||||
];
|
||||
}
|
11
modules/home/programs/terminal/default.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{ ... }:
|
||||
{
|
||||
imports = [
|
||||
./fastfetch
|
||||
./git
|
||||
./ncmpcpp
|
||||
./neovim
|
||||
./ranger
|
||||
./tmux
|
||||
];
|
||||
}
|