Compare commits
8 Commits
91462a3a15
...
caec25667a
Author | SHA1 | Date | |
---|---|---|---|
caec25667a | |||
fcf9992b3e | |||
34d654d434 | |||
33ee7046ef | |||
68cad3482e | |||
1719c9f4aa | |||
80811ea5c8 | |||
97ba42af46 |
69
flake.lock
generated
69
flake.lock
generated
@ -34,6 +34,24 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"flake-utils_2": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems_2"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1705309234,
|
||||||
|
"narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"home-manager": {
|
"home-manager": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
@ -119,11 +137,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1707650010,
|
"lastModified": 1707978831,
|
||||||
"narHash": "sha256-dOhphIA4MGrH4ElNCy/OlwmN24MsnEqFjRR6+RY7jZw=",
|
"narHash": "sha256-UblFdWQ2MMZNzD9C/w8+7RjAJ2QIbebbzHUniQ/a44o=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "809cca784b9f72a5ad4b991e0e7bcf8890f9c3a6",
|
"rev": "c68a9fc85c2cb3a313be6ff40511635544dde8da",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -135,11 +153,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs-unstable": {
|
"nixpkgs-unstable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1707743206,
|
"lastModified": 1708001613,
|
||||||
"narHash": "sha256-AehgH64b28yKobC/DAWYZWkJBxL/vP83vkY+ag2Hhy4=",
|
"narHash": "sha256-woOmAXW05XnqlLn7dKzCkRAEOSOdA/Z2ndVvKcjid94=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "2d627a2a704708673e56346fcb13d25344b8eaf3",
|
"rev": "085589047343aad800c4d305cf7b98e8a3d51ae2",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -174,7 +192,29 @@
|
|||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs",
|
||||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||||
"pkg-android-tools": "pkg-android-tools",
|
"pkg-android-tools": "pkg-android-tools",
|
||||||
"systems": "systems_2"
|
"rust-overlay": "rust-overlay",
|
||||||
|
"systems": "systems_3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"rust-overlay": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils_2",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1708049456,
|
||||||
|
"narHash": "sha256-8qGWZTQPPBhcF5dsl1KSWF+H7RX8C3BZGvqYWKBtLjQ=",
|
||||||
|
"owner": "oxalica",
|
||||||
|
"repo": "rust-overlay",
|
||||||
|
"rev": "4ee92bf124fbc4e157cbce1bc2a35499866989fc",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "oxalica",
|
||||||
|
"repo": "rust-overlay",
|
||||||
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"systems": {
|
"systems": {
|
||||||
@ -206,6 +246,21 @@
|
|||||||
"repo": "default",
|
"repo": "default",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"systems_3": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": "root",
|
"root": "root",
|
||||||
|
@ -33,6 +33,11 @@
|
|||||||
url = "github:hyprwm/contrib";
|
url = "github:hyprwm/contrib";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
rust-overlay = {
|
||||||
|
url = "github:oxalica/rust-overlay";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = { self, nixpkgs, nixpkgs-unstable, ... }@inputs:
|
outputs = { self, nixpkgs, nixpkgs-unstable, ... }@inputs:
|
||||||
@ -48,6 +53,7 @@
|
|||||||
android-tools android-udev-rules;
|
android-tools android-udev-rules;
|
||||||
})
|
})
|
||||||
inputs.hyprwm-contrib.overlays.default
|
inputs.hyprwm-contrib.overlays.default
|
||||||
|
inputs.rust-overlay.overlays.default
|
||||||
];
|
];
|
||||||
|
|
||||||
### Configuration
|
### Configuration
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ pkgs, lib, config, osConfig, options, ...}:
|
{ pkgs, lib, config, osConfig ? {}, options, ...}:
|
||||||
let
|
let
|
||||||
cfg = config.nixfiles.common.wm;
|
cfg = config.nixfiles.common.wm;
|
||||||
inherit (lib) mkDefault;
|
inherit (lib) mkDefault;
|
||||||
|
@ -13,12 +13,24 @@ in
|
|||||||
];
|
];
|
||||||
config = {};
|
config = {};
|
||||||
options.nixfiles = {
|
options.nixfiles = {
|
||||||
standalone = lib.mkOption {
|
meta.standalone = lib.mkOption {
|
||||||
default = isStandalone;
|
default = isStandalone;
|
||||||
description = "Whether or not the home-manager installation is standalone (standalone installations don't have access to osConfig).";
|
description = "Whether or not the home-manager installation is standalone (standalone installations don't have access to osConfig).";
|
||||||
type = lib.types.bool;
|
type = lib.types.bool;
|
||||||
readOnly = true;
|
readOnly = true;
|
||||||
internal = true;
|
internal = true;
|
||||||
};
|
};
|
||||||
|
meta.graphical = lib.mkOption {
|
||||||
|
description = "Whether to enable graphical home-manager applications";
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = (osConfig ? services && osConfig.services.xserver.enable);
|
||||||
|
example = true;
|
||||||
|
};
|
||||||
|
meta.wayland = lib.mkOption {
|
||||||
|
description = "Whether to prefer wayland packages and configuration";
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = (lib.hasAttrByPath [ "nixfiles" "meta" "wayland" ] osConfig) && osConfig.nixfiles.meta.wayland;
|
||||||
|
example = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
19
home/package-sets/communication.nix
Normal file
19
home/package-sets/communication.nix
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
{ pkgs, lib, config, osConfig ? {}, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.nixfiles.packageSets.communication;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.nixfiles.packageSets.communication = {
|
||||||
|
enable = lib.mkEnableOption "communication package set";
|
||||||
|
};
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
home.packages = with pkgs; lib.optionals config.nixfiles.meta.graphical [
|
||||||
|
( if config.nixfiles.meta.wayland then element-desktop-wayland else element-desktop )
|
||||||
|
telegram-desktop
|
||||||
|
signal-desktop
|
||||||
|
thunderbird
|
||||||
|
] ++ [
|
||||||
|
irssi
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
@ -1,5 +1,7 @@
|
|||||||
{...}:
|
{...}:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
|
./communication.nix
|
||||||
|
./dev.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
24
home/package-sets/dev.nix
Normal file
24
home/package-sets/dev.nix
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
{ pkgs, lib, config, osConfig ? {}, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.nixfiles.packageSets.dev;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.nixfiles.packageSets.dev = {
|
||||||
|
enable = lib.mkEnableOption "development package set";
|
||||||
|
};
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
neovim
|
||||||
|
ripgrep
|
||||||
|
fd
|
||||||
|
bat
|
||||||
|
|
||||||
|
# none of these need to be in my PATH since i can use nix shells but it's
|
||||||
|
# nice to have a repl and some generic tools globally available
|
||||||
|
rust-bin.stable.latest.default
|
||||||
|
python311Packages.ptpython
|
||||||
|
python311
|
||||||
|
lua
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
@ -1,4 +1,4 @@
|
|||||||
{ lib, pkgs, config, osConfig, ... }:
|
{ lib, pkgs, config, osConfig ? { }, ... }:
|
||||||
let
|
let
|
||||||
cfg = config.nixfiles.profile.base;
|
cfg = config.nixfiles.profile.base;
|
||||||
in
|
in
|
||||||
|
@ -2,5 +2,6 @@
|
|||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./base.nix
|
./base.nix
|
||||||
|
./pc.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
22
home/profile/pc.nix
Normal file
22
home/profile/pc.nix
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
{ pkgs, config, osConfig ? {}, lib, ...}:
|
||||||
|
let
|
||||||
|
cfg = config.nixfiles.profile.pc;
|
||||||
|
default = osConfig ? nixfiles && osConfig.nixfiles.profile.pc.enable;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.nixfiles.profile.pc.enable = lib.mkOption {
|
||||||
|
description = "Whether to enable the personal computer profile";
|
||||||
|
type = lib.types.bool;
|
||||||
|
inherit default;
|
||||||
|
example = true;
|
||||||
|
};
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
nixfiles = {
|
||||||
|
profile.base.enable = true;
|
||||||
|
packageSets = {
|
||||||
|
communication.enable = true;
|
||||||
|
dev.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
@ -32,6 +32,7 @@
|
|||||||
./nvidia-optimus.nix
|
./nvidia-optimus.nix
|
||||||
];
|
];
|
||||||
nixfiles = {
|
nixfiles = {
|
||||||
|
profile.pc.enable = true;
|
||||||
common.remoteAccess.enable = true;
|
common.remoteAccess.enable = true;
|
||||||
hardware.opengl.enable = true;
|
hardware.opengl.enable = true;
|
||||||
packageSets = {
|
packageSets = {
|
||||||
|
@ -14,5 +14,11 @@ in
|
|||||||
];
|
];
|
||||||
config = {};
|
config = {};
|
||||||
options.nixfiles = {
|
options.nixfiles = {
|
||||||
|
meta.wayland = lib.mkOption {
|
||||||
|
description = "Whether to prefer wayland applications and configuration";
|
||||||
|
default = false;
|
||||||
|
example = true;
|
||||||
|
type = lib.types.bool;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -17,7 +17,6 @@ in
|
|||||||
# Enable system Nix configuration
|
# Enable system Nix configuration
|
||||||
nix.enable = lib.mkDefault true;
|
nix.enable = lib.mkDefault true;
|
||||||
};
|
};
|
||||||
nixfiles.binfmt.enable = lib.mkDefault true;
|
|
||||||
|
|
||||||
# locale settings
|
# locale settings
|
||||||
i18n = {
|
i18n = {
|
||||||
|
@ -2,5 +2,6 @@
|
|||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./base.nix
|
./base.nix
|
||||||
|
./pc.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
11
system/profile/pc.nix
Normal file
11
system/profile/pc.nix
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
{ pkgs, config, lib, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.nixfiles.profile.pc;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.nixfiles.profile.pc.enable = lib.mkEnableOption "the personal computer profile";
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
nixfiles.profile.base.enable = lib.mkDefault true;
|
||||||
|
nixfiles.binfmt.enable = lib.mkDefault true;
|
||||||
|
};
|
||||||
|
}
|
@ -19,6 +19,7 @@ in
|
|||||||
desktop.enable = true;
|
desktop.enable = true;
|
||||||
wm.enable = true;
|
wm.enable = true;
|
||||||
};
|
};
|
||||||
|
nixfiles.meta.wayland = true;
|
||||||
|
|
||||||
services.xserver.displayManager.sddm.enable = true;
|
services.xserver.displayManager.sddm.enable = true;
|
||||||
|
|
||||||
|
@ -21,6 +21,7 @@ in
|
|||||||
services.xserver.desktopManager.plasma5.enable = true;
|
services.xserver.desktopManager.plasma5.enable = true;
|
||||||
services.xserver.displayManager.defaultSession = "plasmawayland";
|
services.xserver.displayManager.defaultSession = "plasmawayland";
|
||||||
programs.kdeconnect.enable = mkDefault true;
|
programs.kdeconnect.enable = mkDefault true;
|
||||||
|
nixfiles.meta.wayland = true;
|
||||||
|
|
||||||
systemd.user = {
|
systemd.user = {
|
||||||
services.restart-xdg-desktop-portal-kde = {
|
services.restart-xdg-desktop-portal-kde = {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user