Compare commits

...

8 commits

21 changed files with 252 additions and 210 deletions

View file

@ -3,77 +3,15 @@
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
{ config, lib, pkgs, inputs, ... }:
let
_v = import ../../common/programs/virt.nix { };
in
{
fileSystems."/mnt/d" = {
device = "/dev/disks/by-uuid/A02A12F22A12C566";
options = [
"nofail"
"uid=1000"
"gid=100"
];
};
fileSystems."/mnt/c" = {
device = "/dev/disks/by-uuid/046C2BB16C2B9D04";
options = [
"nofail"
"uid=1000"
"gid=100"
"noauto"
];
};
fileSystems."/mnt/f" = {
device = "/dev/disks/by-uuid/2E06B65306B61C31";
options = [
"nofail"
"uid=1000"
"gid=100"
];
};
fileSystems."/mnt/h" = {
device = "/dev/disks/by-uuid/E0A4F8C1A4F89B6C";
options = [
"nofail"
"uid=1000"
"gid=100"
];
};
imports =
[
# Include the results of the hardware scan.
./hardware-configuration.nix
inputs.sops-nix.nixosModules.sops
../../common/systemModules/audio.nix
../../common/systemModules/kde.nix
../../common/users/meyer
];
sops.defaultSopsFile = ../../secrets.yaml;
sops.defaultSopsFormat = "yaml";
sops.age.keyFile = "/home/meyer/.config/sops/age/keys.txt";
sops.secrets.password.neededForUsers = true;
users.users.meyer = {
isNormalUser = true;
hashedPasswordFile = config.sops.secrets.password.path;
extraGroups = [
"kvm"
"libvirtd"
"wheel" # Enable sudo for the user.
"audio"
"sound"
"video"
"networkmanager"
"input"
"tty"
"plugdev"
];
shell = pkgs.zsh;
};
home-manager = {
extraSpecialArgs = { inherit inputs; };
users = {
"meyer" = import ./home.nix;
};
};
# Use the systemd-boot EFI boot loader.
boot.loader.grub.device = "nodev";
boot.kernelPackages = pkgs.linuxPackages_latest;
@ -92,7 +30,6 @@ in
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.
networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
# Set your time zone.
time.timeZone = "America/New_York";
@ -111,47 +48,13 @@ in
avahi.enable = true;
usbmuxd.enable = true;
};
services.desktopManager.plasma6.enable = true;
services.xserver = {
videoDrivers = [ "amdgpu" ];
enable = true;
displayManager.sddm = {
enable = true;
};
};
services.xserver.videoDrivers = [ "amdgpu" ];
services.printing.enable = true;
services.printing.drivers = with pkgs; [
hplip
];
virtualisation = _v;
# Enable the X11 windowing system.
# servives.desktopManager.plasma6.enable = true;
# services.desktopManager.plasma6.enable = true;
# Configure keymap in X11
# services.xserver.xkb.layout = "us";
# services.xserver.xkb.options = "eurosign:e,caps:escape";
# Enable CUPS to print documents.
nix.settings.experimental-features = [ "nix-command" "flakes" ];
# Enable sound.
# sound.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
# hardware.pulseaudio.enable = true;
# Enable touchpad support (enabled default in most desktopManager).
# services.xserver.libinput.enable = true;
# Define a user account. Don't forget to set a password with passwd.
programs.zsh.enable = true;
programs.steam.enable = true;
@ -162,19 +65,12 @@ in
# networking.nameservers = ["10.0.0.97" "1.1.1.1"];
networking.nameservers = [ "10.0.0.97" ];
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.systemPackages = with pkgs; [
clinfo
fuse
ifuse
ddcutil
i2c-tools
# python311
# python311Packages.evdev
# python311Packages.xlib
gcc
neovim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
curl
@ -227,29 +123,6 @@ in
enable = true;
pinentryPackage = pkgs.pinentry-gnome3;
};
# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.
# programs.mtr.enable = true;
# programs.gnupg.agent = {
# enable = true;
# enableSSHSupport = true;
# };
# List services that you want to enable:
# Enable the OpenSSH daemon.
# services.openssh.enable = true;
# Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ];
# Or disable the firewall altogether.
# networking.firewall.enable = false;
# Copy the NixOS configuration file and link it from the resulting system
# (/run/current-system/configuration.nix). This is useful in case you
# accidentally delete configuration.nix.
# system.copySystemConfiguration = true;
# 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.

View file

