mirror of
https://github.com/henrysipp/omarchy-nix.git
synced 2026-06-07 11:09:26 -05:00
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| ad2dfc9af3 | |||
| e3f8ea40cf |
@@ -2,9 +2,8 @@
|
||||
|
||||
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 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!__
|
||||
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!
|
||||
|
||||
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
|
||||
|
||||
|
||||
Generated
+42
-42
@@ -20,11 +20,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1753216019,
|
||||
"narHash": "sha256-zik7WISrR1ks2l6T1MZqZHb/OqroHdJnSnAehkE0kCk=",
|
||||
"lastModified": 1751740947,
|
||||
"narHash": "sha256-35040CHH7P3JGmhGVfEb2oJHL/A5mI2IXumhkxrBnao=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "aquamarine",
|
||||
"rev": "be166e11d86ba4186db93e10c54a141058bdce49",
|
||||
"rev": "dfc1db15a08c4cd234288f66e1199c653495301f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -52,11 +52,11 @@
|
||||
"flake-compat": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1747046372,
|
||||
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
|
||||
"lastModified": 1696426674,
|
||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
|
||||
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -94,11 +94,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1755229570,
|
||||
"narHash": "sha256-soZegto0xXzG2zYlu/zjknDHv0Z7tRS5EQs+Z/VRTBg=",
|
||||
"lastModified": 1751990210,
|
||||
"narHash": "sha256-krWErNDl9ggMLSfK00Q2BcoSk3+IRTSON/DiDgUzzMw=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "11626a4383b458f8dc5ea3237eaa04e8ab1912f3",
|
||||
"rev": "218da00bfa73f2a61682417efe74549416c16ba6",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -123,11 +123,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1753964049,
|
||||
"narHash": "sha256-lIqabfBY7z/OANxHoPeIrDJrFyYy9jAM4GQLzZ2feCM=",
|
||||
"lastModified": 1749155331,
|
||||
"narHash": "sha256-XR9fsI0zwLiFWfqi/pdS/VD+YNorKb3XIykgTg4l1nA=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprcursor",
|
||||
"rev": "44e91d467bdad8dcf8bbd2ac7cf49972540980a5",
|
||||
"rev": "45fcc10b4c282746d93ec406a740c43b48b4ef80",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -152,11 +152,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1754305013,
|
||||
"narHash": "sha256-u+M2f0Xf1lVHzIPQ7DsNCDkM1NYxykOSsRr4t3TbSM4=",
|
||||
"lastModified": 1751808145,
|
||||
"narHash": "sha256-OXgL0XaKMmfX2rRQkt9SkJw+QNfv0jExlySt1D6O72g=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprgraphics",
|
||||
"rev": "4c1d63a0f22135db123fc789f174b89544c6ec2d",
|
||||
"rev": "b841473a0bd4a1a74a0b64f1ec2ab199035c349f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -181,11 +181,11 @@
|
||||
"xdph": "xdph"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1755184403,
|
||||
"narHash": "sha256-VI+ZPD/uIFjzYW8IcyvBgvwyDIvUe4/xh/kOHTbITX8=",
|
||||
"lastModified": 1751995875,
|
||||
"narHash": "sha256-ud9sl1RjmzAzalH2ocmGPs182xvr7GktjVIYvzJamwo=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "Hyprland",
|
||||
"rev": "60d769a89908c29e19100059985db15a7b6bab6a",
|
||||
"rev": "9517d0eaa4ef93de67dc80fecca7a826f7ad556d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -274,11 +274,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1753819801,
|
||||
"narHash": "sha256-tHe6XeNeVeKapkNM3tcjW4RuD+tB2iwwoogWJOtsqTI=",
|
||||
"lastModified": 1750371812,
|
||||
"narHash": "sha256-D868K1dVEACw17elVxRgXC6hOxY+54wIEjURztDWLk8=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland-qtutils",
|
||||
"rev": "b308a818b9dcaa7ab8ccab891c1b84ebde2152bc",
|
||||
"rev": "b13c7481e37856f322177010bdf75fccacd1adc8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -303,11 +303,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1753622892,
|
||||
"narHash": "sha256-0K+A+gmOI8IklSg5It1nyRNv0kCNL51duwnhUO/B8JA=",
|
||||
"lastModified": 1750371198,
|
||||
"narHash": "sha256-/iuJ1paQOBoSLqHflRNNGyroqfF/yvPNurxzcCT0cAE=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprlang",
|
||||
"rev": "23f0debd2003f17bd65f851cd3f930cff8a8c809",
|
||||
"rev": "cee01452bca58d6cadb3224e21e370de8bc20f0b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -328,11 +328,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1754481650,
|
||||
"narHash": "sha256-6u6HdEFJh5gY6VfyMQbhP7zDdVcqOrCDTkbiHJmAtMI=",
|
||||
"lastModified": 1751888065,
|
||||
"narHash": "sha256-F2SV9WGqgtRsXIdUrl3sRe0wXlQD+kRRZcSfbepjPJY=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprutils",
|
||||
"rev": "df6b8820c4a0835d83d0c7c7be86fbc555f1f7fd",
|
||||
"rev": "a8229739cf36d159001cfc203871917b83fdf917",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -353,11 +353,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1751897909,
|
||||
"narHash": "sha256-FnhBENxihITZldThvbO7883PdXC/2dzW4eiNvtoV5Ao=",
|
||||
"lastModified": 1751881472,
|
||||
"narHash": "sha256-meB0SnXbwIe2trD041MLKEv6R7NZ759QwBcVIhlSBfE=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprwayland-scanner",
|
||||
"rev": "fcca0c61f988a9d092cbb33e906775014c61579d",
|
||||
"rev": "8fb426b3e5452fd9169453fd6c10f8c14ca37120",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -387,11 +387,11 @@
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1754725699,
|
||||
"narHash": "sha256-iAcj9T/Y+3DBy2J0N+yF9XQQQ8IEb5swLFzs23CdP88=",
|
||||
"lastModified": 1751792365,
|
||||
"narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "85dbfc7aaf52ecb755f87e577ddbe6dbbdbc1054",
|
||||
"rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -418,11 +418,11 @@
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1755186698,
|
||||
"narHash": "sha256-wNO3+Ks2jZJ4nTHMuks+cxAiVBGNuEBXsT29Bz6HASo=",
|
||||
"lastModified": 1751792365,
|
||||
"narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "fbcf476f790d8a217c3eab4e12033dc4a0f6d23c",
|
||||
"rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -442,11 +442,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1754416808,
|
||||
"narHash": "sha256-c6yg0EQ9xVESx6HGDOCMcyRSjaTpNJP10ef+6fRcofA=",
|
||||
"lastModified": 1750779888,
|
||||
"narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=",
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"rev": "9c52372878df6911f9afc1e2a1391f55e4dfc864",
|
||||
"rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -506,11 +506,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1753633878,
|
||||
"narHash": "sha256-js2sLRtsOUA/aT10OCDaTjO80yplqwOIaLUqEe0nMx0=",
|
||||
"lastModified": 1751300244,
|
||||
"narHash": "sha256-PFuv1TZVYvQhha0ac53E3YgdtmLShrN0t4T6xqHl0jE=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "xdg-desktop-portal-hyprland",
|
||||
"rev": "371b96bd11ad2006ed4f21229dbd1be69bed3e8a",
|
||||
"rev": "6115f3fdcb2c1a57b4a80a69f3c797e47607b90a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
||||
@@ -9,26 +9,20 @@
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
outputs =
|
||||
inputs@{
|
||||
outputs = inputs @ {
|
||||
self,
|
||||
nixpkgs,
|
||||
hyprland,
|
||||
nix-colors,
|
||||
home-manager,
|
||||
}:
|
||||
{
|
||||
formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.nixfmt-tree;
|
||||
|
||||
}: {
|
||||
nixosModules = {
|
||||
default =
|
||||
{
|
||||
default = {
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
}: {
|
||||
imports = [
|
||||
(import ./modules/nixos/default.nix inputs)
|
||||
];
|
||||
@@ -41,15 +35,13 @@
|
||||
};
|
||||
|
||||
homeManagerModules = {
|
||||
default =
|
||||
{
|
||||
default = {
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
osConfig ? {},
|
||||
...
|
||||
}:
|
||||
{
|
||||
}: {
|
||||
imports = [
|
||||
nix-colors.homeManagerModules.default
|
||||
(import ./modules/home-manager/default.nix inputs)
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
config:
|
||||
let
|
||||
config: let
|
||||
cfg = config.omarchy;
|
||||
wallpapers = {
|
||||
"tokyo-night" = [
|
||||
@@ -23,18 +22,11 @@ let
|
||||
};
|
||||
|
||||
# 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)
|
||||
then
|
||||
toString cfg.theme_overrides.wallpaper_path
|
||||
else
|
||||
let
|
||||
wallpaper_path = if (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;
|
||||
in
|
||||
"~/Pictures/Wallpapers/${selected_wallpaper}";
|
||||
in
|
||||
{
|
||||
in "~/Pictures/Wallpapers/${selected_wallpaper}";
|
||||
in {
|
||||
inherit wallpaper_path;
|
||||
}
|
||||
|
||||
@@ -2,12 +2,10 @@
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
}: let
|
||||
cfg = config.omarchy;
|
||||
palette = config.colorScheme.palette;
|
||||
in
|
||||
{
|
||||
in {
|
||||
home.file = {
|
||||
".config/btop/themes/${cfg.theme}.theme" = {
|
||||
text = ''
|
||||
|
||||
@@ -1,36 +1,26 @@
|
||||
inputs:
|
||||
{
|
||||
inputs: {
|
||||
config,
|
||||
pkgs,
|
||||
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;
|
||||
|
||||
# Handle theme selection - either predefined or generated
|
||||
selectedTheme =
|
||||
if (config.omarchy.theme == "generated_light" || config.omarchy.theme == "generated_dark") then
|
||||
null
|
||||
else
|
||||
themes.${config.omarchy.theme};
|
||||
selectedTheme = if (config.omarchy.theme == "generated_light" || config.omarchy.theme == "generated_dark")
|
||||
then null
|
||||
else themes.${config.omarchy.theme};
|
||||
|
||||
# Generate color scheme from wallpaper for generated themes
|
||||
generatedColorScheme =
|
||||
if (config.omarchy.theme == "generated_light" || config.omarchy.theme == "generated_dark") then
|
||||
(inputs.nix-colors.lib.contrib { inherit pkgs; }).colorSchemeFromPicture {
|
||||
generatedColorScheme = 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;
|
||||
variant = if config.omarchy.theme == "generated_light" then "light" else "dark";
|
||||
}
|
||||
else
|
||||
null;
|
||||
in
|
||||
{
|
||||
else null;
|
||||
in {
|
||||
imports = [
|
||||
(import ./hyprland.nix inputs)
|
||||
(import ./hyprlock.nix inputs)
|
||||
@@ -57,16 +47,14 @@ in
|
||||
};
|
||||
home.packages = packages.homePackages;
|
||||
|
||||
colorScheme =
|
||||
if (config.omarchy.theme == "generated_light" || config.omarchy.theme == "generated_dark") then
|
||||
generatedColorScheme
|
||||
else
|
||||
inputs.nix-colors.colorSchemes.${selectedTheme.base16-theme};
|
||||
colorScheme = if (config.omarchy.theme == "generated_light" || config.omarchy.theme == "generated_dark")
|
||||
then generatedColorScheme
|
||||
else inputs.nix-colors.colorSchemes.${selectedTheme.base16-theme};
|
||||
|
||||
gtk = {
|
||||
enable = true;
|
||||
theme = {
|
||||
name = if config.omarchy.theme == "generated_light" then "Adwaita" else "Adwaita:dark";
|
||||
name = "Adwaita-dark";
|
||||
package = pkgs.gnome-themes-extra;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{ ... }:
|
||||
{
|
||||
{...}: {
|
||||
programs.direnv = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{ ... }:
|
||||
{
|
||||
{...}: {
|
||||
fonts.fontconfig = {
|
||||
enable = true;
|
||||
defaultFonts = {
|
||||
|
||||
@@ -2,12 +2,10 @@
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
}: let
|
||||
cfg = config.omarchy;
|
||||
palette = config.colorScheme.palette;
|
||||
in
|
||||
{
|
||||
in {
|
||||
programs.ghostty = {
|
||||
enable = true;
|
||||
settings = {
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
{ config, ... }:
|
||||
let
|
||||
{config, ...}: let
|
||||
cfg = config.omarchy;
|
||||
in
|
||||
{
|
||||
in {
|
||||
programs.git = {
|
||||
enable = true;
|
||||
userName = cfg.full_name;
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{ ... }:
|
||||
{
|
||||
{...}: {
|
||||
services.hypridle = {
|
||||
enable = true;
|
||||
settings = {
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
inputs:
|
||||
{
|
||||
inputs: {
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
}: {
|
||||
imports = [./hyprland/configuration.nix];
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
|
||||
@@ -2,8 +2,7 @@
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
}: {
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
exec-once = [
|
||||
# "hypridle & mako & waybar & fcitx5"
|
||||
|
||||
@@ -2,13 +2,13 @@
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
}: let
|
||||
cfg = config.omarchy;
|
||||
in
|
||||
{
|
||||
in {
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
bind = cfg.quick_app_bindings ++ [
|
||||
bind =
|
||||
cfg.quick_app_bindings
|
||||
++ [
|
||||
"SUPER, space, exec, wofi --show drun --sort-order=alphabetical"
|
||||
"SUPER SHIFT, SPACE, exec, pkill -SIGUSR1 waybar"
|
||||
# "SUPER CTRL, SPACE, exec, ~/.local/share/omarchy/bin/swaybg-next"
|
||||
|
||||
@@ -3,11 +3,9 @@
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
}: let
|
||||
cfg = config.omarchy;
|
||||
in
|
||||
{
|
||||
in {
|
||||
imports = [
|
||||
./autostart.nix
|
||||
./bindings.nix
|
||||
|
||||
@@ -4,8 +4,7 @@
|
||||
pkgs,
|
||||
osConfig ? {},
|
||||
...
|
||||
}:
|
||||
let
|
||||
}: let
|
||||
cfg = config.omarchy;
|
||||
hasNvidiaDrivers = builtins.elem "nvidia" osConfig.services.xserver.videoDrivers;
|
||||
nvidiaEnv = [
|
||||
@@ -13,11 +12,12 @@ let
|
||||
"LIBVA_DRIVER_NAME,nvidia"
|
||||
"__GLX_VENDOR_LIBRARY_NAME,nvidia"
|
||||
];
|
||||
in
|
||||
{
|
||||
in {
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
# Environment variables
|
||||
env = (lib.optionals hasNvidiaDrivers nvidiaEnv) ++ [
|
||||
env =
|
||||
(lib.optionals hasNvidiaDrivers nvidiaEnv)
|
||||
++ [
|
||||
"GDK_SCALE,${toString cfg.scale}"
|
||||
|
||||
# Cursor size
|
||||
@@ -48,7 +48,7 @@ in
|
||||
"EDITOR,nvim"
|
||||
|
||||
# GTK theme
|
||||
"GTK_THEME,${if cfg.theme == "generated_light" then "Adwaita" else "Adwaita:dark"}"
|
||||
"GTK_THEME,Adwaita:dark"
|
||||
|
||||
# Podman compatibility. Probably need to add cfg.env?
|
||||
# "DOCKER_HOST,unix://$XDG_RUNTIME_DIR/podman/podman.sock"
|
||||
|
||||
@@ -3,8 +3,7 @@
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
}: {
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
# Environment variables
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#input
|
||||
@@ -12,7 +11,7 @@
|
||||
kb_layout = "us";
|
||||
# kb_variant =
|
||||
# kb_model =
|
||||
kb_options = "compose:caps";
|
||||
kb_options = compose:caps;
|
||||
# kb_rules =
|
||||
|
||||
follow_mouse = 1;
|
||||
|
||||
@@ -2,18 +2,13 @@
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
hexToRgba =
|
||||
hex: alpha:
|
||||
let
|
||||
in
|
||||
"rgba(${hex}${alpha})";
|
||||
}: let
|
||||
hexToRgba = hex: alpha: let
|
||||
in "rgba(${hex}${alpha})";
|
||||
|
||||
inactiveBorder = hexToRgba config.colorScheme.palette.base09 "aa";
|
||||
activeBorder = hexToRgba config.colorScheme.palette.base0D "aa";
|
||||
in
|
||||
{
|
||||
in {
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
general = {
|
||||
gaps_in = 5;
|
||||
|
||||
@@ -2,8 +2,7 @@
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
}: {
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
windowrule = [
|
||||
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
inputs:
|
||||
{
|
||||
inputs: {
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
}: let
|
||||
palette = config.colorScheme.palette;
|
||||
convert = inputs.nix-colors.lib.conversions.hexToRGBString;
|
||||
selected_wallpaper_path = (import ../../lib/selected-wallpaper.nix config).wallpaper_path;
|
||||
@@ -14,8 +12,7 @@ let
|
||||
surfaceRgb = "rgb(${convert ", " palette.base02})";
|
||||
foregroundRgb = "rgb(${convert ", " palette.base05})";
|
||||
foregroundMutedRgb = "rgb(${convert ", " palette.base04})";
|
||||
in
|
||||
{
|
||||
in {
|
||||
programs.hyprlock = {
|
||||
enable = true;
|
||||
settings = {
|
||||
|
||||
@@ -2,11 +2,9 @@
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
}: let
|
||||
selected_wallpaper_path = (import ../../lib/selected-wallpaper.nix config).wallpaper_path;
|
||||
in
|
||||
{
|
||||
in {
|
||||
home.file = {
|
||||
"Pictures/Wallpapers" = {
|
||||
source = ../../config/themes/wallpapers;
|
||||
|
||||
@@ -2,11 +2,9 @@
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
}: let
|
||||
cfg = config.omarchy;
|
||||
in
|
||||
{
|
||||
in {
|
||||
services.mako = {
|
||||
enable = true;
|
||||
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
{ ... }:
|
||||
{
|
||||
{...}: {
|
||||
programs.starship.enable = true;
|
||||
}
|
||||
|
||||
@@ -2,13 +2,11 @@
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
}: let
|
||||
cfg = config.omarchy;
|
||||
themes = import ../themes.nix;
|
||||
theme = themes.${cfg.theme};
|
||||
in
|
||||
{
|
||||
in {
|
||||
programs.vscode = {
|
||||
enable = true;
|
||||
profiles.default = {
|
||||
@@ -25,8 +23,7 @@ in
|
||||
|
||||
# // cfg.vscode_settings;
|
||||
|
||||
extensions =
|
||||
with pkgs.vscode-extensions;
|
||||
extensions = with pkgs.vscode-extensions;
|
||||
[
|
||||
bbenoist.nix
|
||||
vscodevim.vim
|
||||
|
||||
@@ -1,16 +1,13 @@
|
||||
inputs:
|
||||
{
|
||||
inputs: {
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
}: let
|
||||
palette = config.colorScheme.palette;
|
||||
convert = inputs.nix-colors.lib.conversions.hexToRGBString;
|
||||
backgroundRgb = "rgb(${convert ", " palette.base00})";
|
||||
foregroundRgb = "rgb(${convert ", " palette.base05})";
|
||||
in
|
||||
{
|
||||
in {
|
||||
home.file = {
|
||||
".config/waybar/" = {
|
||||
source = ../../config/waybar;
|
||||
@@ -89,13 +86,7 @@ in
|
||||
tooltip = false;
|
||||
};
|
||||
network = {
|
||||
format-icons = [
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
format-icons = ["" "" "" "" ""];
|
||||
format = "{icon}";
|
||||
format-wifi = "{icon}";
|
||||
format-ethernet = "";
|
||||
@@ -152,21 +143,19 @@ in
|
||||
format-disabled = "";
|
||||
format-connected = "";
|
||||
tooltip-format = "Devices connected: {num_connections}";
|
||||
on-click = "blueberry";
|
||||
on-click = "GTK_THEME=Adwaita-dark blueberry";
|
||||
};
|
||||
wireplumber = {
|
||||
# Changed from "pulseaudio"
|
||||
"format" = "";
|
||||
format-muted = "";
|
||||
scroll-step = 5;
|
||||
on-click = "pavucontrol";
|
||||
on-click = "GTK_THEME=Adwaita-dark pavucontrol";
|
||||
tooltip-format = "Playing at {volume}%";
|
||||
on-click-right = "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; # Updated command
|
||||
max-volume = 150; # Optional: allow volume over 100%
|
||||
};
|
||||
tray = {
|
||||
spacing = 13;
|
||||
};
|
||||
tray = {spacing = 13;};
|
||||
power-profiles-daemon = {
|
||||
format = "{icon}";
|
||||
tooltip-format = "Power profile: {profile}";
|
||||
|
||||
@@ -2,8 +2,7 @@
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
}: {
|
||||
home.file = {
|
||||
".config/wofi/style.css" = {
|
||||
text = ''
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{ ... }:
|
||||
{
|
||||
{...}: {
|
||||
programs.zoxide = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{ ... }:
|
||||
{
|
||||
{...}: {
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
autosuggestion.enable = true;
|
||||
@@ -8,11 +7,11 @@
|
||||
plugins = [
|
||||
{
|
||||
name = "plugins/git";
|
||||
tags = [ "from:oh-my-zsh" ];
|
||||
tags = [from:oh-my-zsh];
|
||||
}
|
||||
{
|
||||
name = "fdellwing/zsh-bat";
|
||||
tags = [ "as:command" ];
|
||||
tags = [as:command];
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{ ... }:
|
||||
{
|
||||
{...}: {
|
||||
programs = {
|
||||
_1password.enable = true;
|
||||
_1password-gui.enable = true;
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
{pkgs, ...}: {
|
||||
virtualisation.containers.enable = true;
|
||||
virtualisation = {
|
||||
docker.enable = true;
|
||||
|
||||
@@ -1,14 +1,11 @@
|
||||
inputs:
|
||||
{
|
||||
inputs: {
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
}: let
|
||||
cfg = config.omarchy;
|
||||
packages = import ../packages.nix {inherit pkgs;};
|
||||
in
|
||||
{
|
||||
in {
|
||||
imports = [
|
||||
(import ./hyprland.nix inputs)
|
||||
(import ./system.nix)
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
inputs:
|
||||
{
|
||||
inputs: {
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
}: {
|
||||
programs.hyprland = {
|
||||
enable = true;
|
||||
# package = inputs.hyprland.packages.${pkgs.system}.hyprland;
|
||||
|
||||
@@ -3,15 +3,10 @@
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
}: let
|
||||
cfg = config.omarchy;
|
||||
packages = import ../packages.nix {
|
||||
inherit pkgs lib;
|
||||
exclude_packages = cfg.exclude_packages;
|
||||
};
|
||||
in
|
||||
{
|
||||
packages = import ../packages.nix {inherit pkgs lib; exclude_packages = cfg.exclude_packages;};
|
||||
in {
|
||||
security.rtkit.enable = true;
|
||||
services.pulseaudio.enable = false;
|
||||
services.pipewire = {
|
||||
@@ -41,7 +36,7 @@ in
|
||||
|
||||
fonts.packages = with pkgs; [
|
||||
noto-fonts
|
||||
noto-fonts-color-emoji
|
||||
noto-fonts-emoji
|
||||
nerd-fonts.caskaydia-mono
|
||||
];
|
||||
}
|
||||
|
||||
+8
-15
@@ -1,8 +1,4 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
exclude_packages ? [ ],
|
||||
}:
|
||||
{pkgs, lib, exclude_packages ? []}:
|
||||
let
|
||||
# Essential Hyprland packages - cannot be excluded
|
||||
hyprlandPackages = with pkgs; [
|
||||
@@ -37,9 +33,7 @@ let
|
||||
];
|
||||
|
||||
# Discretionary packages - can be excluded by user
|
||||
discretionaryPackages =
|
||||
with pkgs;
|
||||
[
|
||||
discretionaryPackages = with pkgs; [
|
||||
# TUIs
|
||||
lazygit
|
||||
lazydocker
|
||||
@@ -53,6 +47,11 @@ let
|
||||
vlc
|
||||
signal-desktop
|
||||
|
||||
# Commercial GUIs
|
||||
typora
|
||||
dropbox
|
||||
spotify
|
||||
|
||||
# Development tools
|
||||
github-desktop
|
||||
gh
|
||||
@@ -60,18 +59,12 @@ let
|
||||
# Containers
|
||||
docker-compose
|
||||
ffmpeg
|
||||
]
|
||||
++ lib.optionals (pkgs.system == "x86_64-linux") [
|
||||
typora
|
||||
dropbox
|
||||
spotify
|
||||
];
|
||||
|
||||
# Only allow excluding discretionary packages to prevent breaking the system
|
||||
filteredDiscretionaryPackages = lib.lists.subtractLists exclude_packages discretionaryPackages;
|
||||
allSystemPackages = hyprlandPackages ++ systemPackages ++ filteredDiscretionaryPackages;
|
||||
in
|
||||
{
|
||||
in {
|
||||
# Regular packages
|
||||
systemPackages = allSystemPackages;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user