mirror of
https://github.com/sadan4/dotfiles.git
synced 2024-11-16 23:04:39 -05:00
Compare commits
3 commits
375a1b2e89
...
0f89ab4db6
Author | SHA1 | Date | |
---|---|---|---|
|
0f89ab4db6 | ||
|
5a8735684d | ||
|
5fca9d16c0 |
17 changed files with 202 additions and 106 deletions
|
@ -2,66 +2,43 @@
|
|||
# your system. Help is available in the configuration.nix(5) man page, on
|
||||
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
|
||||
|
||||
{ config, lib, pkgs, inputs, ... }:
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
imports =
|
||||
[
|
||||
# Include the results of the hardware scan.
|
||||
./hardware-configuration.nix
|
||||
../../common/systemModules/boot.nix
|
||||
../../common/systemModules/audio.nix
|
||||
../../common/systemModules/kde.nix
|
||||
../../common/systemModules/tailscale.nix
|
||||
../../common/systemModules/gaming.nix
|
||||
../../common/systemModules/crypt.nix
|
||||
../../common/systemModules/printing.nix
|
||||
# USERS
|
||||
../../common/users/meyer
|
||||
];
|
||||
# Use the systemd-boot EFI boot loader.
|
||||
boot.loader.grub.device = "nodev";
|
||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||
boot.loader.grub.efiSupport = true;
|
||||
boot.loader.grub.useOSProber = true;
|
||||
boot.loader.grub.efiInstallAsRemovable = true;
|
||||
# boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
|
||||
# add user to "openrazer" group
|
||||
hardware.openrazer.enable = true;
|
||||
hardware.openrazer.users = [ "meyer" ];
|
||||
boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
|
||||
nix.settings.extra-platforms = config.boot.binfmt.emulatedSystems;
|
||||
hardware.i2c.enable = true;
|
||||
hardware.xpadneo.enable = true;
|
||||
hardware.amdgpu.opencl.enable = true;
|
||||
services.xserver.videoDrivers = [ "amdgpu" ];
|
||||
hardware.bluetooth.enable = true;
|
||||
services.tailscale.enable = true;
|
||||
networking.hostName = "nix-desktop-evo4b5"; # Define your hostname.
|
||||
# Pick only one of the below networking options.
|
||||
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "America/New_York";
|
||||
|
||||
# Select internationalisation properties.
|
||||
# i18n.defaultLocale = "en_US.UTF-8";
|
||||
# console = {
|
||||
# font = "Lat2-Terminus16";
|
||||
# keyMap = "us";
|
||||
# useXkbConfig = true; # use xkb.options in tty.
|
||||
|
||||
# };
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
|
||||
services = {
|
||||
teamviewer.enable = true;
|
||||
avahi.enable = true;
|
||||
usbmuxd.enable = true;
|
||||
};
|
||||
services.xserver.videoDrivers = [ "amdgpu" ];
|
||||
services.printing.enable = true;
|
||||
services.printing.drivers = with pkgs; [
|
||||
hplip
|
||||
];
|
||||
|
||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
|
||||
programs.zsh.enable = true;
|
||||
programs.steam.enable = true;
|
||||
programs.steam.extraCompatPackages = with pkgs; [
|
||||
proton-ge-bin
|
||||
];
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
|
||||
|
||||
|
@ -77,10 +54,6 @@
|
|||
wget
|
||||
ripgrep
|
||||
tldr
|
||||
gnupg
|
||||
openssh
|
||||
pinentry-curses
|
||||
pinentry
|
||||
libnotify
|
||||
file
|
||||
];
|
||||
|
@ -116,13 +89,6 @@
|
|||
mimalloc
|
||||
libstdcxx5
|
||||
];
|
||||
programs.ssh.startAgent = true;
|
||||
programs.ssh.askPassword = pkgs.lib.mkForce "${pkgs.ksshaskpass.out}/bin/ksshaskpass";
|
||||
|
||||
programs.gnupg.agent = {
|
||||
enable = true;
|
||||
pinentryPackage = pkgs.pinentry-gnome3;
|
||||
};
|
||||
|
||||
# This option defines the first version of NixOS you have installed on this particular machine,
|
||||
# and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
|
||||
|
|
14
common/systemModules/boot.nix
Normal file
14
common/systemModules/boot.nix
Normal file
|
@ -0,0 +1,14 @@
|
|||
{ pkgs, ... }: {
|
||||
boot = {
|
||||
loader = {
|
||||
grub = {
|
||||
enable = true;
|
||||
device = "nodev";
|
||||
efiSupport = true;
|
||||
useOSProber = true;
|
||||
efiInstallAsRemovable = true;
|
||||
};
|
||||
};
|
||||
kernelPackages = pkgs.linuxPackages_latest;
|
||||
};
|
||||
}
|
22
common/systemModules/crypt.nix
Normal file
22
common/systemModules/crypt.nix
Normal file
|
@ -0,0 +1,22 @@
|
|||
{ pkgs, ... }: {
|
||||
environment = {
|
||||
systemPackages = with pkgs; [
|
||||
gnupg
|
||||
openssh
|
||||
pinentry-curses
|
||||
pinentry
|
||||
];
|
||||
};
|
||||
programs = {
|
||||
ssh = {
|
||||
startAgent = true;
|
||||
askPassword = "${pkgs.ksshaskpass}/bin/ksshaskpass";
|
||||
};
|
||||
gnupg = {
|
||||
agent = {
|
||||
enable = true;
|
||||
pinentryPackage = pkgs.pinentry-gnome3;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
15
common/systemModules/gaming.nix
Normal file
15
common/systemModules/gaming.nix
Normal file
|
@ -0,0 +1,15 @@
|
|||
{ pkgs, ... }: {
|
||||
hardware = {
|
||||
xpadneo = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
programs = {
|
||||
steam = {
|
||||
enable = true;
|
||||
extraCompatPackages = with pkgs; [
|
||||
proton-ge-bin
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
12
common/systemModules/nixHelper.nix
Normal file
12
common/systemModules/nixHelper.nix
Normal file
|
@ -0,0 +1,12 @@
|
|||
{ NAME }: { ... }: {
|
||||
programs = {
|
||||
nh = {
|
||||
enable = true;
|
||||
clean = {
|
||||
enable = true;
|
||||
extraArgs = "--keep-since 4d --keep 3";
|
||||
};
|
||||
flake = "/home/${NAME}/nixos";
|
||||
};
|
||||
};
|
||||
}
|
13
common/systemModules/printing.nix
Normal file
13
common/systemModules/printing.nix
Normal file
|
@ -0,0 +1,13 @@
|
|||
{ pkgs, ... }: {
|
||||
services = {
|
||||
avahi = {
|
||||
enable = true;
|
||||
};
|
||||
printing = {
|
||||
enable = true;
|
||||
drivers = with pkgs; [
|
||||
hplip
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
8
common/systemModules/razer.nix
Normal file
8
common/systemModules/razer.nix
Normal file
|
@ -0,0 +1,8 @@
|
|||
{ NAME }: { ... }: {
|
||||
hardware = {
|
||||
openrazer = {
|
||||
enable = true;
|
||||
users = [ NAME ];
|
||||
};
|
||||
};
|
||||
}
|
7
common/systemModules/tailscale.nix
Normal file
7
common/systemModules/tailscale.nix
Normal file
|
@ -0,0 +1,7 @@
|
|||
{ ... }: {
|
||||
services = {
|
||||
tailscale = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,7 +1,16 @@
|
|||
{ NAME }: { ... }: {
|
||||
{ NAME }: { pkgs, ... }: {
|
||||
virtualisation = {
|
||||
libvirtd = {
|
||||
enable = true;
|
||||
qemu = {
|
||||
ovmf = {
|
||||
enable = true;
|
||||
packages = with pkgs; [
|
||||
OVMF.fd
|
||||
pkgsCross.aarch64-multiplatform.OVMF.fd
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
users = {
|
||||
|
|
8
common/users/homeModules/java.nix
Normal file
8
common/users/homeModules/java.nix
Normal file
|
@ -0,0 +1,8 @@
|
|||
{ pkgs, ... }: {
|
||||
programs = {
|
||||
java = {
|
||||
enable = true;
|
||||
package = pkgs.temurin-bin-17;
|
||||
};
|
||||
};
|
||||
}
|
|
@ -4,6 +4,8 @@ let
|
|||
_ = [
|
||||
"source ${pkgs.zsh-powerlevel10k}/share/zsh-powerlevel10k/powerlevel10k.zsh-theme"
|
||||
"source ${pkgs.zsh-syntax-highlighting}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh"
|
||||
"eval \"$(${pkgs.nh}/bin/nh completions --shell=zsh)\""
|
||||
"eval \"$(${pkgs.nodejs_22}/bin/node --completion-bash)\""
|
||||
"[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh"
|
||||
"setopt globstarshort"
|
||||
];
|
||||
|
|
|
@ -7,6 +7,8 @@ in
|
|||
(import ../../systemModules/networkManager.nix { inherit NAME; })
|
||||
(import ../../systemModules/sops.nix { inherit NAME; })
|
||||
(import ../../systemModules/vm.nix { inherit NAME; })
|
||||
(import ../../systemModules/razer.nix { inherit NAME; })
|
||||
(import ../../systemModules/nixHelper.nix { inherit NAME; })
|
||||
(import ../../programs/wireshark.nix { inherit NAME; })
|
||||
];
|
||||
users = {
|
||||
|
|
35
common/users/meyer/git.nix
Normal file
35
common/users/meyer/git.nix
Normal file
|
@ -0,0 +1,35 @@
|
|||
{ ... }: {
|
||||
programs = {
|
||||
git = {
|
||||
enable = true;
|
||||
userName = "sadan";
|
||||
userEmail = "117494111+sadan4@users.noreply.github.com";
|
||||
extraConfig = {
|
||||
gpg = {
|
||||
format = "ssh";
|
||||
};
|
||||
user = {
|
||||
signingkey = "~/.ssh/id_ed25519";
|
||||
};
|
||||
commit = {
|
||||
gpgsign = true;
|
||||
};
|
||||
core = {
|
||||
autocrlf = "input";
|
||||
};
|
||||
pull = {
|
||||
rebase = true;
|
||||
};
|
||||
push = {
|
||||
autoSetupRemote = true;
|
||||
};
|
||||
init = {
|
||||
defaultBranch = "main";
|
||||
};
|
||||
rerere = {
|
||||
enabled = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,39 +1,24 @@
|
|||
{ config, pkgs, inputs, ... }:
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
let
|
||||
files = import ../../files.nix { inherit config; };
|
||||
file = import ../../files.nix { inherit config; };
|
||||
shell = import ../../shell.nix { inherit config pkgs; };
|
||||
pkgTypes = import ../../pkgs.nix { inherit pkgs config; };
|
||||
packages = pkgTypes.dev ++ pkgTypes.gui ++ pkgTypes.general ++ pkgTypes.scripts ++ pkgTypes.gaming;
|
||||
in
|
||||
{
|
||||
nixpkgs.config.allowInsecurePredicate = (pkg: true);
|
||||
nixpkgs.config.allowUnfreePredicate = (pkg: true);
|
||||
imports = [
|
||||
../homeModules/flameshot.nix
|
||||
../homeModules/arrpc.nix
|
||||
../homeModules/zsh.nix
|
||||
../homeModules/desktopEntries.nix
|
||||
../homeModules/java.nix
|
||||
./sops.nix
|
||||
./git.nix
|
||||
];
|
||||
programs.java.enable = true;
|
||||
programs.java.package = pkgs.temurin-bin-17;
|
||||
programs.git.enable = true;
|
||||
programs.git.userName = "sadan";
|
||||
programs.git.userEmail = "117494111+sadan4@users.noreply.github.com";
|
||||
programs.git.extraConfig = {
|
||||
gpg.format = "ssh";
|
||||
user = {
|
||||
signingkey = "~/.ssh/id_ed25519";
|
||||
};
|
||||
commit.gpgsign = true;
|
||||
core.autocrlf = "input";
|
||||
pull.rebase = true;
|
||||
push.autoSetupRemote = true;
|
||||
init.defaultBranch = "main";
|
||||
rerere.enabled = true;
|
||||
};
|
||||
|
||||
nixpkgs.config.allowUnfreePredicate = (pkg: true);
|
||||
# Home Manager needs a bit of information about you and the paths it should
|
||||
# nixpkg.config.allowUnfree = true;
|
||||
# manage.
|
||||
|
@ -41,22 +26,16 @@ in
|
|||
home.homeDirectory = "/home/meyer";
|
||||
|
||||
|
||||
# This value determines the Home Manager release that your configuration is
|
||||
# compatible with. This helps avoid breakage when a new Home Manager release
|
||||
# introduces backwards incompatible changes.
|
||||
#
|
||||
# You should not change this value, even if you update Home Manager. If you do
|
||||
# want to update the value, then make sure to first check the Home Manager
|
||||
# release notes.
|
||||
home.stateVersion = "23.11"; # Please read the comment before changing.
|
||||
# The home.packages option allows you to install Nix packages into your
|
||||
# environment.
|
||||
home = {
|
||||
inherit packages;
|
||||
inherit packages file;
|
||||
};
|
||||
home.shellAliases = shell.dev.aliases;
|
||||
home.sessionPath = shell.dev.path;
|
||||
home.sessionVariables = shell.dev.env;
|
||||
# Home Manager is pretty good at managing dotfiles. The primary way to manage
|
||||
# plain files is through 'home.file'.
|
||||
home.file = files;
|
||||
|
||||
# Home Manager can also manage your environment variables through
|
||||
# 'home.sessionVariables'. If you don't want to manage your shell through Home
|
||||
|
@ -73,10 +52,15 @@ in
|
|||
#
|
||||
# /etc/profiles/per-user/meyer/etc/profile.d/hm-session-vars.sh
|
||||
#
|
||||
home.shellAliases = shell.dev.aliases;
|
||||
home.sessionPath = shell.dev.path;
|
||||
home.sessionVariables = shell.dev.env;
|
||||
|
||||
# This value determines the Home Manager release that your configuration is
|
||||
# compatible with. This helps avoid breakage when a new Home Manager release
|
||||
# introduces backwards incompatible changes.
|
||||
#
|
||||
# You should not change this value, even if you update Home Manager. If you do
|
||||
# want to update the value, then make sure to first check the Home Manager
|
||||
# release notes.
|
||||
home.stateVersion = "23.11"; # Please read the comment before changing.
|
||||
# Let Home Manager install and manage itself.
|
||||
programs.home-manager.enable = true;
|
||||
}
|
||||
|
|
42
flake.lock
42
flake.lock
|
@ -21,11 +21,11 @@
|
|||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1710146030,
|
||||
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
||||
"lastModified": 1726560853,
|
||||
"narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
|
||||
"rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -41,11 +41,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1726611136,
|
||||
"narHash": "sha256-H3XQ8DHc/wtEcztf34IzWW7CPk7RZHTdB6PZd++0yt8=",
|
||||
"lastModified": 1727817100,
|
||||
"narHash": "sha256-dlyV9/eiWkm/Y/t2+k4CFZ29tBvCANmJogEYaHeAOTw=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "4974dfb26e1c84d22bfdf943d41a33c9e51209a8",
|
||||
"rev": "437ec62009fa8ceb684eb447d455ffba25911cf9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -61,11 +61,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1726449931,
|
||||
"narHash": "sha256-1AX7MyYzP7sNgZiGF8jwehCCI75y2kBGwACeryJs+yE=",
|
||||
"lastModified": 1727658919,
|
||||
"narHash": "sha256-YAePt2GldkkRJ08LvZNHcuS6shIVStj+K+1DZN3gbnM=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nix-index-database",
|
||||
"rev": "c1b0fa0bec5478185eae2fd3f39b9e906fc83995",
|
||||
"rev": "f9fdf8285690a351e8998f1e703ebdf9cdf51dee",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -81,11 +81,11 @@
|
|||
"nixpkgs": "nixpkgs"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1726477654,
|
||||
"narHash": "sha256-nE34QJfnkLZyZIVOXd73iICyvYROVSOo4h7pVRs0mqg=",
|
||||
"lastModified": 1727693804,
|
||||
"narHash": "sha256-Qwd+BzauhSXdtiL172wkp8JYJhe2BXyXkyWqPexytME=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixos-wsl",
|
||||
"rev": "20630a560fa658b1f4fc16e6ef2b6b3d6f8539f5",
|
||||
"rev": "acb21a72156c5b6e1aa607b9adcbac592bd60862",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -96,11 +96,11 @@
|
|||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1726320982,
|
||||
"narHash": "sha256-RuVXUwcYwaUeks6h3OLrEmg14z9aFXdWppTWPMTwdQw=",
|
||||
"lastModified": 1727540905,
|
||||
"narHash": "sha256-40J9tW7Y794J7Uw4GwcAKlMxlX2xISBl6IBigo83ih8=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "8f7492cce28977fbf8bd12c72af08b1f6c7c3e49",
|
||||
"rev": "fbca5e745367ae7632731639de5c21f29c8744ed",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -128,11 +128,11 @@
|
|||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1726463316,
|
||||
"narHash": "sha256-gI9kkaH0ZjakJOKrdjaI/VbaMEo9qBbSUl93DnU7f4c=",
|
||||
"lastModified": 1727802920,
|
||||
"narHash": "sha256-HP89HZOT0ReIbI7IJZJQoJgxvB2Tn28V6XS3MNKnfLs=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "99dc8785f6a0adac95f5e2ab05cc2e1bf666d172",
|
||||
"rev": "27e30d177e57d912d614c88c622dcfdb2e6e6515",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -173,11 +173,11 @@
|
|||
"nixpkgs-stable": "nixpkgs-stable"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1726524647,
|
||||
"narHash": "sha256-qis6BtOOBBEAfUl7FMHqqTwRLB61OL5OFzIsOmRz2J4=",
|
||||
"lastModified": 1727734513,
|
||||
"narHash": "sha256-i47LQwoGCVQq4upV2YHV0OudkauHNuFsv306ualB/Sw=",
|
||||
"owner": "Mic92",
|
||||
"repo": "sops-nix",
|
||||
"rev": "e2d404a7ea599a013189aa42947f66cede0645c8",
|
||||
"rev": "3198a242e547939c5e659353551b0668ec150268",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
|
@ -27,15 +27,14 @@
|
|||
desktopIso = nixpkgs.lib.nixosSystem {
|
||||
system = "aarch64-linux";
|
||||
modules = [
|
||||
# ./boxes/desktop/configuration.nix
|
||||
# inputs.home-manager.nixosModules.default
|
||||
({ pkgs, modulesPath, ... }: {
|
||||
({ pkgs, modulesPath,lib, ... }: {
|
||||
imports = [ (modulesPath + "/installer/cd-dvd/installation-cd-minimal.nix") ];
|
||||
boot.kernelPackages = pkgs.linuxPackages_testing;
|
||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||
boot.supportedFilesystems = lib.mkForce [ "btrfs" "reiserfs" "vfat" "f2fs" "xfs" "ntfs" "cifs" "ext4" ];
|
||||
})
|
||||
];
|
||||
};
|
||||
desktop = nixpkgs.lib.nixosSystem {
|
||||
nix-desktop-evo4b5 = nixpkgs.lib.nixosSystem {
|
||||
specialArgs = { inherit inputs; };
|
||||
modules = [
|
||||
./boxes/desktop/configuration.nix
|
||||
|
|
Loading…
Reference in a new issue