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!
|
||||
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.
|
||||
Thanks for taking a look at my Nix* configs!
|
||||
While this is primarily organized for my use only, you may find each individual service file or user config to be a good starting point, or something to take and adapt into your own config.
|
||||
|
||||
### 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.
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
### Usage
|
||||
My config uses these tools:
|
||||
``Sway`` - Window manager / Desktop
|
||||
``ZSH`` - Primary shell
|
||||
``Foot`` - Terminal emulator
|
||||
``Rofi`` - App launcher and menu system
|
||||
Sway - Window manager / Desktop
|
||||
Foot - Terminal emulator
|
||||
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.
|
||||
`sysswitch` - Switch the system 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.
|
||||
|
||||
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:
|
||||
``gpg --pinentry-mode loopback --decrypt local.key.asc | git-crypt unlock -``
|
||||
|
||||
### Credits
|
||||
Without the help of heavy inspiration, I would not have been able to learn and get up and running nearly as quickly. My most heavily borrowed configs are as follows:
|
||||
[CloudyChris' nix-starter-configs fork](https://github.com/CloudyChris/NixOsConfig), the very initial base of my conversion to flakes.
|
||||
[WillPower3309's personal flake](https://github.com/WillPower3309/nixos-config) for being a pleasure in the SwayFX Discord and having a really nice flake.nix file I borrowed from.
|
||||
[Jules Sommer's minimal flake](https://github.com/WillPower3309/swayfx) for giving me a good basis for writing individual files and repeatedly helping me throughout the entire process.
|
||||
|
||||
Made with love ❤️
|
||||
|
||||
![image](./preview.png)
|
||||
|
|
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"
|
||||
}
|
||||
},
|
||||
"chaotic": {
|
||||
"inputs": {
|
||||
"flake-schemas": "flake-schemas",
|
||||
"home-manager": "home-manager",
|
||||
"jovian": "jovian",
|
||||
"nixpkgs": [
|
||||
"unstable"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1729510449,
|
||||
"narHash": "sha256-/EwjBMYBZ3/2ROT+4M/6tLomgJEgZBpKosWhqtYZkDI=",
|
||||
"owner": "chaotic-cx",
|
||||
"repo": "nyx",
|
||||
"rev": "4e03e8d762623ca925c604800aa18f109cd3bd97",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "chaotic-cx",
|
||||
"ref": "nyxpkgs-unstable",
|
||||
"repo": "nyx",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"crane": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
|
@ -147,20 +123,6 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-schemas": {
|
||||
"locked": {
|
||||
"lastModified": 1721999734,
|
||||
"narHash": "sha256-G5CxYeJVm4lcEtaO87LKzOsVnWeTcHGKbKxNamNWgOw=",
|
||||
"rev": "0a5c42297d870156d9c57d8f99e476b738dcd982",
|
||||
"revCount": 75,
|
||||
"type": "tarball",
|
||||
"url": "https://api.flakehub.com/f/pinned/DeterminateSystems/flake-schemas/0.1.5/0190ef2f-61e0-794b-ba14-e82f225e55e6/source.tar.gz"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
"url": "https://flakehub.com/f/DeterminateSystems/flake-schemas/%3D0.1.5.tar.gz"
|
||||
}
|
||||
},
|
||||
"flake-utils": {
|
||||
"inputs": {
|
||||
"systems": "systems"
|
||||
|
@ -236,27 +198,6 @@
|
|||
}
|
||||
},
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"chaotic",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1729414726,
|
||||
"narHash": "sha256-Dtmm1OU8Ymiy9hVWn/a2B8DhRYo9Eoyx9veERdOBR4o=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "fe56302339bb28e3471632379d733547caec8103",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"home-manager_2": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
|
@ -277,28 +218,6 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"jovian": {
|
||||
"inputs": {
|
||||
"nix-github-actions": "nix-github-actions",
|
||||
"nixpkgs": [
|
||||
"chaotic",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1729177642,
|
||||
"narHash": "sha256-DdKal+ZhB9QD/tnEwFg4cZ4j4YnrkvSljBxnyG+3eE0=",
|
||||
"owner": "Jovian-Experiments",
|
||||
"repo": "Jovian-NixOS",
|
||||
"rev": "bb69165ff372ddbd3228a03513922acd783040e8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "Jovian-Experiments",
|
||||
"repo": "Jovian-NixOS",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"lanzaboote": {
|
||||
"inputs": {
|
||||
"crane": "crane",
|
||||
|
@ -369,29 +288,6 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-github-actions": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"chaotic",
|
||||
"jovian",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1690328911,
|
||||
"narHash": "sha256-fxtExYk+aGf2YbjeWQ8JY9/n9dwuEt+ma1eUFzF8Jeo=",
|
||||
"owner": "zhaofengli",
|
||||
"repo": "nix-github-actions",
|
||||
"rev": "96df4a39c52f53cb7098b923224d8ce941b64747",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "zhaofengli",
|
||||
"ref": "matrix-name",
|
||||
"repo": "nix-github-actions",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1722221733,
|
||||
|
@ -470,17 +366,18 @@
|
|||
},
|
||||
"nixpkgs_4": {
|
||||
"locked": {
|
||||
"lastModified": 1728740863,
|
||||
"narHash": "sha256-u+rxA79a0lyhG+u+oPBRtTDtzz8kvkc9a6SWSt9ekVc=",
|
||||
"owner": "NixOS",
|
||||
"lastModified": 1727540905,
|
||||
"narHash": "sha256-40J9tW7Y794J7Uw4GwcAKlMxlX2xISBl6IBigo83ih8=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "a3f9ad65a0bf298ed5847629a57808b97e6e8077",
|
||||
"rev": "fbca5e745367ae7632731639de5c21f29c8744ed",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"id": "nixpkgs",
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-24.05",
|
||||
"type": "indirect"
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nur": {
|
||||
|
@ -528,9 +425,8 @@
|
|||
"root": {
|
||||
"inputs": {
|
||||
"blender-bin": "blender-bin",
|
||||
"chaotic": "chaotic",
|
||||
"hardware": "hardware",
|
||||
"home-manager": "home-manager_2",
|
||||
"home-manager": "home-manager",
|
||||
"lanzaboote": "lanzaboote",
|
||||
"mailserver": "mailserver",
|
||||
"minecraft": "minecraft",
|
||||
|
@ -613,15 +509,16 @@
|
|||
"locked": {
|
||||
"lastModified": 1728492678,
|
||||
"narHash": "sha256-9UTxR8eukdg+XZeHgxW5hQA9fIKHsKCdOIUycTryeVw=",
|
||||
"owner": "NixOS",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "5633bcff0c6162b9e4b5f1264264611e950c8ec7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"id": "nixpkgs",
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-unstable",
|
||||
"type": "indirect"
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"utils": {
|
||||
|
|
118
flake.nix
|
@ -1,91 +1,97 @@
|
|||
{
|
||||
description = "Jimbo's systems as a flake";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "nixpkgs/nixos-24.05";
|
||||
unstable.url = "nixpkgs/nixos-unstable";
|
||||
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager/release-24.05";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05";
|
||||
unstable.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
nur.url = "github:nix-community/NUR";
|
||||
chaotic = {
|
||||
url = "github:chaotic-cx/nyx/nyxpkgs-unstable";
|
||||
inputs.nixpkgs.follows = "unstable";
|
||||
};
|
||||
|
||||
mailserver.url = "gitlab:simple-nixos-mailserver/nixos-mailserver/nixos-24.05";
|
||||
blender-bin.url = "https://flakehub.com/f/edolstra/blender-bin/1.0.9.tar.gz";
|
||||
minecraft.url = "github:Infinidoge/nix-minecraft";
|
||||
hardware.url = "github:nixos/nixos-hardware/master";
|
||||
|
||||
# Secure boot
|
||||
lanzaboote = {
|
||||
url = "github:nix-community/lanzaboote/v0.4.1";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
mailserver.url = "gitlab:simple-nixos-mailserver/nixos-mailserver/nixos-24.05";
|
||||
minecraft.url = "github:Infinidoge/nix-minecraft";
|
||||
# Home manager
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager/release-24.05";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
|
||||
outputs = {
|
||||
self,
|
||||
nixpkgs,
|
||||
unstable,
|
||||
home-manager,
|
||||
nur,
|
||||
chaotic,
|
||||
mailserver,
|
||||
blender-bin,
|
||||
hardware,
|
||||
lanzaboote,
|
||||
mailserver,
|
||||
minecraft,
|
||||
home-manager,
|
||||
...
|
||||
}:
|
||||
let
|
||||
mkNix = modules: nixpkgs.lib.nixosSystem {
|
||||
}@inputs: let
|
||||
mkNixos = modules: nixpkgs.lib.nixosSystem {
|
||||
inherit modules;
|
||||
specialArgs = {
|
||||
inherit
|
||||
unstable
|
||||
chaotic
|
||||
hardware
|
||||
lanzaboote
|
||||
mailserver
|
||||
minecraft
|
||||
;
|
||||
};
|
||||
specialArgs = { inherit (self) inputs outputs; };
|
||||
};
|
||||
|
||||
mkHome = modules: pkgs: home-manager.lib.homeManagerConfiguration {
|
||||
inherit modules pkgs;
|
||||
extraSpecialArgs = {
|
||||
inherit
|
||||
unstable
|
||||
nur
|
||||
blender-bin
|
||||
;
|
||||
};
|
||||
extraSpecialArgs = { inherit (self) inputs outputs; };
|
||||
};
|
||||
in {
|
||||
# nixos-rebuild switch --flake .#hostname
|
||||
nixosConfigurations = {
|
||||
# PCs and Laptops
|
||||
firefly = mkNix [ ./hosts/firefly/system ];
|
||||
shuttleworth = mkNix [ ./hosts/shuttleworth/system ];
|
||||
lacros = mkNix [ ./hosts/lacros/system ];
|
||||
redmond = mkNix [ ./hosts/redmond/system ];
|
||||
# Your custom packages and modifications, exported as overlays
|
||||
overlays = import ./extras/overlays.nix { inherit inputs; };
|
||||
|
||||
# Servers
|
||||
cyberspark = mkNix [ ./hosts/cyberspark/system ];
|
||||
bomberman = mkNix [ ./hosts/bomberman/system ];
|
||||
# Variables defined so they can be accessed globally
|
||||
secrets = import ./extras/secrets.nix;
|
||||
cmd = import ./extras/cmd.nix;
|
||||
displays = import ./extras/displays.nix;
|
||||
ips = import ./extras/ips.nix;
|
||||
look = import ./extras/look.nix;
|
||||
ws = import ./extras/workspaces.nix;
|
||||
|
||||
# NixOS configuration: 'nixos-rebuild --flake .#hostname'
|
||||
nixosConfigurations = {
|
||||
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 = {
|
||||
"jimbo@firefly" = mkHome [ ./hosts/firefly/home ] nixpkgs.legacyPackages.x86_64-linux;
|
||||
"jimbo@shuttleworth" = mkHome [ ./hosts/shuttleworth/home ] nixpkgs.legacyPackages.aarch64-linux;
|
||||
"jimbo@lacros" = mkHome [ ./hosts/lacros/home ] nixpkgs.legacyPackages.x86_64-linux;
|
||||
"jimbo@redmond" = mkHome [ ./hosts/redmond/home ] nixpkgs.legacyPackages.x86_64-linux;
|
||||
"jimbo@JimDesktop" = mkHome [
|
||||
./home/hosts/JimDesktop/home.nix
|
||||
nur.nixosModules.nur
|
||||
] nixpkgs.legacyPackages.x86_64-linux;
|
||||
|
||||
"jimbo@cyberspark" = mkHome [ ./hosts/cyberspark/home ] nixpkgs.legacyPackages.x86_64-linux;
|
||||
"jimbo@bomberman" = mkHome [ ./hosts/bomberman/home ] nixpkgs.legacyPackages.aarch64-linux;
|
||||
"jimbo@JimServer" = mkHome [
|
||||
./home/hosts/JimServer/home.nix
|
||||
] nixpkgs.legacyPackages.x86_64-linux;
|
||||
|
||||
"jimbo@JimPine" = mkHome [
|
||||
./home/hosts/JimPine/home.nix
|
||||
nur.nixosModules.nur
|
||||
] nixpkgs.legacyPackages.aarch64-linux;
|
||||
|
||||
# Profile for ssh envrionments on different non-root systems
|
||||
"jimbo@JimTerminal" = mkHome [
|
||||
./home/hosts/JimTerminal/home.nix
|
||||
] nixpkgs.legacyPackages.x86_64-linux;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
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; [
|
||||
yt-dlp
|
||||
spotdl
|
|
@ -1,11 +1,10 @@
|
|||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
{pkgs, ...}: {
|
||||
home.packages = with pkgs; [
|
||||
dolphin-emu
|
||||
cemu
|
||||
ryujinx
|
||||
duckstation
|
||||
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; [
|
||||
steam
|
||||
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; [
|
||||
moonlight-qt
|
||||
rustdesk-flutter
|
|
@ -1,9 +1,9 @@
|
|||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
{pkgs, ...}: {
|
||||
home.packages = with pkgs; [
|
||||
remmina
|
||||
freerdp
|
||||
zoom-us
|
||||
globalprotect-openconnect
|
||||
python3
|
||||
zoom-us
|
||||
];
|
||||
}
|
|
@ -1,9 +1,10 @@
|
|||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
{pkgs, ...}: {
|
||||
home.packages = with pkgs; [
|
||||
imv
|
||||
qbittorrent
|
||||
libreoffice-fresh
|
||||
vesktop
|
||||
fractal
|
||||
ffmpegthumbnailer
|
||||
thunderbird
|
||||
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; [
|
||||
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 = {
|
||||
enable = true;
|
||||
server.enable = false;
|
||||
settings = {
|
||||
main = {
|
||||
term = "xterm-256color";
|
||||
font = "${config.look.fonts.nerd}:size=14.7";
|
||||
font = "${outputs.look.fonts.nerd}:size=14.7";
|
||||
};
|
||||
cursor = {
|
||||
style = "beam";
|
||||
};
|
||||
colors = {
|
||||
alpha = "0.85";
|
||||
background = "${config.look.colors.dark}";
|
||||
alpha = "0.65";
|
||||
background = "${outputs.look.colors.dark}";
|
||||
regular0 = "3f3f3f";
|
||||
regular1 = "cc0000";
|
||||
regular2 = "4e9a06";
|
|
@ -1,9 +1,9 @@
|
|||
{ pkgs, config, ... }:
|
||||
{
|
||||
{pkgs, outputs, ...}: {
|
||||
# Define GTK theme settings
|
||||
gtk = {
|
||||
enable = true;
|
||||
font = {
|
||||
name = "${config.look.fonts.main}";
|
||||
name = "${outputs.look.fonts.main}";
|
||||
size = 11;
|
||||
};
|
||||
theme = {
|
||||
|
@ -16,7 +16,7 @@
|
|||
};
|
||||
};
|
||||
iconTheme = {
|
||||
package = pkgs.papirus-icon-theme.override { color = "${config.look.colors.folder}"; };
|
||||
package = pkgs.papirus-icon-theme.override {color = "indigo";};
|
||||
name = "Papirus-Dark";
|
||||
};
|
||||
cursorTheme = {
|
||||
|
@ -24,6 +24,7 @@
|
|||
name = "Simp1e-Dark";
|
||||
};
|
||||
|
||||
# GTK app bookmarks
|
||||
gtk3 = {
|
||||
bookmarks = [
|
||||
# Local
|
||||
|
@ -33,7 +34,16 @@
|
|||
"file:///home/jimbo/Pictures/Screenshots"
|
||||
"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
|
||||
"file:///home/jimbo/JimboNFS/School"
|
||||
"file:///etc/nixos"
|
||||
];
|
||||
|
|
@ -1,31 +1,30 @@
|
|||
{ pkgs, config, ... }:
|
||||
let
|
||||
# FireFox colors, based on https://github.com/Dook97/firefox-qutebrowser-userchrome
|
||||
{pkgs, config, outputs, ...}: let
|
||||
# FireFox colors
|
||||
themeJim = ''
|
||||
:root {
|
||||
--tab-active-bg-color: #${config.look.colors.prime};
|
||||
--tab-hover-bg-color: #${config.look.colors.accent};
|
||||
--tab-inactive-bg-color: #${config.look.colors.dark};
|
||||
--tab-active-bg-color: #${outputs.look.colors.prime};
|
||||
--tab-hover-bg-color: #${outputs.look.colors.accent};
|
||||
--tab-inactive-bg-color: #${outputs.look.colors.dark};
|
||||
--tab-active-fg-fallback-color: #FFFFFF;
|
||||
--tab-inactive-fg-fallback-color: #${config.look.colors.text};
|
||||
--urlbar-focused-bg-color: #${config.look.colors.dark};
|
||||
--urlbar-not-focused-bg-color: #${config.look.colors.dark};
|
||||
--toolbar-bgcolor: #${config.look.colors.dark} !important;
|
||||
--tab-inactive-fg-fallback-color: #${outputs.look.colors.text};
|
||||
--urlbar-focused-bg-color: #${outputs.look.colors.dark};
|
||||
--urlbar-not-focused-bg-color: #${outputs.look.colors.dark};
|
||||
--toolbar-bgcolor: #${outputs.look.colors.dark} !important;
|
||||
'';
|
||||
themeAlt = ''
|
||||
:root {
|
||||
--tab-active-bg-color: #${config.look.colors.dark};
|
||||
--tab-hover-bg-color: #${config.look.colors.accent};
|
||||
--tab-inactive-bg-color: #${config.look.colors.prime};
|
||||
--tab-active-fg-fallback-color: #${config.look.colors.text};
|
||||
--tab-active-bg-color: #${outputs.look.colors.dark};
|
||||
--tab-hover-bg-color: #${outputs.look.colors.accent};
|
||||
--tab-inactive-bg-color: #${outputs.look.colors.prime};
|
||||
--tab-active-fg-fallback-color: #${outputs.look.colors.text};
|
||||
--tab-inactive-fg-fallback-color: #FFFFFF;
|
||||
--urlbar-focused-bg-color: #${config.look.colors.prime};
|
||||
--urlbar-not-focused-bg-color: #${config.look.colors.prime};
|
||||
--toolbar-bgcolor: #${config.look.colors.prime} !important;
|
||||
--urlbar-focused-bg-color: #${outputs.look.colors.prime};
|
||||
--urlbar-not-focused-bg-color: #${outputs.look.colors.prime};
|
||||
--toolbar-bgcolor: #${outputs.look.colors.prime} !important;
|
||||
'';
|
||||
quteFoxCSS = ''
|
||||
--tab-font: '${config.look.fonts.main}';
|
||||
--urlbar-font: '${config.look.fonts.main}';
|
||||
--tab-font: '${outputs.look.fonts.main}';
|
||||
--urlbar-font: '${outputs.look.fonts.main}';
|
||||
|
||||
/* try increasing if you encounter problems */
|
||||
--urlbar-height-setting: 24px;
|
||||
|
@ -336,9 +335,9 @@ in {
|
|||
};
|
||||
};
|
||||
commonSettings = {
|
||||
"font.name.serif.x-western" = "${config.look.fonts.main}";
|
||||
"font.name.sans-serif.x-western" = "${config.look.fonts.main}";
|
||||
"font.name.monospace.x-western" = "${config.look.fonts.nerd}";
|
||||
"font.name.serif.x-western" = "${outputs.look.fonts.main}";
|
||||
"font.name.sans-serif.x-western" = "${outputs.look.fonts.main}";
|
||||
"font.name.monospace.x-western" = "${outputs.look.fonts.nerd}";
|
||||
"general.autoScroll" = true;
|
||||
"browser.compactmode.show" = true;
|
||||
"browser.uidensity" = 1;
|
|
@ -1,11 +1,11 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
{pkgs, ...}: {
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
mangohud
|
||||
];
|
||||
file = {
|
||||
".config/MangoHud/MangoHud.conf".text = ''
|
||||
file = let
|
||||
# Mangohud config file
|
||||
mangoConf = ''
|
||||
table_columns=2
|
||||
frametime=0
|
||||
legacy_layout=0
|
||||
|
@ -24,6 +24,9 @@
|
|||
gpu_load_change
|
||||
frame_timing
|
||||
'';
|
||||
in {
|
||||
# Mangohud config
|
||||
".config/MangoHud/MangoHud.conf".text = mangoConf;
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
{ ... }:
|
||||
{
|
||||
# MPV settings
|
||||
programs.mpv = {
|
||||
enable = true;
|
||||
config = {
|
|
@ -1,5 +1,5 @@
|
|||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
{pkgs, ...}: {
|
||||
# OBS with plugins
|
||||
programs.obs-studio = {
|
||||
enable = true;
|
||||
plugins = with pkgs.obs-studio-plugins; [
|
|
@ -1,12 +1,12 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
{pkgs, ...}: {
|
||||
# Swappy config file
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
pcmanfm-qt
|
||||
gnome.file-roller
|
||||
];
|
||||
file = {
|
||||
".config/pcmanfm-qt/default/settings.conf".text = ''
|
||||
file = let
|
||||
# File manager config
|
||||
pcmanConf = ''
|
||||
[Behavior]
|
||||
BookmarkOpenMethod=current_tab
|
||||
ConfirmDelete=true
|
||||
|
@ -53,6 +53,9 @@
|
|||
SwitchToNewTab=true
|
||||
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 = {
|
||||
enable = true;
|
||||
package = pkgs.rofi-wayland;
|
||||
terminal = "foot";
|
||||
font = "${config.look.fonts.main} 14";
|
||||
font = "${outputs.look.fonts.main} 14";
|
||||
theme = let
|
||||
inherit (config.lib.formats.rasi) mkLiteral;
|
||||
in {
|
||||
|
@ -15,24 +15,24 @@
|
|||
red = mkLiteral "#DC322F";
|
||||
background-color = mkLiteral "#00000000";
|
||||
separatorcolor = mkLiteral "#00000000";
|
||||
normal-foreground = mkLiteral "#${config.look.colors.text}";
|
||||
normal-background = mkLiteral "#${config.look.colors.dark}1A";
|
||||
urgent-foreground = mkLiteral "#${config.look.colors.urgent}";
|
||||
active-foreground = mkLiteral "#${config.look.colors.split}";
|
||||
selected-active-foreground = mkLiteral "#${config.look.colors.prime}";
|
||||
background = mkLiteral "#${config.look.colors.dark}D9";
|
||||
bordercolor = mkLiteral "#${config.look.colors.prime}";
|
||||
normal-foreground = mkLiteral "#${outputs.look.colors.text}";
|
||||
normal-background = mkLiteral "#${outputs.look.colors.dark}1A";
|
||||
urgent-foreground = mkLiteral "#${outputs.look.colors.urgent}";
|
||||
active-foreground = mkLiteral "#${outputs.look.colors.split}";
|
||||
selected-active-foreground = mkLiteral "#${outputs.look.colors.prime}";
|
||||
background = mkLiteral "#${outputs.look.colors.dark}B3";
|
||||
bordercolor = mkLiteral "#${outputs.look.colors.prime}";
|
||||
selected-normal-foreground = mkLiteral "#FFFFFF";
|
||||
selected-normal-background = mkLiteral "#${config.look.colors.prime}80";
|
||||
border-color = mkLiteral "#${config.look.colors.prime}";
|
||||
urgent-background = mkLiteral "#${config.look.colors.accent}26";
|
||||
active-background = mkLiteral "#${config.look.colors.accent}26";
|
||||
selected-active-background = mkLiteral "#${config.look.colors.split}54";
|
||||
selected-normal-background = mkLiteral "#${outputs.look.colors.prime}80";
|
||||
border-color = mkLiteral "#${outputs.look.colors.prime}";
|
||||
urgent-background = mkLiteral "#${outputs.look.colors.accent}26";
|
||||
active-background = mkLiteral "#${outputs.look.colors.accent}26";
|
||||
selected-active-background = mkLiteral "#${outputs.look.colors.split}54";
|
||||
};
|
||||
"#window" = {
|
||||
background-color = mkLiteral "@background";
|
||||
width = 500;
|
||||
border = mkLiteral "${config.look.border.string}";
|
||||
border = mkLiteral "${outputs.look.border.string}";
|
||||
padding = 5;
|
||||
};
|
||||
"#message" = {
|
||||
|
@ -124,7 +124,7 @@
|
|||
};
|
||||
};
|
||||
home.packages = let
|
||||
# A script to execute commands with Rofi
|
||||
# All my rofi scripts in one file
|
||||
rofiScripts = pkgs.writeScriptBin "rofiscripts" ''
|
||||
# Scratchpad function
|
||||
handle_scratchpads() {
|
||||
|
@ -155,13 +155,13 @@
|
|||
case $RET in
|
||||
Default) swaymsg reload ;;
|
||||
Wide) swaymsg "
|
||||
output ${config.displays.d1} enable pos 1680 0 mode 1680x1050@59.954Hz
|
||||
output ${config.displays.d2} enable pos 0 0 mode 1680x1050@59.954Hz
|
||||
output ${config.displays.d3} enable pos 3360 0 transform 0
|
||||
output ${outputs.displays.d1} enable pos 1680 0 mode 1680x1050@59.954Hz
|
||||
output ${outputs.displays.d2} enable pos 0 0 mode 1680x1050@59.954Hz
|
||||
output ${outputs.displays.d3} enable pos 3360 0 transform 0
|
||||
";;
|
||||
GPU2) swaymsg "
|
||||
output ${config.displays.d2} enable pos 1680 0 mode 1920x1080@60Hz
|
||||
output ${config.displays.d3} enable pos 0 0 transform 0
|
||||
output ${outputs.displays.d2} enable pos 1680 0 mode 1920x1080@60Hz
|
||||
output ${outputs.displays.d3} enable pos 0 0 transform 0
|
||||
";;
|
||||
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 = {
|
||||
enable = true;
|
||||
borderColor = "#${config.look.colors.accent}";
|
||||
backgroundColor = "#${config.look.colors.dark}D9";
|
||||
output = "${config.displays.d1}";
|
||||
borderColor = "#${outputs.look.colors.accent}";
|
||||
backgroundColor = "#${outputs.look.colors.dark}CC";
|
||||
output = "${outputs.displays.d1}";
|
||||
sort = "+time";
|
||||
layer = "overlay";
|
||||
padding = "8";
|
||||
margin = "0";
|
||||
borderSize = config.look.border.int;
|
||||
borderSize = outputs.look.border.int;
|
||||
maxIconSize = 40;
|
||||
defaultTimeout = 6000;
|
||||
font = "${config.look.fonts.main} 12";
|
||||
font = "${outputs.look.fonts.main} 12";
|
||||
anchor = "bottom-right";
|
||||
extraConfig = "on-button-right=dismiss-all\nouter-margin=10\n[mode=do-not-disturb]\ninvisible=1";
|
||||
};
|
||||
|
||||
# Script to toggle notifications using mako
|
||||
home.packages = let
|
||||
makoToggle = pkgs.writeScriptBin "makotoggle" ''
|
||||
# Run makoctl mode and store the output in a variable
|
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 = {
|
||||
enable = true;
|
||||
automount = false;
|
|
@ -1,7 +1,8 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
{config, pkgs, ...}: {
|
||||
# Enable Sway and write some scripts
|
||||
wayland.windowManager.sway = {
|
||||
config = {
|
||||
# Use Waybar rather than Sway's
|
||||
bars = [{command = "waybar";}];
|
||||
|
||||
startup = [
|
|
@ -1,31 +1,31 @@
|
|||
{ config, ... }:
|
||||
{
|
||||
{config, pkgs, outputs, ...}: {
|
||||
wayland.windowManager.sway = {
|
||||
config = {
|
||||
# Define monitors
|
||||
output = {
|
||||
${config.displays.d1} = {
|
||||
${outputs.displays.d1} = {
|
||||
pos = "1920 405";
|
||||
mode = "1920x1080@143.980Hz";
|
||||
max_render_time = "3";
|
||||
bg = "~/.assets/wallpapers/1.png fill";
|
||||
bg = "~/.wallpapers/1.png fill";
|
||||
adaptive_sync = "on";
|
||||
#tearing_allowed = "1";
|
||||
};
|
||||
${config.displays.d2} = {
|
||||
${outputs.displays.d2} = {
|
||||
pos = "0 405";
|
||||
mode = "1920x1080@60Hz";
|
||||
max_render_time = "3";
|
||||
bg = "~/.assets/wallpapers/2.png fill";
|
||||
bg = "~/.wallpapers/2.png fill";
|
||||
};
|
||||
${config.displays.d3} = {
|
||||
${outputs.displays.d3} = {
|
||||
pos = "3840 0";
|
||||
mode = "1680x1050@59.883Hz";
|
||||
transform = "270";
|
||||
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 = {
|
||||
config = {
|
||||
# Assign workspaces to config
|
||||
# Assign workspaces to outputs
|
||||
workspaceOutputAssign = let
|
||||
workspaces1 = [
|
||||
"${config.ws.w0}"
|
||||
"${config.ws.w1}"
|
||||
"${config.ws.w2}"
|
||||
"${config.ws.w3}"
|
||||
"${config.ws.w1a}"
|
||||
"${config.ws.w2a}"
|
||||
"${config.ws.w3a}"
|
||||
"${outputs.ws.w0}"
|
||||
"${outputs.ws.w1}"
|
||||
"${outputs.ws.w2}"
|
||||
"${outputs.ws.w3}"
|
||||
"${outputs.ws.w1a}"
|
||||
"${outputs.ws.w2a}"
|
||||
"${outputs.ws.w3a}"
|
||||
];
|
||||
workspaces2 = [
|
||||
"${config.ws.w4}"
|
||||
"${config.ws.w5}"
|
||||
"${config.ws.w6}"
|
||||
"${config.ws.w4a}"
|
||||
"${config.ws.w5a}"
|
||||
"${config.ws.w6a}"
|
||||
"${outputs.ws.w4}"
|
||||
"${outputs.ws.w5}"
|
||||
"${outputs.ws.w6}"
|
||||
"${outputs.ws.w4a}"
|
||||
"${outputs.ws.w5a}"
|
||||
"${outputs.ws.w6a}"
|
||||
];
|
||||
workspaces3 = [
|
||||
"${config.ws.w7}"
|
||||
"${config.ws.w8}"
|
||||
"${config.ws.w9}"
|
||||
"${config.ws.w7a}"
|
||||
"${config.ws.w8a}"
|
||||
"${config.ws.w9a}"
|
||||
"${outputs.ws.w7}"
|
||||
"${outputs.ws.w8}"
|
||||
"${outputs.ws.w9}"
|
||||
"${outputs.ws.w7a}"
|
||||
"${outputs.ws.w8a}"
|
||||
"${outputs.ws.w9a}"
|
||||
];
|
||||
assign = output: workspaces:
|
||||
map (workspace: {
|
||||
|
@ -36,13 +36,13 @@
|
|||
})
|
||||
workspaces;
|
||||
in
|
||||
(assign "${config.displays.d1}" workspaces1) ++
|
||||
(assign "${config.displays.d2}" workspaces2) ++
|
||||
(assign "${config.displays.d3}" workspaces3);
|
||||
(assign "${outputs.displays.d1}" workspaces1) ++
|
||||
(assign "${outputs.displays.d2}" workspaces2) ++
|
||||
(assign "${outputs.displays.d3}" workspaces3);
|
||||
|
||||
# Rules
|
||||
window = {
|
||||
border = config.look.border.int;
|
||||
border = outputs.look.border.int;
|
||||
titlebar = false;
|
||||
commands = [
|
||||
# Scratchpads
|
||||
|
@ -76,7 +76,7 @@
|
|||
# Give apps that don't have them borders
|
||||
{
|
||||
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";};
|
||||
|
@ -111,20 +111,20 @@
|
|||
];
|
||||
};
|
||||
assigns = {
|
||||
# Broconfig.wsers
|
||||
"${config.ws.w1}" = [{app_id = "JimBrowser";}];
|
||||
"${config.ws.w1a}" = [{app_id = "AltBrowser";}];
|
||||
# Brooutputs.wsers
|
||||
"${outputs.ws.w1}" = [{app_id = "JimBrooutputs.wser";}];
|
||||
"${outputs.ws.w1a}" = [{app_id = "AltBrooutputs.wser";}];
|
||||
|
||||
# Communication
|
||||
"${config.ws.w3a}" = [{class = "zoom";}];
|
||||
"${config.ws.w7}" = [{app_id = "MiscBrowser";} {app_id = "vesktop";} {class = "vesktop";}];
|
||||
"${config.ws.w8}" = [{app_id = "org.gnome.Fractal";}];
|
||||
"${config.ws.w9}" = [{app_id = "thunderbird";}];
|
||||
"${outputs.ws.w3a}" = [{class = "zoom";}];
|
||||
"${outputs.ws.w7}" = [{app_id = "MiscBrowser";} {app_id = "vesktop";} {class = "vesktop";}];
|
||||
"${outputs.ws.w8}" = [{app_id = "org.gnome.Fractal";}];
|
||||
"${outputs.ws.w9}" = [{app_id = "thunderbird";}];
|
||||
|
||||
# Else
|
||||
"${config.ws.w2}" = [{class = "steam";} {app_id = "heroic";}];
|
||||
"${config.ws.w2a}" = [{app_id = "looking-glass-client";}];
|
||||
"${config.ws.w4a}" = [{app_id = "com.obsproject.Studio";}];
|
||||
"${outputs.ws.w2}" = [{class = "steam";} {app_id = "heroic";}];
|
||||
"${outputs.ws.w2a}" = [{app_id = "looking-glass-client";}];
|
||||
"${outputs.ws.w4a}" = [{app_id = "com.obsproject.Studio";}];
|
||||
};
|
||||
focus.newWindow = "focus";
|
||||
};
|
|
@ -1,24 +1,25 @@
|
|||
{ config, pkgs, ... }:
|
||||
{
|
||||
{config, pkgs, outputs, ...}: {
|
||||
# Import modules
|
||||
imports = [
|
||||
./hardware
|
||||
./theme
|
||||
./hotkeys
|
||||
./programs
|
||||
./rules
|
||||
./autostart
|
||||
./waybar
|
||||
./swayshot
|
||||
./swaylock
|
||||
#"./swayfx.nix"
|
||||
./hardware.nix
|
||||
./theme.nix
|
||||
./hotkeys.nix
|
||||
./rules.nix
|
||||
./autostart.nix
|
||||
./waybar.nix
|
||||
./swayshot.nix
|
||||
];
|
||||
|
||||
# Enable Sway and write some scripts
|
||||
wayland.windowManager.sway = {
|
||||
enable = true;
|
||||
package = null;
|
||||
wrapperFeatures.gtk = true;
|
||||
checkConfig = false;
|
||||
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
|
||||
titlebar_padding 10 1
|
||||
primary_selection disabled
|
||||
|
@ -30,8 +31,8 @@
|
|||
}}
|
||||
|
||||
# Switch to workspace 1
|
||||
workspace ${config.ws.w7}
|
||||
workspace ${config.ws.w1}
|
||||
workspace ${outputs.ws.w7}
|
||||
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, ... }:
|
||||
let
|
||||
{config, pkgs, outputs, ...}: let
|
||||
swayLock = pkgs.writeScriptBin "swaylock" ''
|
||||
# Set the lock script
|
||||
lockscript() {
|
||||
BLANK='#00000000'
|
||||
CLEAR='#FFFFFF22'
|
||||
DEFAULT='#${config.look.colors.prime}FF'
|
||||
DEFAULT='#${outputs.look.colors.prime}FF'
|
||||
TEXT='#FFFFFFFF'
|
||||
WRONG='#${config.look.colors.split}FF'
|
||||
VERIFYING='#${config.look.colors.accent}FF'
|
||||
WRONG='#${outputs.look.colors.split}FF'
|
||||
VERIFYING='#${outputs.look.colors.accent}FF'
|
||||
|
||||
${pkgs.swaylock-effects}/bin/swaylock -f -e \
|
||||
--key-hl-color=$VERIFYING \
|
||||
|
@ -33,9 +32,9 @@ let
|
|||
\
|
||||
--indicator \
|
||||
--indicator-radius=80 \
|
||||
--image=~/.assets/lockscreen/lock.png \
|
||||
--image=~/.wallpapers/lock.png \
|
||||
--clock \
|
||||
--font=${config.look.fonts.main} \
|
||||
--font=${outputs.look.fonts.main} \
|
||||
--font-size=30 \
|
||||
--timestr="%I:%M%p" \
|
||||
--datestr="%a %b %d %Y"
|
|
@ -1,10 +1,6 @@
|
|||
{ pkgs, config, ... }:
|
||||
{
|
||||
imports = [
|
||||
./swappy
|
||||
];
|
||||
|
||||
{pkgs, outputs, ...}: {
|
||||
home.packages = let
|
||||
# Use grim and slurp to take screenshots in multiple ways
|
||||
swayShot = pkgs.writeScriptBin "swayshot" ''
|
||||
# Swappy
|
||||
handle_swappy() {
|
||||
|
@ -13,7 +9,7 @@
|
|||
|
||||
# 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)"'\
|
||||
| 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
|
||||
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
|
||||
swayWorkspacesModule = {
|
||||
format = "{name}";
|
||||
|
@ -27,7 +26,7 @@
|
|||
format-icons = {
|
||||
headphone = " ";
|
||||
headset = " ";
|
||||
default = [ " " " " ];
|
||||
default = [" " " "];
|
||||
};
|
||||
on-click = "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle";
|
||||
on-click-middle = "wpctl set-volume @DEFAULT_AUDIO_SINK@ 100%";
|
||||
|
@ -262,7 +261,7 @@
|
|||
name = "bar1";
|
||||
position = "top";
|
||||
layer = "bottom";
|
||||
output = [ config.displays.d1 "VGA-1" ];
|
||||
output = [outputs.displays.d1 "VGA-1"];
|
||||
modules-left = ["sway/workspaces" "sway/window"];
|
||||
modules-right = [
|
||||
"pulseaudio"
|
||||
|
@ -287,13 +286,13 @@
|
|||
"sway/scratchpad" = scratchpadModule;
|
||||
"tray" = trayModule;
|
||||
"bluetooth" = bluetoothModule;
|
||||
"network" = networkModule // { interface = "enp*"; };
|
||||
"network" = networkModule // {interface = "enp*";};
|
||||
};
|
||||
display2 = {
|
||||
name = "bar2";
|
||||
position = "top";
|
||||
layer = "bottom";
|
||||
output = [ config.displays.d2 ];
|
||||
output = [outputs.displays.d2];
|
||||
modules-left = ["sway/workspaces" "sway/window"];
|
||||
modules-right = [
|
||||
"pulseaudio"
|
||||
|
@ -318,7 +317,7 @@
|
|||
name = "bar3";
|
||||
position = "top";
|
||||
layer = "bottom";
|
||||
output = [ config.displays.d3 ];
|
||||
output = [outputs.displays.d3];
|
||||
modules-left = ["sway/workspaces" "sway/window"];
|
||||
modules-right = [
|
||||
"pulseaudio"
|
||||
|
@ -341,8 +340,8 @@
|
|||
name = "laptop";
|
||||
position = "top";
|
||||
layer = "bottom";
|
||||
output = [ "eDP-1" "LVDS-1" "DSI-1" "HDMI-A-1" ];
|
||||
modules-left = [ "sway/workspaces" "sway/window" ];
|
||||
output = ["eDP-1" "LVDS-1" "DSI-1" "HDMI-A-1"];
|
||||
modules-left = ["sway/workspaces" "sway/window"];
|
||||
modules-right = [
|
||||
"pulseaudio"
|
||||
"custom/media"
|
||||
|
@ -383,12 +382,12 @@
|
|||
border: 0;
|
||||
border-radius: 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;
|
||||
color: #${config.look.colors.text};
|
||||
color: #${outputs.look.colors.text};
|
||||
}
|
||||
#waybar {
|
||||
background: #${config.look.colors.dark};
|
||||
background: #${outputs.look.colors.dark};
|
||||
}
|
||||
#workspaces {
|
||||
padding: 0 6px 0 0;
|
||||
|
@ -413,15 +412,15 @@
|
|||
min-width: 20px;
|
||||
}
|
||||
#workspaces button.visible {
|
||||
border-bottom: 3px solid #${config.look.colors.prime};
|
||||
background: #${config.look.colors.mid};
|
||||
border-bottom: 3px solid #${outputs.look.colors.prime};
|
||||
background: #${outputs.look.colors.mid};
|
||||
}
|
||||
#workspaces button.urgent {
|
||||
border-bottom: 3px solid #${config.look.colors.urgent};
|
||||
border-bottom: 3px solid #${outputs.look.colors.urgent};
|
||||
}
|
||||
#workspaces button:hover {
|
||||
box-shadow: none;
|
||||
background: #${config.look.colors.light};
|
||||
background: #${outputs.look.colors.light};
|
||||
}
|
||||
#scratchpad {
|
||||
margin-left: 2px;
|
||||
|
@ -457,13 +456,13 @@
|
|||
color: #888;
|
||||
}
|
||||
#custom-weather {
|
||||
border-bottom: 3px solid #3823C4;
|
||||
border-bottom: 3px solid #${outputs.look.colors.prime};
|
||||
}
|
||||
#custom-weather2 {
|
||||
border-bottom: 3px solid #c75bd3;
|
||||
}
|
||||
#custom-notifs {
|
||||
border-bottom: 3px solid #3823C4;
|
||||
border-bottom: 3px solid #${outputs.look.colors.prime};
|
||||
}
|
||||
#custom-notifs.disabled {
|
||||
color: #888;
|
|
@ -1,4 +1,3 @@
|
|||
{ ... }:
|
||||
{
|
||||
home = {
|
||||
username = "jimbo";
|
|
@ -1,5 +1,4 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
{pkgs, ...}: {
|
||||
home = {
|
||||
file = let
|
||||
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 = {
|
||||
enable = true;
|
||||
settings = {
|
||||
browser_sort_mode = "name";
|
||||
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;
|
||||
|
||||
# Allow terminal control of mpd
|
||||
home.packages = with pkgs; [
|
||||
mpc-cli
|
||||
];
|
|
@ -1,5 +1,5 @@
|
|||
{ config, pkgs, ... }:
|
||||
{
|
||||
{pkgs, outputs, ...}: {
|
||||
# Install Neovim and plugins
|
||||
programs.neovim = {
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
|
@ -85,8 +85,8 @@
|
|||
let g:airline_theme='onedark'
|
||||
let g:airline#extensions#tabline#enabled = 1
|
||||
hi Normal guibg=none ctermbg=235
|
||||
hi Visual guibg=#${config.look.colors.mid} ctermbg=238
|
||||
hi Pmenu guibg=#${config.look.colors.mid} ctermbg=238
|
||||
hi Visual guibg=#${outputs.look.colors.mid} ctermbg=238
|
||||
hi Pmenu guibg=#${outputs.look.colors.mid} ctermbg=238
|
||||
hi EndOfBuffer guibg=none ctermbg=235
|
||||
hi LineNr guibg=none ctermbg=none
|
||||
lua require'colorizer'.setup()
|
|
@ -1,5 +1,5 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
{pkgs, ...}: {
|
||||
# Enable Ranger
|
||||
programs.ranger = {
|
||||
enable = true;
|
||||
settings = {
|
||||
|
@ -100,34 +100,28 @@
|
|||
'';
|
||||
};
|
||||
|
||||
# Ranger's bookmarks and necessary tools
|
||||
home = {
|
||||
file = let
|
||||
rangerBookmarks = ''
|
||||
# Local files
|
||||
h:/home/jimbo/
|
||||
k:/home/jimbo/Downloads
|
||||
v:/home/jimbo/Videos
|
||||
c:/home/jimbo/.config
|
||||
L:/home/jimbo/.local
|
||||
D:/mnt
|
||||
n:/etc/nixos
|
||||
# Ranger's bookmarks
|
||||
home.file = let
|
||||
rangerBookmarks = ''
|
||||
# Local files
|
||||
h:/home/jimbo/
|
||||
k:/home/jimbo/Downloads
|
||||
v:/home/jimbo/Videos
|
||||
c:/home/jimbo/.config
|
||||
L:/home/jimbo/.local
|
||||
D:/mnt
|
||||
n:/etc/nixos
|
||||
|
||||
# Remote files
|
||||
j:/home/jimbo/JimboNFS
|
||||
K:/home/jimbo/JimboNFS/Downloads
|
||||
p:/home/jimbo/JimboNFS/Photos
|
||||
P:/home/jimbo/JimboNFS/Projects
|
||||
V:/home/jimbo/JimboNFS/Videos/Random
|
||||
m:/home/jimbo/JimboNFS/Music/Synced
|
||||
s:/home/jimbo/JimboNFS/School
|
||||
'';
|
||||
in {
|
||||
".local/share/ranger/bookmarks".text = rangerBookmarks;
|
||||
};
|
||||
packages = with pkgs; [
|
||||
imagemagick
|
||||
poppler_utils
|
||||
];
|
||||
# Remote files
|
||||
a:/home/jimbo/JimboNFS
|
||||
K:/home/jimbo/JimboNFS/Downloads
|
||||
p:/home/jimbo/JimboNFS/Photos
|
||||
P:/home/jimbo/JimboNFS/Projects
|
||||
V:/home/jimbo/JimboNFS/Videos/Random
|
||||
m:/home/jimbo/JimboNFS/Music
|
||||
s:/home/jimbo/JimboNFS/School
|
||||
'';
|
||||
in {
|
||||
".local/share/ranger/bookmarks".text = rangerBookmarks;
|
||||
};
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
{ ... }:
|
||||
{
|
||||
# Enable tmux
|
||||
programs.tmux = {
|
||||
enable = true;
|
||||
extraConfig = ''
|
|
@ -1,5 +1,4 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
{ pkgs, config, ... }: {
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
autosuggestion.enable = true;
|
||||
|
@ -10,12 +9,6 @@
|
|||
plugins = ["git"];
|
||||
};
|
||||
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
|
||||
flakedate = "doas nix flake update /etc/nixos";
|
||||
sysswitch = "doas nixos-rebuild switch --flake /etc/nixos";
|
||||
|
@ -23,6 +16,11 @@
|
|||
nixswitch = "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
|
||||
neo = "clear && fastfetch";
|
||||
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 |