forked from Shinonome/omarchy-nix
Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 308e0f85a0 | |||
| 128a95235f | |||
| fba993c589 | |||
| 98b3c63572 | |||
| 254ad6756a | |||
| 9409ecce21 | |||
| dd77b809b1 | |||
| 23e8b2371f | |||
| 9adcae932c | |||
| 7d7a7a9f11 |
@@ -2,8 +2,9 @@
|
|||||||
|
|
||||||
Omarchy-nix (Omanix?) is an opinionated NixOS flake to help you get started as fast as possible with NixOS and Hyprland. It is primarily a reimplementation of [DHH's Omarchy](https://github.com/basecamp/omarchy) project - an opinionated Arch/Hyprland setup for modern web development.
|
Omarchy-nix (Omanix?) is an opinionated NixOS flake to help you get started as fast as possible with NixOS and Hyprland. It is primarily a reimplementation of [DHH's Omarchy](https://github.com/basecamp/omarchy) project - an opinionated Arch/Hyprland setup for modern web development.
|
||||||
|
|
||||||
This was mostly spun up in a weekend so if you have any issues please let me know, my goal is to eventually make this as seamless an install experience as Omarchy itself!
|
__This isn't meant to be full feature parity with Omarchy and likely never will be, especially with how fast the feature development and funding has been for that project. Instead, think of this as more of a launch pad to get your own similar Nix config set up!__
|
||||||
|
|
||||||
|
I've personally moved to using regular Arch Omarchy full-time for a number of reasons. I'm not actively working on this repo but if you'd like to contribute please send a PR :)
|
||||||
|
|
||||||
## Quick Start
|
## Quick Start
|
||||||
|
|
||||||
|
|||||||
+4
-4
@@ -33,7 +33,7 @@ lib: {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
default = {};
|
default = { };
|
||||||
description = "Theme overrides including wallpaper path for generated themes";
|
description = "Theme overrides including wallpaper path for generated themes";
|
||||||
};
|
};
|
||||||
primary_font = lib.mkOption {
|
primary_font = lib.mkOption {
|
||||||
@@ -42,11 +42,11 @@ lib: {
|
|||||||
};
|
};
|
||||||
vscode_settings = lib.mkOption {
|
vscode_settings = lib.mkOption {
|
||||||
type = lib.types.attrs;
|
type = lib.types.attrs;
|
||||||
default = {};
|
default = { };
|
||||||
};
|
};
|
||||||
monitors = lib.mkOption {
|
monitors = lib.mkOption {
|
||||||
type = lib.types.listOf lib.types.str;
|
type = lib.types.listOf lib.types.str;
|
||||||
default = [];
|
default = [ ];
|
||||||
};
|
};
|
||||||
scale = lib.mkOption {
|
scale = lib.mkOption {
|
||||||
type = lib.types.int;
|
type = lib.types.int;
|
||||||
@@ -80,7 +80,7 @@ lib: {
|
|||||||
};
|
};
|
||||||
exclude_packages = lib.mkOption {
|
exclude_packages = lib.mkOption {
|
||||||
type = lib.types.listOf lib.types.package;
|
type = lib.types.listOf lib.types.package;
|
||||||
default = [];
|
default = [ ];
|
||||||
description = "Packages to exclude from the default system packages";
|
description = "Packages to exclude from the default system packages";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
Generated
+42
-42
@@ -20,11 +20,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1751740947,
|
"lastModified": 1753216019,
|
||||||
"narHash": "sha256-35040CHH7P3JGmhGVfEb2oJHL/A5mI2IXumhkxrBnao=",
|
"narHash": "sha256-zik7WISrR1ks2l6T1MZqZHb/OqroHdJnSnAehkE0kCk=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "aquamarine",
|
"repo": "aquamarine",
|
||||||
"rev": "dfc1db15a08c4cd234288f66e1199c653495301f",
|
"rev": "be166e11d86ba4186db93e10c54a141058bdce49",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -52,11 +52,11 @@
|
|||||||
"flake-compat": {
|
"flake-compat": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1696426674,
|
"lastModified": 1747046372,
|
||||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
|
||||||
"owner": "edolstra",
|
"owner": "edolstra",
|
||||||
"repo": "flake-compat",
|
"repo": "flake-compat",
|
||||||
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -94,11 +94,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1751990210,
|
"lastModified": 1755229570,
|
||||||
"narHash": "sha256-krWErNDl9ggMLSfK00Q2BcoSk3+IRTSON/DiDgUzzMw=",
|
"narHash": "sha256-soZegto0xXzG2zYlu/zjknDHv0Z7tRS5EQs+Z/VRTBg=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "218da00bfa73f2a61682417efe74549416c16ba6",
|
"rev": "11626a4383b458f8dc5ea3237eaa04e8ab1912f3",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -123,11 +123,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1749155331,
|
"lastModified": 1753964049,
|
||||||
"narHash": "sha256-XR9fsI0zwLiFWfqi/pdS/VD+YNorKb3XIykgTg4l1nA=",
|
"narHash": "sha256-lIqabfBY7z/OANxHoPeIrDJrFyYy9jAM4GQLzZ2feCM=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprcursor",
|
"repo": "hyprcursor",
|
||||||
"rev": "45fcc10b4c282746d93ec406a740c43b48b4ef80",
|
"rev": "44e91d467bdad8dcf8bbd2ac7cf49972540980a5",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -152,11 +152,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1751808145,
|
"lastModified": 1754305013,
|
||||||
"narHash": "sha256-OXgL0XaKMmfX2rRQkt9SkJw+QNfv0jExlySt1D6O72g=",
|
"narHash": "sha256-u+M2f0Xf1lVHzIPQ7DsNCDkM1NYxykOSsRr4t3TbSM4=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprgraphics",
|
"repo": "hyprgraphics",
|
||||||
"rev": "b841473a0bd4a1a74a0b64f1ec2ab199035c349f",
|
"rev": "4c1d63a0f22135db123fc789f174b89544c6ec2d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -181,11 +181,11 @@
|
|||||||
"xdph": "xdph"
|
"xdph": "xdph"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1751995875,
|
"lastModified": 1755184403,
|
||||||
"narHash": "sha256-ud9sl1RjmzAzalH2ocmGPs182xvr7GktjVIYvzJamwo=",
|
"narHash": "sha256-VI+ZPD/uIFjzYW8IcyvBgvwyDIvUe4/xh/kOHTbITX8=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "Hyprland",
|
"repo": "Hyprland",
|
||||||
"rev": "9517d0eaa4ef93de67dc80fecca7a826f7ad556d",
|
"rev": "60d769a89908c29e19100059985db15a7b6bab6a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -274,11 +274,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1750371812,
|
"lastModified": 1753819801,
|
||||||
"narHash": "sha256-D868K1dVEACw17elVxRgXC6hOxY+54wIEjURztDWLk8=",
|
"narHash": "sha256-tHe6XeNeVeKapkNM3tcjW4RuD+tB2iwwoogWJOtsqTI=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprland-qtutils",
|
"repo": "hyprland-qtutils",
|
||||||
"rev": "b13c7481e37856f322177010bdf75fccacd1adc8",
|
"rev": "b308a818b9dcaa7ab8ccab891c1b84ebde2152bc",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -303,11 +303,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1750371198,
|
"lastModified": 1753622892,
|
||||||
"narHash": "sha256-/iuJ1paQOBoSLqHflRNNGyroqfF/yvPNurxzcCT0cAE=",
|
"narHash": "sha256-0K+A+gmOI8IklSg5It1nyRNv0kCNL51duwnhUO/B8JA=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprlang",
|
"repo": "hyprlang",
|
||||||
"rev": "cee01452bca58d6cadb3224e21e370de8bc20f0b",
|
"rev": "23f0debd2003f17bd65f851cd3f930cff8a8c809",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -328,11 +328,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1751888065,
|
"lastModified": 1754481650,
|
||||||
"narHash": "sha256-F2SV9WGqgtRsXIdUrl3sRe0wXlQD+kRRZcSfbepjPJY=",
|
"narHash": "sha256-6u6HdEFJh5gY6VfyMQbhP7zDdVcqOrCDTkbiHJmAtMI=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprutils",
|
"repo": "hyprutils",
|
||||||
"rev": "a8229739cf36d159001cfc203871917b83fdf917",
|
"rev": "df6b8820c4a0835d83d0c7c7be86fbc555f1f7fd",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -353,11 +353,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1751881472,
|
"lastModified": 1751897909,
|
||||||
"narHash": "sha256-meB0SnXbwIe2trD041MLKEv6R7NZ759QwBcVIhlSBfE=",
|
"narHash": "sha256-FnhBENxihITZldThvbO7883PdXC/2dzW4eiNvtoV5Ao=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprwayland-scanner",
|
"repo": "hyprwayland-scanner",
|
||||||
"rev": "8fb426b3e5452fd9169453fd6c10f8c14ca37120",
|
"rev": "fcca0c61f988a9d092cbb33e906775014c61579d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -387,11 +387,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1751792365,
|
"lastModified": 1754725699,
|
||||||
"narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=",
|
"narHash": "sha256-iAcj9T/Y+3DBy2J0N+yF9XQQQ8IEb5swLFzs23CdP88=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb",
|
"rev": "85dbfc7aaf52ecb755f87e577ddbe6dbbdbc1054",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -418,11 +418,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1751792365,
|
"lastModified": 1755186698,
|
||||||
"narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=",
|
"narHash": "sha256-wNO3+Ks2jZJ4nTHMuks+cxAiVBGNuEBXsT29Bz6HASo=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb",
|
"rev": "fbcf476f790d8a217c3eab4e12033dc4a0f6d23c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -442,11 +442,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1750779888,
|
"lastModified": 1754416808,
|
||||||
"narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=",
|
"narHash": "sha256-c6yg0EQ9xVESx6HGDOCMcyRSjaTpNJP10ef+6fRcofA=",
|
||||||
"owner": "cachix",
|
"owner": "cachix",
|
||||||
"repo": "git-hooks.nix",
|
"repo": "git-hooks.nix",
|
||||||
"rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d",
|
"rev": "9c52372878df6911f9afc1e2a1391f55e4dfc864",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -506,11 +506,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1751300244,
|
"lastModified": 1753633878,
|
||||||
"narHash": "sha256-PFuv1TZVYvQhha0ac53E3YgdtmLShrN0t4T6xqHl0jE=",
|
"narHash": "sha256-js2sLRtsOUA/aT10OCDaTjO80yplqwOIaLUqEe0nMx0=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "xdg-desktop-portal-hyprland",
|
"repo": "xdg-desktop-portal-hyprland",
|
||||||
"rev": "6115f3fdcb2c1a57b4a80a69f3c797e47607b90a",
|
"rev": "371b96bd11ad2006ed4f21229dbd1be69bed3e8a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|||||||
@@ -9,20 +9,26 @@
|
|||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
outputs = inputs @ {
|
outputs =
|
||||||
|
inputs@{
|
||||||
self,
|
self,
|
||||||
nixpkgs,
|
nixpkgs,
|
||||||
hyprland,
|
hyprland,
|
||||||
nix-colors,
|
nix-colors,
|
||||||
home-manager,
|
home-manager,
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
|
formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.nixfmt-tree;
|
||||||
|
|
||||||
nixosModules = {
|
nixosModules = {
|
||||||
default = {
|
default =
|
||||||
|
{
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
imports = [
|
imports = [
|
||||||
(import ./modules/nixos/default.nix inputs)
|
(import ./modules/nixos/default.nix inputs)
|
||||||
];
|
];
|
||||||
@@ -35,13 +41,15 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
homeManagerModules = {
|
homeManagerModules = {
|
||||||
default = {
|
default =
|
||||||
|
{
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
osConfig ? {},
|
osConfig ? { },
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
imports = [
|
imports = [
|
||||||
nix-colors.homeManagerModules.default
|
nix-colors.homeManagerModules.default
|
||||||
(import ./modules/home-manager/default.nix inputs)
|
(import ./modules/home-manager/default.nix inputs)
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
config: let
|
config:
|
||||||
|
let
|
||||||
cfg = config.omarchy;
|
cfg = config.omarchy;
|
||||||
wallpapers = {
|
wallpapers = {
|
||||||
"tokyo-night" = [
|
"tokyo-night" = [
|
||||||
@@ -22,11 +23,18 @@ config: let
|
|||||||
};
|
};
|
||||||
|
|
||||||
# Handle wallpaper path for generated themes and overrides
|
# Handle wallpaper path for generated themes and overrides
|
||||||
wallpaper_path = if (cfg.theme == "generated_light" || cfg.theme == "generated_dark") || (cfg.theme_overrides.wallpaper_path != null)
|
wallpaper_path =
|
||||||
then toString cfg.theme_overrides.wallpaper_path
|
if
|
||||||
else let
|
(cfg.theme == "generated_light" || cfg.theme == "generated_dark")
|
||||||
|
|| (cfg.theme_overrides.wallpaper_path != null)
|
||||||
|
then
|
||||||
|
toString cfg.theme_overrides.wallpaper_path
|
||||||
|
else
|
||||||
|
let
|
||||||
selected_wallpaper = builtins.elemAt (wallpapers.${cfg.theme}) 0;
|
selected_wallpaper = builtins.elemAt (wallpapers.${cfg.theme}) 0;
|
||||||
in "~/Pictures/Wallpapers/${selected_wallpaper}";
|
in
|
||||||
in {
|
"~/Pictures/Wallpapers/${selected_wallpaper}";
|
||||||
|
in
|
||||||
|
{
|
||||||
inherit wallpaper_path;
|
inherit wallpaper_path;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,10 +2,12 @@
|
|||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}:
|
||||||
|
let
|
||||||
cfg = config.omarchy;
|
cfg = config.omarchy;
|
||||||
palette = config.colorScheme.palette;
|
palette = config.colorScheme.palette;
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
home.file = {
|
home.file = {
|
||||||
".config/btop/themes/${cfg.theme}.theme" = {
|
".config/btop/themes/${cfg.theme}.theme" = {
|
||||||
text = ''
|
text = ''
|
||||||
|
|||||||
@@ -1,26 +1,36 @@
|
|||||||
inputs: {
|
inputs:
|
||||||
|
{
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: let
|
}:
|
||||||
packages = import ../packages.nix {inherit pkgs lib; exclude_packages = config.omarchy.exclude_packages;};
|
let
|
||||||
|
packages = import ../packages.nix {
|
||||||
|
inherit pkgs lib;
|
||||||
|
exclude_packages = config.omarchy.exclude_packages;
|
||||||
|
};
|
||||||
|
|
||||||
themes = import ../themes.nix;
|
themes = import ../themes.nix;
|
||||||
|
|
||||||
# Handle theme selection - either predefined or generated
|
# Handle theme selection - either predefined or generated
|
||||||
selectedTheme = if (config.omarchy.theme == "generated_light" || config.omarchy.theme == "generated_dark")
|
selectedTheme =
|
||||||
then null
|
if (config.omarchy.theme == "generated_light" || config.omarchy.theme == "generated_dark") then
|
||||||
else themes.${config.omarchy.theme};
|
null
|
||||||
|
else
|
||||||
|
themes.${config.omarchy.theme};
|
||||||
|
|
||||||
# Generate color scheme from wallpaper for generated themes
|
# Generate color scheme from wallpaper for generated themes
|
||||||
generatedColorScheme = if (config.omarchy.theme == "generated_light" || config.omarchy.theme == "generated_dark")
|
generatedColorScheme =
|
||||||
then (inputs.nix-colors.lib.contrib { inherit pkgs; }).colorSchemeFromPicture {
|
if (config.omarchy.theme == "generated_light" || config.omarchy.theme == "generated_dark") then
|
||||||
|
(inputs.nix-colors.lib.contrib { inherit pkgs; }).colorSchemeFromPicture {
|
||||||
path = config.omarchy.theme_overrides.wallpaper_path;
|
path = config.omarchy.theme_overrides.wallpaper_path;
|
||||||
variant = if config.omarchy.theme == "generated_light" then "light" else "dark";
|
variant = if config.omarchy.theme == "generated_light" then "light" else "dark";
|
||||||
}
|
}
|
||||||
else null;
|
else
|
||||||
in {
|
null;
|
||||||
|
in
|
||||||
|
{
|
||||||
imports = [
|
imports = [
|
||||||
(import ./hyprland.nix inputs)
|
(import ./hyprland.nix inputs)
|
||||||
(import ./hyprlock.nix inputs)
|
(import ./hyprlock.nix inputs)
|
||||||
@@ -47,14 +57,16 @@ in {
|
|||||||
};
|
};
|
||||||
home.packages = packages.homePackages;
|
home.packages = packages.homePackages;
|
||||||
|
|
||||||
colorScheme = if (config.omarchy.theme == "generated_light" || config.omarchy.theme == "generated_dark")
|
colorScheme =
|
||||||
then generatedColorScheme
|
if (config.omarchy.theme == "generated_light" || config.omarchy.theme == "generated_dark") then
|
||||||
else inputs.nix-colors.colorSchemes.${selectedTheme.base16-theme};
|
generatedColorScheme
|
||||||
|
else
|
||||||
|
inputs.nix-colors.colorSchemes.${selectedTheme.base16-theme};
|
||||||
|
|
||||||
gtk = {
|
gtk = {
|
||||||
enable = true;
|
enable = true;
|
||||||
theme = {
|
theme = {
|
||||||
name = "Adwaita-dark";
|
name = if config.omarchy.theme == "generated_light" then "Adwaita" else "Adwaita:dark";
|
||||||
package = pkgs.gnome-themes-extra;
|
package = pkgs.gnome-themes-extra;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{...}: {
|
{ ... }:
|
||||||
|
{
|
||||||
programs.direnv = {
|
programs.direnv = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableZshIntegration = true;
|
enableZshIntegration = true;
|
||||||
|
|||||||
@@ -1,10 +1,11 @@
|
|||||||
{...}: {
|
{ ... }:
|
||||||
|
{
|
||||||
fonts.fontconfig = {
|
fonts.fontconfig = {
|
||||||
enable = true;
|
enable = true;
|
||||||
defaultFonts = {
|
defaultFonts = {
|
||||||
serif = ["Noto Serif"];
|
serif = [ "Noto Serif" ];
|
||||||
sansSerif = ["Noto Sans"];
|
sansSerif = [ "Noto Sans" ];
|
||||||
monospace = ["Caskaydia Mono Nerd Font"];
|
monospace = [ "Caskaydia Mono Nerd Font" ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,10 +2,12 @@
|
|||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}:
|
||||||
|
let
|
||||||
cfg = config.omarchy;
|
cfg = config.omarchy;
|
||||||
palette = config.colorScheme.palette;
|
palette = config.colorScheme.palette;
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
programs.ghostty = {
|
programs.ghostty = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
{config, ...}: let
|
{ config, ... }:
|
||||||
|
let
|
||||||
cfg = config.omarchy;
|
cfg = config.omarchy;
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
programs.git = {
|
programs.git = {
|
||||||
enable = true;
|
enable = true;
|
||||||
userName = cfg.full_name;
|
userName = cfg.full_name;
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{...}: {
|
{ ... }:
|
||||||
|
{
|
||||||
services.hypridle = {
|
services.hypridle = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
|
|||||||
@@ -1,9 +1,11 @@
|
|||||||
inputs: {
|
inputs:
|
||||||
|
{
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
imports = [./hyprland/configuration.nix];
|
{
|
||||||
|
imports = [ ./hyprland/configuration.nix ];
|
||||||
wayland.windowManager.hyprland = {
|
wayland.windowManager.hyprland = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = inputs.hyprland.packages.${pkgs.system}.hyprland;
|
package = inputs.hyprland.packages.${pkgs.system}.hyprland;
|
||||||
|
|||||||
@@ -2,7 +2,8 @@
|
|||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
wayland.windowManager.hyprland.settings = {
|
wayland.windowManager.hyprland.settings = {
|
||||||
exec-once = [
|
exec-once = [
|
||||||
# "hypridle & mako & waybar & fcitx5"
|
# "hypridle & mako & waybar & fcitx5"
|
||||||
|
|||||||
@@ -2,13 +2,13 @@
|
|||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}:
|
||||||
|
let
|
||||||
cfg = config.omarchy;
|
cfg = config.omarchy;
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
wayland.windowManager.hyprland.settings = {
|
wayland.windowManager.hyprland.settings = {
|
||||||
bind =
|
bind = cfg.quick_app_bindings ++ [
|
||||||
cfg.quick_app_bindings
|
|
||||||
++ [
|
|
||||||
"SUPER, space, exec, wofi --show drun --sort-order=alphabetical"
|
"SUPER, space, exec, wofi --show drun --sort-order=alphabetical"
|
||||||
"SUPER SHIFT, SPACE, exec, pkill -SIGUSR1 waybar"
|
"SUPER SHIFT, SPACE, exec, pkill -SIGUSR1 waybar"
|
||||||
# "SUPER CTRL, SPACE, exec, ~/.local/share/omarchy/bin/swaybg-next"
|
# "SUPER CTRL, SPACE, exec, ~/.local/share/omarchy/bin/swaybg-next"
|
||||||
|
|||||||
@@ -3,9 +3,11 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: let
|
}:
|
||||||
|
let
|
||||||
cfg = config.omarchy;
|
cfg = config.omarchy;
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./autostart.nix
|
./autostart.nix
|
||||||
./bindings.nix
|
./bindings.nix
|
||||||
|
|||||||
@@ -2,9 +2,10 @@
|
|||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
osConfig ? {},
|
osConfig ? { },
|
||||||
...
|
...
|
||||||
}: let
|
}:
|
||||||
|
let
|
||||||
cfg = config.omarchy;
|
cfg = config.omarchy;
|
||||||
hasNvidiaDrivers = builtins.elem "nvidia" osConfig.services.xserver.videoDrivers;
|
hasNvidiaDrivers = builtins.elem "nvidia" osConfig.services.xserver.videoDrivers;
|
||||||
nvidiaEnv = [
|
nvidiaEnv = [
|
||||||
@@ -12,12 +13,11 @@
|
|||||||
"LIBVA_DRIVER_NAME,nvidia"
|
"LIBVA_DRIVER_NAME,nvidia"
|
||||||
"__GLX_VENDOR_LIBRARY_NAME,nvidia"
|
"__GLX_VENDOR_LIBRARY_NAME,nvidia"
|
||||||
];
|
];
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
wayland.windowManager.hyprland.settings = {
|
wayland.windowManager.hyprland.settings = {
|
||||||
# Environment variables
|
# Environment variables
|
||||||
env =
|
env = (lib.optionals hasNvidiaDrivers nvidiaEnv) ++ [
|
||||||
(lib.optionals hasNvidiaDrivers nvidiaEnv)
|
|
||||||
++ [
|
|
||||||
"GDK_SCALE,${toString cfg.scale}"
|
"GDK_SCALE,${toString cfg.scale}"
|
||||||
|
|
||||||
# Cursor size
|
# Cursor size
|
||||||
@@ -48,7 +48,7 @@ in {
|
|||||||
"EDITOR,nvim"
|
"EDITOR,nvim"
|
||||||
|
|
||||||
# GTK theme
|
# GTK theme
|
||||||
"GTK_THEME,Adwaita:dark"
|
"GTK_THEME,${if cfg.theme == "generated_light" then "Adwaita" else "Adwaita:dark"}"
|
||||||
|
|
||||||
# Podman compatibility. Probably need to add cfg.env?
|
# Podman compatibility. Probably need to add cfg.env?
|
||||||
# "DOCKER_HOST,unix://$XDG_RUNTIME_DIR/podman/podman.sock"
|
# "DOCKER_HOST,unix://$XDG_RUNTIME_DIR/podman/podman.sock"
|
||||||
|
|||||||
@@ -3,7 +3,8 @@
|
|||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
wayland.windowManager.hyprland.settings = {
|
wayland.windowManager.hyprland.settings = {
|
||||||
# Environment variables
|
# Environment variables
|
||||||
# https://wiki.hyprland.org/Configuring/Variables/#input
|
# https://wiki.hyprland.org/Configuring/Variables/#input
|
||||||
@@ -11,7 +12,7 @@
|
|||||||
kb_layout = "us";
|
kb_layout = "us";
|
||||||
# kb_variant =
|
# kb_variant =
|
||||||
# kb_model =
|
# kb_model =
|
||||||
kb_options = compose:caps;
|
kb_options = "compose:caps";
|
||||||
# kb_rules =
|
# kb_rules =
|
||||||
|
|
||||||
follow_mouse = 1;
|
follow_mouse = 1;
|
||||||
|
|||||||
@@ -2,13 +2,18 @@
|
|||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}:
|
||||||
hexToRgba = hex: alpha: let
|
let
|
||||||
in "rgba(${hex}${alpha})";
|
hexToRgba =
|
||||||
|
hex: alpha:
|
||||||
|
let
|
||||||
|
in
|
||||||
|
"rgba(${hex}${alpha})";
|
||||||
|
|
||||||
inactiveBorder = hexToRgba config.colorScheme.palette.base09 "aa";
|
inactiveBorder = hexToRgba config.colorScheme.palette.base09 "aa";
|
||||||
activeBorder = hexToRgba config.colorScheme.palette.base0D "aa";
|
activeBorder = hexToRgba config.colorScheme.palette.base0D "aa";
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
wayland.windowManager.hyprland.settings = {
|
wayland.windowManager.hyprland.settings = {
|
||||||
general = {
|
general = {
|
||||||
gaps_in = 5;
|
gaps_in = 5;
|
||||||
|
|||||||
@@ -2,7 +2,8 @@
|
|||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
wayland.windowManager.hyprland.settings = {
|
wayland.windowManager.hyprland.settings = {
|
||||||
windowrule = [
|
windowrule = [
|
||||||
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
|
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
|
||||||
|
|||||||
@@ -1,9 +1,11 @@
|
|||||||
inputs: {
|
inputs:
|
||||||
|
{
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: let
|
}:
|
||||||
|
let
|
||||||
palette = config.colorScheme.palette;
|
palette = config.colorScheme.palette;
|
||||||
convert = inputs.nix-colors.lib.conversions.hexToRGBString;
|
convert = inputs.nix-colors.lib.conversions.hexToRGBString;
|
||||||
selected_wallpaper_path = (import ../../lib/selected-wallpaper.nix config).wallpaper_path;
|
selected_wallpaper_path = (import ../../lib/selected-wallpaper.nix config).wallpaper_path;
|
||||||
@@ -12,7 +14,8 @@ inputs: {
|
|||||||
surfaceRgb = "rgb(${convert ", " palette.base02})";
|
surfaceRgb = "rgb(${convert ", " palette.base02})";
|
||||||
foregroundRgb = "rgb(${convert ", " palette.base05})";
|
foregroundRgb = "rgb(${convert ", " palette.base05})";
|
||||||
foregroundMutedRgb = "rgb(${convert ", " palette.base04})";
|
foregroundMutedRgb = "rgb(${convert ", " palette.base04})";
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
programs.hyprlock = {
|
programs.hyprlock = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
|
|||||||
@@ -2,9 +2,11 @@
|
|||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}:
|
||||||
|
let
|
||||||
selected_wallpaper_path = (import ../../lib/selected-wallpaper.nix config).wallpaper_path;
|
selected_wallpaper_path = (import ../../lib/selected-wallpaper.nix config).wallpaper_path;
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
home.file = {
|
home.file = {
|
||||||
"Pictures/Wallpapers" = {
|
"Pictures/Wallpapers" = {
|
||||||
source = ../../config/themes/wallpapers;
|
source = ../../config/themes/wallpapers;
|
||||||
|
|||||||
@@ -2,9 +2,11 @@
|
|||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}:
|
||||||
|
let
|
||||||
cfg = config.omarchy;
|
cfg = config.omarchy;
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
services.mako = {
|
services.mako = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
{...}: {
|
{ ... }:
|
||||||
|
{
|
||||||
programs.starship.enable = true;
|
programs.starship.enable = true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,11 +2,13 @@
|
|||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}:
|
||||||
|
let
|
||||||
cfg = config.omarchy;
|
cfg = config.omarchy;
|
||||||
themes = import ../themes.nix;
|
themes = import ../themes.nix;
|
||||||
theme = themes.${cfg.theme};
|
theme = themes.${cfg.theme};
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
programs.vscode = {
|
programs.vscode = {
|
||||||
enable = true;
|
enable = true;
|
||||||
profiles.default = {
|
profiles.default = {
|
||||||
@@ -23,7 +25,8 @@ in {
|
|||||||
|
|
||||||
# // cfg.vscode_settings;
|
# // cfg.vscode_settings;
|
||||||
|
|
||||||
extensions = with pkgs.vscode-extensions;
|
extensions =
|
||||||
|
with pkgs.vscode-extensions;
|
||||||
[
|
[
|
||||||
bbenoist.nix
|
bbenoist.nix
|
||||||
vscodevim.vim
|
vscodevim.vim
|
||||||
|
|||||||
@@ -1,13 +1,16 @@
|
|||||||
inputs: {
|
inputs:
|
||||||
|
{
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}:
|
||||||
|
let
|
||||||
palette = config.colorScheme.palette;
|
palette = config.colorScheme.palette;
|
||||||
convert = inputs.nix-colors.lib.conversions.hexToRGBString;
|
convert = inputs.nix-colors.lib.conversions.hexToRGBString;
|
||||||
backgroundRgb = "rgb(${convert ", " palette.base00})";
|
backgroundRgb = "rgb(${convert ", " palette.base00})";
|
||||||
foregroundRgb = "rgb(${convert ", " palette.base05})";
|
foregroundRgb = "rgb(${convert ", " palette.base05})";
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
home.file = {
|
home.file = {
|
||||||
".config/waybar/" = {
|
".config/waybar/" = {
|
||||||
source = ../../config/waybar;
|
source = ../../config/waybar;
|
||||||
@@ -68,11 +71,11 @@ in {
|
|||||||
active = "";
|
active = "";
|
||||||
};
|
};
|
||||||
persistent-workspaces = {
|
persistent-workspaces = {
|
||||||
"1" = [];
|
"1" = [ ];
|
||||||
"2" = [];
|
"2" = [ ];
|
||||||
"3" = [];
|
"3" = [ ];
|
||||||
"4" = [];
|
"4" = [ ];
|
||||||
"5" = [];
|
"5" = [ ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
cpu = {
|
cpu = {
|
||||||
@@ -86,7 +89,13 @@ in {
|
|||||||
tooltip = false;
|
tooltip = false;
|
||||||
};
|
};
|
||||||
network = {
|
network = {
|
||||||
format-icons = ["" "" "" "" ""];
|
format-icons = [
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
];
|
||||||
format = "{icon}";
|
format = "{icon}";
|
||||||
format-wifi = "{icon}";
|
format-wifi = "{icon}";
|
||||||
format-ethernet = "";
|
format-ethernet = "";
|
||||||
@@ -143,19 +152,21 @@ in {
|
|||||||
format-disabled = "";
|
format-disabled = "";
|
||||||
format-connected = "";
|
format-connected = "";
|
||||||
tooltip-format = "Devices connected: {num_connections}";
|
tooltip-format = "Devices connected: {num_connections}";
|
||||||
on-click = "GTK_THEME=Adwaita-dark blueberry";
|
on-click = "blueberry";
|
||||||
};
|
};
|
||||||
wireplumber = {
|
wireplumber = {
|
||||||
# Changed from "pulseaudio"
|
# Changed from "pulseaudio"
|
||||||
"format" = "";
|
"format" = "";
|
||||||
format-muted = "";
|
format-muted = "";
|
||||||
scroll-step = 5;
|
scroll-step = 5;
|
||||||
on-click = "GTK_THEME=Adwaita-dark pavucontrol";
|
on-click = "pavucontrol";
|
||||||
tooltip-format = "Playing at {volume}%";
|
tooltip-format = "Playing at {volume}%";
|
||||||
on-click-right = "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; # Updated command
|
on-click-right = "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; # Updated command
|
||||||
max-volume = 150; # Optional: allow volume over 100%
|
max-volume = 150; # Optional: allow volume over 100%
|
||||||
};
|
};
|
||||||
tray = {spacing = 13;};
|
tray = {
|
||||||
|
spacing = 13;
|
||||||
|
};
|
||||||
power-profiles-daemon = {
|
power-profiles-daemon = {
|
||||||
format = "{icon}";
|
format = "{icon}";
|
||||||
tooltip-format = "Power profile: {profile}";
|
tooltip-format = "Power profile: {profile}";
|
||||||
|
|||||||
@@ -2,7 +2,8 @@
|
|||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
home.file = {
|
home.file = {
|
||||||
".config/wofi/style.css" = {
|
".config/wofi/style.css" = {
|
||||||
text = ''
|
text = ''
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{...}: {
|
{ ... }:
|
||||||
|
{
|
||||||
programs.zoxide = {
|
programs.zoxide = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableZshIntegration = true;
|
enableZshIntegration = true;
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{...}: {
|
{ ... }:
|
||||||
|
{
|
||||||
programs.zsh = {
|
programs.zsh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
autosuggestion.enable = true;
|
autosuggestion.enable = true;
|
||||||
@@ -7,11 +8,11 @@
|
|||||||
plugins = [
|
plugins = [
|
||||||
{
|
{
|
||||||
name = "plugins/git";
|
name = "plugins/git";
|
||||||
tags = [from:oh-my-zsh];
|
tags = [ "from:oh-my-zsh" ];
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "fdellwing/zsh-bat";
|
name = "fdellwing/zsh-bat";
|
||||||
tags = [as:command];
|
tags = [ "as:command" ];
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
{...}: {
|
{ ... }:
|
||||||
|
{
|
||||||
programs = {
|
programs = {
|
||||||
_1password.enable = true;
|
_1password.enable = true;
|
||||||
_1password-gui.enable = true;
|
_1password-gui.enable = true;
|
||||||
|
|
||||||
# TODO: Dynamically get user names
|
# TODO: Dynamically get user names
|
||||||
_1password-gui.polkitPolicyOwners = ["henry"];
|
_1password-gui.polkitPolicyOwners = [ "henry" ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{pkgs, ...}: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
virtualisation.containers.enable = true;
|
virtualisation.containers.enable = true;
|
||||||
virtualisation = {
|
virtualisation = {
|
||||||
docker.enable = true;
|
docker.enable = true;
|
||||||
|
|||||||
@@ -1,11 +1,14 @@
|
|||||||
inputs: {
|
inputs:
|
||||||
|
{
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}:
|
||||||
|
let
|
||||||
cfg = config.omarchy;
|
cfg = config.omarchy;
|
||||||
packages = import ../packages.nix {inherit pkgs;};
|
packages = import ../packages.nix { inherit pkgs; };
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
imports = [
|
imports = [
|
||||||
(import ./hyprland.nix inputs)
|
(import ./hyprland.nix inputs)
|
||||||
(import ./system.nix)
|
(import ./system.nix)
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
inputs: {
|
inputs:
|
||||||
|
{
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
programs.hyprland = {
|
programs.hyprland = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# package = inputs.hyprland.packages.${pkgs.system}.hyprland;
|
# package = inputs.hyprland.packages.${pkgs.system}.hyprland;
|
||||||
|
|||||||
@@ -3,10 +3,15 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: let
|
}:
|
||||||
|
let
|
||||||
cfg = config.omarchy;
|
cfg = config.omarchy;
|
||||||
packages = import ../packages.nix {inherit pkgs lib; exclude_packages = cfg.exclude_packages;};
|
packages = import ../packages.nix {
|
||||||
in {
|
inherit pkgs lib;
|
||||||
|
exclude_packages = cfg.exclude_packages;
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
security.rtkit.enable = true;
|
security.rtkit.enable = true;
|
||||||
services.pulseaudio.enable = false;
|
services.pulseaudio.enable = false;
|
||||||
services.pipewire = {
|
services.pipewire = {
|
||||||
@@ -36,7 +41,7 @@ in {
|
|||||||
|
|
||||||
fonts.packages = with pkgs; [
|
fonts.packages = with pkgs; [
|
||||||
noto-fonts
|
noto-fonts
|
||||||
noto-fonts-emoji
|
noto-fonts-color-emoji
|
||||||
nerd-fonts.caskaydia-mono
|
nerd-fonts.caskaydia-mono
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
+15
-8
@@ -1,4 +1,8 @@
|
|||||||
{pkgs, lib, exclude_packages ? []}:
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
exclude_packages ? [ ],
|
||||||
|
}:
|
||||||
let
|
let
|
||||||
# Essential Hyprland packages - cannot be excluded
|
# Essential Hyprland packages - cannot be excluded
|
||||||
hyprlandPackages = with pkgs; [
|
hyprlandPackages = with pkgs; [
|
||||||
@@ -33,7 +37,9 @@ let
|
|||||||
];
|
];
|
||||||
|
|
||||||
# Discretionary packages - can be excluded by user
|
# Discretionary packages - can be excluded by user
|
||||||
discretionaryPackages = with pkgs; [
|
discretionaryPackages =
|
||||||
|
with pkgs;
|
||||||
|
[
|
||||||
# TUIs
|
# TUIs
|
||||||
lazygit
|
lazygit
|
||||||
lazydocker
|
lazydocker
|
||||||
@@ -47,11 +53,6 @@ let
|
|||||||
vlc
|
vlc
|
||||||
signal-desktop
|
signal-desktop
|
||||||
|
|
||||||
# Commercial GUIs
|
|
||||||
typora
|
|
||||||
dropbox
|
|
||||||
spotify
|
|
||||||
|
|
||||||
# Development tools
|
# Development tools
|
||||||
github-desktop
|
github-desktop
|
||||||
gh
|
gh
|
||||||
@@ -59,12 +60,18 @@ let
|
|||||||
# Containers
|
# Containers
|
||||||
docker-compose
|
docker-compose
|
||||||
ffmpeg
|
ffmpeg
|
||||||
|
]
|
||||||
|
++ lib.optionals (pkgs.system == "x86_64-linux") [
|
||||||
|
typora
|
||||||
|
dropbox
|
||||||
|
spotify
|
||||||
];
|
];
|
||||||
|
|
||||||
# Only allow excluding discretionary packages to prevent breaking the system
|
# Only allow excluding discretionary packages to prevent breaking the system
|
||||||
filteredDiscretionaryPackages = lib.lists.subtractLists exclude_packages discretionaryPackages;
|
filteredDiscretionaryPackages = lib.lists.subtractLists exclude_packages discretionaryPackages;
|
||||||
allSystemPackages = hyprlandPackages ++ systemPackages ++ filteredDiscretionaryPackages;
|
allSystemPackages = hyprlandPackages ++ systemPackages ++ filteredDiscretionaryPackages;
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
# Regular packages
|
# Regular packages
|
||||||
systemPackages = allSystemPackages;
|
systemPackages = allSystemPackages;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user