initial (untested) commit
This commit is contained in:
commit
df39b62b78
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
network.nix
|
8
install.sh
Executable file
8
install.sh
Executable file
@ -0,0 +1,8 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
sudo cp nixos/* /etc/nixos/
|
||||||
|
sudo nixos-rebuild switch
|
||||||
|
|
||||||
|
mkdir -p $HOME/.config/home-manager
|
||||||
|
cp .config/home-manager/flake.nix
|
||||||
|
home-manager switch
|
14
nixos/bootloader.nix
Normal file
14
nixos/bootloader.nix
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
boot.loader.grub = {
|
||||||
|
device = "nodev";
|
||||||
|
efiSupport = true;
|
||||||
|
useOSProber = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
|
boot.loader.timeout = 2;
|
||||||
|
boot.initrd.enable = true;
|
||||||
|
boot.initrd.systemd.enable = true;
|
||||||
|
}
|
23
nixos/configuration.nix
Normal file
23
nixos/configuration.nix
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
# Most users should NEVER change this value after the initial install, for any reason,
|
||||||
|
# even if you've upgraded your system to a new NixOS release.
|
||||||
|
#
|
||||||
|
# This value does NOT affect the Nixpkgs version your packages and OS are pulled from,
|
||||||
|
# so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how
|
||||||
|
# to actually do that.
|
||||||
|
#
|
||||||
|
# This value being lower than the current NixOS release does NOT mean your system is
|
||||||
|
# out of date, out of support, or vulnerable.
|
||||||
|
#
|
||||||
|
# Do NOT change this value unless you have manually inspected all the changes it would make to your configuration,
|
||||||
|
# and migrated your data accordingly.
|
||||||
|
#
|
||||||
|
# For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
|
||||||
|
system.stateVersion = "24.11"; # Did you read the comment?
|
||||||
|
}
|
||||||
|
|
148
nixos/configuration.nix.bak
Normal file
148
nixos/configuration.nix.bak
Normal file
@ -0,0 +1,148 @@
|
|||||||
|
imports = [ <home-manager/nixos> ];
|
||||||
|
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports =
|
||||||
|
[ # Include the results of the hardware scan.
|
||||||
|
./hardware-configuration.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
boot.loader.grub.device = "nodev";
|
||||||
|
boot.loader.grub.efiSupport = true;
|
||||||
|
boot.loader.grub.useOSProber = true;
|
||||||
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
|
|
||||||
|
networking.hostName = "nixos"; # 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/Detroit";
|
||||||
|
|
||||||
|
# Configure network proxy if necessary
|
||||||
|
# networking.proxy.default = "http://user:password@proxy:port/";
|
||||||
|
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
||||||
|
|
||||||
|
# Select internationalisation properties.
|
||||||
|
i18n.defaultLocale = "en_US.UTF-8";
|
||||||
|
console = {
|
||||||
|
font = "Lat2-Terminus16";
|
||||||
|
useXkbConfig = true; # use xkb.options in tty.
|
||||||
|
};
|
||||||
|
|
||||||
|
# Enable the X11 windowing system.
|
||||||
|
services.xserver.enable = true;
|
||||||
|
|
||||||
|
# Configure keymap in X11
|
||||||
|
services.xserver.xkb.layout = "us";
|
||||||
|
# services.xserver.xkb.options = "eurosign:e,caps:escape";
|
||||||
|
|
||||||
|
# Enable CUPS to print documents.
|
||||||
|
services.printing.enable = true;
|
||||||
|
|
||||||
|
# Enable sound.
|
||||||
|
# hardware.pulseaudio.enable = true;
|
||||||
|
# OR
|
||||||
|
services.pipewire = {
|
||||||
|
enable = true;
|
||||||
|
pulse.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Enable touchpad support (enabled default in most desktopManager).
|
||||||
|
# services.libinput.enable = true;
|
||||||
|
|
||||||
|
users.users.srp = { isNormalUser = true; extraGroups = [ "wheel" ]; };
|
||||||
|
home-manager.users.srp = { programs.zsh.enable = true; };
|
||||||
|
home-manager.useGlobalPkgs = true;
|
||||||
|
|
||||||
|
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||||
|
|
||||||
|
# List packages installed in system profile. To search, run:
|
||||||
|
# $ nix search wget
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
neovim
|
||||||
|
wget
|
||||||
|
curl
|
||||||
|
git
|
||||||
|
kitty
|
||||||
|
brave
|
||||||
|
wofi
|
||||||
|
dunst
|
||||||
|
waybar
|
||||||
|
pyprland
|
||||||
|
hyprcursor
|
||||||
|
hyprlock
|
||||||
|
hypridle
|
||||||
|
hyprpicker
|
||||||
|
greetd.tuigreet
|
||||||
|
plexamp
|
||||||
|
];
|
||||||
|
|
||||||
|
programs.hyprland = {
|
||||||
|
enable = true;
|
||||||
|
withUWSM = true;
|
||||||
|
xwayland.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.sessionVariables.NIXOS_OZONE_WL = "1";
|
||||||
|
|
||||||
|
# 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;
|
||||||
|
};
|
||||||
|
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
|
services.xserver.displayManager.lightdm.enable = false;
|
||||||
|
services.greetd = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
default_session = {
|
||||||
|
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --time-format '%I:%M %p | %a - %h | %F' --cmd Hyprland";
|
||||||
|
user = "greeter";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
# Most users should NEVER change this value after the initial install, for any reason,
|
||||||
|
# even if you've upgraded your system to a new NixOS release.
|
||||||
|
#
|
||||||
|
# This value does NOT affect the Nixpkgs version your packages and OS are pulled from,
|
||||||
|
# so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how
|
||||||
|
# to actually do that.
|
||||||
|
#
|
||||||
|
# This value being lower than the current NixOS release does NOT mean your system is
|
||||||
|
# out of date, out of support, or vulnerable.
|
||||||
|
#
|
||||||
|
# Do NOT change this value unless you have manually inspected all the changes it would make to your configuration,
|
||||||
|
# and migrated your data accordingly.
|
||||||
|
#
|
||||||
|
# For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
|
||||||
|
system.stateVersion = "24.11"; # Did you read the comment?
|
||||||
|
|
||||||
|
}
|
||||||
|
|
47
nixos/desktop.nix
Normal file
47
nixos/desktop.nix
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
services.greetd = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
default_session = {
|
||||||
|
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --time-format '%I:%M %p | %a • %h | %F' --cmd Hyprland"
|
||||||
|
user = "greeter";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.hyprland = {
|
||||||
|
enable = true;
|
||||||
|
withUWSM = true;
|
||||||
|
xwayland.enable = true;
|
||||||
|
};
|
||||||
|
wayland.windowManager.hyprland = {
|
||||||
|
plugins = [
|
||||||
|
hyprland-split-monitor-workspaces.packages.${pkgs.system}.split-monitor-workspaces
|
||||||
|
];
|
||||||
|
};
|
||||||
|
environment.sessionVariables = {
|
||||||
|
NIXOS_OZONE_WL = "1";
|
||||||
|
WLR_NO_HARDWARE_CURSORS = "1";
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
greetd.tuigreet
|
||||||
|
|
||||||
|
pyprland
|
||||||
|
hyprpicker
|
||||||
|
hyprcursor
|
||||||
|
hyprlock
|
||||||
|
hypridle
|
||||||
|
hyprpaper
|
||||||
|
|
||||||
|
brave
|
||||||
|
zathura
|
||||||
|
mpv
|
||||||
|
imv
|
||||||
|
plexamp
|
||||||
|
vscode
|
||||||
|
equibop
|
||||||
|
];
|
||||||
|
}
|
5
nixos/env.nix
Normal file
5
nixos/env.nix
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
environment.variables.NODEJS_PATH = "${pkgs.nodePackages_latest.nodejs}/";
|
||||||
|
}
|
42
nixos/flake.nix
Normal file
42
nixos/flake.nix
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
{
|
||||||
|
description = "srpnix";
|
||||||
|
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
|
||||||
|
|
||||||
|
hyprland.url = "github:hyprwm/Hyprland";
|
||||||
|
hyprland-plugins = { url = "github:hyprwm/hyprland-plugins"; inputs.hyprland.follows = "hyprland" };
|
||||||
|
hyprland-split-monitor-workspaces = { url = "github:Duckonaut/split-monitor-workspaces"; input.hyprland.follows = "hyprland"; }
|
||||||
|
|
||||||
|
home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs" };
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = { nixpkgs, ... } @ inputs: {
|
||||||
|
specialArgs = { inherit inputs; };
|
||||||
|
modules = [
|
||||||
|
./configuration.nix
|
||||||
|
./hardware-configuration.nix
|
||||||
|
./graphics.nix
|
||||||
|
./sound.nix
|
||||||
|
./usb.nix
|
||||||
|
./peripherals.nix
|
||||||
|
./time.nix
|
||||||
|
./bootloader.nix
|
||||||
|
./nix-settings.nix
|
||||||
|
./nixpkgs.nix
|
||||||
|
./kernel.nix
|
||||||
|
./desktop.nix
|
||||||
|
./theme.nix
|
||||||
|
./internationalisation.nix
|
||||||
|
./security.nix
|
||||||
|
./services.nix
|
||||||
|
./printing.nix
|
||||||
|
./env.nix
|
||||||
|
./network.nix
|
||||||
|
./users.nix
|
||||||
|
./virtualisation.nix
|
||||||
|
./programming.nix
|
||||||
|
./terminal.nix
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
20
nixos/graphics.nix
Normal file
20
nixos/graphics.nix
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
hardware.graphics = {
|
||||||
|
enable = true;
|
||||||
|
enable32Bit = true;
|
||||||
|
extraPackages = with pkgs; [
|
||||||
|
mesa
|
||||||
|
rocmPackages.clr.icd # OpenCL
|
||||||
|
];
|
||||||
|
extraPackages32 = with pkgs.pkgsi686Linux; [
|
||||||
|
mesa
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
boot.kernelParams = [
|
||||||
|
"video=DP-2:2560x1440@144"
|
||||||
|
"video=HDMI-A-2:2560x1440@60"
|
||||||
|
]
|
||||||
|
}
|
39
nixos/hardware-configuration.nix
Normal file
39
nixos/hardware-configuration.nix
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
|
# and may be overwritten by future invocations. Please make changes
|
||||||
|
# to /etc/nixos/configuration.nix instead.
|
||||||
|
{ config, lib, pkgs, modulesPath, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports =
|
||||||
|
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||||
|
];
|
||||||
|
|
||||||
|
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ];
|
||||||
|
boot.initrd.kernelModules = [ ];
|
||||||
|
boot.kernelModules = [ "kvm-amd" ];
|
||||||
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
|
fileSystems."/" =
|
||||||
|
{ device = "/dev/disk/by-uuid/aece9238-21db-4a35-ab41-36adfb55d23d";
|
||||||
|
fsType = "btrfs";
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/boot" =
|
||||||
|
{ device = "/dev/disk/by-uuid/A8B3-0AF5";
|
||||||
|
fsType = "vfat";
|
||||||
|
options = [ "fmask=0077" "dmask=0077" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
swapDevices = [ ];
|
||||||
|
|
||||||
|
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||||
|
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||||
|
# still possible to use this option, but it's recommended to use it in conjunction
|
||||||
|
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||||
|
networking.useDHCP = lib.mkDefault true;
|
||||||
|
# networking.interfaces.enp14s0.useDHCP = lib.mkDefault true;
|
||||||
|
# networking.interfaces.wlp15s0.useDHCP = lib.mkDefault true;
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
}
|
25
nixos/internationalisation.nix
Normal file
25
nixos/internationalisation.nix
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
i18n.supportedLocales = [ "en_US.UTF-8/UTF-8" ];
|
||||||
|
i18n.defaultLocale = "en_US.UTF-8";
|
||||||
|
|
||||||
|
i18n.extraLocaleSettings = {
|
||||||
|
LC_ADDRESS = "en_US.UTF-8";
|
||||||
|
LC_IDENTIFICATION = "en_US.UTF-8";
|
||||||
|
LC_MEASUREMENT = "en_US.UTF-8";
|
||||||
|
LC_MONETARY = "en_US.UTF-8";
|
||||||
|
LC_NAME = "en_US.UTF-8";
|
||||||
|
LC_NUMERIC = "en_US.UTF-8";
|
||||||
|
LC_PAPER = "en_US.UTF-8";
|
||||||
|
LC_TELEPHONE = "en_US.UTF-8";
|
||||||
|
LC_TIME = "en_US.UTF-8";
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
nuspell
|
||||||
|
hyphen
|
||||||
|
hunspell
|
||||||
|
hunspellDicts.en_US
|
||||||
|
];
|
||||||
|
}
|
22
nixos/kernel.nix
Normal file
22
nixos/kernel.nix
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
boot.kernelPackages = pkgs.linuxKernel.packages.linux_zen;
|
||||||
|
boot.kernelParams = [
|
||||||
|
"splash"
|
||||||
|
"quiet"
|
||||||
|
"fbcon=nodefer"
|
||||||
|
"vt.global_cursor_default=0"
|
||||||
|
"kernel.modules_disabled=1"
|
||||||
|
"lsm=landlock,lockdown,yama,integrity,apparmor,bpf,tomoyo,selinux"
|
||||||
|
"video4linux"
|
||||||
|
"acpi_rev_override=5"
|
||||||
|
"security=selinux"
|
||||||
|
];
|
||||||
|
|
||||||
|
systemd.package = pkgs.systemd.override { withSeLinux = true; };
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
policycoreutils
|
||||||
|
];
|
||||||
|
}
|
23
nixos/network.example.nix
Normal file
23
nixos/network.example.nix
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
hardware.bluetooth = {
|
||||||
|
enable = true;
|
||||||
|
powerOnBoot = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
networking.hostName = "nixos";
|
||||||
|
networking.wireless = {
|
||||||
|
enable = true;
|
||||||
|
userControlled.enable = true;
|
||||||
|
networks.SSID_HERE.pskRaw = "PSK_HERE";
|
||||||
|
};
|
||||||
|
|
||||||
|
networking.firewall.enable = true;
|
||||||
|
|
||||||
|
# todo: custom dns
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
overskride
|
||||||
|
];
|
||||||
|
}
|
17
nixos/nix-settings.nix
Normal file
17
nixos/nix-settings.nix
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
nix.settings = {
|
||||||
|
auto-optimise-store = true;
|
||||||
|
experimental-features = [ "nix-command" "flakes" ];
|
||||||
|
substituters = ["https://hyprland.cachix.org"];
|
||||||
|
trusted-public-keys = ["hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="];
|
||||||
|
};
|
||||||
|
|
||||||
|
nix.optimise.automatic = true;
|
||||||
|
nix.gc = {
|
||||||
|
automatic = true;
|
||||||
|
dates = "weekly";
|
||||||
|
options = "--delete-older-than 14d";
|
||||||
|
};
|
||||||
|
}
|
5
nixos/nixpkgs.nix
Normal file
5
nixos/nixpkgs.nix
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
}
|
12
nixos/peripherals.nix
Normal file
12
nixos/peripherals.nix
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
services.xserver = {
|
||||||
|
xkb.layout = "us";
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
piper
|
||||||
|
openrgb-with-all-plugins
|
||||||
|
];
|
||||||
|
}
|
9
nixos/printing.nix
Normal file
9
nixos/printing.nix
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
services.printing.enable = true;
|
||||||
|
services.avahi = {
|
||||||
|
enable = true;
|
||||||
|
nssmdns4 = true;
|
||||||
|
};
|
||||||
|
}
|
29
nixos/programming.nix
Normal file
29
nixos/programming.nix
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
go
|
||||||
|
(python313Full.withPackages(ps: with ps; [ pygobject3 gobject-introspection pyqt6-sip ]))
|
||||||
|
nodePackages.nodejs
|
||||||
|
typescript
|
||||||
|
pnpm
|
||||||
|
# see https://github.com/XNM1/linux-nixos-hyprland-config-dotfiles/blob/main/nixos/rust.nix for rust impl
|
||||||
|
dotnetCorePackages.sdk_9_0-bin
|
||||||
|
|
||||||
|
# LSPs
|
||||||
|
python313Packages.python-lsp-server
|
||||||
|
typescript-language-server
|
||||||
|
vscode-langservers-extracted
|
||||||
|
dockerfile-language-server-nodejs
|
||||||
|
bash-language-server
|
||||||
|
omnisharp-roslyn
|
||||||
|
marksman
|
||||||
|
markdown-oxide
|
||||||
|
nil
|
||||||
|
gopls
|
||||||
|
delve
|
||||||
|
emmet-language-server
|
||||||
|
docker-compose-language-service
|
||||||
|
hyprls
|
||||||
|
];
|
||||||
|
}
|
75
nixos/security.nix
Normal file
75
nixos/security.nix
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
{ pkgs, lib, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.mtr.enable = true;
|
||||||
|
programs.gnupg.agent = {
|
||||||
|
enable = true;
|
||||||
|
enableSSHSupport = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
users.users.root.hashedPassword = "!";
|
||||||
|
|
||||||
|
security.tpm2 = {
|
||||||
|
enable = true;
|
||||||
|
pkcs11.enable = true;
|
||||||
|
tctiEnvironment.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
security.apparmor = {
|
||||||
|
enable = true;
|
||||||
|
packages = with pkgs; [
|
||||||
|
apparmor-utils
|
||||||
|
apparmor-profiles
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
security.pam.services.hyprlock = {};
|
||||||
|
# security.polkit.enable = true;
|
||||||
|
programs.bitwarden.enable = true;
|
||||||
|
|
||||||
|
services.clamav = {
|
||||||
|
daemon.enable = true;
|
||||||
|
fangfrisch = { enable = true; interval = "daily"; };
|
||||||
|
updater = { enable = true; interval = "daily"; frequency = 12; };
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.firejail = {
|
||||||
|
enable = true;
|
||||||
|
wrappedBinaries = {
|
||||||
|
mpv = {
|
||||||
|
executable = "${lib.getBin pkgs.mpv}/bin/mpv";
|
||||||
|
profile = "${pkgs.firejail}/etc/firejail/mpv.profile";
|
||||||
|
};
|
||||||
|
imv = {
|
||||||
|
executable = "${lib.getBin pkgs.imv}/bin/imv";
|
||||||
|
profile = "${pkgs.firejail}/etc/firejail/imv.profile";
|
||||||
|
};
|
||||||
|
zathura = {
|
||||||
|
executable = "${lib.getBin pkgs.zathura}/bin/zathura";
|
||||||
|
profile = "${pkgs.firejail}/etc/firejail/zathura.profile";
|
||||||
|
};
|
||||||
|
discord = {
|
||||||
|
executable = "${lib.getBin pkgs.discord}/bin/discord";
|
||||||
|
profile = "${pkgs.firejail}/etc/firejail/discord.profile";
|
||||||
|
};
|
||||||
|
telegram-desktop = {
|
||||||
|
executable = "${lib.getBin pkgs.tdesktop}/bin/telegram-desktop";
|
||||||
|
profile = "${pkgs.firejail}/etc/firejail/telegram-desktop.profile";
|
||||||
|
};
|
||||||
|
brave = {
|
||||||
|
executable = "${lib.getBin pkgs.brave}/bin/brave";
|
||||||
|
profile = "${pkgs.firejail}/etc/firejail/brave.profile";
|
||||||
|
};
|
||||||
|
vscode = {
|
||||||
|
executable = "${lib.getBin pkgs.vscode}/bin/code";
|
||||||
|
profile = "${pkgs.firejail}/etc/firejail/vscode.profile";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
vulnix # scan command: vulnix --system
|
||||||
|
clamav # scan command: sudo freshclam; clamscan [options] [file/directory/-]
|
||||||
|
chkrootkit # scan command: sudo chkrootkit
|
||||||
|
];
|
||||||
|
}
|
41
nixos/services.nix
Normal file
41
nixos/services.nix
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
systemd.packages = with pkgs; [
|
||||||
|
auto-cpufreq
|
||||||
|
];
|
||||||
|
|
||||||
|
programs.dconf.enable = true;
|
||||||
|
|
||||||
|
services.dbus = {
|
||||||
|
enable = true;
|
||||||
|
implementation = "broker";
|
||||||
|
};
|
||||||
|
|
||||||
|
services.fwupd.enable = true;
|
||||||
|
services.auto-cpufreq.enable = true;
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
at-spi2-atk
|
||||||
|
qt6.qtwayland
|
||||||
|
psi-notify
|
||||||
|
playerctl
|
||||||
|
psmisc
|
||||||
|
grim
|
||||||
|
slurp
|
||||||
|
imagemagick
|
||||||
|
swappy
|
||||||
|
ffmpeg_6-full
|
||||||
|
wl-screenrec
|
||||||
|
wl-clipboard
|
||||||
|
wl-clip-persist
|
||||||
|
xdg-utils
|
||||||
|
wtype
|
||||||
|
wlrctl
|
||||||
|
waybar
|
||||||
|
rofi-wayland
|
||||||
|
dunst
|
||||||
|
wlogout
|
||||||
|
gifsicle
|
||||||
|
];
|
||||||
|
}
|
17
nixos/sound.nix
Normal file
17
nixos/sound.nix
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
services.pulseaudio.enable = false;
|
||||||
|
services.rtkit.enable = true; # realtime audio support
|
||||||
|
services.pipewire = {
|
||||||
|
enable = true;
|
||||||
|
alsa = { enable = true; support32Bit = true; }
|
||||||
|
pulse.enable = true;
|
||||||
|
wireplumber.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
pamixer
|
||||||
|
pavucontrol
|
||||||
|
];
|
||||||
|
}
|
31
nixos/terminal.nix
Normal file
31
nixos/terminal.nix
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
kitty
|
||||||
|
starship
|
||||||
|
neofetch
|
||||||
|
htop
|
||||||
|
wlr-randr
|
||||||
|
gpu-viewer
|
||||||
|
dig
|
||||||
|
speedtest-rs
|
||||||
|
file
|
||||||
|
git
|
||||||
|
curl
|
||||||
|
ripgrep
|
||||||
|
eza
|
||||||
|
neovim
|
||||||
|
fd
|
||||||
|
jq
|
||||||
|
fzf
|
||||||
|
bat
|
||||||
|
pandoc
|
||||||
|
lsof
|
||||||
|
cmatrix
|
||||||
|
pipes-rs
|
||||||
|
rsclock
|
||||||
|
cava
|
||||||
|
figlet
|
||||||
|
];
|
||||||
|
}
|
16
nixos/theme.nix
Normal file
16
nixos/theme.nix
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
console = {
|
||||||
|
font = "Lat2-Terminus16";
|
||||||
|
useXkbConfig = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
fonts.packages = with pkgs; [
|
||||||
|
jetbrains-mono
|
||||||
|
nerd-font-patcher
|
||||||
|
noto-fonts-color-emoji
|
||||||
|
];
|
||||||
|
|
||||||
|
# lots to do here, compare to https://github.com/XNM1/linux-nixos-hyprland-config-dotfiles/blob/main/nixos/theme.nix
|
||||||
|
}
|
8
nixos/time.nix
Normal file
8
nixos/time.nix
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
time = {
|
||||||
|
hardwareClockInLocalTime = true;
|
||||||
|
timeZone = "America/Detroit";
|
||||||
|
}
|
||||||
|
}
|
9
nixos/usb.nix
Normal file
9
nixos/usb.nix
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
services.gvfs.enable = true;
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
usbutils
|
||||||
|
];
|
||||||
|
}
|
15
nixos/users.nix
Normal file
15
nixos/users.nix
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
imports = [ <home-manager/nixos> ];
|
||||||
|
|
||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
users.users.srp = {
|
||||||
|
isNormalUser = true;
|
||||||
|
description = "Seraphim R. Pardee";
|
||||||
|
extraGroups = [ "input" "wheel" "video" "audio" "tss" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
home-manager.useGlobalPkgs = true;
|
||||||
|
|
||||||
|
services.logind.extraConfig = "RuntimeDirectorySize=8G";
|
||||||
|
}
|
25
nixos/virtualisation.nix
Normal file
25
nixos/virtualisation.nix
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
virtualisation.podman = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
dockerCompat = true;
|
||||||
|
dockerSocket.enable = true;
|
||||||
|
|
||||||
|
defaultNetwork.settings.dns_enabled = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.variables.DBX_CONTAINER_MANAGER = "podman";
|
||||||
|
users.extraGroups.podman.members = [ "srp" ];
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
distrobox
|
||||||
|
qemu
|
||||||
|
|
||||||
|
podman-compose
|
||||||
|
podman-tui
|
||||||
|
|
||||||
|
docker-compose
|
||||||
|
];
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user