The Blue Update #1
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!
|
Thanks for taking a look at my Nix* flake!
|
||||||
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.
|
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
|
### 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.
|
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.
|
||||||
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.
|
|
||||||
|
|
||||||
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.
|
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, 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.
|
|
||||||
|
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
|
### Usage
|
||||||
My config uses these tools:
|
My config uses these tools:
|
||||||
Sway - Window manager / Desktop
|
``Sway`` - Window manager / Desktop
|
||||||
Foot - Terminal emulator
|
``ZSH`` - Primary shell
|
||||||
Rofi - App launcher and menu system
|
``Foot`` - Terminal emulator
|
||||||
ZSH - Primary shell
|
``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.
|
`flakedate` - Update the flake.lock, which renews the sources of nixpkgs. This is needed to update the system.
|
||||||
`sysswitch` - Switch the system profile.
|
`sysswitch` - Switch the system profile.
|
||||||
`homeswitch` = Switch the user's home-manager 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.
|
`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:
|
For my use, unlocking secrets can be done with this command:
|
||||||
``gpg --pinentry-mode loopback --decrypt local.key.asc | git-crypt unlock -``
|
``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 ❤️
|
Made with love ❤️
|
||||||
|
|
||||||
![image](./preview.png)
|
![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"
|
"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": {
|
"crane": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
@ -123,6 +147,20 @@
|
||||||
"type": "github"
|
"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": {
|
"flake-utils": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems"
|
"systems": "systems"
|
||||||
|
@ -198,6 +236,27 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"home-manager": {
|
"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": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
|
@ -218,6 +277,28 @@
|
||||||
"type": "github"
|
"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": {
|
"lanzaboote": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"crane": "crane",
|
"crane": "crane",
|
||||||
|
@ -288,6 +369,29 @@
|
||||||
"type": "github"
|
"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": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1722221733,
|
"lastModified": 1722221733,
|
||||||
|
@ -366,18 +470,17 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_4": {
|
"nixpkgs_4": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1727540905,
|
"lastModified": 1728740863,
|
||||||
"narHash": "sha256-40J9tW7Y794J7Uw4GwcAKlMxlX2xISBl6IBigo83ih8=",
|
"narHash": "sha256-u+rxA79a0lyhG+u+oPBRtTDtzz8kvkc9a6SWSt9ekVc=",
|
||||||
"owner": "nixos",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "fbca5e745367ae7632731639de5c21f29c8744ed",
|
"rev": "a3f9ad65a0bf298ed5847629a57808b97e6e8077",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nixos",
|
"id": "nixpkgs",
|
||||||
"ref": "nixos-24.05",
|
"ref": "nixos-24.05",
|
||||||
"repo": "nixpkgs",
|
"type": "indirect"
|
||||||
"type": "github"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nur": {
|
"nur": {
|
||||||
|
@ -425,8 +528,9 @@
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"blender-bin": "blender-bin",
|
"blender-bin": "blender-bin",
|
||||||
|
"chaotic": "chaotic",
|
||||||
"hardware": "hardware",
|
"hardware": "hardware",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager_2",
|
||||||
"lanzaboote": "lanzaboote",
|
"lanzaboote": "lanzaboote",
|
||||||
"mailserver": "mailserver",
|
"mailserver": "mailserver",
|
||||||
"minecraft": "minecraft",
|
"minecraft": "minecraft",
|
||||||
|
@ -509,16 +613,15 @@
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1728492678,
|
"lastModified": 1728492678,
|
||||||
"narHash": "sha256-9UTxR8eukdg+XZeHgxW5hQA9fIKHsKCdOIUycTryeVw=",
|
"narHash": "sha256-9UTxR8eukdg+XZeHgxW5hQA9fIKHsKCdOIUycTryeVw=",
|
||||||
"owner": "nixos",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "5633bcff0c6162b9e4b5f1264264611e950c8ec7",
|
"rev": "5633bcff0c6162b9e4b5f1264264611e950c8ec7",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nixos",
|
"id": "nixpkgs",
|
||||||
"ref": "nixos-unstable",
|
"ref": "nixos-unstable",
|
||||||
"repo": "nixpkgs",
|
"type": "indirect"
|
||||||
"type": "github"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"utils": {
|
"utils": {
|
||||||
|
|
118
flake.nix
|
@ -1,97 +1,91 @@
|
||||||
{
|
{
|
||||||
description = "Jimbo's systems as a flake";
|
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05";
|
nixpkgs.url = "nixpkgs/nixos-24.05";
|
||||||
unstable.url = "github:nixos/nixpkgs/nixos-unstable";
|
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";
|
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";
|
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";
|
hardware.url = "github:nixos/nixos-hardware/master";
|
||||||
|
|
||||||
# Secure boot
|
|
||||||
lanzaboote = {
|
lanzaboote = {
|
||||||
url = "github:nix-community/lanzaboote/v0.4.1";
|
url = "github:nix-community/lanzaboote/v0.4.1";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
# Home manager
|
mailserver.url = "gitlab:simple-nixos-mailserver/nixos-mailserver/nixos-24.05";
|
||||||
home-manager = {
|
minecraft.url = "github:Infinidoge/nix-minecraft";
|
||||||
url = "github:nix-community/home-manager/release-24.05";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = {
|
outputs = {
|
||||||
self,
|
|
||||||
nixpkgs,
|
nixpkgs,
|
||||||
unstable,
|
unstable,
|
||||||
|
home-manager,
|
||||||
nur,
|
nur,
|
||||||
mailserver,
|
chaotic,
|
||||||
blender-bin,
|
blender-bin,
|
||||||
hardware,
|
hardware,
|
||||||
lanzaboote,
|
lanzaboote,
|
||||||
home-manager,
|
mailserver,
|
||||||
|
minecraft,
|
||||||
...
|
...
|
||||||
}@inputs: let
|
}:
|
||||||
mkNixos = modules: nixpkgs.lib.nixosSystem {
|
let
|
||||||
|
mkNix = modules: nixpkgs.lib.nixosSystem {
|
||||||
inherit modules;
|
inherit modules;
|
||||||
specialArgs = { inherit (self) inputs outputs; };
|
specialArgs = {
|
||||||
|
inherit
|
||||||
|
unstable
|
||||||
|
chaotic
|
||||||
|
hardware
|
||||||
|
lanzaboote
|
||||||
|
mailserver
|
||||||
|
minecraft
|
||||||
|
;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
mkHome = modules: pkgs: home-manager.lib.homeManagerConfiguration {
|
mkHome = modules: pkgs: home-manager.lib.homeManagerConfiguration {
|
||||||
inherit modules pkgs;
|
inherit modules pkgs;
|
||||||
extraSpecialArgs = { inherit (self) inputs outputs; };
|
extraSpecialArgs = {
|
||||||
|
inherit
|
||||||
|
unstable
|
||||||
|
nur
|
||||||
|
blender-bin
|
||||||
|
;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
# Your custom packages and modifications, exported as overlays
|
# nixos-rebuild switch --flake .#hostname
|
||||||
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'
|
|
||||||
nixosConfigurations = {
|
nixosConfigurations = {
|
||||||
JimDesktop = mkNixos [
|
# PCs and Laptops
|
||||||
./system/hosts/JimDesktop/configuration.nix
|
firefly = mkNix [ ./hosts/firefly/system ];
|
||||||
lanzaboote.nixosModules.lanzaboote
|
shuttleworth = mkNix [ ./hosts/shuttleworth/system ];
|
||||||
];
|
lacros = mkNix [ ./hosts/lacros/system ];
|
||||||
JimServer = mkNixos [
|
redmond = mkNix [ ./hosts/redmond/system ];
|
||||||
./system/hosts/JimServer/configuration.nix
|
|
||||||
mailserver.nixosModule
|
# Servers
|
||||||
];
|
cyberspark = mkNix [ ./hosts/cyberspark/system ];
|
||||||
JimPine = mkNixos [
|
bomberman = mkNix [ ./hosts/bomberman/system ];
|
||||||
./system/hosts/JimPine/configuration.nix
|
|
||||||
hardware.nixosModules.pine64-pinebook-pro
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# Home-manager configuration: 'home-manager --flake .#username@hostname'
|
# home-manager switch --flake .#username@hostname
|
||||||
homeConfigurations = {
|
homeConfigurations = {
|
||||||
"jimbo@JimDesktop" = mkHome [
|
"jimbo@firefly" = mkHome [ ./hosts/firefly/home ] nixpkgs.legacyPackages.x86_64-linux;
|
||||||
./home/hosts/JimDesktop/home.nix
|
"jimbo@shuttleworth" = mkHome [ ./hosts/shuttleworth/home ] nixpkgs.legacyPackages.aarch64-linux;
|
||||||
nur.nixosModules.nur
|
"jimbo@lacros" = mkHome [ ./hosts/lacros/home ] nixpkgs.legacyPackages.x86_64-linux;
|
||||||
] nixpkgs.legacyPackages.x86_64-linux;
|
"jimbo@redmond" = mkHome [ ./hosts/redmond/home ] nixpkgs.legacyPackages.x86_64-linux;
|
||||||
|
|
||||||
"jimbo@JimServer" = mkHome [
|
"jimbo@cyberspark" = mkHome [ ./hosts/cyberspark/home ] nixpkgs.legacyPackages.x86_64-linux;
|
||||||
./home/hosts/JimServer/home.nix
|
"jimbo@bomberman" = mkHome [ ./hosts/bomberman/home ] nixpkgs.legacyPackages.aarch64-linux;
|
||||||
] 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;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
{ config, lib, modulesPath, ... }:
|
||||||
# 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 {
|
|
||||||
imports = [
|
imports = [
|
||||||
(modulesPath + "/installer/scan/not-detected.nix")
|
(modulesPath + "/installer/scan/not-detected.nix")
|
||||||
];
|
];
|
||||||
|
|
||||||
boot = {
|
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 = {
|
initrd = {
|
||||||
availableKernelModules = [
|
availableKernelModules = [
|
||||||
"nvme"
|
"nvme"
|
||||||
|
@ -41,32 +15,15 @@ in {
|
||||||
"sd_mod"
|
"sd_mod"
|
||||||
];
|
];
|
||||||
kernelModules = [
|
kernelModules = [
|
||||||
|
"dm-snapshot"
|
||||||
"vfio"
|
"vfio"
|
||||||
"vfio_pci"
|
"vfio_pci"
|
||||||
"vfio_iommu_type1"
|
"vfio_iommu_type1"
|
||||||
"kvm-amd"
|
"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 = {
|
fileSystems = {
|
||||||
"/" = {
|
"/" = {
|
||||||
device = "/dev/disk/by-uuid/bbfed7d1-62f2-4d8e-b63f-7f6ec932105b";
|
device = "/dev/disk/by-uuid/bbfed7d1-62f2-4d8e-b63f-7f6ec932105b";
|
||||||
|
@ -88,6 +45,11 @@ in {
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "subvol=@var" "noatime" "nodiratime" "discard" ];
|
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" = {
|
"/boot" = {
|
||||||
device = "/dev/disk/by-uuid/3B4A-76C9";
|
device = "/dev/disk/by-uuid/3B4A-76C9";
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
|
@ -129,19 +91,57 @@ in {
|
||||||
};
|
};
|
||||||
|
|
||||||
# Network mounts
|
# Network mounts
|
||||||
"/home/jimbo/JimboNFS" = {
|
"/home/jimbo/JimboNFS/Downloads" = {
|
||||||
device = "${outputs.ips.server}:/export/JimboNFS";
|
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";
|
fsType = "nfs4";
|
||||||
options = [ "x-systemd.automount" "_netdev" "nofail" "noauto" ];
|
options = [ "x-systemd.automount" "_netdev" "nofail" "noauto" ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Set the swap partition
|
|
||||||
swapDevices = [
|
swapDevices = [
|
||||||
{ device = "/dev/disk/by-uuid/1a6a68d0-8ae7-4836-a585-b708597937a1"; }
|
{ device = "/dev/disk/by-uuid/1a6a68d0-8ae7-4836-a585-b708597937a1"; }
|
||||||
];
|
];
|
||||||
|
|
||||||
# Enables DHCP on each ethernet and wireless interface.
|
|
||||||
networking.useDHCP = lib.mkDefault true;
|
networking.useDHCP = lib.mkDefault true;
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
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 = [
|
imports = [
|
||||||
(modulesPath + "/installer/scan/not-detected.nix")
|
(modulesPath + "/installer/scan/not-detected.nix")
|
||||||
];
|
];
|
||||||
|
|
||||||
# Set all boot options
|
|
||||||
boot = {
|
boot = {
|
||||||
# Set a kernel version and load/blacklist drivers
|
|
||||||
kernelPackages = pkgs.linuxPackages_zen;
|
|
||||||
blacklistedKernelModules = [
|
|
||||||
"pcspkr"
|
|
||||||
];
|
|
||||||
kernel.sysctl."vm.max_map_count" = 2147483642;
|
|
||||||
initrd = {
|
initrd = {
|
||||||
availableKernelModules = [
|
availableKernelModules = [
|
||||||
"nvme"
|
|
||||||
"xhci_pci"
|
"xhci_pci"
|
||||||
"usbhid"
|
"ahci"
|
||||||
"usb_storage"
|
"ehci_pci"
|
||||||
"sd_mod"
|
"sd_mod"
|
||||||
|
"sr_mod"
|
||||||
"sdhci_pci"
|
"sdhci_pci"
|
||||||
];
|
"rtsx_usb_sdmmc"
|
||||||
kernelModules = [
|
|
||||||
"kvm-amd"
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
kernelModules = [ "kvm-amd" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
# Mount everything as necessary
|
|
||||||
fileSystems = {
|
fileSystems = {
|
||||||
"/" = {
|
"/" = {
|
||||||
device = "/dev/disk/by-uuid/c0fe8419-88f9-48a0-8c5b-acd4c11f8037";
|
device = "/dev/disk/by-uuid/c0fe8419-88f9-48a0-8c5b-acd4c11f8037";
|
||||||
|
@ -37,11 +29,14 @@
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
options = [ "fmask=0022" "dmask=0022" ];
|
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;
|
networking.useDHCP = lib.mkDefault true;
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
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") ];
|
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
||||||
|
|
||||||
|
@ -28,12 +27,7 @@
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
};
|
};
|
||||||
"/home/jimbo/JimboNFS" = {
|
"/home/jimbo/JimboNFS" = {
|
||||||
device = "${outputs.ips.wgSpan}.1:/export/JimboNFS";
|
device = "${config.ips.wgSpan}.1:/export/JimboNFS";
|
||||||
fsType = "nfs4";
|
|
||||||
options = ["x-systemd.automount" "_netdev" "nofail" "noauto"];
|
|
||||||
};
|
|
||||||
"/home/jimbo/FreecornNFS" = {
|
|
||||||
device = "${outputs.secrets.cornIP}:/export/freecornNFS";
|
|
||||||
fsType = "nfs4";
|
fsType = "nfs4";
|
||||||
options = ["x-systemd.automount" "_netdev" "nofail" "noauto"];
|
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, ...}: {
|
{ config, ... }:
|
||||||
# Enable a terminal emulator
|
{
|
||||||
programs.foot = {
|
programs.foot = {
|
||||||
enable = true;
|
enable = true;
|
||||||
server.enable = false;
|
server.enable = false;
|
||||||
settings = {
|
settings = {
|
||||||
main = {
|
main = {
|
||||||
term = "xterm-256color";
|
term = "xterm-256color";
|
||||||
font = "${outputs.look.fonts.nerd}:size=14.7";
|
font = "${config.look.fonts.nerd}:size=14.7";
|
||||||
};
|
};
|
||||||
cursor = {
|
cursor = {
|
||||||
style = "beam";
|
style = "beam";
|
||||||
};
|
};
|
||||||
colors = {
|
colors = {
|
||||||
alpha = "0.65";
|
alpha = "0.85";
|
||||||
background = "${outputs.look.colors.dark}";
|
background = "${config.look.colors.dark}";
|
||||||
regular0 = "3f3f3f";
|
regular0 = "3f3f3f";
|
||||||
regular1 = "cc0000";
|
regular1 = "cc0000";
|
||||||
regular2 = "4e9a06";
|
regular2 = "4e9a06";
|
|
@ -1,30 +1,31 @@
|
||||||
{pkgs, config, outputs, ...}: let
|
{ pkgs, config, ... }:
|
||||||
# FireFox colors
|
let
|
||||||
|
# FireFox colors, based on https://github.com/Dook97/firefox-qutebrowser-userchrome
|
||||||
themeJim = ''
|
themeJim = ''
|
||||||
:root {
|
:root {
|
||||||
--tab-active-bg-color: #${outputs.look.colors.prime};
|
--tab-active-bg-color: #${config.look.colors.prime};
|
||||||
--tab-hover-bg-color: #${outputs.look.colors.accent};
|
--tab-hover-bg-color: #${config.look.colors.accent};
|
||||||
--tab-inactive-bg-color: #${outputs.look.colors.dark};
|
--tab-inactive-bg-color: #${config.look.colors.dark};
|
||||||
--tab-active-fg-fallback-color: #FFFFFF;
|
--tab-active-fg-fallback-color: #FFFFFF;
|
||||||
--tab-inactive-fg-fallback-color: #${outputs.look.colors.text};
|
--tab-inactive-fg-fallback-color: #${config.look.colors.text};
|
||||||
--urlbar-focused-bg-color: #${outputs.look.colors.dark};
|
--urlbar-focused-bg-color: #${config.look.colors.dark};
|
||||||
--urlbar-not-focused-bg-color: #${outputs.look.colors.dark};
|
--urlbar-not-focused-bg-color: #${config.look.colors.dark};
|
||||||
--toolbar-bgcolor: #${outputs.look.colors.dark} !important;
|
--toolbar-bgcolor: #${config.look.colors.dark} !important;
|
||||||
'';
|
'';
|
||||||
themeAlt = ''
|
themeAlt = ''
|
||||||
:root {
|
:root {
|
||||||
--tab-active-bg-color: #${outputs.look.colors.dark};
|
--tab-active-bg-color: #${config.look.colors.dark};
|
||||||
--tab-hover-bg-color: #${outputs.look.colors.accent};
|
--tab-hover-bg-color: #${config.look.colors.accent};
|
||||||
--tab-inactive-bg-color: #${outputs.look.colors.prime};
|
--tab-inactive-bg-color: #${config.look.colors.prime};
|
||||||
--tab-active-fg-fallback-color: #${outputs.look.colors.text};
|
--tab-active-fg-fallback-color: #${config.look.colors.text};
|
||||||
--tab-inactive-fg-fallback-color: #FFFFFF;
|
--tab-inactive-fg-fallback-color: #FFFFFF;
|
||||||
--urlbar-focused-bg-color: #${outputs.look.colors.prime};
|
--urlbar-focused-bg-color: #${config.look.colors.prime};
|
||||||
--urlbar-not-focused-bg-color: #${outputs.look.colors.prime};
|
--urlbar-not-focused-bg-color: #${config.look.colors.prime};
|
||||||
--toolbar-bgcolor: #${outputs.look.colors.prime} !important;
|
--toolbar-bgcolor: #${config.look.colors.prime} !important;
|
||||||
'';
|
'';
|
||||||
quteFoxCSS = ''
|
quteFoxCSS = ''
|
||||||
--tab-font: '${outputs.look.fonts.main}';
|
--tab-font: '${config.look.fonts.main}';
|
||||||
--urlbar-font: '${outputs.look.fonts.main}';
|
--urlbar-font: '${config.look.fonts.main}';
|
||||||
|
|
||||||
/* try increasing if you encounter problems */
|
/* try increasing if you encounter problems */
|
||||||
--urlbar-height-setting: 24px;
|
--urlbar-height-setting: 24px;
|
||||||
|
@ -335,9 +336,9 @@ in {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
commonSettings = {
|
commonSettings = {
|
||||||
"font.name.serif.x-western" = "${outputs.look.fonts.main}";
|
"font.name.serif.x-western" = "${config.look.fonts.main}";
|
||||||
"font.name.sans-serif.x-western" = "${outputs.look.fonts.main}";
|
"font.name.sans-serif.x-western" = "${config.look.fonts.main}";
|
||||||
"font.name.monospace.x-western" = "${outputs.look.fonts.nerd}";
|
"font.name.monospace.x-western" = "${config.look.fonts.nerd}";
|
||||||
"general.autoScroll" = true;
|
"general.autoScroll" = true;
|
||||||
"browser.compactmode.show" = true;
|
"browser.compactmode.show" = true;
|
||||||
"browser.uidensity" = 1;
|
"browser.uidensity" = 1;
|
|
@ -1,23 +1,22 @@
|
||||||
{pkgs, outputs, ...}: {
|
{ pkgs, config, ... }:
|
||||||
# Notification daemon
|
{
|
||||||
services.mako = {
|
services.mako = {
|
||||||
enable = true;
|
enable = true;
|
||||||
borderColor = "#${outputs.look.colors.accent}";
|
borderColor = "#${config.look.colors.accent}";
|
||||||
backgroundColor = "#${outputs.look.colors.dark}CC";
|
backgroundColor = "#${config.look.colors.dark}D9";
|
||||||
output = "${outputs.displays.d1}";
|
output = "${config.displays.d1}";
|
||||||
sort = "+time";
|
sort = "+time";
|
||||||
layer = "overlay";
|
layer = "overlay";
|
||||||
padding = "8";
|
padding = "8";
|
||||||
margin = "0";
|
margin = "0";
|
||||||
borderSize = outputs.look.border.int;
|
borderSize = config.look.border.int;
|
||||||
maxIconSize = 40;
|
maxIconSize = 40;
|
||||||
defaultTimeout = 6000;
|
defaultTimeout = 6000;
|
||||||
font = "${outputs.look.fonts.main} 12";
|
font = "${config.look.fonts.main} 12";
|
||||||
anchor = "bottom-right";
|
anchor = "bottom-right";
|
||||||
extraConfig = "on-button-right=dismiss-all\nouter-margin=10\n[mode=do-not-disturb]\ninvisible=1";
|
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
|
home.packages = let
|
||||||
makoToggle = pkgs.writeScriptBin "makotoggle" ''
|
makoToggle = pkgs.writeScriptBin "makotoggle" ''
|
||||||
# Run makoctl mode and store the output in a variable
|
# Run makoctl mode and store the output in a variable
|
|
@ -1,11 +1,11 @@
|
||||||
{pkgs, ...}: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
home = {
|
home = {
|
||||||
packages = with pkgs; [
|
packages = with pkgs; [
|
||||||
mangohud
|
mangohud
|
||||||
];
|
];
|
||||||
file = let
|
file = {
|
||||||
# Mangohud config file
|
".config/MangoHud/MangoHud.conf".text = ''
|
||||||
mangoConf = ''
|
|
||||||
table_columns=2
|
table_columns=2
|
||||||
frametime=0
|
frametime=0
|
||||||
legacy_layout=0
|
legacy_layout=0
|
||||||
|
@ -24,9 +24,6 @@
|
||||||
gpu_load_change
|
gpu_load_change
|
||||||
frame_timing
|
frame_timing
|
||||||
'';
|
'';
|
||||||
in {
|
|
||||||
# Mangohud config
|
|
||||||
".config/MangoHud/MangoHud.conf".text = mangoConf;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
|
@ -1,5 +1,5 @@
|
||||||
|
{ ... }:
|
||||||
{
|
{
|
||||||
# MPV settings
|
|
||||||
programs.mpv = {
|
programs.mpv = {
|
||||||
enable = true;
|
enable = true;
|
||||||
config = {
|
config = {
|
|
@ -1,12 +1,12 @@
|
||||||
{pkgs, ...}: {
|
{ pkgs, ... }:
|
||||||
# Swappy config file
|
{
|
||||||
home = {
|
home = {
|
||||||
packages = with pkgs; [
|
packages = with pkgs; [
|
||||||
pcmanfm-qt
|
pcmanfm-qt
|
||||||
|
gnome.file-roller
|
||||||
];
|
];
|
||||||
file = let
|
file = {
|
||||||
# File manager config
|
".config/pcmanfm-qt/default/settings.conf".text = ''
|
||||||
pcmanConf = ''
|
|
||||||
[Behavior]
|
[Behavior]
|
||||||
BookmarkOpenMethod=current_tab
|
BookmarkOpenMethod=current_tab
|
||||||
ConfirmDelete=true
|
ConfirmDelete=true
|
||||||
|
@ -53,9 +53,6 @@
|
||||||
SwitchToNewTab=true
|
SwitchToNewTab=true
|
||||||
TabPaths=@Invalid()
|
TabPaths=@Invalid()
|
||||||
'';
|
'';
|
||||||
in {
|
|
||||||
# PCManFM config
|
|
||||||
".config/pcmanfm-qt/default/settings.conf".text = pcmanConf;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
|
@ -1,10 +1,10 @@
|
||||||
{pkgs, config, outputs, ...}: {
|
{ pkgs, config, ... }:
|
||||||
# Enable Rofi
|
{
|
||||||
programs.rofi = {
|
programs.rofi = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.rofi-wayland;
|
package = pkgs.rofi-wayland;
|
||||||
terminal = "foot";
|
terminal = "foot";
|
||||||
font = "${outputs.look.fonts.main} 14";
|
font = "${config.look.fonts.main} 14";
|
||||||
theme = let
|
theme = let
|
||||||
inherit (config.lib.formats.rasi) mkLiteral;
|
inherit (config.lib.formats.rasi) mkLiteral;
|
||||||
in {
|
in {
|
||||||
|
@ -15,24 +15,24 @@
|
||||||
red = mkLiteral "#DC322F";
|
red = mkLiteral "#DC322F";
|
||||||
background-color = mkLiteral "#00000000";
|
background-color = mkLiteral "#00000000";
|
||||||
separatorcolor = mkLiteral "#00000000";
|
separatorcolor = mkLiteral "#00000000";
|
||||||
normal-foreground = mkLiteral "#${outputs.look.colors.text}";
|
normal-foreground = mkLiteral "#${config.look.colors.text}";
|
||||||
normal-background = mkLiteral "#${outputs.look.colors.dark}1A";
|
normal-background = mkLiteral "#${config.look.colors.dark}1A";
|
||||||
urgent-foreground = mkLiteral "#${outputs.look.colors.urgent}";
|
urgent-foreground = mkLiteral "#${config.look.colors.urgent}";
|
||||||
active-foreground = mkLiteral "#${outputs.look.colors.split}";
|
active-foreground = mkLiteral "#${config.look.colors.split}";
|
||||||
selected-active-foreground = mkLiteral "#${outputs.look.colors.prime}";
|
selected-active-foreground = mkLiteral "#${config.look.colors.prime}";
|
||||||
background = mkLiteral "#${outputs.look.colors.dark}B3";
|
background = mkLiteral "#${config.look.colors.dark}D9";
|
||||||
bordercolor = mkLiteral "#${outputs.look.colors.prime}";
|
bordercolor = mkLiteral "#${config.look.colors.prime}";
|
||||||
selected-normal-foreground = mkLiteral "#FFFFFF";
|
selected-normal-foreground = mkLiteral "#FFFFFF";
|
||||||
selected-normal-background = mkLiteral "#${outputs.look.colors.prime}80";
|
selected-normal-background = mkLiteral "#${config.look.colors.prime}80";
|
||||||
border-color = mkLiteral "#${outputs.look.colors.prime}";
|
border-color = mkLiteral "#${config.look.colors.prime}";
|
||||||
urgent-background = mkLiteral "#${outputs.look.colors.accent}26";
|
urgent-background = mkLiteral "#${config.look.colors.accent}26";
|
||||||
active-background = mkLiteral "#${outputs.look.colors.accent}26";
|
active-background = mkLiteral "#${config.look.colors.accent}26";
|
||||||
selected-active-background = mkLiteral "#${outputs.look.colors.split}54";
|
selected-active-background = mkLiteral "#${config.look.colors.split}54";
|
||||||
};
|
};
|
||||||
"#window" = {
|
"#window" = {
|
||||||
background-color = mkLiteral "@background";
|
background-color = mkLiteral "@background";
|
||||||
width = 500;
|
width = 500;
|
||||||
border = mkLiteral "${outputs.look.border.string}";
|
border = mkLiteral "${config.look.border.string}";
|
||||||
padding = 5;
|
padding = 5;
|
||||||
};
|
};
|
||||||
"#message" = {
|
"#message" = {
|
||||||
|
@ -124,7 +124,7 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
home.packages = let
|
home.packages = let
|
||||||
# All my rofi scripts in one file
|
# A script to execute commands with Rofi
|
||||||
rofiScripts = pkgs.writeScriptBin "rofiscripts" ''
|
rofiScripts = pkgs.writeScriptBin "rofiscripts" ''
|
||||||
# Scratchpad function
|
# Scratchpad function
|
||||||
handle_scratchpads() {
|
handle_scratchpads() {
|
||||||
|
@ -155,13 +155,13 @@
|
||||||
case $RET in
|
case $RET in
|
||||||
Default) swaymsg reload ;;
|
Default) swaymsg reload ;;
|
||||||
Wide) swaymsg "
|
Wide) swaymsg "
|
||||||
output ${outputs.displays.d1} enable pos 1680 0 mode 1680x1050@59.954Hz
|
output ${config.displays.d1} enable pos 1680 0 mode 1680x1050@59.954Hz
|
||||||
output ${outputs.displays.d2} enable pos 0 0 mode 1680x1050@59.954Hz
|
output ${config.displays.d2} enable pos 0 0 mode 1680x1050@59.954Hz
|
||||||
output ${outputs.displays.d3} enable pos 3360 0 transform 0
|
output ${config.displays.d3} enable pos 3360 0 transform 0
|
||||||
";;
|
";;
|
||||||
GPU2) swaymsg "
|
GPU2) swaymsg "
|
||||||
output ${outputs.displays.d2} enable pos 1680 0 mode 1920x1080@60Hz
|
output ${config.displays.d2} enable pos 1680 0 mode 1920x1080@60Hz
|
||||||
output ${outputs.displays.d3} enable pos 0 0 transform 0
|
output ${config.displays.d3} enable pos 0 0 transform 0
|
||||||
";;
|
";;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
|
@ -1,4 +1,5 @@
|
||||||
{pkgs, ...}: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
yt-dlp
|
yt-dlp
|
||||||
spotdl
|
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; [
|
home.packages = with pkgs; [
|
||||||
dolphin-emu
|
dolphin-emu
|
||||||
cemu
|
cemu
|
||||||
ryujinx
|
ryujinx
|
||||||
duckstation
|
duckstation
|
||||||
pcsx2
|
pcsx2
|
||||||
unstable.lime3ds
|
#lime3ds
|
||||||
];
|
];
|
||||||
}
|
}
|
|
@ -1,4 +1,5 @@
|
||||||
{pkgs, ...}: {
|
{ pkgs, lib, config, ... }:
|
||||||
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
steam
|
steam
|
||||||
steam-run
|
steam-run
|
|
@ -1,6 +1,6 @@
|
||||||
{pkgs, ...}: {
|
{ pkgs, lib, config, ... }:
|
||||||
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
xash3d
|
xash3d
|
||||||
hlsdk
|
|
||||||
];
|
];
|
||||||
}
|
}
|
|
@ -1,10 +1,9 @@
|
||||||
{pkgs, ...}: {
|
{ pkgs, lib, config, ... }:
|
||||||
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
imv
|
imv
|
||||||
qbittorrent
|
qbittorrent
|
||||||
libreoffice-fresh
|
libreoffice-fresh
|
||||||
vesktop
|
|
||||||
fractal
|
|
||||||
ffmpegthumbnailer
|
ffmpegthumbnailer
|
||||||
thunderbird
|
thunderbird
|
||||||
protonvpn-cli_2
|
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, ...}: {
|
{ pkgs, lib, config, ... }:
|
||||||
# OBS with plugins
|
{
|
||||||
programs.obs-studio = {
|
programs.obs-studio = {
|
||||||
enable = true;
|
enable = true;
|
||||||
plugins = with pkgs.obs-studio-plugins; [
|
plugins = with pkgs.obs-studio-plugins; [
|
|
@ -1,4 +1,5 @@
|
||||||
{pkgs, ...}: {
|
{ pkgs, lib, config, ... }:
|
||||||
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
moonlight-qt
|
moonlight-qt
|
||||||
rustdesk-flutter
|
rustdesk-flutter
|
|
@ -1,9 +1,9 @@
|
||||||
{pkgs, ...}: {
|
{ pkgs, lib, config, ... }:
|
||||||
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
remmina
|
remmina
|
||||||
freerdp
|
freerdp
|
||||||
globalprotect-openconnect
|
|
||||||
python3
|
|
||||||
zoom-us
|
zoom-us
|
||||||
|
globalprotect-openconnect
|
||||||
];
|
];
|
||||||
}
|
}
|
11
modules/home/programs/terminal/default.nix
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./fastfetch
|
||||||
|
./git
|
||||||
|
./ncmpcpp
|
||||||
|
./neovim
|
||||||
|
./ranger
|
||||||
|
./tmux
|
||||||
|
];
|
||||||
|
}
|