@ -1,13 +0,0 @@
{}:
{
spotifyOpen = {
type = "Application";
name = "Open in Spotify";
genericName = "Music Player";
icon = "spotify-client";
terminal = false;
categories = [ "Audio" "Music" "Player" "AudioVideo" ];
exec = "qdbus org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.OpenUri %U";
mimeType = [ "x-scheme-handler/spotify" ];
};
}

View file

@ -38,7 +38,9 @@ in
nodejs_22
];
gui = with pkgs;[
wireshark
pinned.vscode
insomnia
teamviewer
davinci-resolve
warp-terminal

View file

@ -1,3 +0,0 @@
{}: {
enable = true;
}

View file

@ -1,11 +0,0 @@
{config}: {
enable = true;
settings = {
General = {
savePath="/home/${config.home.username}/ss/";
saveAsFileExtension=".png";
showDesktopNotification=false;
startupLaunch=true;
};
};
}

View file

@ -1,3 +0,0 @@
{} : {
libvirtd.enable = true;
}

View file

@ -0,0 +1,16 @@
{ NAME }: { ... }: {
programs = {
wireshark = {
enable = true;
};
};
users = {
users = {
"${NAME}" = {
extraGroups = [
"wireshark"
];
};
};
};
}

View file

@ -1,16 +0,0 @@
{ lib, pkgs }:
let
_ = [
"source ${pkgs.zsh-powerlevel10k}/share/zsh-powerlevel10k/powerlevel10k.zsh-theme"
"source ${pkgs.zsh-syntax-highlighting}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh"
"[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh"
"setopt globstarshort"
];
zshInitArgs = lib.concatMapStrings (x: x + "\n") _;
in
{
enable = true;
oh-my-zsh.enable = true;
initExtra = zshInitArgs;
}

View file

@ -1,10 +0,0 @@
{ config }:
{
age.keyFile = "/home/${config.home.username}/.config/sops/age/keys.txt";
defaultSopsFile = ../secrets.yaml;
secrets.hosts = {
format = "binary";
sopsFile = ../secrets/hosts;
path = "/home/${config.home.username}/.config/gh/hosts.yml";
};
}

View file

@ -0,0 +1,14 @@
{...}: {
services = {
pipewire = {
enable = true;
alsa = {
enable = true;
support32Bit = true;
};
pulse = {
enable = true;
};
};
};
}

View file

@ -0,0 +1,21 @@
{ ... }: {
services = {
desktopManager = {
plasma6 = {
enable = true;
};
};
xserver = {
enable = true;
displayManager = {
sddm = {
enable = true;
autoNumlock = true;
wayland = {
enable = false;
};
};
};
};
};
}

View file

@ -0,0 +1,17 @@
{ NAME }: { ... }: {
users = {
users = {
"${NAME}" = {
extraGroups = [
"networkmanager"
];
};
};
};
networking = {
networkmanager = {
enable = true;
};
nameservers = [ "1.1.1.1" "1.0.0.1" ];
};
}

View file

@ -0,0 +1,24 @@
{ NAME }: { config, inputs, ... }: {
imports = [
inputs.sops-nix.nixosModules.sops
];
sops = {
defaultSopsFile = ../../secrets.yaml;
defaultSopsFormat = "yaml";
age = {
keyFile = "/home/${NAME}/.config/sops/age/keys.txt";
};
secrets = {
password = {
neededForUsers = true;
};
};
};
users = {
users = {
"${NAME}" = {
hashedPasswordFile = config.sops.secrets.password.path;
};
};
};
}

View file

@ -0,0 +1,14 @@
{ NAME }: { ... }: {
virtualisation = {
libvirtd = {
enable = true;
};
};
users = {
users = {
"${NAME}" = {
extraGroups = [ "kvm" "libvirtd" ];
};
};
};
}

View file

@ -0,0 +1,7 @@
{ ... }: {
services = {
arrpc = {
enable = true;
};
};
}

View file

@ -0,0 +1,17 @@
{ ... }:
{
xdg = {
desktopEntries = {
spotifyOpen = {
type = "Application";
name = "Open in Spotify";
genericName = "Music Player";
icon = "spotify-client";
terminal = false;
categories = [ "Audio" "Music" "Player" "AudioVideo" ];
exec = "qdbus org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.OpenUri %U";
mimeType = [ "x-scheme-handler/spotify" ];
};
};
};
}

View file

@ -0,0 +1,15 @@
{ config, ... }: {
services = {
flameshot = {
enable = true;
settings = {
General = {
savePath = "/home/${config.home.username}/ss/";
saveAsFileExtension = ".png";
showDesktopNotification = false;
startupLaunch = true;
};
};
};
};
}

View file

@ -0,0 +1,37 @@
{ lib, pkgs, ... }:
let
_ = [
"source ${pkgs.zsh-powerlevel10k}/share/zsh-powerlevel10k/powerlevel10k.zsh-theme"
"source ${pkgs.zsh-syntax-highlighting}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh"
"[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh"
"setopt globstarshort"
];
zshInitArgs = lib.concatMapStrings (x: x + "\n") _;
in
{
programs = {
zoxide = {
enable = true;
enableZshIntegration = true;
};
zsh = {
enable = true;
oh-my-zsh.enable = true;
initExtra = zshInitArgs;
enableCompletion = true;
plugins = [
{
name = "zsh-nix-shell";
file = "nix-shell.plugin.zsh";
src = pkgs.fetchFromGitHub {
owner = "chisui";
repo = "zsh-nix-shell";
rev = "v0.8.0";
sha256 = "1lzrn0n4fxfcgg65v0qhnj7wnybybqzs4adz7xsrkgmcsr0ii8b7";
};
}
];
};
};
}

View file

@ -0,0 +1,35 @@
{ pkgs, inputs, ... }:
let
NAME = "meyer";
in
{
imports = [
(import ../../systemModules/networkManager.nix { inherit NAME; })
(import ../../systemModules/sops.nix { inherit NAME; })
(import ../../systemModules/vm.nix { inherit NAME; })
(import ../../programs/wireshark.nix { inherit NAME; })
];
users = {
users = {
"${NAME}" = {
isNormalUser = true;
extraGroups = [
"wheel" # Enable sudo for the user.
"audio"
"sound"
"video"
"input"
"tty"
"plugdev"
];
shell = pkgs.zsh;
};
};
};
home-manager = {
extraSpecialArgs = { inherit inputs; };
users = {
"${NAME}" = import ./home.nix;
};
};
}

View file

@ -1,29 +1,22 @@
{ config, lib, pkgs, inputs, ... }:
{ config, pkgs, inputs, ... }:
let
flameshot = import ../../common/programs/flameshot.nix { inherit config; };
arrpc = import ../../common/programs/arrpc.nix { };
zsh = import ../../common/programs/zsh.nix { inherit lib pkgs; };
_s1 = import ../../common/sops.nix { inherit config; };
files = import ../../common/files.nix { inherit config; };
shell = import ../../common/shell.nix { inherit config pkgs; };
p = import ../../common/pkgs.nix { inherit pkgs config; };
_p1 = p.dev ++ p.gui ++ p.general ++ p.scripts ++ p.gaming;
DES = import ../../common/desktopEntries.nix { };
files = 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);
imports = [
inputs.sops-nix.homeManagerModules.sops
../homeModules/flameshot.nix
../homeModules/arrpc.nix
../homeModules/zsh.nix
../homeModules/desktopEntries.nix
./sops.nix
];
sops = _s1;
programs = {
inherit zsh;
};
programs.java.enable = true;
programs.java.package = pkgs.temurin-bin-17;
programs.zoxide.enable = true;
programs.zoxide.enableZshIntegration = true;
programs.git.enable = true;
programs.git.userName = "sadan";
programs.git.userEmail = "117494111+sadan4@users.noreply.github.com";
@ -48,9 +41,6 @@ in
home.homeDirectory = "/home/meyer";
services = {
inherit arrpc flameshot;
};
# 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.
@ -61,7 +51,9 @@ in
home.stateVersion = "23.11"; # Please read the comment before changing.
# The home.packages option allows you to install Nix packages into your
# environment.
home.packages = _p1;
home = {
inherit packages;
};
# Home Manager is pretty good at managing dotfiles. The primary way to manage
# plain files is through 'home.file'.
home.file = files;
@ -84,7 +76,6 @@ in
home.shellAliases = shell.dev.aliases;
home.sessionPath = shell.dev.path;
home.sessionVariables = shell.dev.env;
xdg.desktopEntries = DES;
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;

View file

@ -0,0 +1,15 @@
{ config, inputs, ... }:
{
imports = [
inputs.sops-nix.homeManagerModules.sops
];
sops = {
age.keyFile = "/home/${config.home.username}/.config/sops/age/keys.txt";
defaultSopsFile = ../../../secrets.yaml;
secrets.hosts = {
format = "binary";
sopsFile = ../../../secrets/hosts;
path = "/home/${config.home.username}/.config/gh/hosts.yml";
};
};
}