I can't keep writing these comments, they're boring

This commit is contained in:
KoenDR06 2024-04-02 20:37:37 +00:00
parent 021124b584
commit 517df8e725
7 changed files with 60 additions and 143 deletions

View file

@ -46,6 +46,7 @@
spotify spotify
tailscale tailscale
whatsapp-for-linux whatsapp-for-linux
zsh
zoxide zoxide
]; ];
@ -55,15 +56,16 @@
userName = "KoenDR06"; userName = "KoenDR06";
userEmail = "koen.de.ruiter@hotmail.com"; userEmail = "koen.de.ruiter@hotmail.com";
}; };
programs.firefox.enable = true;
programs.gh.enable = true; programs.gh.enable = true;
programs.zsh = { # programs.zsh = {
oh-my-zsh = { # enable = true;
enable = true; # oh-my-zsh = {
plugins = [ "git" ]; # enable = true;
theme = "agnoster"; # plugins = [ "git" ];
}; # theme = "agnoster";
}; # };
# };
# Nicely reload system units when changing configs # Nicely reload system units when changing configs
systemd.user.startServices = "sd-switch"; systemd.user.startServices = "sd-switch";

View file

@ -50,6 +50,7 @@
"window-list@gnome-shell-extensions.gcampax.github.com" "window-list@gnome-shell-extensions.gcampax.github.com"
"auto-move-windows@gnome-shell-extensions.gcampax.github.com" "auto-move-windows@gnome-shell-extensions.gcampax.github.com"
]; ];
disable-user-extensions = false;
}; };
"org/gnome/shell/extensions/just-perfection" = { "org/gnome/shell/extensions/just-perfection" = {
@ -103,6 +104,8 @@
}; };
"org/gnome/desktop/wm/keybindings" = { "org/gnome/desktop/wm/keybindings" = {
switch-applications = "@as []";
switch-applications-backward = "@as []";
switch-windows = ["<Alt>Tab"]; switch-windows = ["<Alt>Tab"];
switch-windows-backward = ["<Shift><Alt>Tab"]; switch-windows-backward = ["<Shift><Alt>Tab"];
minimize = ["<Super>Down"]; minimize = ["<Super>Down"];
@ -111,8 +114,6 @@
panel-run-dialog = ["<Alt>F2"]; panel-run-dialog = ["<Alt>F2"];
switch-to-workspace-left = ["<Control><Super>Left"]; switch-to-workspace-left = ["<Control><Super>Left"];
switch-to-workspace-right = ["<Control><Super>Right"]; switch-to-workspace-right = ["<Control><Super>Right"];
switch-applications = "@as []";
switch-applications-backward = "@as []";
}; };
"org/gnome/settings-daemon/plugins/media-keys" = { "org/gnome/settings-daemon/plugins/media-keys" = {

View file

@ -1,6 +1,3 @@
# This is your system's configuration file.
# Use this to configure your system environment (it replaces /etc/nixos/configuration.nix)
{ {
inputs, inputs,
outputs, outputs,
@ -9,63 +6,32 @@
pkgs, pkgs,
... ...
}: { }: {
# You can import other NixOS modules here
imports = [ imports = [
# If you want to use modules your own flake exports (from modules/nixos):
# outputs.nixosModules.example
# Or modules from other flakes (such as nixos-hardware):
# inputs.hardware.nixosModules.common-cpu-amd
# inputs.hardware.nixosModules.common-ssd
# You can also split up your configuration and import pieces of it here:
# ./users.nix
# Import your generated (nixos-generate-config) hardware configuration
inputs.home-manager.nixosModules.home-manager inputs.home-manager.nixosModules.home-manager
./hardware-configuration.nix ./hardware-configuration.nix
../../pkgs/firefox.nix
]; ];
home-manager = { home-manager = {
extraSpecialArgs = { inherit inputs outputs; }; extraSpecialArgs = { inherit inputs outputs; };
users = { users = {
# Import your home-manager configuration
horseman = import ../../home-manager/apps.nix; horseman = import ../../home-manager/apps.nix;
}; };
}; };
nixpkgs = { nixpkgs = {
# You can add overlays here
overlays = [ overlays = [
# Add overlays your own flake exports (from overlays and pkgs dir):
outputs.overlays.additions outputs.overlays.additions
outputs.overlays.modifications outputs.overlays.modifications
outputs.overlays.unstable-packages outputs.overlays.unstable-packages
# You can also add overlays exported from other flakes:
# neovim-nightly-overlay.overlays.default
# Or define it inline, for example:
# (final: prev: {
# hi = final.hello.overrideAttrs (oldAttrs: {
# patches = [ ./change-hello-to-hi.patch ];
# });
# })
]; ];
# Configure your nixpkgs instance
config = { config = {
# Disable if you don't want unfree packages
allowUnfree = true; allowUnfree = true;
}; };
}; };
# This will add each flake input as a registry
# To make nix3 commands consistent with your flake
nix.registry = (lib.mapAttrs (_: flake: {inherit flake;})) ((lib.filterAttrs (_: lib.isType "flake")) inputs); nix.registry = (lib.mapAttrs (_: flake: {inherit flake;})) ((lib.filterAttrs (_: lib.isType "flake")) inputs);
# This will additionally add your inputs to the system's legacy channels
# Making legacy nix commands consistent as well, awesome!
nix.nixPath = ["/etc/nix/path"]; nix.nixPath = ["/etc/nix/path"];
environment.etc = environment.etc =
lib.mapAttrs' lib.mapAttrs'
@ -76,48 +42,32 @@
config.nix.registry; config.nix.registry;
nix.settings = { nix.settings = {
# Enable flakes and new 'nix' command
experimental-features = "nix-command flakes"; experimental-features = "nix-command flakes";
# Deduplicate and optimize nix store
auto-optimise-store = true; auto-optimise-store = true;
}; };
networking.hostName = "luna"; networking.hostName = "luna";
# time.timeZone = "Europe/Amsterdam";
# i18n.defaultLocale = "en_US.UTF-8";
services.xserver.enable = true; services.xserver.enable = true;
services.xserver.desktopManager.gnome.enable = true; services.xserver.desktopManager.gnome.enable = true;
services.xserver.displayManager.gdm.enable = true; services.xserver.displayManager.gdm.enable = true;
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.enable = true;
environment.shells = with pkgs; [ zsh ];
# TODO: Configure your system-wide user settings (groups, etc), add more users as needed.
users.users = { users.users = {
horseman = { horseman = {
# TODO: You can set an initial password for your user.
# If you do, you can skip setting a root password by passing '--no-root-passwd' to nixos-install.
# Be sure to change it (using passwd) after rebooting!
initialPassword = "1234"; initialPassword = "1234";
isNormalUser = true; isNormalUser = true;
openssh.authorizedKeys.keys = [ openssh.authorizedKeys.keys = [];
# TODO: Add your SSH public key(s) here, if you plan on using SSH to connect
];
# TODO: Be sure to add any other groups you need (such as networkmanager, audio, docker, etc)
extraGroups = ["wheel"]; extraGroups = ["wheel"];
}; };
}; };
# This setups a SSH server. Very important if you're setting up a headless system.
# Feel free to remove if you don't need it.
services.openssh = { services.openssh = {
enable = true; enable = true;
settings = { settings = {
# Forbid root login through SSH.
PermitRootLogin = "no"; PermitRootLogin = "no";
# Use keys only. Remove if you want to SSH using password (not recommended)
PasswordAuthentication = false; PasswordAuthentication = false;
}; };
}; };

View file

@ -51,6 +51,8 @@
boot.loader.grub.device = "/dev/sda"; boot.loader.grub.device = "/dev/sda";
boot.loader.grub.useOSProber = true; boot.loader.grub.useOSProber = true;
environment.shells = with pkgs; [ zsh ];
virtualisation.docker.enable = true; virtualisation.docker.enable = true;
services.tailscale.enable = true; services.tailscale.enable = true;

View file

@ -1,5 +1,3 @@
# This is your system's configuration file.
# Use this to configure your system environment (it replaces /etc/nixos/configuration.nix)
{ {
inputs, inputs,
outputs, outputs,
@ -8,107 +6,49 @@
pkgs, pkgs,
... ...
}: { }: {
# You can import other NixOS modules here
imports = [ imports = [
# If you want to use modules your own flake exports (from modules/nixos):
# outputs.nixosModules.example
# Or modules from other flakes (such as nixos-hardware):
# inputs.hardware.nixosModules.common-cpu-amd
# inputs.hardware.nixosModules.common-ssd
# You can also split up your configuration and import pieces of it here:
# ./users.nix
# Import your generated (nixos-generate-config) hardware configuration
inputs.home-manager.nixosModules.home-manager inputs.home-manager.nixosModules.home-manager
./hardware-configuration.nix ./hardware-configuration.nix
./refind.nix
../../pkgs/firefox.nix
]; ];
# NVIDIA Drivers # NVIDIA Drivers
# Enable OpenGL
hardware.opengl = { hardware.opengl = {
enable = true; enable = true;
driSupport = true; driSupport = true;
driSupport32Bit = true; driSupport32Bit = true;
}; };
# Load nvidia driver for Xorg and Wayland
services.xserver.videoDrivers = ["nvidia"]; # or "nvidiaLegacy470 etc. services.xserver.videoDrivers = ["nvidia"]; # or "nvidiaLegacy470 etc.
hardware.nvidia = { hardware.nvidia = {
# Modesetting is required.
modesetting.enable = true; modesetting.enable = true;
# Nvidia power management. Experimental, and can cause sleep/suspend to fail.
# Enable this if you have graphical corruption issues or application crashes after waking
# up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead
# of just the bare essentials.
powerManagement.enable = false; powerManagement.enable = false;
# Fine-grained power management. Turns off GPU when not in use.
# Experimental and only works on modern Nvidia GPUs (Turing or newer).
powerManagement.finegrained = false; powerManagement.finegrained = false;
# Use the NVidia open source kernel module (not to be confused with the
# independent third-party "nouveau" open source driver).
# Support is limited to the Turing and later architectures. Full list of
# supported GPUs is at:
# https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
# Only available from driver 515.43.04+
# Currently alpha-quality/buggy, so false is currently the recommended setting.
open = false; open = false;
# Enable the Nvidia settings menu,
# accessible via `nvidia-settings`.
nvidiaSettings = true; nvidiaSettings = true;
# Optionally, you may need to select the appropriate driver version for your specific GPU.
package = config.boot.kernelPackages.nvidiaPackages.stable; package = config.boot.kernelPackages.nvidiaPackages.stable;
}; };
home-manager = { home-manager = {
extraSpecialArgs = { inherit inputs outputs; }; extraSpecialArgs = { inherit inputs outputs; };
users = { users = {
# Import your home-manager configuration
horseman = import ../../home-manager/apps.nix; horseman = import ../../home-manager/apps.nix;
}; };
}; };
nixpkgs = { nixpkgs = {
# You can add overlays here
overlays = [ overlays = [
# Add overlays your own flake exports (from overlays and pkgs dir):
outputs.overlays.additions outputs.overlays.additions
outputs.overlays.modifications outputs.overlays.modifications
outputs.overlays.unstable-packages outputs.overlays.unstable-packages
# You can also add overlays exported from other flakes:
# neovim-nightly-overlay.overlays.default
# Or define it inline, for example:
# (final: prev: {
# hi = final.hello.overrideAttrs (oldAttrs: {
# patches = [ ./change-hello-to-hi.patch ];
# });
# })
]; ];
# Configure your nixpkgs instance
config = { config = {
# Disable if you don't want unfree packages
allowUnfree = true; allowUnfree = true;
}; };
}; };
# This will add each flake input as a registry
# To make nix3 commands consistent with your flake
nix.registry = (lib.mapAttrs (_: flake: {inherit flake;})) ((lib.filterAttrs (_: lib.isType "flake")) inputs); nix.registry = (lib.mapAttrs (_: flake: {inherit flake;})) ((lib.filterAttrs (_: lib.isType "flake")) inputs);
# This will additionally add your inputs to the system's legacy channels
# Making legacy nix commands consistent as well, awesome!
nix.nixPath = ["/etc/nix/path"]; nix.nixPath = ["/etc/nix/path"];
environment.etc = environment.etc =
lib.mapAttrs' lib.mapAttrs'
@ -119,47 +59,32 @@
config.nix.registry; config.nix.registry;
nix.settings = { nix.settings = {
# Enable flakes and new 'nix' command
experimental-features = "nix-command flakes"; experimental-features = "nix-command flakes";
# Deduplicate and optimize nix store
auto-optimise-store = true; auto-optimise-store = true;
}; };
networking.hostName = "terra"; networking.hostName = "terra";
# time.timeZone = "Europe/Amsterdam";
# i18n.defaultLocale = "en_US.UTF-8";
services.xserver.enable = true; services.xserver.enable = true;
services.xserver.desktopManager.gnome.enable = true; services.xserver.desktopManager.gnome.enable = true;
services.xserver.displayManager.gdm.enable = true; services.xserver.displayManager.gdm.enable = true;
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.enable = true;
# TODO: Configure your system-wide user settings (groups, etc), add more users as needed. environment.shells = with pkgs; [ zsh ];
users.users = { users.users = {
horseman = { horseman = {
# TODO: You can set an initial password for your user.
# If you do, you can skip setting a root password by passing '--no-root-passwd' to nixos-install.
# Be sure to change it (using passwd) after rebooting!
initialPassword = "1234"; initialPassword = "1234";
isNormalUser = true; isNormalUser = true;
openssh.authorizedKeys.keys = [ openssh.authorizedKeys.keys = [];
# TODO: Add your SSH public key(s) here, if you plan on using SSH to connect
];
# TODO: Be sure to add any other groups you need (such as networkmanager, audio, docker, etc)
extraGroups = ["wheel"]; extraGroups = ["wheel"];
}; };
}; };
# This setups a SSH server. Very important if you're setting up a headless system.
# Feel free to remove if you don't need it.
services.openssh = { services.openssh = {
enable = true; enable = true;
settings = { settings = {
# Forbid root login through SSH.
PermitRootLogin = "no"; PermitRootLogin = "no";
# Use keys only. Remove if you want to SSH using password (not recommended)
PasswordAuthentication = false; PasswordAuthentication = false;
}; };
}; };

13
machines/terra/refind.nix Normal file
View file

@ -0,0 +1,13 @@
{
inputs,
outputs,
lib,
config,
pkgs,
...
}: {
environment.systemPackages = [
pkgs.refind
pkgs.efibootmgr
];
}

24
pkgs/firefox.nix Normal file
View file

@ -0,0 +1,24 @@
{
config,
pkgs,
...
}: {
programs.firefox = {
enable = true;
policies = {
ExtensionSettings = {
"*".installation_mode = "blocked";
# uBlock Origin:
"uBlock0@raymondhill.net" = {
install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi";
installation_mode = "force_installed";
};
# Bitwarden
"{446900e4-71c2-419f-a6a7-df9c091e268b}" = {
install_url = "https://addons.mozilla.org/firefox/downloads/latest/bitwarden-password-manager/latest.xpi";
installation_mode = "force_installed";
};
};
};
};
}