Compare commits
No commits in common. "0d8a07bd54b417b41f2882148854b4514e37e91a" and "4d7bd7ecfa72601a7367ae3d31fcc1e41cfd5ea0" have entirely different histories.
0d8a07bd54
...
4d7bd7ecfa
2
.gitattributes
vendored
|
@ -1 +1 @@
|
||||||
variables/secrets/** filter=git-crypt diff=git-crypt
|
extras/secrets.nix filter=git-crypt diff=git-crypt
|
||||||
|
|
34
README.md
|
@ -1,39 +1,33 @@
|
||||||
## Jimbo's Nix Systems
|
## My Nix files, now organized in a flake.
|
||||||
|
|
||||||
Thanks for taking a look at my Nix* flake!
|
Thanks for taking a look at my Nix* configs!
|
||||||
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.
|
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.
|
||||||
|
|
||||||
### Installation
|
### Installation
|
||||||
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.
|
Installing any of my flakes onto a system should be done after any initial install. I would opt to do a minimal install, but this is up to you.
|
||||||
|
After installing NixOS, backup your hardware-config.nix file, so you can adapt it to fit the format of ``nixos/hardware/machines``, then adjusting the other referenced files in the flake.nix file to reference your specific computer.
|
||||||
|
|
||||||
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.
|
An initial install will have to be ran as ``nixos-rebuild switch --flake /etc/nixos/.#HOSTNAME``, where HOSTNAME is a hostname defined in your flake. You may also have to enable "experimental" features with a flag, such as nix-command and flakes.
|
||||||
|
Home-Manager is handled separately, despite being in the same folder. A rebuild of a user's home would have to be done with ``home-manager switch --flake /etc/nixos``. This will pull the config as defined in the flake as ``USER@HOSTNAME``, where USER is the user running the ``home-manager`` command.
|
||||||
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
|
||||||
``ZSH`` - Primary shell
|
Foot - Terminal emulator
|
||||||
``Foot`` - Terminal emulator
|
Rofi - App launcher and menu system
|
||||||
``Rofi`` - App launcher and menu system
|
ZSH - Primary shell
|
||||||
|
|
||||||
I have defined shell aliases in ZSH for rebuilding different parts of Nix, they are as follows:
|
I have made shell aliases in ZSH for rebuilding the system. 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 both user and system profile.
|
`nixswitch` = Switch to new config for both user and system.
|
||||||
`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 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.
|
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.
|
||||||
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)
|
||||||
|
|
4
extras/cmd.nix
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
{
|
||||||
|
auth = "doas";
|
||||||
|
nixcfg = "ranger /etc/nixos";
|
||||||
|
}
|
6
extras/displays.nix
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
d1 = "DP-3";
|
||||||
|
d2 = "DP-1";
|
||||||
|
d3 = "DP-2";
|
||||||
|
dI = "eDP-1";
|
||||||
|
}
|
11
extras/ips.nix
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
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";
|
||||||
|
}
|
21
extras/look.nix
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
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;
|
||||||
|
};
|
||||||
|
}
|
17
extras/overlays.nix
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
{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;
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}
|
5
extras/pkgs/default.nix
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
# Custom packages, that can be defined similarly to nixpkgs
|
||||||
|
{pkgs, ...}: {
|
||||||
|
xash3d = pkgs.callPackage ./xash/xash3d.nix {};
|
||||||
|
hlsdk = pkgs.callPackage ./xash/hlsdk.nix {};
|
||||||
|
}
|
72
extras/secrets-template.nix
Normal file
|
@ -0,0 +1,72 @@
|
||||||
|
{
|
||||||
|
# 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 = "";
|
||||||
|
}
|
BIN
extras/secrets.nix
Normal file
21
extras/workspaces.nix
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
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,30 +33,6 @@
|
||||||
"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": [
|
||||||
|
@ -147,20 +123,6 @@
|
||||||
"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"
|
||||||
|
@ -236,27 +198,6 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"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"
|
||||||
|
@ -277,28 +218,6 @@
|
||||||
"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",
|
||||||
|
@ -369,29 +288,6 @@
|
||||||
"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,
|
||||||
|
@ -470,17 +366,18 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_4": {
|
"nixpkgs_4": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1728740863,
|
"lastModified": 1727540905,
|
||||||
"narHash": "sha256-u+rxA79a0lyhG+u+oPBRtTDtzz8kvkc9a6SWSt9ekVc=",
|
"narHash": "sha256-40J9tW7Y794J7Uw4GwcAKlMxlX2xISBl6IBigo83ih8=",
|
||||||
"owner": "NixOS",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "a3f9ad65a0bf298ed5847629a57808b97e6e8077",
|
"rev": "fbca5e745367ae7632731639de5c21f29c8744ed",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"id": "nixpkgs",
|
"owner": "nixos",
|
||||||
"ref": "nixos-24.05",
|
"ref": "nixos-24.05",
|
||||||
"type": "indirect"
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nur": {
|
"nur": {
|
||||||
|
@ -528,9 +425,8 @@
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"blender-bin": "blender-bin",
|
"blender-bin": "blender-bin",
|
||||||
"chaotic": "chaotic",
|
|
||||||
"hardware": "hardware",
|
"hardware": "hardware",
|
||||||
"home-manager": "home-manager_2",
|
"home-manager": "home-manager",
|
||||||
"lanzaboote": "lanzaboote",
|
"lanzaboote": "lanzaboote",
|
||||||
"mailserver": "mailserver",
|
"mailserver": "mailserver",
|
||||||
"minecraft": "minecraft",
|
"minecraft": "minecraft",
|
||||||
|
@ -613,15 +509,16 @@
|
||||||
"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": {
|
||||||
"id": "nixpkgs",
|
"owner": "nixos",
|
||||||
"ref": "nixos-unstable",
|
"ref": "nixos-unstable",
|
||||||
"type": "indirect"
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"utils": {
|
"utils": {
|
||||||
|
|
118
flake.nix
|
@ -1,91 +1,97 @@
|
||||||
{
|
{
|
||||||
|
description = "Jimbo's systems as a flake";
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "nixpkgs/nixos-24.05";
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05";
|
||||||
unstable.url = "nixpkgs/nixos-unstable";
|
unstable.url = "github:nixos/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";
|
||||||
chaotic = {
|
mailserver.url = "gitlab:simple-nixos-mailserver/nixos-mailserver/nixos-24.05";
|
||||||
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";
|
||||||
};
|
};
|
||||||
|
|
||||||
mailserver.url = "gitlab:simple-nixos-mailserver/nixos-mailserver/nixos-24.05";
|
# Home manager
|
||||||
minecraft.url = "github:Infinidoge/nix-minecraft";
|
home-manager = {
|
||||||
|
url = "github:nix-community/home-manager/release-24.05";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = {
|
outputs = {
|
||||||
|
self,
|
||||||
nixpkgs,
|
nixpkgs,
|
||||||
unstable,
|
unstable,
|
||||||
home-manager,
|
|
||||||
nur,
|
nur,
|
||||||
chaotic,
|
mailserver,
|
||||||
blender-bin,
|
blender-bin,
|
||||||
hardware,
|
hardware,
|
||||||
lanzaboote,
|
lanzaboote,
|
||||||
mailserver,
|
home-manager,
|
||||||
minecraft,
|
|
||||||
...
|
...
|
||||||
}:
|
}@inputs: let
|
||||||
let
|
mkNixos = modules: nixpkgs.lib.nixosSystem {
|
||||||
mkNix = modules: nixpkgs.lib.nixosSystem {
|
|
||||||
inherit modules;
|
inherit modules;
|
||||||
specialArgs = {
|
specialArgs = { inherit (self) inputs outputs; };
|
||||||
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 = {
|
extraSpecialArgs = { inherit (self) inputs outputs; };
|
||||||
inherit
|
|
||||||
unstable
|
|
||||||
nur
|
|
||||||
blender-bin
|
|
||||||
;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
# nixos-rebuild switch --flake .#hostname
|
# Your custom packages and modifications, exported as overlays
|
||||||
nixosConfigurations = {
|
overlays = import ./extras/overlays.nix { inherit inputs; };
|
||||||
# PCs and Laptops
|
|
||||||
firefly = mkNix [ ./hosts/firefly/system ];
|
|
||||||
shuttleworth = mkNix [ ./hosts/shuttleworth/system ];
|
|
||||||
lacros = mkNix [ ./hosts/lacros/system ];
|
|
||||||
redmond = mkNix [ ./hosts/redmond/system ];
|
|
||||||
|
|
||||||
# Servers
|
# Variables defined so they can be accessed globally
|
||||||
cyberspark = mkNix [ ./hosts/cyberspark/system ];
|
secrets = import ./extras/secrets.nix;
|
||||||
bomberman = mkNix [ ./hosts/bomberman/system ];
|
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 = {
|
||||||
|
JimDesktop = mkNixos [
|
||||||
|
./system/hosts/JimDesktop/configuration.nix
|
||||||
|
lanzaboote.nixosModules.lanzaboote
|
||||||
|
];
|
||||||
|
JimServer = mkNixos [
|
||||||
|
./system/hosts/JimServer/configuration.nix
|
||||||
|
mailserver.nixosModule
|
||||||
|
];
|
||||||
|
JimPine = mkNixos [
|
||||||
|
./system/hosts/JimPine/configuration.nix
|
||||||
|
hardware.nixosModules.pine64-pinebook-pro
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
# home-manager switch --flake .#username@hostname
|
# Home-manager configuration: 'home-manager --flake .#username@hostname'
|
||||||
homeConfigurations = {
|
homeConfigurations = {
|
||||||
"jimbo@firefly" = mkHome [ ./hosts/firefly/home ] nixpkgs.legacyPackages.x86_64-linux;
|
"jimbo@JimDesktop" = mkHome [
|
||||||
"jimbo@shuttleworth" = mkHome [ ./hosts/shuttleworth/home ] nixpkgs.legacyPackages.aarch64-linux;
|
./home/hosts/JimDesktop/home.nix
|
||||||
"jimbo@lacros" = mkHome [ ./hosts/lacros/home ] nixpkgs.legacyPackages.x86_64-linux;
|
nur.nixosModules.nur
|
||||||
"jimbo@redmond" = mkHome [ ./hosts/redmond/home ] nixpkgs.legacyPackages.x86_64-linux;
|
] nixpkgs.legacyPackages.x86_64-linux;
|
||||||
|
|
||||||
"jimbo@cyberspark" = mkHome [ ./hosts/cyberspark/home ] nixpkgs.legacyPackages.x86_64-linux;
|
"jimbo@JimServer" = mkHome [
|
||||||
"jimbo@bomberman" = mkHome [ ./hosts/bomberman/home ] nixpkgs.legacyPackages.aarch64-linux;
|
./home/hosts/JimServer/home.nix
|
||||||
|
] nixpkgs.legacyPackages.x86_64-linux;
|
||||||
|
|
||||||
|
"jimbo@JimPine" = mkHome [
|
||||||
|
./home/hosts/JimPine/home.nix
|
||||||
|
nur.nixosModules.nur
|
||||||
|
] nixpkgs.legacyPackages.aarch64-linux;
|
||||||
|
|
||||||
|
# Profile for ssh envrionments on different non-root systems
|
||||||
|
"jimbo@JimTerminal" = mkHome [
|
||||||
|
./home/hosts/JimTerminal/home.nix
|
||||||
|
] nixpkgs.legacyPackages.x86_64-linux;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Before Width: | Height: | Size: 86 KiB After Width: | Height: | Size: 86 KiB |
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 |
Before Width: | Height: | Size: 314 KiB After Width: | Height: | Size: 314 KiB |
41
home/base.nix
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
# 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";
|
||||||
|
}
|
47
home/hosts/JimDesktop/home.nix
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
{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";
|
||||||
|
};
|
||||||
|
}
|
40
home/hosts/JimLenovo/home.nix
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
{
|
||||||
|
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
|
||||||
|
];
|
||||||
|
}
|
43
home/hosts/JimPine/home.nix
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
{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";
|
||||||
|
}
|
8
home/hosts/JimServer/home.nix
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
# Common modules
|
||||||
|
./../../base.nix
|
||||||
|
./../../users/jimbo.nix
|
||||||
|
./../../utils/git.nix
|
||||||
|
];
|
||||||
|
}
|
14
home/hosts/JimTerminal/home.nix
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
{
|
||||||
|
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,5 +1,4 @@
|
||||||
{ pkgs, ... }:
|
{pkgs, ...}: {
|
||||||
{
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
yt-dlp
|
yt-dlp
|
||||||
spotdl
|
spotdl
|
|
@ -1,11 +1,10 @@
|
||||||
{ pkgs, lib, config, ... }:
|
{pkgs, ...}: {
|
||||||
{
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
dolphin-emu
|
dolphin-emu
|
||||||
cemu
|
cemu
|
||||||
ryujinx
|
ryujinx
|
||||||
duckstation
|
duckstation
|
||||||
pcsx2
|
pcsx2
|
||||||
#lime3ds
|
unstable.lime3ds
|
||||||
];
|
];
|
||||||
}
|
}
|
7
home/misc/filemanager.nix
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{pkgs, ...}: {
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
gnome.file-roller
|
||||||
|
imagemagick
|
||||||
|
poppler_utils
|
||||||
|
];
|
||||||
|
}
|
|
@ -1,5 +1,4 @@
|
||||||
{ pkgs, lib, config, ... }:
|
{pkgs, ...}: {
|
||||||
{
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
steam
|
steam
|
||||||
steam-run
|
steam-run
|
15
home/misc/guifiles.nix
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
{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";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
9
home/misc/production.nix
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
{pkgs, ...}: {
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
krita
|
||||||
|
inkscape
|
||||||
|
audacity
|
||||||
|
blender_4_2
|
||||||
|
sunvox
|
||||||
|
];
|
||||||
|
}
|
|
@ -1,5 +1,4 @@
|
||||||
{ pkgs, lib, config, ... }:
|
{pkgs, ...}: {
|
||||||
{
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
moonlight-qt
|
moonlight-qt
|
||||||
rustdesk-flutter
|
rustdesk-flutter
|
|
@ -1,9 +1,9 @@
|
||||||
{ pkgs, lib, config, ... }:
|
{pkgs, ...}: {
|
||||||
{
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
remmina
|
remmina
|
||||||
freerdp
|
freerdp
|
||||||
zoom-us
|
|
||||||
globalprotect-openconnect
|
globalprotect-openconnect
|
||||||
|
python3
|
||||||
|
zoom-us
|
||||||
];
|
];
|
||||||
}
|
}
|
|
@ -1,9 +1,10 @@
|
||||||
{ pkgs, lib, config, ... }:
|
{pkgs, ...}: {
|
||||||
{
|
|
||||||
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
|
30
home/misc/variables.nix
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
{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,6 +1,6 @@
|
||||||
{ pkgs, lib, config, ... }:
|
{pkgs, ...}: {
|
||||||
{
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
xash3d
|
xash3d
|
||||||
|
hlsdk
|
||||||
];
|
];
|
||||||
}
|
}
|
309
home/programs/easyeffects.nix
Normal file
|
@ -0,0 +1,309 @@
|
||||||
|
{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 +1,19 @@
|
||||||
{ config, ... }:
|
{outputs, ...}: {
|
||||||
{
|
# 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 = "${config.look.fonts.nerd}:size=14.7";
|
font = "${outputs.look.fonts.nerd}:size=14.7";
|
||||||
};
|
};
|
||||||
cursor = {
|
cursor = {
|
||||||
style = "beam";
|
style = "beam";
|
||||||
};
|
};
|
||||||
colors = {
|
colors = {
|
||||||
alpha = "0.85";
|
alpha = "0.65";
|
||||||
background = "${config.look.colors.dark}";
|
background = "${outputs.look.colors.dark}";
|
||||||
regular0 = "3f3f3f";
|
regular0 = "3f3f3f";
|
||||||
regular1 = "cc0000";
|
regular1 = "cc0000";
|
||||||
regular2 = "4e9a06";
|
regular2 = "4e9a06";
|
|
@ -1,9 +1,9 @@
|
||||||
{ pkgs, config, ... }:
|
{pkgs, outputs, ...}: {
|
||||||
{
|
# Define GTK theme settings
|
||||||
gtk = {
|
gtk = {
|
||||||
enable = true;
|
enable = true;
|
||||||
font = {
|
font = {
|
||||||
name = "${config.look.fonts.main}";
|
name = "${outputs.look.fonts.main}";
|
||||||
size = 11;
|
size = 11;
|
||||||
};
|
};
|
||||||
theme = {
|
theme = {
|
||||||
|
@ -16,7 +16,7 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
iconTheme = {
|
iconTheme = {
|
||||||
package = pkgs.papirus-icon-theme.override { color = "${config.look.colors.folder}"; };
|
package = pkgs.papirus-icon-theme.override {color = "indigo";};
|
||||||
name = "Papirus-Dark";
|
name = "Papirus-Dark";
|
||||||
};
|
};
|
||||||
cursorTheme = {
|
cursorTheme = {
|
||||||
|
@ -24,6 +24,7 @@
|
||||||
name = "Simp1e-Dark";
|
name = "Simp1e-Dark";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# GTK app bookmarks
|
||||||
gtk3 = {
|
gtk3 = {
|
||||||
bookmarks = [
|
bookmarks = [
|
||||||
# Local
|
# Local
|
||||||
|
@ -33,7 +34,16 @@
|
||||||
"file:///home/jimbo/Pictures/Screenshots"
|
"file:///home/jimbo/Pictures/Screenshots"
|
||||||
"file:///home/jimbo/VMs"
|
"file:///home/jimbo/VMs"
|
||||||
|
|
||||||
|
# Remote
|
||||||
|
"file:///home/jimbo/JimboNFS/Downloads"
|
||||||
|
"file:///home/jimbo/JimboNFS/Documents"
|
||||||
|
"file:///home/jimbo/JimboNFS/Music"
|
||||||
|
"file:///home/jimbo/JimboNFS/Photos"
|
||||||
|
"file:///home/jimbo/JimboNFS/Videos"
|
||||||
|
"file:///home/jimbo/JimboNFS/Projects"
|
||||||
|
|
||||||
# More important stuff
|
# More important stuff
|
||||||
|
"file:///home/jimbo/JimboNFS/School"
|
||||||
"file:///etc/nixos"
|
"file:///etc/nixos"
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,31 +1,30 @@
|
||||||
{ pkgs, config, ... }:
|
{pkgs, config, outputs, ...}: let
|
||||||
let
|
# FireFox colors
|
||||||
# FireFox colors, based on https://github.com/Dook97/firefox-qutebrowser-userchrome
|
|
||||||
themeJim = ''
|
themeJim = ''
|
||||||
:root {
|
:root {
|
||||||
--tab-active-bg-color: #${config.look.colors.prime};
|
--tab-active-bg-color: #${outputs.look.colors.prime};
|
||||||
--tab-hover-bg-color: #${config.look.colors.accent};
|
--tab-hover-bg-color: #${outputs.look.colors.accent};
|
||||||
--tab-inactive-bg-color: #${config.look.colors.dark};
|
--tab-inactive-bg-color: #${outputs.look.colors.dark};
|
||||||
--tab-active-fg-fallback-color: #FFFFFF;
|
--tab-active-fg-fallback-color: #FFFFFF;
|
||||||
--tab-inactive-fg-fallback-color: #${config.look.colors.text};
|
--tab-inactive-fg-fallback-color: #${outputs.look.colors.text};
|
||||||
--urlbar-focused-bg-color: #${config.look.colors.dark};
|
--urlbar-focused-bg-color: #${outputs.look.colors.dark};
|
||||||
--urlbar-not-focused-bg-color: #${config.look.colors.dark};
|
--urlbar-not-focused-bg-color: #${outputs.look.colors.dark};
|
||||||
--toolbar-bgcolor: #${config.look.colors.dark} !important;
|
--toolbar-bgcolor: #${outputs.look.colors.dark} !important;
|
||||||
'';
|
'';
|
||||||
themeAlt = ''
|
themeAlt = ''
|
||||||
:root {
|
:root {
|
||||||
--tab-active-bg-color: #${config.look.colors.dark};
|
--tab-active-bg-color: #${outputs.look.colors.dark};
|
||||||
--tab-hover-bg-color: #${config.look.colors.accent};
|
--tab-hover-bg-color: #${outputs.look.colors.accent};
|
||||||
--tab-inactive-bg-color: #${config.look.colors.prime};
|
--tab-inactive-bg-color: #${outputs.look.colors.prime};
|
||||||
--tab-active-fg-fallback-color: #${config.look.colors.text};
|
--tab-active-fg-fallback-color: #${outputs.look.colors.text};
|
||||||
--tab-inactive-fg-fallback-color: #FFFFFF;
|
--tab-inactive-fg-fallback-color: #FFFFFF;
|
||||||
--urlbar-focused-bg-color: #${config.look.colors.prime};
|
--urlbar-focused-bg-color: #${outputs.look.colors.prime};
|
||||||
--urlbar-not-focused-bg-color: #${config.look.colors.prime};
|
--urlbar-not-focused-bg-color: #${outputs.look.colors.prime};
|
||||||
--toolbar-bgcolor: #${config.look.colors.prime} !important;
|
--toolbar-bgcolor: #${outputs.look.colors.prime} !important;
|
||||||
'';
|
'';
|
||||||
quteFoxCSS = ''
|
quteFoxCSS = ''
|
||||||
--tab-font: '${config.look.fonts.main}';
|
--tab-font: '${outputs.look.fonts.main}';
|
||||||
--urlbar-font: '${config.look.fonts.main}';
|
--urlbar-font: '${outputs.look.fonts.main}';
|
||||||
|
|
||||||
/* try increasing if you encounter problems */
|
/* try increasing if you encounter problems */
|
||||||
--urlbar-height-setting: 24px;
|
--urlbar-height-setting: 24px;
|
||||||
|
@ -336,9 +335,9 @@ in {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
commonSettings = {
|
commonSettings = {
|
||||||
"font.name.serif.x-western" = "${config.look.fonts.main}";
|
"font.name.serif.x-western" = "${outputs.look.fonts.main}";
|
||||||
"font.name.sans-serif.x-western" = "${config.look.fonts.main}";
|
"font.name.sans-serif.x-western" = "${outputs.look.fonts.main}";
|
||||||
"font.name.monospace.x-western" = "${config.look.fonts.nerd}";
|
"font.name.monospace.x-western" = "${outputs.look.fonts.nerd}";
|
||||||
"general.autoScroll" = true;
|
"general.autoScroll" = true;
|
||||||
"browser.compactmode.show" = true;
|
"browser.compactmode.show" = true;
|
||||||
"browser.uidensity" = 1;
|
"browser.uidensity" = 1;
|
|
@ -1,11 +1,11 @@
|
||||||
{ pkgs, ... }:
|
{pkgs, ...}: {
|
||||||
{
|
|
||||||
home = {
|
home = {
|
||||||
packages = with pkgs; [
|
packages = with pkgs; [
|
||||||
mangohud
|
mangohud
|
||||||
];
|
];
|
||||||
file = {
|
file = let
|
||||||
".config/MangoHud/MangoHud.conf".text = ''
|
# Mangohud config file
|
||||||
|
mangoConf = ''
|
||||||
table_columns=2
|
table_columns=2
|
||||||
frametime=0
|
frametime=0
|
||||||
legacy_layout=0
|
legacy_layout=0
|
||||||
|
@ -24,6 +24,9 @@
|
||||||
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,5 +1,5 @@
|
||||||
{ pkgs, lib, config, ... }:
|
{pkgs, ...}: {
|
||||||
{
|
# 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,12 +1,12 @@
|
||||||
{ pkgs, ... }:
|
{pkgs, ...}: {
|
||||||
{
|
# Swappy config file
|
||||||
home = {
|
home = {
|
||||||
packages = with pkgs; [
|
packages = with pkgs; [
|
||||||
pcmanfm-qt
|
pcmanfm-qt
|
||||||
gnome.file-roller
|
|
||||||
];
|
];
|
||||||
file = {
|
file = let
|
||||||
".config/pcmanfm-qt/default/settings.conf".text = ''
|
# File manager config
|
||||||
|
pcmanConf = ''
|
||||||
[Behavior]
|
[Behavior]
|
||||||
BookmarkOpenMethod=current_tab
|
BookmarkOpenMethod=current_tab
|
||||||
ConfirmDelete=true
|
ConfirmDelete=true
|
||||||
|
@ -53,6 +53,9 @@
|
||||||
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, ... }:
|
{pkgs, config, outputs, ...}: {
|
||||||
{
|
# Enable Rofi
|
||||||
programs.rofi = {
|
programs.rofi = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.rofi-wayland;
|
package = pkgs.rofi-wayland;
|
||||||
terminal = "foot";
|
terminal = "foot";
|
||||||
font = "${config.look.fonts.main} 14";
|
font = "${outputs.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 "#${config.look.colors.text}";
|
normal-foreground = mkLiteral "#${outputs.look.colors.text}";
|
||||||
normal-background = mkLiteral "#${config.look.colors.dark}1A";
|
normal-background = mkLiteral "#${outputs.look.colors.dark}1A";
|
||||||
urgent-foreground = mkLiteral "#${config.look.colors.urgent}";
|
urgent-foreground = mkLiteral "#${outputs.look.colors.urgent}";
|
||||||
active-foreground = mkLiteral "#${config.look.colors.split}";
|
active-foreground = mkLiteral "#${outputs.look.colors.split}";
|
||||||
selected-active-foreground = mkLiteral "#${config.look.colors.prime}";
|
selected-active-foreground = mkLiteral "#${outputs.look.colors.prime}";
|
||||||
background = mkLiteral "#${config.look.colors.dark}D9";
|
background = mkLiteral "#${outputs.look.colors.dark}B3";
|
||||||
bordercolor = mkLiteral "#${config.look.colors.prime}";
|
bordercolor = mkLiteral "#${outputs.look.colors.prime}";
|
||||||
selected-normal-foreground = mkLiteral "#FFFFFF";
|
selected-normal-foreground = mkLiteral "#FFFFFF";
|
||||||
selected-normal-background = mkLiteral "#${config.look.colors.prime}80";
|
selected-normal-background = mkLiteral "#${outputs.look.colors.prime}80";
|
||||||
border-color = mkLiteral "#${config.look.colors.prime}";
|
border-color = mkLiteral "#${outputs.look.colors.prime}";
|
||||||
urgent-background = mkLiteral "#${config.look.colors.accent}26";
|
urgent-background = mkLiteral "#${outputs.look.colors.accent}26";
|
||||||
active-background = mkLiteral "#${config.look.colors.accent}26";
|
active-background = mkLiteral "#${outputs.look.colors.accent}26";
|
||||||
selected-active-background = mkLiteral "#${config.look.colors.split}54";
|
selected-active-background = mkLiteral "#${outputs.look.colors.split}54";
|
||||||
};
|
};
|
||||||
"#window" = {
|
"#window" = {
|
||||||
background-color = mkLiteral "@background";
|
background-color = mkLiteral "@background";
|
||||||
width = 500;
|
width = 500;
|
||||||
border = mkLiteral "${config.look.border.string}";
|
border = mkLiteral "${outputs.look.border.string}";
|
||||||
padding = 5;
|
padding = 5;
|
||||||
};
|
};
|
||||||
"#message" = {
|
"#message" = {
|
||||||
|
@ -124,7 +124,7 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
home.packages = let
|
home.packages = let
|
||||||
# A script to execute commands with Rofi
|
# All my rofi scripts in one file
|
||||||
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 ${config.displays.d1} enable pos 1680 0 mode 1680x1050@59.954Hz
|
output ${outputs.displays.d1} enable pos 1680 0 mode 1680x1050@59.954Hz
|
||||||
output ${config.displays.d2} enable pos 0 0 mode 1680x1050@59.954Hz
|
output ${outputs.displays.d2} enable pos 0 0 mode 1680x1050@59.954Hz
|
||||||
output ${config.displays.d3} enable pos 3360 0 transform 0
|
output ${outputs.displays.d3} enable pos 3360 0 transform 0
|
||||||
";;
|
";;
|
||||||
GPU2) swaymsg "
|
GPU2) swaymsg "
|
||||||
output ${config.displays.d2} enable pos 1680 0 mode 1920x1080@60Hz
|
output ${outputs.displays.d2} enable pos 1680 0 mode 1920x1080@60Hz
|
||||||
output ${config.displays.d3} enable pos 0 0 transform 0
|
output ${outputs.displays.d3} enable pos 0 0 transform 0
|
||||||
";;
|
";;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
19
home/programs/swappy.nix
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
{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;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
13
home/services/gnome-keyring.nix
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
{pkgs, ...}: {
|
||||||
|
services.gnome-keyring = {
|
||||||
|
enable = true;
|
||||||
|
components = [
|
||||||
|
"ssh"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
gnome.gnome-keyring
|
||||||
|
gnome.libgnome-keyring
|
||||||
|
];
|
||||||
|
}
|
|
@ -1,22 +1,23 @@
|
||||||
{ pkgs, config, ... }:
|
{pkgs, outputs, ...}: {
|
||||||
{
|
# Notification daemon
|
||||||
services.mako = {
|
services.mako = {
|
||||||
enable = true;
|
enable = true;
|
||||||
borderColor = "#${config.look.colors.accent}";
|
borderColor = "#${outputs.look.colors.accent}";
|
||||||
backgroundColor = "#${config.look.colors.dark}D9";
|
backgroundColor = "#${outputs.look.colors.dark}CC";
|
||||||
output = "${config.displays.d1}";
|
output = "${outputs.displays.d1}";
|
||||||
sort = "+time";
|
sort = "+time";
|
||||||
layer = "overlay";
|
layer = "overlay";
|
||||||
padding = "8";
|
padding = "8";
|
||||||
margin = "0";
|
margin = "0";
|
||||||
borderSize = config.look.border.int;
|
borderSize = outputs.look.border.int;
|
||||||
maxIconSize = 40;
|
maxIconSize = 40;
|
||||||
defaultTimeout = 6000;
|
defaultTimeout = 6000;
|
||||||
font = "${config.look.fonts.main} 12";
|
font = "${outputs.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
|
7
home/services/reloadunits.nix
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
# Nicely reload system units when changing configs
|
||||||
|
systemd.user = {
|
||||||
|
enable = true;
|
||||||
|
startServices = "sd-switch";
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,5 +1,5 @@
|
||||||
{ ... }:
|
|
||||||
{
|
{
|
||||||
|
# Mount as user with udisk2
|
||||||
services.udiskie = {
|
services.udiskie = {
|
||||||
enable = true;
|
enable = true;
|
||||||
automount = false;
|
automount = false;
|
|
@ -1,7 +1,8 @@
|
||||||
{ pkgs, ... }:
|
{config, pkgs, ...}: {
|
||||||
{
|
# Enable Sway and write some scripts
|
||||||
wayland.windowManager.sway = {
|
wayland.windowManager.sway = {
|
||||||
config = {
|
config = {
|
||||||
|
# Use Waybar rather than Sway's
|
||||||
bars = [{command = "waybar";}];
|
bars = [{command = "waybar";}];
|
||||||
|
|
||||||
startup = [
|
startup = [
|
|
@ -1,31 +1,31 @@
|
||||||
{ config, ... }:
|
{config, pkgs, outputs, ...}: {
|
||||||
{
|
|
||||||
wayland.windowManager.sway = {
|
wayland.windowManager.sway = {
|
||||||
config = {
|
config = {
|
||||||
# Define monitors
|
# Define monitors
|
||||||
output = {
|
output = {
|
||||||
${config.displays.d1} = {
|
${outputs.displays.d1} = {
|
||||||
pos = "1920 405";
|
pos = "1920 405";
|
||||||
mode = "1920x1080@143.980Hz";
|
mode = "1920x1080@143.980Hz";
|
||||||
max_render_time = "3";
|
max_render_time = "3";
|
||||||
bg = "~/.assets/wallpapers/1.png fill";
|
bg = "~/.wallpapers/1.png fill";
|
||||||
adaptive_sync = "on";
|
adaptive_sync = "on";
|
||||||
|
#tearing_allowed = "1";
|
||||||
};
|
};
|
||||||
${config.displays.d2} = {
|
${outputs.displays.d2} = {
|
||||||
pos = "0 405";
|
pos = "0 405";
|
||||||
mode = "1920x1080@60Hz";
|
mode = "1920x1080@60Hz";
|
||||||
max_render_time = "3";
|
max_render_time = "3";
|
||||||
bg = "~/.assets/wallpapers/2.png fill";
|
bg = "~/.wallpapers/2.png fill";
|
||||||
};
|
};
|
||||||
${config.displays.d3} = {
|
${outputs.displays.d3} = {
|
||||||
pos = "3840 0";
|
pos = "3840 0";
|
||||||
mode = "1680x1050@59.883Hz";
|
mode = "1680x1050@59.883Hz";
|
||||||
transform = "270";
|
transform = "270";
|
||||||
max_render_time = "3";
|
max_render_time = "3";
|
||||||
bg = "~/.assets/wallpapers/3.png fill";
|
bg = "~/.wallpapers/3.png fill";
|
||||||
};
|
};
|
||||||
"*" = {
|
"*" = {
|
||||||
bg = "~/.assets/wallpapers/1.png fill";
|
bg = "~/.wallpapers/1.png fill";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
269
home/sway/hotkeys.nix
Normal file
|
@ -0,0 +1,269 @@
|
||||||
|
{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,33 +1,33 @@
|
||||||
{ config, ... }:
|
{config, pkgs, outputs, ...}: {
|
||||||
{
|
# Enable Sway and write some scripts
|
||||||
wayland.windowManager.sway = {
|
wayland.windowManager.sway = {
|
||||||
config = {
|
config = {
|
||||||
# Assign workspaces to config
|
# Assign workspaces to outputs
|
||||||
workspaceOutputAssign = let
|
workspaceOutputAssign = let
|
||||||
workspaces1 = [
|
workspaces1 = [
|
||||||
"${config.ws.w0}"
|
"${outputs.ws.w0}"
|
||||||
"${config.ws.w1}"
|
"${outputs.ws.w1}"
|
||||||
"${config.ws.w2}"
|
"${outputs.ws.w2}"
|
||||||
"${config.ws.w3}"
|
"${outputs.ws.w3}"
|
||||||
"${config.ws.w1a}"
|
"${outputs.ws.w1a}"
|
||||||
"${config.ws.w2a}"
|
"${outputs.ws.w2a}"
|
||||||
"${config.ws.w3a}"
|
"${outputs.ws.w3a}"
|
||||||
];
|
];
|
||||||
workspaces2 = [
|
workspaces2 = [
|
||||||
"${config.ws.w4}"
|
"${outputs.ws.w4}"
|
||||||
"${config.ws.w5}"
|
"${outputs.ws.w5}"
|
||||||
"${config.ws.w6}"
|
"${outputs.ws.w6}"
|
||||||
"${config.ws.w4a}"
|
"${outputs.ws.w4a}"
|
||||||
"${config.ws.w5a}"
|
"${outputs.ws.w5a}"
|
||||||
"${config.ws.w6a}"
|
"${outputs.ws.w6a}"
|
||||||
];
|
];
|
||||||
workspaces3 = [
|
workspaces3 = [
|
||||||
"${config.ws.w7}"
|
"${outputs.ws.w7}"
|
||||||
"${config.ws.w8}"
|
"${outputs.ws.w8}"
|
||||||
"${config.ws.w9}"
|
"${outputs.ws.w9}"
|
||||||
"${config.ws.w7a}"
|
"${outputs.ws.w7a}"
|
||||||
"${config.ws.w8a}"
|
"${outputs.ws.w8a}"
|
||||||
"${config.ws.w9a}"
|
"${outputs.ws.w9a}"
|
||||||
];
|
];
|
||||||
assign = output: workspaces:
|
assign = output: workspaces:
|
||||||
map (workspace: {
|
map (workspace: {
|
||||||
|
@ -36,13 +36,13 @@
|
||||||
})
|
})
|
||||||
workspaces;
|
workspaces;
|
||||||
in
|
in
|
||||||
(assign "${config.displays.d1}" workspaces1) ++
|
(assign "${outputs.displays.d1}" workspaces1) ++
|
||||||
(assign "${config.displays.d2}" workspaces2) ++
|
(assign "${outputs.displays.d2}" workspaces2) ++
|
||||||
(assign "${config.displays.d3}" workspaces3);
|
(assign "${outputs.displays.d3}" workspaces3);
|
||||||
|
|
||||||
# Rules
|
# Rules
|
||||||
window = {
|
window = {
|
||||||
border = config.look.border.int;
|
border = outputs.look.border.int;
|
||||||
titlebar = false;
|
titlebar = false;
|
||||||
commands = [
|
commands = [
|
||||||
# Scratchpads
|
# Scratchpads
|
||||||
|
@ -76,7 +76,7 @@
|
||||||
# Give apps that don't have them borders
|
# Give apps that don't have them borders
|
||||||
{
|
{
|
||||||
criteria = {con_mark = "borderless";};
|
criteria = {con_mark = "borderless";};
|
||||||
command = ''border pixel ${config.look.border.string}'';
|
command = ''border pixel ${outputs.look.border.string}'';
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
criteria = {app_id = "com.github.wwmm.easyeffects";};
|
criteria = {app_id = "com.github.wwmm.easyeffects";};
|
||||||
|
@ -111,20 +111,20 @@
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
assigns = {
|
assigns = {
|
||||||
# Broconfig.wsers
|
# Brooutputs.wsers
|
||||||
"${config.ws.w1}" = [{app_id = "JimBrowser";}];
|
"${outputs.ws.w1}" = [{app_id = "JimBrooutputs.wser";}];
|
||||||
"${config.ws.w1a}" = [{app_id = "AltBrowser";}];
|
"${outputs.ws.w1a}" = [{app_id = "AltBrooutputs.wser";}];
|
||||||
|
|
||||||
# Communication
|
# Communication
|
||||||
"${config.ws.w3a}" = [{class = "zoom";}];
|
"${outputs.ws.w3a}" = [{class = "zoom";}];
|
||||||
"${config.ws.w7}" = [{app_id = "MiscBrowser";} {app_id = "vesktop";} {class = "vesktop";}];
|
"${outputs.ws.w7}" = [{app_id = "MiscBrowser";} {app_id = "vesktop";} {class = "vesktop";}];
|
||||||
"${config.ws.w8}" = [{app_id = "org.gnome.Fractal";}];
|
"${outputs.ws.w8}" = [{app_id = "org.gnome.Fractal";}];
|
||||||
"${config.ws.w9}" = [{app_id = "thunderbird";}];
|
"${outputs.ws.w9}" = [{app_id = "thunderbird";}];
|
||||||
|
|
||||||
# Else
|
# Else
|
||||||
"${config.ws.w2}" = [{class = "steam";} {app_id = "heroic";}];
|
"${outputs.ws.w2}" = [{class = "steam";} {app_id = "heroic";}];
|
||||||
"${config.ws.w2a}" = [{app_id = "looking-glass-client";}];
|
"${outputs.ws.w2a}" = [{app_id = "looking-glass-client";}];
|
||||||
"${config.ws.w4a}" = [{app_id = "com.obsproject.Studio";}];
|
"${outputs.ws.w4a}" = [{app_id = "com.obsproject.Studio";}];
|
||||||
};
|
};
|
||||||
focus.newWindow = "focus";
|
focus.newWindow = "focus";
|
||||||
};
|
};
|
|
@ -1,24 +1,25 @@
|
||||||
{ config, pkgs, ... }:
|
{config, pkgs, outputs, ...}: {
|
||||||
{
|
# Import modules
|
||||||
imports = [
|
imports = [
|
||||||
./hardware
|
#"./swayfx.nix"
|
||||||
./theme
|
./hardware.nix
|
||||||
./hotkeys
|
./theme.nix
|
||||||
./programs
|
./hotkeys.nix
|
||||||
./rules
|
./rules.nix
|
||||||
./autostart
|
./autostart.nix
|
||||||
./waybar
|
./waybar.nix
|
||||||
./swayshot
|
./swayshot.nix
|
||||||
./swaylock
|
|
||||||
];
|
];
|
||||||
|
|
||||||
|
# Enable Sway and write some scripts
|
||||||
wayland.windowManager.sway = {
|
wayland.windowManager.sway = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = null;
|
package = null;
|
||||||
wrapperFeatures.gtk = true;
|
wrapperFeatures.gtk = true;
|
||||||
checkConfig = false;
|
checkConfig = false;
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
default_floating_border pixel ${config.look.border.string}
|
# Options I can't find in Nix yet
|
||||||
|
default_floating_border pixel ${outputs.look.border.string}
|
||||||
hide_edge_borders --i3 smart
|
hide_edge_borders --i3 smart
|
||||||
titlebar_padding 10 1
|
titlebar_padding 10 1
|
||||||
primary_selection disabled
|
primary_selection disabled
|
||||||
|
@ -30,8 +31,8 @@
|
||||||
}}
|
}}
|
||||||
|
|
||||||
# Switch to workspace 1
|
# Switch to workspace 1
|
||||||
workspace ${config.ws.w7}
|
workspace ${outputs.ws.w7}
|
||||||
workspace ${config.ws.w1}
|
workspace ${outputs.ws.w1}
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
}
|
}
|
14
home/sway/swayfx.nix
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
{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,14 +1,13 @@
|
||||||
{ pkgs, config, ... }:
|
{config, pkgs, outputs, ...}: let
|
||||||
let
|
|
||||||
swayLock = pkgs.writeScriptBin "swaylock" ''
|
swayLock = pkgs.writeScriptBin "swaylock" ''
|
||||||
# Set the lock script
|
# Set the lock script
|
||||||
lockscript() {
|
lockscript() {
|
||||||
BLANK='#00000000'
|
BLANK='#00000000'
|
||||||
CLEAR='#FFFFFF22'
|
CLEAR='#FFFFFF22'
|
||||||
DEFAULT='#${config.look.colors.prime}FF'
|
DEFAULT='#${outputs.look.colors.prime}FF'
|
||||||
TEXT='#FFFFFFFF'
|
TEXT='#FFFFFFFF'
|
||||||
WRONG='#${config.look.colors.split}FF'
|
WRONG='#${outputs.look.colors.split}FF'
|
||||||
VERIFYING='#${config.look.colors.accent}FF'
|
VERIFYING='#${outputs.look.colors.accent}FF'
|
||||||
|
|
||||||
${pkgs.swaylock-effects}/bin/swaylock -f -e \
|
${pkgs.swaylock-effects}/bin/swaylock -f -e \
|
||||||
--key-hl-color=$VERIFYING \
|
--key-hl-color=$VERIFYING \
|
||||||
|
@ -33,9 +32,9 @@ let
|
||||||
\
|
\
|
||||||
--indicator \
|
--indicator \
|
||||||
--indicator-radius=80 \
|
--indicator-radius=80 \
|
||||||
--image=~/.assets/lockscreen/lock.png \
|
--image=~/.wallpapers/lock.png \
|
||||||
--clock \
|
--clock \
|
||||||
--font=${config.look.fonts.main} \
|
--font=${outputs.look.fonts.main} \
|
||||||
--font-size=30 \
|
--font-size=30 \
|
||||||
--timestr="%I:%M%p" \
|
--timestr="%I:%M%p" \
|
||||||
--datestr="%a %b %d %Y"
|
--datestr="%a %b %d %Y"
|
|
@ -1,10 +1,6 @@
|
||||||
{ pkgs, config, ... }:
|
{pkgs, outputs, ...}: {
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./swappy
|
|
||||||
];
|
|
||||||
|
|
||||||
home.packages = let
|
home.packages = let
|
||||||
|
# Use grim and slurp to take screenshots in multiple ways
|
||||||
swayShot = pkgs.writeScriptBin "swayshot" ''
|
swayShot = pkgs.writeScriptBin "swayshot" ''
|
||||||
# Swappy
|
# Swappy
|
||||||
handle_swappy() {
|
handle_swappy() {
|
||||||
|
@ -13,7 +9,7 @@
|
||||||
|
|
||||||
# Capture the screenshot of the selected area and save to a temporary file
|
# Capture the screenshot of the selected area and save to a temporary file
|
||||||
selected_area=$(swaymsg -t get_tree | jq -r '.. | select(.pid? and .visible?) | .rect | "\(.x),\(.y) \(.width)x\(.height)"'\
|
selected_area=$(swaymsg -t get_tree | jq -r '.. | select(.pid? and .visible?) | .rect | "\(.x),\(.y) \(.width)x\(.height)"'\
|
||||||
| XCURSOR_SIZE=40 slurp -w ${config.look.border.string} -c ${config.look.colors.prime} -B 00000066 -b 00000099)
|
| XCURSOR_SIZE=40 slurp -w ${outputs.look.border.string} -c ${outputs.look.colors.prime} -B 00000066 -b 00000099)
|
||||||
temp_file=$(mktemp -u).png
|
temp_file=$(mktemp -u).png
|
||||||
grim -g "$selected_area" "$temp_file"
|
grim -g "$selected_area" "$temp_file"
|
||||||
|
|
50
home/sway/theme.nix
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
{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,5 +1,4 @@
|
||||||
{ pkgs, config, ... }:
|
{pkgs, outputs, ...}: {
|
||||||
{
|
|
||||||
programs.waybar = let
|
programs.waybar = let
|
||||||
swayWorkspacesModule = {
|
swayWorkspacesModule = {
|
||||||
format = "{name}";
|
format = "{name}";
|
||||||
|
@ -262,7 +261,7 @@
|
||||||
name = "bar1";
|
name = "bar1";
|
||||||
position = "top";
|
position = "top";
|
||||||
layer = "bottom";
|
layer = "bottom";
|
||||||
output = [ config.displays.d1 "VGA-1" ];
|
output = [outputs.displays.d1 "VGA-1"];
|
||||||
modules-left = ["sway/workspaces" "sway/window"];
|
modules-left = ["sway/workspaces" "sway/window"];
|
||||||
modules-right = [
|
modules-right = [
|
||||||
"pulseaudio"
|
"pulseaudio"
|
||||||
|
@ -293,7 +292,7 @@
|
||||||
name = "bar2";
|
name = "bar2";
|
||||||
position = "top";
|
position = "top";
|
||||||
layer = "bottom";
|
layer = "bottom";
|
||||||
output = [ config.displays.d2 ];
|
output = [outputs.displays.d2];
|
||||||
modules-left = ["sway/workspaces" "sway/window"];
|
modules-left = ["sway/workspaces" "sway/window"];
|
||||||
modules-right = [
|
modules-right = [
|
||||||
"pulseaudio"
|
"pulseaudio"
|
||||||
|
@ -318,7 +317,7 @@
|
||||||
name = "bar3";
|
name = "bar3";
|
||||||
position = "top";
|
position = "top";
|
||||||
layer = "bottom";
|
layer = "bottom";
|
||||||
output = [ config.displays.d3 ];
|
output = [outputs.displays.d3];
|
||||||
modules-left = ["sway/workspaces" "sway/window"];
|
modules-left = ["sway/workspaces" "sway/window"];
|
||||||
modules-right = [
|
modules-right = [
|
||||||
"pulseaudio"
|
"pulseaudio"
|
||||||
|
@ -383,12 +382,12 @@
|
||||||
border: 0;
|
border: 0;
|
||||||
border-radius: 0;
|
border-radius: 0;
|
||||||
min-height: 0;
|
min-height: 0;
|
||||||
font-family: ${config.look.fonts.main}, ${config.look.fonts.nerd};
|
font-family: ${outputs.look.fonts.main}, ${outputs.look.fonts.nerd};
|
||||||
font-size: 15.5px;
|
font-size: 15.5px;
|
||||||
color: #${config.look.colors.text};
|
color: #${outputs.look.colors.text};
|
||||||
}
|
}
|
||||||
#waybar {
|
#waybar {
|
||||||
background: #${config.look.colors.dark};
|
background: #${outputs.look.colors.dark};
|
||||||
}
|
}
|
||||||
#workspaces {
|
#workspaces {
|
||||||
padding: 0 6px 0 0;
|
padding: 0 6px 0 0;
|
||||||
|
@ -413,15 +412,15 @@
|
||||||
min-width: 20px;
|
min-width: 20px;
|
||||||
}
|
}
|
||||||
#workspaces button.visible {
|
#workspaces button.visible {
|
||||||
border-bottom: 3px solid #${config.look.colors.prime};
|
border-bottom: 3px solid #${outputs.look.colors.prime};
|
||||||
background: #${config.look.colors.mid};
|
background: #${outputs.look.colors.mid};
|
||||||
}
|
}
|
||||||
#workspaces button.urgent {
|
#workspaces button.urgent {
|
||||||
border-bottom: 3px solid #${config.look.colors.urgent};
|
border-bottom: 3px solid #${outputs.look.colors.urgent};
|
||||||
}
|
}
|
||||||
#workspaces button:hover {
|
#workspaces button:hover {
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
background: #${config.look.colors.light};
|
background: #${outputs.look.colors.light};
|
||||||
}
|
}
|
||||||
#scratchpad {
|
#scratchpad {
|
||||||
margin-left: 2px;
|
margin-left: 2px;
|
||||||
|
@ -457,13 +456,13 @@
|
||||||
color: #888;
|
color: #888;
|
||||||
}
|
}
|
||||||
#custom-weather {
|
#custom-weather {
|
||||||
border-bottom: 3px solid #3823C4;
|
border-bottom: 3px solid #${outputs.look.colors.prime};
|
||||||
}
|
}
|
||||||
#custom-weather2 {
|
#custom-weather2 {
|
||||||
border-bottom: 3px solid #c75bd3;
|
border-bottom: 3px solid #c75bd3;
|
||||||
}
|
}
|
||||||
#custom-notifs {
|
#custom-notifs {
|
||||||
border-bottom: 3px solid #3823C4;
|
border-bottom: 3px solid #${outputs.look.colors.prime};
|
||||||
}
|
}
|
||||||
#custom-notifs.disabled {
|
#custom-notifs.disabled {
|
||||||
color: #888;
|
color: #888;
|
|
@ -1,4 +1,3 @@
|
||||||
{ ... }:
|
|
||||||
{
|
{
|
||||||
home = {
|
home = {
|
||||||
username = "jimbo";
|
username = "jimbo";
|
|
@ -1,5 +1,4 @@
|
||||||
{ pkgs, ... }:
|
{pkgs, ...}: {
|
||||||
{
|
|
||||||
home = {
|
home = {
|
||||||
file = let
|
file = let
|
||||||
fastConf = ''
|
fastConf = ''
|
8
home/utils/git.nix
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
{pkgs, outputs, ...}: {
|
||||||
|
programs.git = {
|
||||||
|
enable = true;
|
||||||
|
lfs.enable = true;
|
||||||
|
userName = outputs.secrets.jimUsername;
|
||||||
|
userEmail = outputs.secrets.jimEmail;
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,21 +1,17 @@
|
||||||
{ pkgs, ... }:
|
{pkgs, ...}: {
|
||||||
{
|
# Enable NCMPCPP
|
||||||
programs.ncmpcpp = {
|
programs.ncmpcpp = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
browser_sort_mode = "name";
|
browser_sort_mode = "name";
|
||||||
user_interface = "alternative";
|
user_interface = "alternative";
|
||||||
};
|
};
|
||||||
bindings = [
|
|
||||||
{ key = "h"; command = "volume_down"; }
|
|
||||||
{ key = "j"; command = "scroll_down"; }
|
|
||||||
{ key = "k"; command = "scroll_up"; }
|
|
||||||
{ key = "l"; command = "volume_up"; }
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Enable Discord Music RPC
|
||||||
services.mpd-discord-rpc.enable = true;
|
services.mpd-discord-rpc.enable = true;
|
||||||
|
|
||||||
|
# Allow terminal control of mpd
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
mpc-cli
|
mpc-cli
|
||||||
];
|
];
|
|
@ -1,5 +1,5 @@
|
||||||
{ config, pkgs, ... }:
|
{pkgs, outputs, ...}: {
|
||||||
{
|
# Install Neovim and plugins
|
||||||
programs.neovim = {
|
programs.neovim = {
|
||||||
enable = true;
|
enable = true;
|
||||||
defaultEditor = true;
|
defaultEditor = true;
|
||||||
|
@ -85,8 +85,8 @@
|
||||||
let g:airline_theme='onedark'
|
let g:airline_theme='onedark'
|
||||||
let g:airline#extensions#tabline#enabled = 1
|
let g:airline#extensions#tabline#enabled = 1
|
||||||
hi Normal guibg=none ctermbg=235
|
hi Normal guibg=none ctermbg=235
|
||||||
hi Visual guibg=#${config.look.colors.mid} ctermbg=238
|
hi Visual guibg=#${outputs.look.colors.mid} ctermbg=238
|
||||||
hi Pmenu guibg=#${config.look.colors.mid} ctermbg=238
|
hi Pmenu guibg=#${outputs.look.colors.mid} ctermbg=238
|
||||||
hi EndOfBuffer guibg=none ctermbg=235
|
hi EndOfBuffer guibg=none ctermbg=235
|
||||||
hi LineNr guibg=none ctermbg=none
|
hi LineNr guibg=none ctermbg=none
|
||||||
lua require'colorizer'.setup()
|
lua require'colorizer'.setup()
|
|
@ -1,5 +1,5 @@
|
||||||
{ pkgs, ... }:
|
{pkgs, ...}: {
|
||||||
{
|
# Enable Ranger
|
||||||
programs.ranger = {
|
programs.ranger = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
|
@ -100,9 +100,8 @@
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
# Ranger's bookmarks and necessary tools
|
# Ranger's bookmarks
|
||||||
home = {
|
home.file = let
|
||||||
file = let
|
|
||||||
rangerBookmarks = ''
|
rangerBookmarks = ''
|
||||||
# Local files
|
# Local files
|
||||||
h:/home/jimbo/
|
h:/home/jimbo/
|
||||||
|
@ -114,20 +113,15 @@
|
||||||
n:/etc/nixos
|
n:/etc/nixos
|
||||||
|
|
||||||
# Remote files
|
# Remote files
|
||||||
j:/home/jimbo/JimboNFS
|
a:/home/jimbo/JimboNFS
|
||||||
K:/home/jimbo/JimboNFS/Downloads
|
K:/home/jimbo/JimboNFS/Downloads
|
||||||
p:/home/jimbo/JimboNFS/Photos
|
p:/home/jimbo/JimboNFS/Photos
|
||||||
P:/home/jimbo/JimboNFS/Projects
|
P:/home/jimbo/JimboNFS/Projects
|
||||||
V:/home/jimbo/JimboNFS/Videos/Random
|
V:/home/jimbo/JimboNFS/Videos/Random
|
||||||
m:/home/jimbo/JimboNFS/Music/Synced
|
m:/home/jimbo/JimboNFS/Music
|
||||||
s:/home/jimbo/JimboNFS/School
|
s:/home/jimbo/JimboNFS/School
|
||||||
'';
|
'';
|
||||||
in {
|
in {
|
||||||
".local/share/ranger/bookmarks".text = rangerBookmarks;
|
".local/share/ranger/bookmarks".text = rangerBookmarks;
|
||||||
};
|
};
|
||||||
packages = with pkgs; [
|
|
||||||
imagemagick
|
|
||||||
poppler_utils
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
}
|
|
@ -1,5 +1,5 @@
|
||||||
{ ... }:
|
|
||||||
{
|
{
|
||||||
|
# Enable tmux
|
||||||
programs.tmux = {
|
programs.tmux = {
|
||||||
enable = true;
|
enable = true;
|
||||||
extraConfig = ''
|
extraConfig = ''
|
|
@ -1,5 +1,4 @@
|
||||||
{ pkgs, ... }:
|
{ pkgs, config, ... }: {
|
||||||
{
|
|
||||||
programs.zsh = {
|
programs.zsh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
autosuggestion.enable = true;
|
autosuggestion.enable = true;
|
||||||
|
@ -10,12 +9,6 @@
|
||||||
plugins = ["git"];
|
plugins = ["git"];
|
||||||
};
|
};
|
||||||
shellAliases = {
|
shellAliases = {
|
||||||
# NixOS aliases
|
|
||||||
nixclean = "doas nix-store --gc; nix-collect-garbage -d";
|
|
||||||
nixpurge = "doas nix-collect-garbage --delete-old";
|
|
||||||
nixoptimize = "doas nix store optimise";
|
|
||||||
nixscrub = "nixclean; nixpurge; nixoptimize";
|
|
||||||
|
|
||||||
# Flake commands
|
# Flake commands
|
||||||
flakedate = "doas nix flake update /etc/nixos";
|
flakedate = "doas nix flake update /etc/nixos";
|
||||||
sysswitch = "doas nixos-rebuild switch --flake /etc/nixos";
|
sysswitch = "doas nixos-rebuild switch --flake /etc/nixos";
|
||||||
|
@ -23,6 +16,11 @@
|
||||||
nixswitch = "sysswitch; homeswitch";
|
nixswitch = "sysswitch; homeswitch";
|
||||||
nixdate = "flakedate && sysswitch; homeswitch";
|
nixdate = "flakedate && sysswitch; homeswitch";
|
||||||
|
|
||||||
|
# NixOS aliases
|
||||||
|
nixclean = "doas nix-store --gc; nix-collect-garbage -d";
|
||||||
|
nixpurge = "doas nix-collect-garbage --delete-old";
|
||||||
|
nixoptimize = "doas nix store optimise";
|
||||||
|
|
||||||
# Shortcut aliases
|
# Shortcut aliases
|
||||||
neo = "clear && fastfetch";
|
neo = "clear && fastfetch";
|
||||||
ip = "ip -c";
|
ip = "ip -c";
|
|
@ -1,19 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
{
|
|
||||||
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 +0,0 @@
|
||||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICtxnPjkLdUIi5mVqBHXM9rW+Mmsqx1C1XnpRusVTWhm jimbo@bomberman
|
|
|
@ -1,28 +0,0 @@
|
||||||
{ 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" ];
|
|
||||||
}
|
|
|
@ -1,61 +0,0 @@
|
||||||
{ 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";
|
|
||||||
}
|
|
|
@ -1,19 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
{
|
|
||||||
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 +0,0 @@
|
||||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIKC8Uqxb09V3msBgDv6lD/nETMYr/X0OgtpDo8ldcMK
|
|
|
@ -1,25 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
{
|
|
||||||
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";
|
|
||||||
}
|
|
|
@ -1,130 +0,0 @@
|
||||||
{ 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;
|
|
||||||
}
|
|
|
@ -1,27 +0,0 @@
|
||||||
{ 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 +0,0 @@
|
||||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIC2lMkUd+BbXITE5LTg94hEzmA6UKsIIbaf5YOjGoLzl
|
|
|
@ -1,50 +0,0 @@
|
||||||
{ 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" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,37 +0,0 @@
|
||||||
{ 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,22 +0,0 @@
|
||||||
{ 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 +0,0 @@
|
||||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBk6ALxn+zKrRys6/c1oYSoWJaUUEo3nAM224ElhjJQR jimbo@lacros
|
|
|
@ -1,17 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
{
|
|
||||||
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;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,34 +0,0 @@
|
||||||
{ 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" ];
|
|
||||||
}
|
|
|
@ -1,63 +0,0 @@
|
||||||
{ 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;
|
|
||||||
}
|
|
|
@ -1,24 +0,0 @@
|
||||||
{ 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 +0,0 @@
|
||||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIG9uITpyw5WgxT7UnswueFtyWxAqQCZv4h9DfcDkr+kn jimbo@nixos
|
|
|
@ -1,7 +0,0 @@
|
||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
boot = {
|
|
||||||
kernelPackages = pkgs.linuxPackages_latest;
|
|
||||||
kernel.sysctl."vm.max_map_count" = 2147483642;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,28 +0,0 @@
|
||||||
{ 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,28 +0,0 @@
|
||||||
{ 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 +0,0 @@
|
||||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIK+L723mCLy9/9UAXwkY3+06Oq22dOj+lDnA0lMLbrsR
|
|
|
@ -1,7 +0,0 @@
|
||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
boot = {
|
|
||||||
kernelPackages = pkgs.linuxPackages_latest;
|
|
||||||
kernel.sysctl."vm.max_map_count" = 2147483642;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{ 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,6 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
{
|
|
||||||
programs.home-manager.enable = true;
|
|
||||||
nixpkgs.config.allowUnfree = true;
|
|
||||||
home.stateVersion = "24.05";
|
|
||||||
}
|
|
Before Width: | Height: | Size: 1.5 MiB |
Before Width: | Height: | Size: 820 KiB |