[feat] Add all nix config with device gates
This commit is contained in:
@@ -3,8 +3,7 @@
|
||||
default: nixos
|
||||
|
||||
darwin:
|
||||
# nix run nix-darwin -- switch --flake ~/.local/share/dotfiles/config/nix
|
||||
nix run nix-darwin -- switch --flake .
|
||||
nix run nix-darwin -- switch --flake . --show-trace
|
||||
|
||||
home:
|
||||
nix --extra-experimental-features "nix-command flakes" run home-manager/master -- switch --flake .
|
||||
|
||||
@@ -1 +1 @@
|
||||
{pkgs, ...}: {programs.firefox = {enable = pkgs.stdenv.isLinux;};}
|
||||
{ device, ... }: { programs.firefox = { enable = device.isLinux; }; }
|
||||
|
||||
@@ -1,10 +1,5 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
device,
|
||||
...
|
||||
}: let
|
||||
{ config, pkgs, lib, device, ... }:
|
||||
let
|
||||
start-tmux = (import ../scripts/start-tmux.nix) pkgs;
|
||||
# https://mipmip.github.io/home-manager-option-search/
|
||||
in {
|
||||
@@ -12,12 +7,10 @@ in {
|
||||
# Include the results of the hardware scan.
|
||||
./tmux.nix
|
||||
./wezterm.nix
|
||||
./firefox.nix
|
||||
../linux/hyprland.nix
|
||||
../linux/gtk.nix
|
||||
../linux/anyrun.nix
|
||||
../linux/ironbar.nix
|
||||
];
|
||||
] ++ (if device.isLinux then [
|
||||
../linux
|
||||
] else
|
||||
[ ]);
|
||||
|
||||
home.packages = with pkgs;
|
||||
[
|
||||
@@ -40,34 +33,14 @@ in {
|
||||
neovim
|
||||
(nerdfonts.override { fonts = [ "Hasklig" ]; })
|
||||
mpv
|
||||
|
||||
# # It is sometimes useful to fine-tune packages, for example, by applying
|
||||
# # overrides. You can do that directly here, just don't forget the
|
||||
# # parentheses. Maybe you want to install Nerd Fonts with a limited number of
|
||||
# # fonts?
|
||||
# (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; })
|
||||
|
||||
# # You can also create simple shell scripts directly inside your
|
||||
# # configuration. For example, this adds a command 'my-hello' to your
|
||||
# # environment:
|
||||
# (pkgs.writeShellScriptBin "my-hello" ''
|
||||
# echo "Hello, ${config.home.username}!"
|
||||
# '')
|
||||
]
|
||||
++ (
|
||||
if device.isLinux
|
||||
then
|
||||
with pkgs; [
|
||||
] ++ (if device.isLinux then [
|
||||
handlr-regex
|
||||
gnome.nautilus
|
||||
webcord-vencord
|
||||
spotify
|
||||
spotify-player
|
||||
lsof
|
||||
wl-clipboard
|
||||
yubikey-personalization
|
||||
ncpamixer
|
||||
yubikey-agent
|
||||
(pkgs.writeShellApplication {
|
||||
name = "xdg-open";
|
||||
runtimeInputs = [ handlr-regex ];
|
||||
@@ -75,9 +48,8 @@ in {
|
||||
handlr open "$@"
|
||||
'';
|
||||
})
|
||||
]
|
||||
else []
|
||||
);
|
||||
] else
|
||||
[ ]);
|
||||
|
||||
xdg.enable = true;
|
||||
|
||||
@@ -144,12 +116,6 @@ in {
|
||||
enableFishIntegration = true;
|
||||
tmux.enableShellIntegration = true;
|
||||
};
|
||||
# keychain = {
|
||||
# enable = pkgs.isLinux;
|
||||
# keys = [ "id_ed25519" ];
|
||||
# enableFishIntegration = true;
|
||||
# enableNushellIntegration = true;
|
||||
# };
|
||||
yazi = {
|
||||
enable = true;
|
||||
enableFishIntegration = true;
|
||||
@@ -165,10 +131,10 @@ in {
|
||||
# Home Manager needs a bit of information about you and the paths it should
|
||||
# manage.
|
||||
username = device.user;
|
||||
homeDirectory =
|
||||
if device.isMac
|
||||
then lib.mkForce "/Users/${device.user}"
|
||||
else lib.mkForce "/home/${device.user}";
|
||||
homeDirectory = if device.isMac then
|
||||
lib.mkForce "/Users/${device.user}"
|
||||
else
|
||||
lib.mkForce "/home/${device.user}";
|
||||
|
||||
stateVersion = "23.11";
|
||||
|
||||
|
||||
@@ -105,17 +105,17 @@
|
||||
# overlays = [ anyrun-overlay ];
|
||||
in {
|
||||
nixosConfigurations = let devices = nixos_devices;
|
||||
in import ./nixos {
|
||||
in import ./nixos/device.nix {
|
||||
inherit devices inputs nixpkgs home-manager overlays;
|
||||
};
|
||||
|
||||
darwinConfigurations = let devices = darwin_devices;
|
||||
in import ./darwin {
|
||||
in import ./darwin/device.nix {
|
||||
inherit devices inputs nixpkgs home-manager overlays nix-darwin;
|
||||
};
|
||||
|
||||
homeConfigurations = let devices = linux_devices;
|
||||
in import ./linux {
|
||||
in import ./linux/device.nix {
|
||||
inherit devices inputs nixpkgs home-manager overlays;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,20 +1,12 @@
|
||||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
osConfig,
|
||||
...
|
||||
}: {
|
||||
imports =
|
||||
if pkgs.stdenv.isLinux
|
||||
then [inputs.anyrun.nixosModules.home-manager]
|
||||
else [];
|
||||
{ inputs, pkgs, osConfig, ... }: {
|
||||
imports = [ inputs.anyrun.nixosModules.home-manager ];
|
||||
programs.anyrun = {
|
||||
enable = pkgs.stdenv.isLinux;
|
||||
enable = true;
|
||||
config = {
|
||||
plugins = with inputs.anyrun.packages.${pkgs.system}; [
|
||||
inputs.anyrun-nixos-options.packages.${pkgs.system}.default
|
||||
inputs.anyrun-hyprwin.packages.${pkgs.system}.default
|
||||
# inputs.anyrun-rink.packages.${pkgs.system}.default
|
||||
inputs.anyrun-rink.packages.${pkgs.system}.default
|
||||
# rink
|
||||
applications
|
||||
websearch
|
||||
@@ -34,11 +26,9 @@
|
||||
|
||||
extraConfigFiles = {
|
||||
"nixos-options.ron".text = let
|
||||
nixos-options =
|
||||
osConfig.system.build.manual.optionsJSON
|
||||
nixos-options = osConfig.system.build.manual.optionsJSON
|
||||
+ "/share/doc/nixos/options.json";
|
||||
hm-options =
|
||||
inputs.home-manager.packages.${pkgs.system}.docs-json
|
||||
hm-options = inputs.home-manager.packages.${pkgs.system}.docs-json
|
||||
+ "/share/doc/home-manager/options.json";
|
||||
# or alternatively if you wish to read any other documentation options, such as home-manager
|
||||
# get the docs-json package from the home-manager flake
|
||||
@@ -53,6 +43,7 @@
|
||||
":nix" = [ nixos-options ];
|
||||
":hm" = [ hm-options ];
|
||||
};
|
||||
|
||||
in ''
|
||||
Config(
|
||||
options: ${options},
|
||||
|
||||
@@ -1,17 +1,9 @@
|
||||
{ devices, inputs, overlays, home-manager, ... }:
|
||||
builtins.listToAttrs (builtins.map (device: {
|
||||
name = device.user;
|
||||
value = let
|
||||
pkgs = import inputs.nixpkgs {
|
||||
inherit overlays;
|
||||
system = device.system;
|
||||
};
|
||||
in home-manager.lib.homeManagerConfiguration {
|
||||
inherit pkgs;
|
||||
extraSpecialArgs = {
|
||||
inherit inputs;
|
||||
inherit device;
|
||||
};
|
||||
modules = [ ../common/home.nix ];
|
||||
};
|
||||
}) devices)
|
||||
{ pkgs, ... }: {
|
||||
imports = [
|
||||
../common/firefox.nix
|
||||
../linux/hyprland.nix
|
||||
../linux/gtk.nix
|
||||
../linux/anyrun.nix
|
||||
../linux/ironbar.nix
|
||||
];
|
||||
}
|
||||
|
||||
17
config/nix/linux/device.nix
Normal file
17
config/nix/linux/device.nix
Normal file
@@ -0,0 +1,17 @@
|
||||
{ devices, inputs, overlays, home-manager, ... }:
|
||||
builtins.listToAttrs (builtins.map (device: {
|
||||
name = device.user;
|
||||
value = let
|
||||
pkgs = import inputs.nixpkgs {
|
||||
inherit overlays;
|
||||
system = device.system;
|
||||
};
|
||||
in home-manager.lib.homeManagerConfiguration {
|
||||
inherit pkgs;
|
||||
extraSpecialArgs = {
|
||||
inherit inputs;
|
||||
inherit device;
|
||||
};
|
||||
modules = [ ../common/home.nix ];
|
||||
};
|
||||
}) devices)
|
||||
@@ -1,6 +1,7 @@
|
||||
{ pkgs, ... }: {
|
||||
programs.gtk = {
|
||||
enable = pkgs.stdenv.isLinux;
|
||||
programs = {
|
||||
gtk = {
|
||||
enable = true;
|
||||
theme = {
|
||||
name = "Catppuccin-Mocha-Standard-Mauve-Dark";
|
||||
package = pkgs.catppuccin-gtk.override {
|
||||
@@ -23,4 +24,5 @@
|
||||
|
||||
gtk4.extraConfig = { gtk-application-prefer-dark-theme = 1; };
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{ pkgs, ... }: {
|
||||
{ ... }: {
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = pkgs.stdenv.isLinux;
|
||||
enable = true;
|
||||
settings = {
|
||||
monitor = [
|
||||
",preferred,auto,auto"
|
||||
|
||||
@@ -1,14 +1,7 @@
|
||||
{
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
imports =
|
||||
if pkgs.stdenv.isLinux
|
||||
then [inputs.ironbar.homeManagerModules.default]
|
||||
else [];
|
||||
{ inputs, ... }: {
|
||||
imports = [ inputs.ironbar.homeManagerModules.default ];
|
||||
programs.ironbar = {
|
||||
enable = pkgs.stdenv.isLinux;
|
||||
enable = true;
|
||||
config.monitors = {
|
||||
HDMI-A-2 = {
|
||||
position = "bottom";
|
||||
@@ -59,8 +52,7 @@
|
||||
}
|
||||
{ type = "tray"; }
|
||||
];
|
||||
start = [
|
||||
{
|
||||
start = [{
|
||||
type = "workspaces";
|
||||
name_map = {
|
||||
"1" = "icon:code";
|
||||
@@ -76,8 +68,7 @@
|
||||
};
|
||||
favorites = [ "1" "2" "3" "4" "5" "6" "7" "8" "9" "10" ];
|
||||
all_monitors = true;
|
||||
}
|
||||
];
|
||||
}];
|
||||
};
|
||||
};
|
||||
style = ''
|
||||
|
||||
Reference in New Issue
Block a user